• Jakub Kicinski's avatar
    tools: ynl: add --dbg-small-recv for easier kernel testing · c0111878
    Jakub Kicinski authored
    Most "production" netlink clients use large buffers to
    make dump efficient, which means that handling of dump
    continuation in the kernel is not very well tested.
    
    Add an option for debugging / testing handling of dumps.
    It enables printing of extra netlink-level debug and
    lowers the recv() buffer size in one go. When used
    without any argument (--dbg-small-recv) it picks
    a very small default (4000), explicit size can be set,
    too (--dbg-small-recv 5000).
    
    Example:
    
    $ ./cli.py [...] --dbg-small-recv
    Recv: read 3712 bytes, 29 messages
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
     [...]
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
    Recv: read 3968 bytes, 31 messages
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
     [...]
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
    Recv: read 532 bytes, 5 messages
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
     [...]
       nl_len = 128 (112) nl_flags = 0x0 nl_type = 19
       nl_len = 20 (4) nl_flags = 0x2 nl_type = 3
    
    (the [...] are edits to shorten the commit message).
    
    Note that the first message of the dump is sized conservatively
    by the kernel.
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    Reviewed-by: default avatarDonald Hunter <donald.hunter@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c0111878
cli.py 2.59 KB