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