bpftool: Stop supporting BPF offload-enabled feature probing
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 2 Feb 2022 22:59:12 +0000 (14:59 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 3 Feb 2022 15:32:25 +0000 (16:32 +0100)
libbpf 1.0 is not going to support passing ifindex to BPF
prog/map/helper feature probing APIs. Remove the support for BPF offload
feature probing.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Quentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/bpf/20220202225916.3313522-3-andrii@kernel.org
tools/bpf/bpftool/feature.c

index e999159fa28d0b459a8a4c40db7e55fa18c62c4b..9c894b1447de8cf0f04d6cf63f984c8b1dcee759 100644 (file)
@@ -487,17 +487,12 @@ probe_prog_type(enum bpf_prog_type prog_type, bool *supported_types,
        size_t maxlen;
        bool res;
 
-       if (ifindex)
-               /* Only test offload-able program types */
-               switch (prog_type) {
-               case BPF_PROG_TYPE_SCHED_CLS:
-               case BPF_PROG_TYPE_XDP:
-                       break;
-               default:
-                       return;
-               }
+       if (ifindex) {
+               p_info("BPF offload feature probing is not supported");
+               return;
+       }
 
-       res = bpf_probe_prog_type(prog_type, ifindex);
+       res = libbpf_probe_bpf_prog_type(prog_type, NULL);
 #ifdef USE_LIBCAP
        /* Probe may succeed even if program load fails, for unprivileged users
         * check that we did not fail because of insufficient permissions
@@ -535,7 +530,12 @@ probe_map_type(enum bpf_map_type map_type, const char *define_prefix,
        size_t maxlen;
        bool res;
 
-       res = bpf_probe_map_type(map_type, ifindex);
+       if (ifindex) {
+               p_info("BPF offload feature probing is not supported");
+               return;
+       }
+
+       res = libbpf_probe_bpf_map_type(map_type, NULL);
 
        /* Probe result depends on the success of map creation, no additional
         * check required for unprivileged users
@@ -567,7 +567,12 @@ probe_helper_for_progtype(enum bpf_prog_type prog_type, bool supported_type,
        bool res = false;
 
        if (supported_type) {
-               res = bpf_probe_helper(id, prog_type, ifindex);
+               if (ifindex) {
+                       p_info("BPF offload feature probing is not supported");
+                       return;
+               }
+
+               res = libbpf_probe_bpf_helper(prog_type, id, NULL);
 #ifdef USE_LIBCAP
                /* Probe may succeed even if program load fails, for
                 * unprivileged users check that we did not fail because of