91 lines
3.5 KiB
ReStructuredText
91 lines
3.5 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
|