Linux Audio

Check our new training course

Loading...
v6.13.7
 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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
v5.9
 
 
  1===============
  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
 19FEATURE COMMANDS
 20================
 21
 22|	**bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]]
 23|	**bpftool** **feature help**
 
 24|
 25|	*COMPONENT* := { **kernel** | **dev** *NAME* }
 
 26
 27DESCRIPTION
 28===========
 29	**bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]]
 30		  Probe the running kernel and dump a number of eBPF-related
 31		  parameters, such as availability of the **bpf**\ () system call,
 32		  JIT status, eBPF program types availability, eBPF helper
 33		  functions availability, and more.
 34
 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
 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
 49		  Keyword **kernel** can be omitted. If no probe target is
 50		  specified, probing the kernel is the default behaviour.
 51
 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
 58		  bpftool is inadvertently run as non-root, for example. This
 59		  keyword is unavailable if bpftool was compiled without
 60		  libcap.
 61
 62	**bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]]
 63		  Probe network device for supported eBPF features and dump
 64		  results to the console.
 65
 66		  The keywords **full**, **macros** and **prefix** have the
 67		  same role as when probing the kernel.
 
 
 
 68
 69	**bpftool feature help**
 70		  Print short help message.
 71
 72OPTIONS
 73=======
 74	-h, --help
 75		  Print short generic help message (similar to **bpftool help**).
 76
 77	-V, --version
 78		  Print version number (similar to **bpftool version**).
 79
 80	-j, --json
 81		  Generate JSON output. For commands that cannot produce JSON, this
 82		  option has no effect.
 83
 84	-p, --pretty
 85		  Generate human-readable JSON output. Implies **-j**.
 86
 87	-d, --debug
 88		  Print all logs available from libbpf, including debug-level
 89		  information.
 90
 91SEE ALSO
 92========
 93	**bpf**\ (2),
 94	**bpf-helpers**\ (7),
 95	**bpftool**\ (8),
 96	**bpftool-btf**\ (8),
 97	**bpftool-cgroup**\ (8),
 98	**bpftool-gen**\ (8),
 99	**bpftool-iter**\ (8),
100	**bpftool-link**\ (8),
101	**bpftool-map**\ (8),
102	**bpftool-net**\ (8),
103	**bpftool-perf**\ (8),
104	**bpftool-prog**\ (8),
105	**bpftool-struct_ops**\ (8)