blob: dd3771bdbc5760b60ae1b13b3681a107ecac4648 [file] [log] [blame]
Quentin Monnet49eb7ab2019-01-17 15:27:50 +00001===============
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
Prashant Bholea5f2d082019-02-06 10:47:23 +090019FEATURE COMMANDS
20================
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000021
Quentin Monnetcf9bf712020-04-29 15:45:05 +010022| **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]]
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000023| **bpftool** **feature help**
Quentin Monnetf9499fe2019-01-17 15:27:57 +000024|
25| *COMPONENT* := { **kernel** | **dev** *NAME* }
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000026
27DESCRIPTION
28===========
Michal Rosteckibcdacab2020-02-26 17:59:37 +010029 **bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]]
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000030 Probe the running kernel and dump a number of eBPF-related
Quentin Monnetc8caa0b2020-05-11 17:15:34 +010031 parameters, such as availability of the **bpf**\ () system call,
Quentin Monnetf9499fe2019-01-17 15:27:57 +000032 JIT status, eBPF program types availability, eBPF helper
33 functions availability, and more.
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000034
Michal Rosteckibcdacab2020-02-26 17:59:37 +010035 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 Monnetd267cff2019-01-17 15:27:56 +000040 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 Monnetf9499fe2019-01-17 15:27:57 +000049 Keyword **kernel** can be omitted. If no probe target is
50 specified, probing the kernel is the default behaviour.
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000051
Quentin Monnetcf9bf712020-04-29 15:45:05 +010052 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 Monnet0b3b9ca2020-04-29 15:45:06 +010058 bpftool is inadvertently run as non-root, for example. This
59 keyword is unavailable if bpftool was compiled without
60 libcap.
Quentin Monnetcf9bf712020-04-29 15:45:05 +010061
Michal Rosteckibcdacab2020-02-26 17:59:37 +010062 **bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]]
Quentin Monnetf9499fe2019-01-17 15:27:57 +000063 Probe network device for supported eBPF features and dump
64 results to the console.
65
Michal Rosteckibcdacab2020-02-26 17:59:37 +010066 The keywords **full**, **macros** and **prefix** have the
67 same role as when probing the kernel.
Quentin Monnetf9499fe2019-01-17 15:27:57 +000068
Quentin Monnet49eb7ab2019-01-17 15:27:50 +000069 **bpftool feature help**
70 Print short help message.
71
72OPTIONS
73=======
Quentin Monnetf28ef962020-09-09 17:24:59 +010074 .. include:: common_options.rst