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 help**
28|
29|	*COMPONENT* := { **kernel** | **dev** *NAME* }
30
31DESCRIPTION
32===========
33	**bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]]
34		  Probe the running kernel and dump a number of eBPF-related
35		  parameters, such as availability of the **bpf**\ () system call,
36		  JIT status, eBPF program types availability, eBPF helper
37		  functions availability, and more.
38
39		  By default, bpftool **does not run probes** for
40		  **bpf_probe_write_user**\ () and **bpf_trace_printk**\()
41		  helpers which print warnings to kernel logs. To enable them
42		  and run all probes, the **full** keyword should be used.
43
44		  If the **macros** keyword (but not the **-j** option) is
45		  passed, a subset of the output is dumped as a list of
46		  **#define** macros that are ready to be included in a C
47		  header file, for example. If, additionally, **prefix** is
48		  used to define a *PREFIX*, the provided string will be used
49		  as a prefix to the names of the macros: this can be used to
50		  avoid conflicts on macro names when including the output of
51		  this command as a header file.
52
53		  Keyword **kernel** can be omitted. If no probe target is
54		  specified, probing the kernel is the default behaviour.
55
56		  When the **unprivileged** keyword is used, bpftool will dump
57		  only the features available to a user who does not have the
58		  **CAP_SYS_ADMIN** capability set. The features available in
59		  that case usually represent a small subset of the parameters
60		  supported by the system. Unprivileged users MUST use the
61		  **unprivileged** keyword: This is to avoid misdetection if
62		  bpftool is inadvertently run as non-root, for example. This
63		  keyword is unavailable if bpftool was compiled without
64		  libcap.
65
66	**bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]]
67		  Probe network device for supported eBPF features and dump
68		  results to the console.
69
70		  The keywords **full**, **macros** and **prefix** have the
71		  same role as when probing the kernel.
72
73	**bpftool feature help**
74		  Print short help message.
75
76OPTIONS
77=======
78	.. include:: common_options.rst
79