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======= 6365c93628SMartin KaFai Lau -h, --help 6465c93628SMartin KaFai Lau Print short generic help message (similar to **bpftool help**). 6565c93628SMartin KaFai Lau 6665c93628SMartin KaFai Lau -V, --version 6765c93628SMartin KaFai Lau Print version number (similar to **bpftool version**). 6865c93628SMartin KaFai Lau 6965c93628SMartin KaFai Lau -j, --json 7065c93628SMartin KaFai Lau Generate JSON output. For commands that cannot produce JSON, this 7165c93628SMartin KaFai Lau option has no effect. 7265c93628SMartin KaFai Lau 7365c93628SMartin KaFai Lau -p, --pretty 7465c93628SMartin KaFai Lau Generate human-readable JSON output. Implies **-j**. 7565c93628SMartin KaFai Lau 7665c93628SMartin KaFai Lau -d, --debug 7765c93628SMartin KaFai Lau Print all logs available, even debug-level information. This 7865c93628SMartin KaFai Lau includes logs from libbpf as well as from the verifier, when 7965c93628SMartin KaFai Lau attempting to load programs. 8065c93628SMartin KaFai Lau 8165c93628SMartin KaFai LauEXAMPLES 8265c93628SMartin KaFai Lau======== 8365c93628SMartin KaFai Lau**# bpftool struct_ops show** 8465c93628SMartin KaFai Lau 8565c93628SMartin KaFai Lau:: 8665c93628SMartin KaFai Lau 8765c93628SMartin KaFai Lau 100: dctcp tcp_congestion_ops 8865c93628SMartin KaFai Lau 105: cubic tcp_congestion_ops 8965c93628SMartin KaFai Lau 9065c93628SMartin KaFai Lau**# bpftool struct_ops unregister id 105** 9165c93628SMartin KaFai Lau 9265c93628SMartin KaFai Lau:: 9365c93628SMartin KaFai Lau 9465c93628SMartin KaFai Lau Unregistered tcp_congestion_ops cubic id 105 9565c93628SMartin KaFai Lau 9665c93628SMartin KaFai Lau**# bpftool struct_ops register bpf_cubic.o** 9765c93628SMartin KaFai Lau 9865c93628SMartin KaFai Lau:: 9965c93628SMartin KaFai Lau 10065c93628SMartin KaFai Lau Registered tcp_congestion_ops cubic id 110 10165c93628SMartin KaFai Lau 10265c93628SMartin KaFai Lau 10365c93628SMartin KaFai LauSEE ALSO 10465c93628SMartin KaFai Lau======== 10565c93628SMartin KaFai Lau **bpf**\ (2), 10665c93628SMartin KaFai Lau **bpf-helpers**\ (7), 10765c93628SMartin KaFai Lau **bpftool**\ (8), 108*c8caa0bbSQuentin Monnet **bpftool-btf**\ (8), 10965c93628SMartin KaFai Lau **bpftool-cgroup**\ (8), 11065c93628SMartin KaFai Lau **bpftool-feature**\ (8), 111*c8caa0bbSQuentin Monnet **bpftool-gen**\ (8), 112*c8caa0bbSQuentin Monnet **bpftool-iter**\ (8), 113*c8caa0bbSQuentin Monnet **bpftool-link**\ (8), 114*c8caa0bbSQuentin Monnet **bpftool-map**\ (8), 11565c93628SMartin KaFai Lau **bpftool-net**\ (8), 11665c93628SMartin KaFai Lau **bpftool-perf**\ (8), 117*c8caa0bbSQuentin Monnet **bpftool-prog**\ (8) 118