1=============== 2bpftool-feature 3=============== 4------------------------------------------------------------------------------- 5tool for inspection of eBPF-related parameters for Linux kernel or net device 6------------------------------------------------------------------------------- 7 8:Manual section: 8 9 10SYNOPSIS 11======== 12 13 **bpftool** [*OPTIONS*] **feature** *COMMAND* 14 15 *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] } 16 17 *COMMANDS* := { **probe** | **help** } 18 19FEATURE COMMANDS 20================ 21 22| **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]] 23| **bpftool** **feature help** 24| 25| *COMPONENT* := { **kernel** | **dev** *NAME* } 26 27DESCRIPTION 28=========== 29 **bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]] 30 Probe the running kernel and dump a number of eBPF-related 31 parameters, such as availability of the **bpf**\ () system call, 32 JIT status, eBPF program types availability, eBPF helper 33 functions availability, and more. 34 35 By default, bpftool **does not run probes** for 36 **bpf_probe_write_user**\ () and **bpf_trace_printk**\() 37 helpers which print warnings to kernel logs. To enable them 38 and run all probes, the **full** keyword should be used. 39 40 If the **macros** keyword (but not the **-j** option) is 41 passed, a subset of the output is dumped as a list of 42 **#define** macros that are ready to be included in a C 43 header file, for example. If, additionally, **prefix** is 44 used to define a *PREFIX*, the provided string will be used 45 as a prefix to the names of the macros: this can be used to 46 avoid conflicts on macro names when including the output of 47 this command as a header file. 48 49 Keyword **kernel** can be omitted. If no probe target is 50 specified, probing the kernel is the default behaviour. 51 52 When the **unprivileged** keyword is used, bpftool will dump 53 only the features available to a user who does not have the 54 **CAP_SYS_ADMIN** capability set. The features available in 55 that case usually represent a small subset of the parameters 56 supported by the system. Unprivileged users MUST use the 57 **unprivileged** keyword: This is to avoid misdetection if 58 bpftool is inadvertently run as non-root, for example. This 59 keyword is unavailable if bpftool was compiled without 60 libcap. 61 62 **bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]] 63 Probe network device for supported eBPF features and dump 64 results to the console. 65 66 The keywords **full**, **macros** and **prefix** have the 67 same role as when probing the kernel. 68 69 **bpftool feature help** 70 Print short help message. 71 72OPTIONS 73======= 74 -h, --help 75 Print short generic help message (similar to **bpftool help**). 76 77 -V, --version 78 Print version number (similar to **bpftool version**). 79 80 -j, --json 81 Generate JSON output. For commands that cannot produce JSON, this 82 option has no effect. 83 84 -p, --pretty 85 Generate human-readable JSON output. Implies **-j**. 86 87 -d, --debug 88 Print all logs available from libbpf, including debug-level 89 information. 90 91SEE ALSO 92======== 93 **bpf**\ (2), 94 **bpf-helpers**\ (7), 95 **bpftool**\ (8), 96 **bpftool-btf**\ (8), 97 **bpftool-cgroup**\ (8), 98 **bpftool-gen**\ (8), 99 **bpftool-iter**\ (8), 100 **bpftool-link**\ (8), 101 **bpftool-map**\ (8), 102 **bpftool-net**\ (8), 103 **bpftool-perf**\ (8), 104 **bpftool-prog**\ (8), 105 **bpftool-struct_ops**\ (8) 106