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