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