gatekeeper icon indicating copy to clipboard operation
gatekeeper copied to clipboard

Page large messages in gkctl

Open AltraMayor opened this issue 3 years ago • 1 comments

The scripts shipped with gkctl (i.e. scripts in folder gkctl/scripts) will have their output truncated if the output is larger than 64KiB due to the maximum size of the messages of the dynamic configuration block. While this is not a problem for most scripts, it is an issue for scripts show_fib.lua and show_fib6.lua when routing tables are large.

Increasing the limit of the messages of the dynamic configuration block is not a solution because routing tables are essentially unbounded. And this limit exists to guarantee that the dynamic configuration can bound its operations. Thus, some form of paging large messages is needed.

A possible solution is to enhance gkctl to receive parameters from the command line that are passed to the Lua scripts. That is, the Lua scripts would actually be templates that will have their parameters replaced before being passed to the dynamic block. This way, one can pass a parameter that says from where the dump of a routing table begins. Passing parameters to Lua scripts may even find other applications.

Once parameters for scripts are available, gkctl could support some mechanism to run scripts multiple times with different parameters to get the whole routing table with a single call of gkctl.

AltraMayor avatar Jun 04 '21 17:06 AltraMayor

This issue is singly motivated by dumping the FIB, a functionality that is already available through the RTNetlink interface that the CPS exports to routing daemons. Thus, a simpler solution would be to extend gkctl or to add another command to dump the FIB via RTNetlink.

Nevertheless, the possibility of passing parameters to Lua scripts proposed above would still be a valuable feature in general.

AltraMayor avatar Jun 16 '21 11:06 AltraMayor