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