xref: /linux/tools/bpf/bpftool/Documentation/bpftool-struct_ops.rst (revision daa121128a2d2ac6006159e2c47676e4fcd21eab)
1.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2
3==================
4bpftool-struct_ops
5==================
6-------------------------------------------------------------------------------
7tool to register/unregister/introspect BPF struct_ops
8-------------------------------------------------------------------------------
9
10:Manual section: 8
11
12.. include:: substitutions.rst
13
14SYNOPSIS
15========
16
17**bpftool** [*OPTIONS*] **struct_ops** *COMMAND*
18
19*OPTIONS* := { |COMMON_OPTIONS| }
20
21*COMMANDS* :=
22{ **show** | **list** | **dump** | **register** | **unregister** | **help** }
23
24STRUCT_OPS COMMANDS
25===================
26
27| **bpftool** **struct_ops { show | list }** [*STRUCT_OPS_MAP*]
28| **bpftool** **struct_ops dump** [*STRUCT_OPS_MAP*]
29| **bpftool** **struct_ops register** *OBJ* [*LINK_DIR*]
30| **bpftool** **struct_ops unregister** *STRUCT_OPS_MAP*
31| **bpftool** **struct_ops help**
32|
33| *STRUCT_OPS_MAP* := { **id** *STRUCT_OPS_MAP_ID* | **name** *STRUCT_OPS_MAP_NAME* }
34| *OBJ* := /a/file/of/bpf_struct_ops.o
35
36
37DESCRIPTION
38===========
39bpftool struct_ops { show | list } [*STRUCT_OPS_MAP*]
40    Show brief information about the struct_ops in the system. If
41    *STRUCT_OPS_MAP* is specified, it shows information only for the given
42    struct_ops.  Otherwise, it lists all struct_ops currently existing in the
43    system.
44
45    Output will start with struct_ops map ID, followed by its map name and its
46    struct_ops's kernel type.
47
48bpftool struct_ops dump [*STRUCT_OPS_MAP*]
49    Dump details information about the struct_ops in the system. If
50    *STRUCT_OPS_MAP* is specified, it dumps information only for the given
51    struct_ops.  Otherwise, it dumps all struct_ops currently existing in the
52    system.
53
54bpftool struct_ops register *OBJ* [*LINK_DIR*]
55    Register bpf struct_ops from *OBJ*.  All struct_ops under the ELF section
56    ".struct_ops" and ".struct_ops.link" will be registered to its kernel
57    subsystem.  For each struct_ops in the ".struct_ops.link" section, a link
58    will be created.  You can give *LINK_DIR* to provide a directory path where
59    these links will be pinned with the same name as their corresponding map
60    name.
61
62bpftool struct_ops unregister  *STRUCT_OPS_MAP*
63    Unregister the *STRUCT_OPS_MAP* from the kernel subsystem.
64
65bpftool struct_ops help
66    Print short help message.
67
68OPTIONS
69=======
70.. include:: common_options.rst
71
72EXAMPLES
73========
74**# bpftool struct_ops show**
75
76::
77
78    100: dctcp           tcp_congestion_ops
79    105: cubic           tcp_congestion_ops
80
81**# bpftool struct_ops unregister id 105**
82
83::
84
85   Unregistered tcp_congestion_ops cubic id 105
86
87**# bpftool struct_ops register bpf_cubic.o**
88
89::
90
91   Registered tcp_congestion_ops cubic id 110
92