To work with the different program types, map types, attach types etc. supported by eBPF, bpftool needs occasional updates to learn about the new features supported by the kernel. When such types translate into new keyword for the command line, updates are expected in several locations: typically, the help message displayed from bpftool itself, the manual page, and the bash completion file should be updated. The options used by the different commands for bpftool should also remain synchronised at those locations. Several omissions have occurred in the past, and a number of types are still missing today. This set is an attempt to improve the situation. It brings up-to-date the lists of types or options in bpftool, and also adds a Python script to the BPF selftests to automatically check that most of these lists remain synchronised. Quentin Monnet (7): tools: bpftool: slightly ease bash completion updates selftests/bpf: check consistency between bpftool source, doc, completion tools: bpftool: complete and synchronise attach or map types tools: bpftool: update and synchronise option list in doc and help msg selftests/bpf: update bpftool's consistency script for checking options tools: bpftool: document and add bash completion for -L, -B options tools: bpftool: complete metrics list in "bpftool prog profile" doc .../bpf/bpftool/Documentation/bpftool-btf.rst | 48 +- .../bpftool/Documentation/bpftool-cgroup.rst | 3 +- .../bpftool/Documentation/bpftool-feature.rst | 2 +- .../bpf/bpftool/Documentation/bpftool-gen.rst | 9 +- .../bpftool/Documentation/bpftool-iter.rst | 2 + .../bpftool/Documentation/bpftool-link.rst | 3 +- .../bpf/bpftool/Documentation/bpftool-map.rst | 3 +- .../bpf/bpftool/Documentation/bpftool-net.rst | 2 +- .../bpftool/Documentation/bpftool-perf.rst | 2 +- .../bpftool/Documentation/bpftool-prog.rst | 36 +- .../Documentation/bpftool-struct_ops.rst | 2 +- tools/bpf/bpftool/Documentation/bpftool.rst | 12 +- tools/bpf/bpftool/bash-completion/bpftool | 69 ++- tools/bpf/bpftool/btf.c | 3 +- tools/bpf/bpftool/cgroup.c | 3 +- tools/bpf/bpftool/common.c | 76 +-- tools/bpf/bpftool/feature.c | 1 + tools/bpf/bpftool/gen.c | 3 +- tools/bpf/bpftool/iter.c | 2 + tools/bpf/bpftool/link.c | 3 +- tools/bpf/bpftool/main.c | 3 +- tools/bpf/bpftool/main.h | 3 +- tools/bpf/bpftool/map.c | 5 +- tools/bpf/bpftool/net.c | 1 + tools/bpf/bpftool/perf.c | 5 +- tools/bpf/bpftool/prog.c | 8 +- tools/bpf/bpftool/struct_ops.c | 2 +- tools/testing/selftests/bpf/Makefile | 1 + .../selftests/bpf/test_bpftool_synctypes.py | 586 ++++++++++++++++++ 29 files changed, 802 insertions(+), 96 deletions(-) create mode 100755 tools/testing/selftests/bpf/test_bpftool_synctypes.py -- 2.30.2