On Fri, Sep 4, 2020 at 9:16 AM Quentin Monnet <quentin@xxxxxxxxxxxxx> wrote: > > There is no support for creating maps of types array-of-map or > hash-of-map in bpftool. This is because the kernel needs an inner_map_fd > to collect metadata on the inner maps to be supported by the new map, > but bpftool does not provide a way to pass this file descriptor. > > Add a new optional "inner_map" keyword that can be used to pass a > reference to a map, retrieve a fd to that map, and pass it as the > inner_map_fd. > > Add related documentation and bash completion. Note that we can > reference the inner map by its name, meaning we can have several times > the keyword "name" with different meanings (mandatory outer map name, > and possibly a name to use to find the inner_map_fd). The bash > completion will offer it just once, and will not suggest "name" on the > following command: > > # bpftool map create /sys/fs/bpf/my_outer_map type hash_of_maps \ > inner_map name my_inner_map [TAB] > > Fixing that specific case seems too convoluted. Completion will work as > expected, however, if the outer map name comes first and the "inner_map > name ..." is passed second. > > Signed-off-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> > --- Acked-by: Andrii Nakryiko <andriin@xxxxxx> > .../bpf/bpftool/Documentation/bpftool-map.rst | 10 +++- > tools/bpf/bpftool/bash-completion/bpftool | 22 ++++++++- > tools/bpf/bpftool/map.c | 48 +++++++++++++------ > 3 files changed, 62 insertions(+), 18 deletions(-) > [...]