.\" Man page generated from reStructuredText.
.
.TH BPFTOOL-STRUCT_OPS 8 "" "" ""
.SH NAME
bpftool-struct_ops \- tool to register/unregister/introspect BPF struct_ops
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH SYNOPSIS
.sp
\fBbpftool\fP [\fIOPTIONS\fP] \fBstruct_ops\fP \fICOMMAND\fP
.sp
\fIOPTIONS\fP := { { \fB\-j\fP | \fB\-\-json\fP } [{ \fB\-p\fP | \fB\-\-pretty\fP }] | { \fB\-d\fP | \fB\-\-debug\fP } }
.sp
\fICOMMANDS\fP :=
{ \fBshow\fP | \fBlist\fP | \fBdump\fP | \fBregister\fP | \fBunregister\fP | \fBhelp\fP }
.SH STRUCT_OPS COMMANDS
.nf
\fBbpftool\fP \fBstruct_ops { show | list }\fP [\fISTRUCT_OPS_MAP\fP]
\fBbpftool\fP \fBstruct_ops dump\fP [\fISTRUCT_OPS_MAP\fP]
\fBbpftool\fP \fBstruct_ops register\fP \fIOBJ\fP [\fILINK_DIR\fP]
\fBbpftool\fP \fBstruct_ops unregister\fP \fISTRUCT_OPS_MAP\fP
\fBbpftool\fP \fBstruct_ops help\fP

\fISTRUCT_OPS_MAP\fP := { \fBid\fP \fISTRUCT_OPS_MAP_ID\fP | \fBname\fP \fISTRUCT_OPS_MAP_NAME\fP }
\fIOBJ\fP := /a/file/of/bpf_struct_ops.o
.fi
.sp
.SH DESCRIPTION
.INDENT 0.0
.TP
.B bpftool struct_ops { show | list } [\fISTRUCT_OPS_MAP\fP]
Show brief information about the struct_ops in the system. If
\fISTRUCT_OPS_MAP\fP is specified, it shows information only for the given
struct_ops.  Otherwise, it lists all struct_ops currently existing in the
system.
.sp
Output will start with struct_ops map ID, followed by its map name and its
struct_ops\(aqs kernel type.
.TP
.B bpftool struct_ops dump [\fISTRUCT_OPS_MAP\fP]
Dump details information about the struct_ops in the system. If
\fISTRUCT_OPS_MAP\fP is specified, it dumps information only for the given
struct_ops.  Otherwise, it dumps all struct_ops currently existing in the
system.
.TP
.B bpftool struct_ops register \fIOBJ\fP [\fILINK_DIR\fP]
Register bpf struct_ops from \fIOBJ\fP\&.  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 \fILINK_DIR\fP to provide a directory path where
these links will be pinned with the same name as their corresponding map
name.
.TP
.B bpftool struct_ops unregister  \fISTRUCT_OPS_MAP\fP
Unregister the \fISTRUCT_OPS_MAP\fP from the kernel subsystem.
.TP
.B bpftool struct_ops help
Print short help message.
.UNINDENT
.SH OPTIONS
.INDENT 0.0
.TP
.B \-h\fP,\fB  \-\-help
Print short help message (similar to \fBbpftool help\fP).
.TP
.B \-V\fP,\fB  \-\-version
Print bpftool\(aqs version number (similar to \fBbpftool version\fP), the number
of the libbpf version in use, and optional features that were included when
bpftool was compiled. Optional features include linking against LLVM or
libbfd to provide the disassembler for JIT\-ted programs (\fBbpftool prog
dump jited\fP) and usage of BPF skeletons (some features like \fBbpftool prog
profile\fP or showing pids associated to BPF objects may rely on it).
.TP
.B \-j\fP,\fB  \-\-json
Generate JSON output. For commands that cannot produce JSON, this option
has no effect.
.TP
.B \-p\fP,\fB  \-\-pretty
Generate human\-readable JSON output. Implies \fB\-j\fP\&.
.TP
.B \-d\fP,\fB  \-\-debug
Print all logs available, even debug\-level information. This includes logs
from libbpf as well as from the verifier, when attempting to load programs.
.UNINDENT
.SH EXAMPLES
.sp
\fB# bpftool struct_ops show\fP
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
100: dctcp           tcp_congestion_ops
105: cubic           tcp_congestion_ops
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\fB# bpftool struct_ops unregister id 105\fP
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
Unregistered tcp_congestion_ops cubic id 105
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\fB# bpftool struct_ops register bpf_cubic.o\fP
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
Registered tcp_congestion_ops cubic id 110
.ft P
.fi
.UNINDENT
.UNINDENT
.SH SEE ALSO
.sp
\fBbpf\fP(2),
\fBbpf\-helpers\fP(7),
\fBbpftool\fP(8),
\fBbpftool\-btf\fP(8),
\fBbpftool\-cgroup\fP(8),
\fBbpftool\-feature\fP(8),
\fBbpftool\-gen\fP(8),
\fBbpftool\-iter\fP(8),
\fBbpftool\-link\fP(8),
\fBbpftool\-map\fP(8),
\fBbpftool\-net\fP(8),
\fBbpftool\-perf\fP(8),
\fBbpftool\-prog\fP(8)
.\" Generated by docutils manpage writer.
.
