143448428SQuentin Monnet.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
243448428SQuentin Monnet
37464d013SAndrii Nakryiko================
47464d013SAndrii Nakryikobpftool-link
57464d013SAndrii Nakryiko================
67464d013SAndrii Nakryiko-------------------------------------------------------------------------------
77464d013SAndrii Nakryikotool for inspection and simple manipulation of eBPF links
87464d013SAndrii Nakryiko-------------------------------------------------------------------------------
97464d013SAndrii Nakryiko
107464d013SAndrii Nakryiko:Manual section: 8
117464d013SAndrii Nakryiko
12b6231815SQuentin Monnet.. include:: substitutions.rst
13b6231815SQuentin Monnet
147464d013SAndrii NakryikoSYNOPSIS
157464d013SAndrii Nakryiko========
167464d013SAndrii Nakryiko
177464d013SAndrii Nakryiko**bpftool** [*OPTIONS*] **link** *COMMAND*
187464d013SAndrii Nakryiko
19b6231815SQuentin Monnet*OPTIONS* := { |COMMON_OPTIONS| | { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
207464d013SAndrii Nakryiko
217464d013SAndrii Nakryiko*COMMANDS* := { **show** | **list** | **pin** | **help** }
227464d013SAndrii Nakryiko
237464d013SAndrii NakryikoLINK COMMANDS
247464d013SAndrii Nakryiko=============
257464d013SAndrii Nakryiko
267464d013SAndrii Nakryiko| **bpftool** **link { show | list }** [*LINK*]
277464d013SAndrii Nakryiko| **bpftool** **link pin** *LINK* *FILE*
281a7581b1SQuentin Monnet| **bpftool** **link detach** *LINK*
297464d013SAndrii Nakryiko| **bpftool** **link help**
307464d013SAndrii Nakryiko|
317464d013SAndrii Nakryiko| *LINK* := { **id** *LINK_ID* | **pinned** *FILE* }
327464d013SAndrii Nakryiko
337464d013SAndrii Nakryiko
347464d013SAndrii NakryikoDESCRIPTION
357464d013SAndrii Nakryiko===========
36*ea379b3cSRameez Rehmanbpftool link { show | list } [*LINK*]
37f7b68543SRameez Rehman    Show information about active links. If *LINK* is specified show
38f7b68543SRameez Rehman    information only about given link, otherwise list all links currently
39f7b68543SRameez Rehman    active on the system.
407464d013SAndrii Nakryiko
41f7b68543SRameez Rehman    Output will start with link ID followed by link type and zero or more named
42f7b68543SRameez Rehman    attributes, some of which depend on type of link.
437464d013SAndrii Nakryiko
44f7b68543SRameez Rehman    Since Linux 5.8 bpftool is able to discover information about processes
45f7b68543SRameez Rehman    that hold open file descriptors (FDs) against BPF links. On such kernels
46f7b68543SRameez Rehman    bpftool will automatically emit this information as well.
47075c7766SAndrii Nakryiko
48*ea379b3cSRameez Rehmanbpftool link pin *LINK* *FILE*
497464d013SAndrii Nakryiko    Pin link *LINK* as *FILE*.
507464d013SAndrii Nakryiko
51f7b68543SRameez Rehman    Note: *FILE* must be located in *bpffs* mount. It must not contain a dot
52f7b68543SRameez Rehman    character ('.'), which is reserved for future extensions of *bpffs*.
537464d013SAndrii Nakryiko
54*ea379b3cSRameez Rehmanbpftool link detach *LINK*
55f7b68543SRameez Rehman    Force-detach link *LINK*. BPF link and its underlying BPF program will stay
56f7b68543SRameez Rehman    valid, but they will be detached from the respective BPF hook and BPF link
57f7b68543SRameez Rehman    will transition into a defunct state until last open file descriptor for
58f7b68543SRameez Rehman    that link is closed.
59e85f99aaSAndrii Nakryiko
60*ea379b3cSRameez Rehmanbpftool link help
617464d013SAndrii Nakryiko    Print short help message.
627464d013SAndrii Nakryiko
637464d013SAndrii NakryikoOPTIONS
647464d013SAndrii Nakryiko=======
65f28ef96dSQuentin Monnet    .. include:: common_options.rst
667464d013SAndrii Nakryiko
677464d013SAndrii Nakryiko    -f, --bpffs
68f7b68543SRameez Rehman        When showing BPF links, show file names of pinned links.
697464d013SAndrii Nakryiko
707464d013SAndrii Nakryiko    -n, --nomount
71f7b68543SRameez Rehman        Do not automatically attempt to mount any virtual file system (such as
72f7b68543SRameez Rehman        tracefs or BPF virtual file system) when necessary.
737464d013SAndrii Nakryiko
747464d013SAndrii NakryikoEXAMPLES
757464d013SAndrii Nakryiko========
767464d013SAndrii Nakryiko**# bpftool link show**
777464d013SAndrii Nakryiko
787464d013SAndrii Nakryiko::
797464d013SAndrii Nakryiko
807464d013SAndrii Nakryiko    10: cgroup  prog 25
817464d013SAndrii Nakryiko            cgroup_id 614  attach_type egress
82075c7766SAndrii Nakryiko            pids test_progs(223)
837464d013SAndrii Nakryiko
847464d013SAndrii Nakryiko**# bpftool --json --pretty link show**
857464d013SAndrii Nakryiko
867464d013SAndrii Nakryiko::
877464d013SAndrii Nakryiko
887464d013SAndrii Nakryiko    [{
897464d013SAndrii Nakryiko            "type": "cgroup",
907464d013SAndrii Nakryiko            "prog_id": 25,
917464d013SAndrii Nakryiko            "cgroup_id": 614,
92075c7766SAndrii Nakryiko            "attach_type": "egress",
93075c7766SAndrii Nakryiko            "pids": [{
94075c7766SAndrii Nakryiko                    "pid": 223,
95075c7766SAndrii Nakryiko                    "comm": "test_progs"
96075c7766SAndrii Nakryiko                }
97075c7766SAndrii Nakryiko            ]
987464d013SAndrii Nakryiko        }
997464d013SAndrii Nakryiko    ]
1007464d013SAndrii Nakryiko
1017464d013SAndrii Nakryiko|
1027464d013SAndrii Nakryiko| **# bpftool link pin id 10 /sys/fs/bpf/link**
1037464d013SAndrii Nakryiko| **# ls -l /sys/fs/bpf/**
1047464d013SAndrii Nakryiko
1057464d013SAndrii Nakryiko::
1067464d013SAndrii Nakryiko
1077464d013SAndrii Nakryiko    -rw------- 1 root root 0 Apr 23 21:39 link
108