• Xueming Feng's avatar
    bpftool: Dump map id instead of value for map_of_maps types · bf06c939
    Xueming Feng authored
    When using `bpftool map dump` with map_of_maps, it is usually
    more convenient to show the inner map id instead of raw value.
    
    We are changing the plain print behavior to show inner_map_id
    instead of hex value, this would help with quick look up of
    inner map with `bpftool map dump id <inner_map_id>`.
    To avoid disrupting scripted behavior, we will add a new
    `inner_map_id` field to json output instead of replacing value.
    
    plain print:
    ```
    $ bpftool map dump id 138
    
    Without Patch:
    key:
    fc 00 00 00 00 00 00 00  00 00 00 00 00 00 00 05
    27 16 06 00
    value:
    8b 00 00 00
    Found 1 element
    
    With Patch:
    key:
    fc 00 00 00 00 00 00 00  00 00 00 00 00 00 00 05
    27 16 06 00
    inner_map_id:
    139
    Found 1 element
    ```
    
    json print:
    ```
    $ bpftool -p map dump id 567
    
    Without Patch:
    [{
            "key": ["0xc0","0x00","0x02","0x05","0x27","0x16","0x06","0x00"
            ],
            "value": ["0x38","0x02","0x00","0x00"
            ]
        }
    ]
    
    With Patch:
    [{
            "key": ["0xc0","0x00","0x02","0x05","0x27","0x16","0x06","0x00"
            ],
            "value": ["0x38","0x02","0x00","0x00"
            ],
            "inner_map_id": 568
        }
    ]
    ```
    Signed-off-by: default avatarXueming Feng <kuro@kuroa.me>
    Acked-by: default avatarYonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/r/20230427120313.43574-1-kuro@kuroa.meSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
    bf06c939
map.c 31.6 KB