.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

==================
bpftool-struct_ops
==================
-------------------------------------------------------------------------------
tool to register/unregister/introspect BPF struct_ops
-------------------------------------------------------------------------------

:Manual section: 8

.. include:: substitutions.rst

SYNOPSIS
========

	**bpftool** [*OPTIONS*] **struct_ops** *COMMAND*

	*OPTIONS* := { |COMMON_OPTIONS| }

	*COMMANDS* :=
	{ **show** | **list** | **dump** | **register** | **unregister** | **help** }

STRUCT_OPS COMMANDS
===================

|	**bpftool** **struct_ops { show | list }** [*STRUCT_OPS_MAP*]
|	**bpftool** **struct_ops dump** [*STRUCT_OPS_MAP*]
|	**bpftool** **struct_ops register** *OBJ* [*LINK_DIR*]
|	**bpftool** **struct_ops unregister** *STRUCT_OPS_MAP*
|	**bpftool** **struct_ops help**
|
|	*STRUCT_OPS_MAP* := { **id** *STRUCT_OPS_MAP_ID* | **name** *STRUCT_OPS_MAP_NAME* }
|	*OBJ* := /a/file/of/bpf_struct_ops.o


DESCRIPTION
===========
	**bpftool struct_ops { show | list }** [*STRUCT_OPS_MAP*]
		  Show brief information about the struct_ops in the system.
		  If *STRUCT_OPS_MAP* is specified, it shows information only
		  for the given struct_ops.  Otherwise, it lists all struct_ops
		  currently existing in the system.

		  Output will start with struct_ops map ID, followed by its map
		  name and its struct_ops's kernel type.

	**bpftool struct_ops dump** [*STRUCT_OPS_MAP*]
		  Dump details information about the struct_ops in the system.
		  If *STRUCT_OPS_MAP* is specified, it dumps information only
		  for the given struct_ops.  Otherwise, it dumps all struct_ops
		  currently existing in the system.

	**bpftool struct_ops register** *OBJ* [*LINK_DIR*]
		  Register bpf struct_ops from *OBJ*.  All struct_ops under
		  the ELF section ".struct_ops" and ".struct_ops.link" will
		  be registered to its kernel subsystem.  For each
		  struct_ops in the ".struct_ops.link" section, a link
		  will be created.  You can give *LINK_DIR* to provide a
		  directory path where these links will be pinned with the
		  same name as their corresponding map name.

	**bpftool struct_ops unregister**  *STRUCT_OPS_MAP*
		  Unregister the *STRUCT_OPS_MAP* from the kernel subsystem.

	**bpftool struct_ops help**
		  Print short help message.

OPTIONS
=======
	.. include:: common_options.rst

EXAMPLES
========
**# bpftool struct_ops show**

::

    100: dctcp           tcp_congestion_ops
    105: cubic           tcp_congestion_ops

**# bpftool struct_ops unregister id 105**

::

   Unregistered tcp_congestion_ops cubic id 105

**# bpftool struct_ops register bpf_cubic.o**

::

   Registered tcp_congestion_ops cubic id 110
