| .. 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 |