165c93628SMartin KaFai Lau================== 265c93628SMartin KaFai Laubpftool-struct_ops 365c93628SMartin KaFai Lau================== 465c93628SMartin KaFai Lau------------------------------------------------------------------------------- 565c93628SMartin KaFai Lautool to register/unregister/introspect BPF struct_ops 665c93628SMartin KaFai Lau------------------------------------------------------------------------------- 765c93628SMartin KaFai Lau 865c93628SMartin KaFai Lau:Manual section: 8 965c93628SMartin KaFai Lau 1065c93628SMartin KaFai LauSYNOPSIS 1165c93628SMartin KaFai Lau======== 1265c93628SMartin KaFai Lau 1365c93628SMartin KaFai Lau **bpftool** [*OPTIONS*] **struct_ops** *COMMAND* 1465c93628SMartin KaFai Lau 1565c93628SMartin KaFai Lau *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] } 1665c93628SMartin KaFai Lau 1765c93628SMartin KaFai Lau *COMMANDS* := 1865c93628SMartin KaFai Lau { **show** | **list** | **dump** | **register** | **unregister** | **help** } 1965c93628SMartin KaFai Lau 2065c93628SMartin KaFai LauSTRUCT_OPS COMMANDS 2165c93628SMartin KaFai Lau=================== 2265c93628SMartin KaFai Lau 2365c93628SMartin KaFai Lau| **bpftool** **struct_ops { show | list }** [*STRUCT_OPS_MAP*] 2465c93628SMartin KaFai Lau| **bpftool** **struct_ops dump** [*STRUCT_OPS_MAP*] 2565c93628SMartin KaFai Lau| **bpftool** **struct_ops register** *OBJ* 2665c93628SMartin KaFai Lau| **bpftool** **struct_ops unregister** *STRUCT_OPS_MAP* 2765c93628SMartin KaFai Lau| **bpftool** **struct_ops help** 2865c93628SMartin KaFai Lau| 2965c93628SMartin KaFai Lau| *STRUCT_OPS_MAP* := { **id** *STRUCT_OPS_MAP_ID* | **name** *STRUCT_OPS_MAP_NAME* } 3065c93628SMartin KaFai Lau| *OBJ* := /a/file/of/bpf_struct_ops.o 3165c93628SMartin KaFai Lau 3265c93628SMartin KaFai Lau 3365c93628SMartin KaFai LauDESCRIPTION 3465c93628SMartin KaFai Lau=========== 3565c93628SMartin KaFai Lau **bpftool struct_ops { show | list }** [*STRUCT_OPS_MAP*] 3665c93628SMartin KaFai Lau Show brief information about the struct_ops in the system. 3765c93628SMartin KaFai Lau If *STRUCT_OPS_MAP* is specified, it shows information only 3865c93628SMartin KaFai Lau for the given struct_ops. Otherwise, it lists all struct_ops 3965c93628SMartin KaFai Lau currently existing in the system. 4065c93628SMartin KaFai Lau 4165c93628SMartin KaFai Lau Output will start with struct_ops map ID, followed by its map 4265c93628SMartin KaFai Lau name and its struct_ops's kernel type. 4365c93628SMartin KaFai Lau 4465c93628SMartin KaFai Lau **bpftool struct_ops dump** [*STRUCT_OPS_MAP*] 4565c93628SMartin KaFai Lau Dump details information about the struct_ops in the system. 4665c93628SMartin KaFai Lau If *STRUCT_OPS_MAP* is specified, it dumps information only 4765c93628SMartin KaFai Lau for the given struct_ops. Otherwise, it dumps all struct_ops 4865c93628SMartin KaFai Lau currently existing in the system. 4965c93628SMartin KaFai Lau 5065c93628SMartin KaFai Lau **bpftool struct_ops register** *OBJ* 5165c93628SMartin KaFai Lau Register bpf struct_ops from *OBJ*. All struct_ops under 5265c93628SMartin KaFai Lau the ELF section ".struct_ops" will be registered to 5365c93628SMartin KaFai Lau its kernel subsystem. 5465c93628SMartin KaFai Lau 5565c93628SMartin KaFai Lau **bpftool struct_ops unregister** *STRUCT_OPS_MAP* 5665c93628SMartin KaFai Lau Unregister the *STRUCT_OPS_MAP* from the kernel subsystem. 5765c93628SMartin KaFai Lau 5865c93628SMartin KaFai Lau **bpftool struct_ops help** 5965c93628SMartin KaFai Lau Print short help message. 6065c93628SMartin KaFai Lau 6165c93628SMartin KaFai LauOPTIONS 6265c93628SMartin KaFai Lau======= 63*f28ef96dSQuentin Monnet .. include:: common_options.rst 6465c93628SMartin KaFai Lau 6565c93628SMartin KaFai LauEXAMPLES 6665c93628SMartin KaFai Lau======== 6765c93628SMartin KaFai Lau**# bpftool struct_ops show** 6865c93628SMartin KaFai Lau 6965c93628SMartin KaFai Lau:: 7065c93628SMartin KaFai Lau 7165c93628SMartin KaFai Lau 100: dctcp tcp_congestion_ops 7265c93628SMartin KaFai Lau 105: cubic tcp_congestion_ops 7365c93628SMartin KaFai Lau 7465c93628SMartin KaFai Lau**# bpftool struct_ops unregister id 105** 7565c93628SMartin KaFai Lau 7665c93628SMartin KaFai Lau:: 7765c93628SMartin KaFai Lau 7865c93628SMartin KaFai Lau Unregistered tcp_congestion_ops cubic id 105 7965c93628SMartin KaFai Lau 8065c93628SMartin KaFai Lau**# bpftool struct_ops register bpf_cubic.o** 8165c93628SMartin KaFai Lau 8265c93628SMartin KaFai Lau:: 8365c93628SMartin KaFai Lau 8465c93628SMartin KaFai Lau Registered tcp_congestion_ops cubic id 110 8565c93628SMartin KaFai Lau 8665c93628SMartin KaFai Lau 8765c93628SMartin KaFai LauSEE ALSO 8865c93628SMartin KaFai Lau======== 8965c93628SMartin KaFai Lau **bpf**\ (2), 9065c93628SMartin KaFai Lau **bpf-helpers**\ (7), 9165c93628SMartin KaFai Lau **bpftool**\ (8), 92c8caa0bbSQuentin Monnet **bpftool-btf**\ (8), 9365c93628SMartin KaFai Lau **bpftool-cgroup**\ (8), 9465c93628SMartin KaFai Lau **bpftool-feature**\ (8), 95c8caa0bbSQuentin Monnet **bpftool-gen**\ (8), 96c8caa0bbSQuentin Monnet **bpftool-iter**\ (8), 97c8caa0bbSQuentin Monnet **bpftool-link**\ (8), 98c8caa0bbSQuentin Monnet **bpftool-map**\ (8), 9965c93628SMartin KaFai Lau **bpftool-net**\ (8), 10065c93628SMartin KaFai Lau **bpftool-perf**\ (8), 101c8caa0bbSQuentin Monnet **bpftool-prog**\ (8) 102