xref: /openbmc/linux/tools/bpf/bpftool/Documentation/bpftool-struct_ops.rst (revision c8caa0bb4b383a86a77f4c8727a4f7c7f9825260)
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