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 | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 22 | | **bpftool** **feature probe** [*COMPONENT*] [**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 | =========== |
Quentin Monnet | d267cff | 2019-01-17 15:27:56 +0000 | [diff] [blame] | 29 | **bpftool feature probe** [**kernel**] [**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 | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 31 | parameters, such as availability of the **bpf()** system call, |
| 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 | |
Quentin Monnet | d267cff | 2019-01-17 15:27:56 +0000 | [diff] [blame] | 35 | If the **macros** keyword (but not the **-j** option) is |
| 36 | passed, a subset of the output is dumped as a list of |
| 37 | **#define** macros that are ready to be included in a C |
| 38 | header file, for example. If, additionally, **prefix** is |
| 39 | used to define a *PREFIX*, the provided string will be used |
| 40 | as a prefix to the names of the macros: this can be used to |
| 41 | avoid conflicts on macro names when including the output of |
| 42 | this command as a header file. |
| 43 | |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 44 | Keyword **kernel** can be omitted. If no probe target is |
| 45 | specified, probing the kernel is the default behaviour. |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 46 | |
Quentin Monnet | 2d3ea5e | 2019-01-17 15:27:55 +0000 | [diff] [blame] | 47 | Note that when probed, some eBPF helpers (e.g. |
| 48 | **bpf_trace_printk**\ () or **bpf_probe_write_user**\ ()) may |
| 49 | print warnings to kernel logs. |
| 50 | |
Quentin Monnet | f9499fe | 2019-01-17 15:27:57 +0000 | [diff] [blame] | 51 | **bpftool feature probe dev** *NAME* [**macros** [**prefix** *PREFIX*]] |
| 52 | Probe network device for supported eBPF features and dump |
| 53 | results to the console. |
| 54 | |
| 55 | The two keywords **macros** and **prefix** have the same |
| 56 | role as when probing the kernel. |
| 57 | |
Quentin Monnet | 49eb7ab | 2019-01-17 15:27:50 +0000 | [diff] [blame] | 58 | **bpftool feature help** |
| 59 | Print short help message. |
| 60 | |
| 61 | OPTIONS |
| 62 | ======= |
| 63 | -h, --help |
| 64 | Print short generic help message (similar to **bpftool help**). |
| 65 | |
| 66 | -v, --version |
| 67 | Print version number (similar to **bpftool version**). |
| 68 | |
| 69 | -j, --json |
| 70 | Generate JSON output. For commands that cannot produce JSON, this |
| 71 | option has no effect. |
| 72 | |
| 73 | -p, --pretty |
| 74 | Generate human-readable JSON output. Implies **-j**. |
| 75 | |
| 76 | SEE ALSO |
| 77 | ======== |
| 78 | **bpf**\ (2), |
| 79 | **bpf-helpers**\ (7), |
| 80 | **bpftool**\ (8), |
| 81 | **bpftool-prog**\ (8), |
| 82 | **bpftool-map**\ (8), |
| 83 | **bpftool-cgroup**\ (8), |
| 84 | **bpftool-net**\ (8), |
| 85 | **bpftool-perf**\ (8) |