bpftool: Rename "bpftool feature list" into "... feature list_builtins"
authorQuentin Monnet <quentin@isovalent.com>
Fri, 1 Jul 2022 09:38:05 +0000 (10:38 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 5 Jul 2022 09:53:54 +0000 (11:53 +0200)
To make it more explicit that the features listed with "bpftool feature
list" are known to bpftool, but not necessary available on the system
(as opposed to the probed features), rename the "feature list" command
into "feature list_builtins".

Note that "bpftool feature list" still works as before given that we
recognise arguments from their prefixes; but the real name of the
subcommand, in particular as displayed in the man page or the
interactive help, will now include "_builtins".

Since we update the bash completion accordingly, let's also take this
chance to redirect error output to /dev/null in the completion script,
to avoid displaying unexpected error messages when users attempt to
tab-complete.

Suggested-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220701093805.16920-1-quentin@isovalent.com
tools/bpf/bpftool/Documentation/bpftool-feature.rst
tools/bpf/bpftool/bash-completion/bpftool
tools/bpf/bpftool/feature.c

index c08064628d395b52c53975a1332e6b4a141c3b0a..e44039f89be7f529abe84b9dd8e761e33f7917e3 100644 (file)
@@ -24,7 +24,7 @@ FEATURE COMMANDS
 ================
 
 |      **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]]
-|      **bpftool** **feature list** *GROUP*
+|      **bpftool** **feature list_builtins** *GROUP*
 |      **bpftool** **feature help**
 |
 |      *COMPONENT* := { **kernel** | **dev** *NAME* }
@@ -72,7 +72,7 @@ DESCRIPTION
                  The keywords **full**, **macros** and **prefix** have the
                  same role as when probing the kernel.
 
-       **bpftool feature list** *GROUP*
+       **bpftool feature list_builtins** *GROUP*
                  List items known to bpftool. These can be BPF program types
                  (**prog_types**), BPF map types (**map_types**), attach types
                  (**attach_types**), link types (**link_types**), or BPF helper
index ee177f83b17968f0aed74de2899f728b6cb626cf..dc1641e3670ef305e36be7bfcd97db1e02ca2efa 100644 (file)
@@ -703,7 +703,7 @@ _bpftool()
                             return 0
                             ;;
                         type)
-                            local BPFTOOL_MAP_CREATE_TYPES="$(bpftool feature list map_types | \
+                            local BPFTOOL_MAP_CREATE_TYPES="$(bpftool feature list_builtins map_types 2>/dev/null | \
                                 grep -v '^unspec$')"
                             COMPREPLY=( $( compgen -W "$BPFTOOL_MAP_CREATE_TYPES" -- "$cur" ) )
                             return 0
@@ -1032,7 +1032,7 @@ _bpftool()
                     return 0
                     ;;
                 attach|detach)
-                    local BPFTOOL_CGROUP_ATTACH_TYPES="$(bpftool feature list attach_types | \
+                    local BPFTOOL_CGROUP_ATTACH_TYPES="$(bpftool feature list_builtins attach_types 2>/dev/null | \
                         grep '^cgroup_')"
                     local ATTACH_FLAGS='multi override'
                     local PROG_TYPE='id pinned tag name'
@@ -1162,14 +1162,14 @@ _bpftool()
                     _bpftool_once_attr 'full unprivileged'
                     return 0
                     ;;
-                list)
+                list_builtins)
                     [[ $prev != "$command" ]] && return 0
                     COMPREPLY=( $( compgen -W 'prog_types map_types \
                         attach_types link_types helpers' -- "$cur" ) )
                     ;;
                 *)
                     [[ $prev == $object ]] && \
-                        COMPREPLY=( $( compgen -W 'help list probe' -- "$cur" ) )
+                        COMPREPLY=( $( compgen -W 'help list_builtins probe' -- "$cur" ) )
                     ;;
             esac
             ;;
index 576cc6b90c6ade49989741b812926204c4d0310e..7ecabf7947fb09a54b2f744f7331bb1a39bc1fcc 100644 (file)
@@ -1266,7 +1266,7 @@ static const char *get_helper_name(unsigned int id)
        return helper_name[id];
 }
 
-static int do_list(int argc, char **argv)
+static int do_list_builtins(int argc, char **argv)
 {
        const char *(*get_name)(unsigned int id);
        unsigned int id = 0;
@@ -1319,7 +1319,7 @@ static int do_help(int argc, char **argv)
 
        fprintf(stderr,
                "Usage: %1$s %2$s probe [COMPONENT] [full] [unprivileged] [macros [prefix PREFIX]]\n"
-               "       %1$s %2$s list GROUP\n"
+               "       %1$s %2$s list_builtins GROUP\n"
                "       %1$s %2$s help\n"
                "\n"
                "       COMPONENT := { kernel | dev NAME }\n"
@@ -1332,9 +1332,9 @@ static int do_help(int argc, char **argv)
 }
 
 static const struct cmd cmds[] = {
-       { "probe",      do_probe },
-       { "list",       do_list },
-       { "help",       do_help },
+       { "probe",              do_probe },
+       { "list_builtins",      do_list_builtins },
+       { "help",               do_help },
        { 0 }
 };