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