17464d013SAndrii Nakryiko================
27464d013SAndrii Nakryikobpftool-link
37464d013SAndrii Nakryiko================
47464d013SAndrii Nakryiko-------------------------------------------------------------------------------
57464d013SAndrii Nakryikotool for inspection and simple manipulation of eBPF links
67464d013SAndrii Nakryiko-------------------------------------------------------------------------------
77464d013SAndrii Nakryiko
87464d013SAndrii Nakryiko:Manual section: 8
97464d013SAndrii Nakryiko
107464d013SAndrii NakryikoSYNOPSIS
117464d013SAndrii Nakryiko========
127464d013SAndrii Nakryiko
137464d013SAndrii Nakryiko	**bpftool** [*OPTIONS*] **link** *COMMAND*
147464d013SAndrii Nakryiko
157464d013SAndrii Nakryiko	*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } }
167464d013SAndrii Nakryiko
177464d013SAndrii Nakryiko	*COMMANDS* := { **show** | **list** | **pin** | **help** }
187464d013SAndrii Nakryiko
197464d013SAndrii NakryikoLINK COMMANDS
207464d013SAndrii Nakryiko=============
217464d013SAndrii Nakryiko
227464d013SAndrii Nakryiko|	**bpftool** **link { show | list }** [*LINK*]
237464d013SAndrii Nakryiko|	**bpftool** **link pin** *LINK* *FILE*
24*e85f99aaSAndrii Nakryiko|	**bpftool** **link detach *LINK*
257464d013SAndrii Nakryiko|	**bpftool** **link help**
267464d013SAndrii Nakryiko|
277464d013SAndrii Nakryiko|	*LINK* := { **id** *LINK_ID* | **pinned** *FILE* }
287464d013SAndrii Nakryiko
297464d013SAndrii Nakryiko
307464d013SAndrii NakryikoDESCRIPTION
317464d013SAndrii Nakryiko===========
327464d013SAndrii Nakryiko	**bpftool link { show | list }** [*LINK*]
337464d013SAndrii Nakryiko		  Show information about active links. If *LINK* is
347464d013SAndrii Nakryiko		  specified show information only about given link,
357464d013SAndrii Nakryiko		  otherwise list all links currently active on the system.
367464d013SAndrii Nakryiko
377464d013SAndrii Nakryiko		  Output will start with link ID followed by link type and
387464d013SAndrii Nakryiko		  zero or more named attributes, some of which depend on type
397464d013SAndrii Nakryiko		  of link.
407464d013SAndrii Nakryiko
41075c7766SAndrii Nakryiko		  Since Linux 5.8 bpftool is able to discover information about
42075c7766SAndrii Nakryiko		  processes that hold open file descriptors (FDs) against BPF
43075c7766SAndrii Nakryiko		  links. On such kernels bpftool will automatically emit this
44075c7766SAndrii Nakryiko		  information as well.
45075c7766SAndrii Nakryiko
467464d013SAndrii Nakryiko	**bpftool link pin** *LINK* *FILE*
477464d013SAndrii Nakryiko		  Pin link *LINK* as *FILE*.
487464d013SAndrii Nakryiko
497464d013SAndrii Nakryiko		  Note: *FILE* must be located in *bpffs* mount. It must not
507464d013SAndrii Nakryiko		  contain a dot character ('.'), which is reserved for future
517464d013SAndrii Nakryiko		  extensions of *bpffs*.
527464d013SAndrii Nakryiko
53*e85f99aaSAndrii Nakryiko	**bpftool link detach** *LINK*
54*e85f99aaSAndrii Nakryiko		  Force-detach link *LINK*. BPF link and its underlying BPF
55*e85f99aaSAndrii Nakryiko		  program will stay valid, but they will be detached from the
56*e85f99aaSAndrii Nakryiko		  respective BPF hook and BPF link will transition into
57*e85f99aaSAndrii Nakryiko		  a defunct state until last open file descriptor for that
58*e85f99aaSAndrii Nakryiko		  link is closed.
59*e85f99aaSAndrii Nakryiko
607464d013SAndrii Nakryiko	**bpftool link help**
617464d013SAndrii Nakryiko		  Print short help message.
627464d013SAndrii Nakryiko
637464d013SAndrii NakryikoOPTIONS
647464d013SAndrii Nakryiko=======
657464d013SAndrii Nakryiko	-h, --help
667464d013SAndrii Nakryiko		  Print short generic help message (similar to **bpftool help**).
677464d013SAndrii Nakryiko
687464d013SAndrii Nakryiko	-V, --version
697464d013SAndrii Nakryiko		  Print version number (similar to **bpftool version**).
707464d013SAndrii Nakryiko
717464d013SAndrii Nakryiko	-j, --json
727464d013SAndrii Nakryiko		  Generate JSON output. For commands that cannot produce JSON, this
737464d013SAndrii Nakryiko		  option has no effect.
747464d013SAndrii Nakryiko
757464d013SAndrii Nakryiko	-p, --pretty
767464d013SAndrii Nakryiko		  Generate human-readable JSON output. Implies **-j**.
777464d013SAndrii Nakryiko
787464d013SAndrii Nakryiko	-f, --bpffs
797464d013SAndrii Nakryiko		  When showing BPF links, show file names of pinned
807464d013SAndrii Nakryiko		  links.
817464d013SAndrii Nakryiko
827464d013SAndrii Nakryiko	-n, --nomount
837464d013SAndrii Nakryiko		  Do not automatically attempt to mount any virtual file system
847464d013SAndrii Nakryiko		  (such as tracefs or BPF virtual file system) when necessary.
857464d013SAndrii Nakryiko
867464d013SAndrii Nakryiko	-d, --debug
877464d013SAndrii Nakryiko		  Print all logs available, even debug-level information. This
887464d013SAndrii Nakryiko		  includes logs from libbpf.
897464d013SAndrii Nakryiko
907464d013SAndrii NakryikoEXAMPLES
917464d013SAndrii Nakryiko========
927464d013SAndrii Nakryiko**# bpftool link show**
937464d013SAndrii Nakryiko
947464d013SAndrii Nakryiko::
957464d013SAndrii Nakryiko
967464d013SAndrii Nakryiko    10: cgroup  prog 25
977464d013SAndrii Nakryiko            cgroup_id 614  attach_type egress
98075c7766SAndrii Nakryiko            pids test_progs(223)
997464d013SAndrii Nakryiko
1007464d013SAndrii Nakryiko**# bpftool --json --pretty link show**
1017464d013SAndrii Nakryiko
1027464d013SAndrii Nakryiko::
1037464d013SAndrii Nakryiko
1047464d013SAndrii Nakryiko    [{
1057464d013SAndrii Nakryiko            "type": "cgroup",
1067464d013SAndrii Nakryiko            "prog_id": 25,
1077464d013SAndrii Nakryiko            "cgroup_id": 614,
108075c7766SAndrii Nakryiko            "attach_type": "egress",
109075c7766SAndrii Nakryiko            "pids": [{
110075c7766SAndrii Nakryiko                    "pid": 223,
111075c7766SAndrii Nakryiko                    "comm": "test_progs"
112075c7766SAndrii Nakryiko                }
113075c7766SAndrii Nakryiko            ]
1147464d013SAndrii Nakryiko        }
1157464d013SAndrii Nakryiko    ]
1167464d013SAndrii Nakryiko
1177464d013SAndrii Nakryiko|
1187464d013SAndrii Nakryiko| **# bpftool link pin id 10 /sys/fs/bpf/link**
1197464d013SAndrii Nakryiko| **# ls -l /sys/fs/bpf/**
1207464d013SAndrii Nakryiko
1217464d013SAndrii Nakryiko::
1227464d013SAndrii Nakryiko
1237464d013SAndrii Nakryiko    -rw------- 1 root root 0 Apr 23 21:39 link
1247464d013SAndrii Nakryiko
1257464d013SAndrii Nakryiko
1267464d013SAndrii NakryikoSEE ALSO
1277464d013SAndrii Nakryiko========
1287464d013SAndrii Nakryiko	**bpf**\ (2),
1297464d013SAndrii Nakryiko	**bpf-helpers**\ (7),
1307464d013SAndrii Nakryiko	**bpftool**\ (8),
131c8caa0bbSQuentin Monnet	**bpftool-btf**\ (8),
1327464d013SAndrii Nakryiko	**bpftool-cgroup**\ (8),
1337464d013SAndrii Nakryiko	**bpftool-feature**\ (8),
134c8caa0bbSQuentin Monnet	**bpftool-gen**\ (8),
135c8caa0bbSQuentin Monnet	**bpftool-iter**\ (8),
136c8caa0bbSQuentin Monnet	**bpftool-map**\ (8),
1377464d013SAndrii Nakryiko	**bpftool-net**\ (8),
1387464d013SAndrii Nakryiko	**bpftool-perf**\ (8),
139c8caa0bbSQuentin Monnet	**bpftool-prog**\ (8),
140c8caa0bbSQuentin Monnet	**bpftool-struct_ops**\ (8)
141