84 lines
3.4 KiB
ReStructuredText
84 lines
3.4 KiB
ReStructuredText
|
.. 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
|