18c2ecf20Sopenharmony_ci==================
28c2ecf20Sopenharmony_cibpftool-struct_ops
38c2ecf20Sopenharmony_ci==================
48c2ecf20Sopenharmony_ci-------------------------------------------------------------------------------
58c2ecf20Sopenharmony_citool to register/unregister/introspect BPF struct_ops
68c2ecf20Sopenharmony_ci-------------------------------------------------------------------------------
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci:Manual section: 8
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciSYNOPSIS
118c2ecf20Sopenharmony_ci========
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	**bpftool** [*OPTIONS*] **struct_ops** *COMMAND*
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] }
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	*COMMANDS* :=
188c2ecf20Sopenharmony_ci	{ **show** | **list** | **dump** | **register** | **unregister** | **help** }
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciSTRUCT_OPS COMMANDS
218c2ecf20Sopenharmony_ci===================
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci|	**bpftool** **struct_ops { show | list }** [*STRUCT_OPS_MAP*]
248c2ecf20Sopenharmony_ci|	**bpftool** **struct_ops dump** [*STRUCT_OPS_MAP*]
258c2ecf20Sopenharmony_ci|	**bpftool** **struct_ops register** *OBJ*
268c2ecf20Sopenharmony_ci|	**bpftool** **struct_ops unregister** *STRUCT_OPS_MAP*
278c2ecf20Sopenharmony_ci|	**bpftool** **struct_ops help**
288c2ecf20Sopenharmony_ci|
298c2ecf20Sopenharmony_ci|	*STRUCT_OPS_MAP* := { **id** *STRUCT_OPS_MAP_ID* | **name** *STRUCT_OPS_MAP_NAME* }
308c2ecf20Sopenharmony_ci|	*OBJ* := /a/file/of/bpf_struct_ops.o
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciDESCRIPTION
348c2ecf20Sopenharmony_ci===========
358c2ecf20Sopenharmony_ci	**bpftool struct_ops { show | list }** [*STRUCT_OPS_MAP*]
368c2ecf20Sopenharmony_ci		  Show brief information about the struct_ops in the system.
378c2ecf20Sopenharmony_ci		  If *STRUCT_OPS_MAP* is specified, it shows information only
388c2ecf20Sopenharmony_ci		  for the given struct_ops.  Otherwise, it lists all struct_ops
398c2ecf20Sopenharmony_ci		  currently existing in the system.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci		  Output will start with struct_ops map ID, followed by its map
428c2ecf20Sopenharmony_ci		  name and its struct_ops's kernel type.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	**bpftool struct_ops dump** [*STRUCT_OPS_MAP*]
458c2ecf20Sopenharmony_ci		  Dump details information about the struct_ops in the system.
468c2ecf20Sopenharmony_ci		  If *STRUCT_OPS_MAP* is specified, it dumps information only
478c2ecf20Sopenharmony_ci		  for the given struct_ops.  Otherwise, it dumps all struct_ops
488c2ecf20Sopenharmony_ci		  currently existing in the system.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	**bpftool struct_ops register** *OBJ*
518c2ecf20Sopenharmony_ci		  Register bpf struct_ops from *OBJ*.  All struct_ops under
528c2ecf20Sopenharmony_ci		  the ELF section ".struct_ops" will be registered to
538c2ecf20Sopenharmony_ci		  its kernel subsystem.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	**bpftool struct_ops unregister**  *STRUCT_OPS_MAP*
568c2ecf20Sopenharmony_ci		  Unregister the *STRUCT_OPS_MAP* from the kernel subsystem.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	**bpftool struct_ops help**
598c2ecf20Sopenharmony_ci		  Print short help message.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciOPTIONS
628c2ecf20Sopenharmony_ci=======
638c2ecf20Sopenharmony_ci	.. include:: common_options.rst
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciEXAMPLES
668c2ecf20Sopenharmony_ci========
678c2ecf20Sopenharmony_ci**# bpftool struct_ops show**
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci::
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci    100: dctcp           tcp_congestion_ops
728c2ecf20Sopenharmony_ci    105: cubic           tcp_congestion_ops
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci**# bpftool struct_ops unregister id 105**
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci::
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci   Unregistered tcp_congestion_ops cubic id 105
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci**# bpftool struct_ops register bpf_cubic.o**
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci::
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci   Registered tcp_congestion_ops cubic id 110
85