.\" 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 .INDENT 0.0 .INDENT 3.5 \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 } | { \fB\-l\fP | \fB\-\-legacy\fP } } .sp \fICOMMANDS\fP := { \fBshow\fP | \fBlist\fP | \fBdump\fP | \fBregister\fP | \fBunregister\fP | \fBhelp\fP } .UNINDENT .UNINDENT .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 \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 .INDENT 3.5 .INDENT 0.0 .TP .B \fBbpftool struct_ops { show | list }\fP [\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 \fBbpftool struct_ops dump\fP [\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 \fBbpftool struct_ops register\fP \fIOBJ\fP Register bpf struct_ops from \fIOBJ\fP\&. All struct_ops under the ELF section ".struct_ops" will be registered to its kernel subsystem. .TP .B \fBbpftool struct_ops unregister\fP \fISTRUCT_OPS_MAP\fP Unregister the \fISTRUCT_OPS_MAP\fP from the kernel subsystem. .TP .B \fBbpftool struct_ops help\fP Print short help message. .UNINDENT .UNINDENT .UNINDENT .SH OPTIONS .INDENT 0.0 .INDENT 3.5 .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 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. .TP .B \-l\fP,\fB \-\-legacy Use legacy libbpf mode which has more relaxed BPF program requirements. By default, bpftool has more strict requirements about section names, changes pinning logic and doesn\(aqt support some of the older non\-BTF map declarations. .sp See \fI\%https://github.com/libbpf/libbpf/wiki/Libbpf:\-the\-road\-to\-v1.0\fP for details. .UNINDENT .UNINDENT .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 .INDENT 0.0 .INDENT 3.5 \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) .UNINDENT .UNINDENT .\" Generated by docutils manpage writer. .