mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
The "struct_ops register" subcommand now allows for an optional *LINK_DIR* to be included. This specifies the directory path where bpftool will pin struct_ops links with the same name as their corresponding map names. Signed-off-by: Kui-Feng Lee <kuifeng@meta.com> Reviewed-by: Quentin Monnet <quentin@isovalent.com> Link: https://lore.kernel.org/r/20230420002822.345222-2-kuifeng@meta.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
92 lines
2.7 KiB
ReStructuredText
92 lines
2.7 KiB
ReStructuredText
.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
|
|
==================
|
|
bpftool-struct_ops
|
|
==================
|
|
-------------------------------------------------------------------------------
|
|
tool to register/unregister/introspect BPF struct_ops
|
|
-------------------------------------------------------------------------------
|
|
|
|
:Manual section: 8
|
|
|
|
.. include:: substitutions.rst
|
|
|
|
SYNOPSIS
|
|
========
|
|
|
|
**bpftool** [*OPTIONS*] **struct_ops** *COMMAND*
|
|
|
|
*OPTIONS* := { |COMMON_OPTIONS| }
|
|
|
|
*COMMANDS* :=
|
|
{ **show** | **list** | **dump** | **register** | **unregister** | **help** }
|
|
|
|
STRUCT_OPS COMMANDS
|
|
===================
|
|
|
|
| **bpftool** **struct_ops { show | list }** [*STRUCT_OPS_MAP*]
|
|
| **bpftool** **struct_ops dump** [*STRUCT_OPS_MAP*]
|
|
| **bpftool** **struct_ops register** *OBJ* [*LINK_DIR*]
|
|
| **bpftool** **struct_ops unregister** *STRUCT_OPS_MAP*
|
|
| **bpftool** **struct_ops help**
|
|
|
|
|
| *STRUCT_OPS_MAP* := { **id** *STRUCT_OPS_MAP_ID* | **name** *STRUCT_OPS_MAP_NAME* }
|
|
| *OBJ* := /a/file/of/bpf_struct_ops.o
|
|
|
|
|
|
DESCRIPTION
|
|
===========
|
|
**bpftool struct_ops { show | list }** [*STRUCT_OPS_MAP*]
|
|
Show brief information about the struct_ops in the system.
|
|
If *STRUCT_OPS_MAP* is specified, it shows information only
|
|
for the given struct_ops. Otherwise, it lists all struct_ops
|
|
currently existing in the system.
|
|
|
|
Output will start with struct_ops map ID, followed by its map
|
|
name and its struct_ops's kernel type.
|
|
|
|
**bpftool struct_ops dump** [*STRUCT_OPS_MAP*]
|
|
Dump details information about the struct_ops in the system.
|
|
If *STRUCT_OPS_MAP* is specified, it dumps information only
|
|
for the given struct_ops. Otherwise, it dumps all struct_ops
|
|
currently existing in the system.
|
|
|
|
**bpftool struct_ops register** *OBJ* [*LINK_DIR*]
|
|
Register bpf struct_ops from *OBJ*. All struct_ops under
|
|
the ELF section ".struct_ops" and ".struct_ops.link" will
|
|
be registered to its kernel subsystem. For each
|
|
struct_ops in the ".struct_ops.link" section, a link
|
|
will be created. You can give *LINK_DIR* to provide a
|
|
directory path where these links will be pinned with the
|
|
same name as their corresponding map name.
|
|
|
|
**bpftool struct_ops unregister** *STRUCT_OPS_MAP*
|
|
Unregister the *STRUCT_OPS_MAP* from the kernel subsystem.
|
|
|
|
**bpftool struct_ops help**
|
|
Print short help message.
|
|
|
|
OPTIONS
|
|
=======
|
|
.. include:: common_options.rst
|
|
|
|
EXAMPLES
|
|
========
|
|
**# bpftool struct_ops show**
|
|
|
|
::
|
|
|
|
100: dctcp tcp_congestion_ops
|
|
105: cubic tcp_congestion_ops
|
|
|
|
**# bpftool struct_ops unregister id 105**
|
|
|
|
::
|
|
|
|
Unregistered tcp_congestion_ops cubic id 105
|
|
|
|
**# bpftool struct_ops register bpf_cubic.o**
|
|
|
|
::
|
|
|
|
Registered tcp_congestion_ops cubic id 110
|