Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 1 | =============== |
| 2 | bpftool-feature |
| 3 | =============== |
| 4 | ------------------------------------------------------------------------------- |
| 5 | tool for inspection of eBPF-related parameters for Linux kernel or net device |
| 6 | ------------------------------------------------------------------------------- |
| 7 | |
| 8 | :Manual section: 8 |
| 9 | |
| 10 | SYNOPSIS |
| 11 | ======== |
| 12 | |
| 13 | **bpftool** [*OPTIONS*] **feature** *COMMAND* |
| 14 | |
| 15 | *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] } |
| 16 | |
| 17 | *COMMANDS* := { **probe** | **help** } |
| 18 | |
Prashant Bhole | a5f2d08 | 2019-02-06 10:47:23 +0900 | [diff] [blame] | 19 | FEATURE COMMANDS |
| 20 | ================ |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 21 | |
Quentin Monnet | cf9bf71 | 2020-04-29 15:45:05 +0100 | [diff] [blame] | 22 | | **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]] |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 23 | | **bpftool** **feature help** |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 24 | | |
| 25 | | *COMPONENT* := { **kernel** | **dev** *NAME* } |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 26 | |
| 27 | DESCRIPTION |
| 28 | =========== |
Michal Rostecki | bcdacab | 2020-02-26 17:59:37 +0100 | [diff] [blame] | 29 | **bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]] |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 30 | Probe the running kernel and dump a number of eBPF-related |
Quentin Monnet | c8caa0b | 2020-05-11 17:15:34 +0100 | [diff] [blame] | 31 | parameters, such as availability of the **bpf**\ () system call, |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 32 | JIT status, eBPF program types availability, eBPF helper |
| 33 | functions availability, and more. |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 34 | |
Michal Rostecki | bcdacab | 2020-02-26 17:59:37 +0100 | [diff] [blame] | 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 | |
Quentin Monnet | d267cff | 2019-01-17 15:27:56 +0000 | [diff] [blame] | 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 | |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 49 | Keyword **kernel** can be omitted. If no probe target is |
| 50 | specified, probing the kernel is the default behaviour. |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 51 | |
Quentin Monnet | cf9bf71 | 2020-04-29 15:45:05 +0100 | [diff] [blame] | 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 |
Quentin Monnet | 0b3b9ca | 2020-04-29 15:45:06 +0100 | [diff] [blame] | 58 | bpftool is inadvertently run as non-root, for example. This |
| 59 | keyword is unavailable if bpftool was compiled without |
| 60 | libcap. |
Quentin Monnet | cf9bf71 | 2020-04-29 15:45:05 +0100 | [diff] [blame] | 61 | |
Michal Rostecki | bcdacab | 2020-02-26 17:59:37 +0100 | [diff] [blame] | 62 | **bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]] |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 63 | Probe network device for supported eBPF features and dump |
| 64 | results to the console. |
| 65 | |
Michal Rostecki | bcdacab | 2020-02-26 17:59:37 +0100 | [diff] [blame] | 66 | The keywords **full**, **macros** and **prefix** have the |
| 67 | same role as when probing the kernel. |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 68 | |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 69 | **bpftool feature help** |
| 70 | Print short help message. |
| 71 | |
| 72 | OPTIONS |
| 73 | ======= |
Quentin Monnet | f28ef96 | 2020-09-09 17:24:59 +0100 | [diff] [blame] | 74 | .. include:: common_options.rst |