Back to Wsl2 Linux Kernel

bpftool-feature

tools/bpf/bpftool/Documentation/bpftool-feature.rst

5.5.33.5 KB
Original Source

.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

=============== bpftool-feature


: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