1*4882a593Smuzhiyun================ 2*4882a593Smuzhiyunbpftool-link 3*4882a593Smuzhiyun================ 4*4882a593Smuzhiyun------------------------------------------------------------------------------- 5*4882a593Smuzhiyuntool for inspection and simple manipulation of eBPF links 6*4882a593Smuzhiyun------------------------------------------------------------------------------- 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun:Manual section: 8 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunSYNOPSIS 11*4882a593Smuzhiyun======== 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun **bpftool** [*OPTIONS*] **link** *COMMAND* 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } } 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun *COMMANDS* := { **show** | **list** | **pin** | **help** } 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunLINK COMMANDS 20*4882a593Smuzhiyun============= 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun| **bpftool** **link { show | list }** [*LINK*] 23*4882a593Smuzhiyun| **bpftool** **link pin** *LINK* *FILE* 24*4882a593Smuzhiyun| **bpftool** **link detach** *LINK* 25*4882a593Smuzhiyun| **bpftool** **link help** 26*4882a593Smuzhiyun| 27*4882a593Smuzhiyun| *LINK* := { **id** *LINK_ID* | **pinned** *FILE* } 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunDESCRIPTION 31*4882a593Smuzhiyun=========== 32*4882a593Smuzhiyun **bpftool link { show | list }** [*LINK*] 33*4882a593Smuzhiyun Show information about active links. If *LINK* is 34*4882a593Smuzhiyun specified show information only about given link, 35*4882a593Smuzhiyun otherwise list all links currently active on the system. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun Output will start with link ID followed by link type and 38*4882a593Smuzhiyun zero or more named attributes, some of which depend on type 39*4882a593Smuzhiyun of link. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun Since Linux 5.8 bpftool is able to discover information about 42*4882a593Smuzhiyun processes that hold open file descriptors (FDs) against BPF 43*4882a593Smuzhiyun links. On such kernels bpftool will automatically emit this 44*4882a593Smuzhiyun information as well. 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun **bpftool link pin** *LINK* *FILE* 47*4882a593Smuzhiyun Pin link *LINK* as *FILE*. 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun Note: *FILE* must be located in *bpffs* mount. It must not 50*4882a593Smuzhiyun contain a dot character ('.'), which is reserved for future 51*4882a593Smuzhiyun extensions of *bpffs*. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun **bpftool link detach** *LINK* 54*4882a593Smuzhiyun Force-detach link *LINK*. BPF link and its underlying BPF 55*4882a593Smuzhiyun program will stay valid, but they will be detached from the 56*4882a593Smuzhiyun respective BPF hook and BPF link will transition into 57*4882a593Smuzhiyun a defunct state until last open file descriptor for that 58*4882a593Smuzhiyun link is closed. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun **bpftool link help** 61*4882a593Smuzhiyun Print short help message. 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunOPTIONS 64*4882a593Smuzhiyun======= 65*4882a593Smuzhiyun .. include:: common_options.rst 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun -f, --bpffs 68*4882a593Smuzhiyun When showing BPF links, show file names of pinned 69*4882a593Smuzhiyun links. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun -n, --nomount 72*4882a593Smuzhiyun Do not automatically attempt to mount any virtual file system 73*4882a593Smuzhiyun (such as tracefs or BPF virtual file system) when necessary. 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunEXAMPLES 76*4882a593Smuzhiyun======== 77*4882a593Smuzhiyun**# bpftool link show** 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun:: 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun 10: cgroup prog 25 82*4882a593Smuzhiyun cgroup_id 614 attach_type egress 83*4882a593Smuzhiyun pids test_progs(223) 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun**# bpftool --json --pretty link show** 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun:: 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun [{ 90*4882a593Smuzhiyun "type": "cgroup", 91*4882a593Smuzhiyun "prog_id": 25, 92*4882a593Smuzhiyun "cgroup_id": 614, 93*4882a593Smuzhiyun "attach_type": "egress", 94*4882a593Smuzhiyun "pids": [{ 95*4882a593Smuzhiyun "pid": 223, 96*4882a593Smuzhiyun "comm": "test_progs" 97*4882a593Smuzhiyun } 98*4882a593Smuzhiyun ] 99*4882a593Smuzhiyun } 100*4882a593Smuzhiyun ] 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun| 103*4882a593Smuzhiyun| **# bpftool link pin id 10 /sys/fs/bpf/link** 104*4882a593Smuzhiyun| **# ls -l /sys/fs/bpf/** 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun:: 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun -rw------- 1 root root 0 Apr 23 21:39 link 109