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