OSDN Git Service

tools/bpf: bpftool: support prog array map and map of maps
authorYonghong Song <yhs@fb.com>
Fri, 7 Sep 2018 00:26:05 +0000 (17:26 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 11 Sep 2018 21:17:24 +0000 (14:17 -0700)
commitad3338d2508cd7752accdd39881deced1ec2b8a1
treeb913be301cd2a317da5ed40d032c3716c3cf3629
parenta7c19db38d62fc1ce797dba19936e9f81cf2b9fb
tools/bpf: bpftool: support prog array map and map of maps

Currently, prog array map and map of maps are not supported
in bpftool. This patch added the support.
Different from other map types, for prog array map and
map of maps, the key returned bpf_get_next_key() may not
point to a valid value. So for these two map types,
no error will be printed out when such a scenario happens.

The following is the plain and json dump if btf is not available:
  $ ./bpftool map dump id 10
    key: 08 00 00 00  value: 5c 01 00 00
    Found 1 element
  $ ./bpftool -jp map dump id 10
    [{
        "key": ["0x08","0x00","0x00","0x00"
        ],
        "value": ["0x5c","0x01","0x00","0x00"
        ]
    }]

If the BTF is available, the dump looks below:
  $ ./bpftool map dump id 2
    [{
            "key": 0,
            "value": 7
        }
    ]
  $ ./bpftool -jp map dump id 2
    [{
        "key": ["0x00","0x00","0x00","0x00"
        ],
        "value": ["0x07","0x00","0x00","0x00"
        ],
        "formatted": {
            "key": 0,
            "value": 7
        }
    }]

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/bpf/bpftool/map.c