1 .. SPDX-License-Identifier: (GPL-2.0-only OR B 1 .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 2 3 =============== 3 =============== 4 bpftool-feature 4 bpftool-feature 5 =============== 5 =============== 6 ---------------------------------------------- 6 ------------------------------------------------------------------------------- 7 tool for inspection of eBPF-related parameters 7 tool for inspection of eBPF-related parameters for Linux kernel or net device 8 ---------------------------------------------- 8 ------------------------------------------------------------------------------- 9 9 10 :Manual section: 8 10 :Manual section: 8 11 11 12 .. include:: substitutions.rst 12 .. include:: substitutions.rst 13 13 14 SYNOPSIS 14 SYNOPSIS 15 ======== 15 ======== 16 16 17 **bpftool** [*OPTIONS*] **feature** *COMMAND* !! 17 **bpftool** [*OPTIONS*] **feature** *COMMAND* 18 18 19 *OPTIONS* := { |COMMON_OPTIONS| } !! 19 *OPTIONS* := { |COMMON_OPTIONS| } 20 20 21 *COMMANDS* := { **probe** | **help** } !! 21 *COMMANDS* := { **probe** | **help** } 22 22 23 FEATURE COMMANDS 23 FEATURE COMMANDS 24 ================ 24 ================ 25 25 26 | **bpftool** **feature probe** [*COMPONENT*] !! 26 | **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]] 27 | **bpftool** **feature list_builtins** *GROUP !! 27 | **bpftool** **feature help** 28 | **bpftool** **feature help** << 29 | 28 | 30 | *COMPONENT* := { **kernel** | **dev** *NAME* !! 29 | *COMPONENT* := { **kernel** | **dev** *NAME* } 31 | *GROUP* := { **prog_types** | **map_types** << 32 30 33 DESCRIPTION 31 DESCRIPTION 34 =========== 32 =========== 35 bpftool feature probe [kernel] [full] [macros !! 33 **bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]] 36 Probe the running kernel and dump a number !! 34 Probe the running kernel and dump a number of eBPF-related 37 as availability of the **bpf**\ () system !! 35 parameters, such as availability of the **bpf**\ () system call, 38 types availability, eBPF helper functions !! 36 JIT status, eBPF program types availability, eBPF helper 39 !! 37 functions availability, and more. 40 By default, bpftool **does not run probes* !! 38 41 () and **bpf_trace_printk**\() helpers whi !! 39 By default, bpftool **does not run probes** for 42 To enable them and run all probes, the **f !! 40 **bpf_probe_write_user**\ () and **bpf_trace_printk**\() 43 !! 41 helpers which print warnings to kernel logs. To enable them 44 If the **macros** keyword (but not the **- !! 42 and run all probes, the **full** keyword should be used. 45 of the output is dumped as a list of **#de !! 43 46 be included in a C header file, for exampl !! 44 If the **macros** keyword (but not the **-j** option) is 47 is used to define a *PREFIX*, the provided !! 45 passed, a subset of the output is dumped as a list of 48 to the names of the macros: this can be us !! 46 **#define** macros that are ready to be included in a C 49 names when including the output of this co !! 47 header file, for example. If, additionally, **prefix** is 50 !! 48 used to define a *PREFIX*, the provided string will be used 51 Keyword **kernel** can be omitted. If no p !! 49 as a prefix to the names of the macros: this can be used to 52 the kernel is the default behaviour. !! 50 avoid conflicts on macro names when including the output of 53 !! 51 this command as a header file. 54 When the **unprivileged** keyword is used, !! 52 55 features available to a user who does not !! 53 Keyword **kernel** can be omitted. If no probe target is 56 capability set. The features available in !! 54 specified, probing the kernel is the default behaviour. 57 small subset of the parameters supported b !! 55 58 MUST use the **unprivileged** keyword: Thi !! 56 When the **unprivileged** keyword is used, bpftool will dump 59 bpftool is inadvertently run as non-root, !! 57 only the features available to a user who does not have the 60 unavailable if bpftool was compiled withou !! 58 **CAP_SYS_ADMIN** capability set. The features available in 61 !! 59 that case usually represent a small subset of the parameters 62 bpftool feature probe dev *NAME* [full] [macro !! 60 supported by the system. Unprivileged users MUST use the 63 Probe network device for supported eBPF fe !! 61 **unprivileged** keyword: This is to avoid misdetection if 64 console. !! 62 bpftool is inadvertently run as non-root, for example. This 65 !! 63 keyword is unavailable if bpftool was compiled without 66 The keywords **full**, **macros** and **pr !! 64 libcap. 67 probing the kernel. !! 65 68 !! 66 **bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]] 69 bpftool feature list_builtins *GROUP* !! 67 Probe network device for supported eBPF features and dump 70 List items known to bpftool. These can be !! 68 results to the console. 71 (**prog_types**), BPF map types (**map_typ << 72 (**attach_types**), link types (**link_typ << 73 (**helpers**). The command does not probe << 74 elements that bpftool knows from compilati << 75 (for all object types) or from the BPF UAP << 76 can be used in scripts to iterate over BPF << 77 69 78 bpftool feature help !! 70 The keywords **full**, **macros** and **prefix** have the 79 Print short help message. !! 71 same role as when probing the kernel. >> 72 >> 73 **bpftool feature help** >> 74 Print short help message. 80 75 81 OPTIONS 76 OPTIONS 82 ======= 77 ======= 83 .. include:: common_options.rst !! 78 .. include:: common_options.rst
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.