| .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| |
| =============== |
| bpftool-feature |
| =============== |
| ------------------------------------------------------------------------------- |
| tool for inspection of eBPF-related parameters for Linux kernel or net device |
| ------------------------------------------------------------------------------- |
| |
| :Manual section: 8 |
| |
| .. include:: substitutions.rst |
| |
| SYNOPSIS |
| ======== |
| |
| **bpftool** [*OPTIONS*] **feature** *COMMAND* |
| |
| *OPTIONS* := { |COMMON_OPTIONS| } |
| |
| *COMMANDS* := { **probe** | **help** } |
| |
| FEATURE COMMANDS |
| ================ |
| |
| | **bpftool** **feature probe** [*COMPONENT*] [**full**] [**unprivileged**] [**macros** [**prefix** *PREFIX*]] |
| | **bpftool** **feature list_builtins** *GROUP* |
| | **bpftool** **feature help** |
| | |
| | *COMPONENT* := { **kernel** | **dev** *NAME* } |
| | *GROUP* := { **prog_types** | **map_types** | **attach_types** | **link_types** | **helpers** } |
| |
| DESCRIPTION |
| =========== |
| **bpftool feature probe** [**kernel**] [**full**] [**macros** [**prefix** *PREFIX*]] |
| Probe the running kernel and dump a number of eBPF-related |
| parameters, such as availability of the **bpf**\ () system call, |
| JIT status, eBPF program types availability, eBPF helper |
| functions availability, and more. |
| |
| By default, bpftool **does not run probes** for |
| **bpf_probe_write_user**\ () and **bpf_trace_printk**\() |
| helpers which print warnings to kernel logs. To enable them |
| and run all probes, the **full** keyword should be used. |
| |
| If the **macros** keyword (but not the **-j** option) is |
| passed, a subset of the output is dumped as a list of |
| **#define** macros that are ready to be included in a C |
| header file, for example. If, additionally, **prefix** is |
| used to define a *PREFIX*, the provided string will be used |
| as a prefix to the names of the macros: this can be used to |
| avoid conflicts on macro names when including the output of |
| this command as a header file. |
| |
| Keyword **kernel** can be omitted. If no probe target is |
| specified, probing the kernel is the default behaviour. |
| |
| When the **unprivileged** keyword is used, bpftool will dump |
| only the features available to a user who does not have the |
| **CAP_SYS_ADMIN** capability set. The features available in |
| that case usually represent a small subset of the parameters |
| supported by the system. Unprivileged users MUST use the |
| **unprivileged** keyword: This is to avoid misdetection if |
| bpftool is inadvertently run as non-root, for example. This |
| keyword is unavailable if bpftool was compiled without |
| libcap. |
| |
| **bpftool feature probe dev** *NAME* [**full**] [**macros** [**prefix** *PREFIX*]] |
| Probe network device for supported eBPF features and dump |
| results to the console. |
| |
| The keywords **full**, **macros** and **prefix** have the |
| same role as when probing the kernel. |
| |
| **bpftool feature list_builtins** *GROUP* |
| List items known to bpftool. These can be BPF program types |
| (**prog_types**), BPF map types (**map_types**), attach types |
| (**attach_types**), link types (**link_types**), or BPF helper |
| functions (**helpers**). The command does not probe the system, but |
| simply lists the elements that bpftool knows from compilation time, |
| as provided from libbpf (for all object types) or from the BPF UAPI |
| header (list of helpers). This can be used in scripts to iterate over |
| BPF types or helpers. |
| |
| **bpftool feature help** |
| Print short help message. |
| |
| OPTIONS |
| ======= |
| .. include:: common_options.rst |