mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-10 07:44:23 +08:00
990a6194f7
To make it more explicit that the features listed with "bpftool feature list" are known to bpftool, but not necessary available on the system (as opposed to the probed features), rename the "feature list" command into "feature list_builtins". Note that "bpftool feature list" still works as before given that we recognise arguments from their prefixes; but the real name of the subcommand, in particular as displayed in the man page or the interactive help, will now include "_builtins". Since we update the bash completion accordingly, let's also take this chance to redirect error output to /dev/null in the completion script, to avoid displaying unexpected error messages when users attempt to tab-complete. Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Quentin Monnet <quentin@isovalent.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/bpf/20220701093805.16920-1-quentin@isovalent.com
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
|