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=========== 39 **bpftool struct_ops { show | list }** [*STRUCT_OPS_MAP*] 40 Show brief information about the struct_ops in the system. 41 If *STRUCT_OPS_MAP* is specified, it shows information only 42 for the given struct_ops. Otherwise, it lists all struct_ops 43 currently existing in the system. 44 45 Output will start with struct_ops map ID, followed by its map 46 name and its struct_ops's kernel type. 47 48 **bpftool struct_ops dump** [*STRUCT_OPS_MAP*] 49 Dump details information about the struct_ops in the system. 50 If *STRUCT_OPS_MAP* is specified, it dumps information only 51 for the given struct_ops. Otherwise, it dumps all struct_ops 52 currently existing in the system. 53 54 **bpftool struct_ops register** *OBJ* [*LINK_DIR*] 55 Register bpf struct_ops from *OBJ*. All struct_ops under 56 the ELF section ".struct_ops" and ".struct_ops.link" will 57 be registered to its kernel subsystem. For each 58 struct_ops in the ".struct_ops.link" section, a link 59 will be created. You can give *LINK_DIR* to provide a 60 directory path where these links will be pinned with the 61 same name as their corresponding map name. 62 63 **bpftool struct_ops unregister** *STRUCT_OPS_MAP* 64 Unregister the *STRUCT_OPS_MAP* from the kernel subsystem. 65 66 **bpftool struct_ops help** 67 Print short help message. 68 69OPTIONS 70======= 71 .. include:: common_options.rst 72 73EXAMPLES 74======== 75**# bpftool struct_ops show** 76 77:: 78 79 100: dctcp tcp_congestion_ops 80 105: cubic tcp_congestion_ops 81 82**# bpftool struct_ops unregister id 105** 83 84:: 85 86 Unregistered tcp_congestion_ops cubic id 105 87 88**# bpftool struct_ops register bpf_cubic.o** 89 90:: 91 92 Registered tcp_congestion_ops cubic id 110 93