xref: /aosp_15_r20/external/bpftool/docs/bpftool-map.rst (revision 858ea5e570667251cdc31d3fe7b846b591105938)
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-map
5*858ea5e5SAndroid Build Coastguard Worker================
6*858ea5e5SAndroid Build Coastguard Worker-------------------------------------------------------------------------------
7*858ea5e5SAndroid Build Coastguard Workertool for inspection and simple manipulation of eBPF maps
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*] **map** *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* :=
22*858ea5e5SAndroid Build Coastguard Worker	{ **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext** |
23*858ea5e5SAndroid Build Coastguard Worker	**delete** | **pin** | **help** }
24*858ea5e5SAndroid Build Coastguard Worker
25*858ea5e5SAndroid Build Coastguard WorkerMAP COMMANDS
26*858ea5e5SAndroid Build Coastguard Worker=============
27*858ea5e5SAndroid Build Coastguard Worker
28*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map** { **show** | **list** }   [*MAP*]
29*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map create**     *FILE* **type** *TYPE* **key** *KEY_SIZE* **value** *VALUE_SIZE* \
30*858ea5e5SAndroid Build Coastguard Worker|		**entries** *MAX_ENTRIES* **name** *NAME* [**flags** *FLAGS*] [**inner_map** *MAP*] \
31*858ea5e5SAndroid Build Coastguard Worker|		[**offload_dev** *NAME*]
32*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map dump**       *MAP*
33*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map update**     *MAP* [**key** *DATA*] [**value** *VALUE*] [*UPDATE_FLAGS*]
34*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map lookup**     *MAP* [**key** *DATA*]
35*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map getnext**    *MAP* [**key** *DATA*]
36*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map delete**     *MAP*  **key** *DATA*
37*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map pin**        *MAP*  *FILE*
38*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*]
39*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map peek**       *MAP*
40*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map push**       *MAP* **value** *VALUE*
41*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map pop**        *MAP*
42*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map enqueue**    *MAP* **value** *VALUE*
43*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map dequeue**    *MAP*
44*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map freeze**     *MAP*
45*858ea5e5SAndroid Build Coastguard Worker|	**bpftool** **map help**
46*858ea5e5SAndroid Build Coastguard Worker|
47*858ea5e5SAndroid Build Coastguard Worker|	*MAP* := { **id** *MAP_ID* | **pinned** *FILE* | **name** *MAP_NAME* }
48*858ea5e5SAndroid Build Coastguard Worker|	*DATA* := { [**hex**] *BYTES* }
49*858ea5e5SAndroid Build Coastguard Worker|	*PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* | **name** *PROG_NAME* }
50*858ea5e5SAndroid Build Coastguard Worker|	*VALUE* := { *DATA* | *MAP* | *PROG* }
51*858ea5e5SAndroid Build Coastguard Worker|	*UPDATE_FLAGS* := { **any** | **exist** | **noexist** }
52*858ea5e5SAndroid Build Coastguard Worker|	*TYPE* := { **hash** | **array** | **prog_array** | **perf_event_array** | **percpu_hash**
53*858ea5e5SAndroid Build Coastguard Worker|		| **percpu_array** | **stack_trace** | **cgroup_array** | **lru_hash**
54*858ea5e5SAndroid Build Coastguard Worker|		| **lru_percpu_hash** | **lpm_trie** | **array_of_maps** | **hash_of_maps**
55*858ea5e5SAndroid Build Coastguard Worker|		| **devmap** | **devmap_hash** | **sockmap** | **cpumap** | **xskmap** | **sockhash**
56*858ea5e5SAndroid Build Coastguard Worker|		| **cgroup_storage** | **reuseport_sockarray** | **percpu_cgroup_storage**
57*858ea5e5SAndroid Build Coastguard Worker|		| **queue** | **stack** | **sk_storage** | **struct_ops** | **ringbuf** | **inode_storage**
58*858ea5e5SAndroid Build Coastguard Worker|		| **task_storage** | **bloom_filter** | **user_ringbuf** | **cgrp_storage** | **arena** }
59*858ea5e5SAndroid Build Coastguard Worker
60*858ea5e5SAndroid Build Coastguard WorkerDESCRIPTION
61*858ea5e5SAndroid Build Coastguard Worker===========
62*858ea5e5SAndroid Build Coastguard Worker	**bpftool map { show | list }**   [*MAP*]
63*858ea5e5SAndroid Build Coastguard Worker		  Show information about loaded maps.  If *MAP* is specified
64*858ea5e5SAndroid Build Coastguard Worker		  show information only about given maps, otherwise list all
65*858ea5e5SAndroid Build Coastguard Worker		  maps currently loaded on the system.  In case of **name**,
66*858ea5e5SAndroid Build Coastguard Worker		  *MAP* may match several maps which will all be shown.
67*858ea5e5SAndroid Build Coastguard Worker
68*858ea5e5SAndroid Build Coastguard Worker		  Output will start with map ID followed by map type and
69*858ea5e5SAndroid Build Coastguard Worker		  zero or more named attributes (depending on kernel version).
70*858ea5e5SAndroid Build Coastguard Worker
71*858ea5e5SAndroid Build Coastguard Worker		  Since Linux 5.8 bpftool is able to discover information about
72*858ea5e5SAndroid Build Coastguard Worker		  processes that hold open file descriptors (FDs) against BPF
73*858ea5e5SAndroid Build Coastguard Worker		  maps. On such kernels bpftool will automatically emit this
74*858ea5e5SAndroid Build Coastguard Worker		  information as well.
75*858ea5e5SAndroid Build Coastguard Worker
76*858ea5e5SAndroid Build Coastguard Worker	**bpftool map create** *FILE* **type** *TYPE* **key** *KEY_SIZE* **value** *VALUE_SIZE*  **entries** *MAX_ENTRIES* **name** *NAME* [**flags** *FLAGS*] [**inner_map** *MAP*] [**offload_dev** *NAME*]
77*858ea5e5SAndroid Build Coastguard Worker		  Create a new map with given parameters and pin it to *bpffs*
78*858ea5e5SAndroid Build Coastguard Worker		  as *FILE*.
79*858ea5e5SAndroid Build Coastguard Worker
80*858ea5e5SAndroid Build Coastguard Worker		  *FLAGS* should be an integer which is the combination of
81*858ea5e5SAndroid Build Coastguard Worker		  desired flags, e.g. 1024 for **BPF_F_MMAPABLE** (see bpf.h
82*858ea5e5SAndroid Build Coastguard Worker		  UAPI header for existing flags).
83*858ea5e5SAndroid Build Coastguard Worker
84*858ea5e5SAndroid Build Coastguard Worker		  To create maps of type array-of-maps or hash-of-maps, the
85*858ea5e5SAndroid Build Coastguard Worker		  **inner_map** keyword must be used to pass an inner map. The
86*858ea5e5SAndroid Build Coastguard Worker		  kernel needs it to collect metadata related to the inner maps
87*858ea5e5SAndroid Build Coastguard Worker		  that the new map will work with.
88*858ea5e5SAndroid Build Coastguard Worker
89*858ea5e5SAndroid Build Coastguard Worker		  Keyword **offload_dev** expects a network interface name,
90*858ea5e5SAndroid Build Coastguard Worker		  and is used to request hardware offload for the map.
91*858ea5e5SAndroid Build Coastguard Worker
92*858ea5e5SAndroid Build Coastguard Worker	**bpftool map dump**    *MAP*
93*858ea5e5SAndroid Build Coastguard Worker		  Dump all entries in a given *MAP*.  In case of **name**,
94*858ea5e5SAndroid Build Coastguard Worker		  *MAP* may match several maps which will all be dumped.
95*858ea5e5SAndroid Build Coastguard Worker
96*858ea5e5SAndroid Build Coastguard Worker	**bpftool map update**  *MAP* [**key** *DATA*] [**value** *VALUE*] [*UPDATE_FLAGS*]
97*858ea5e5SAndroid Build Coastguard Worker		  Update map entry for a given *KEY*.
98*858ea5e5SAndroid Build Coastguard Worker
99*858ea5e5SAndroid Build Coastguard Worker		  *UPDATE_FLAGS* can be one of: **any** update existing entry
100*858ea5e5SAndroid Build Coastguard Worker		  or add if doesn't exit; **exist** update only if entry already
101*858ea5e5SAndroid Build Coastguard Worker		  exists; **noexist** update only if entry doesn't exist.
102*858ea5e5SAndroid Build Coastguard Worker
103*858ea5e5SAndroid Build Coastguard Worker		  If the **hex** keyword is provided in front of the bytes
104*858ea5e5SAndroid Build Coastguard Worker		  sequence, the bytes are parsed as hexadecimal values, even if
105*858ea5e5SAndroid Build Coastguard Worker		  no "0x" prefix is added. If the keyword is not provided, then
106*858ea5e5SAndroid Build Coastguard Worker		  the bytes are parsed as decimal values, unless a "0x" prefix
107*858ea5e5SAndroid Build Coastguard Worker		  (for hexadecimal) or a "0" prefix (for octal) is provided.
108*858ea5e5SAndroid Build Coastguard Worker
109*858ea5e5SAndroid Build Coastguard Worker	**bpftool map lookup**  *MAP* [**key** *DATA*]
110*858ea5e5SAndroid Build Coastguard Worker		  Lookup **key** in the map.
111*858ea5e5SAndroid Build Coastguard Worker
112*858ea5e5SAndroid Build Coastguard Worker	**bpftool map getnext** *MAP* [**key** *DATA*]
113*858ea5e5SAndroid Build Coastguard Worker		  Get next key.  If *key* is not specified, get first key.
114*858ea5e5SAndroid Build Coastguard Worker
115*858ea5e5SAndroid Build Coastguard Worker	**bpftool map delete**  *MAP*  **key** *DATA*
116*858ea5e5SAndroid Build Coastguard Worker		  Remove entry from the map.
117*858ea5e5SAndroid Build Coastguard Worker
118*858ea5e5SAndroid Build Coastguard Worker	**bpftool map pin**     *MAP*  *FILE*
119*858ea5e5SAndroid Build Coastguard Worker		  Pin map *MAP* as *FILE*.
120*858ea5e5SAndroid Build Coastguard Worker
121*858ea5e5SAndroid Build Coastguard Worker		  Note: *FILE* must be located in *bpffs* mount. It must not
122*858ea5e5SAndroid Build Coastguard Worker		  contain a dot character ('.'), which is reserved for future
123*858ea5e5SAndroid Build Coastguard Worker		  extensions of *bpffs*.
124*858ea5e5SAndroid Build Coastguard Worker
125*858ea5e5SAndroid Build Coastguard Worker	**bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*]
126*858ea5e5SAndroid Build Coastguard Worker		  Read events from a **BPF_MAP_TYPE_PERF_EVENT_ARRAY** map.
127*858ea5e5SAndroid Build Coastguard Worker
128*858ea5e5SAndroid Build Coastguard Worker		  Install perf rings into a perf event array map and dump
129*858ea5e5SAndroid Build Coastguard Worker		  output of any **bpf_perf_event_output**\ () call in the kernel.
130*858ea5e5SAndroid Build Coastguard Worker		  By default read the number of CPUs on the system and
131*858ea5e5SAndroid Build Coastguard Worker		  install perf ring for each CPU in the corresponding index
132*858ea5e5SAndroid Build Coastguard Worker		  in the array.
133*858ea5e5SAndroid Build Coastguard Worker
134*858ea5e5SAndroid Build Coastguard Worker		  If **cpu** and **index** are specified, install perf ring
135*858ea5e5SAndroid Build Coastguard Worker		  for given **cpu** at **index** in the array (single ring).
136*858ea5e5SAndroid Build Coastguard Worker
137*858ea5e5SAndroid Build Coastguard Worker		  Note that installing a perf ring into an array will silently
138*858ea5e5SAndroid Build Coastguard Worker		  replace any existing ring.  Any other application will stop
139*858ea5e5SAndroid Build Coastguard Worker		  receiving events if it installed its rings earlier.
140*858ea5e5SAndroid Build Coastguard Worker
141*858ea5e5SAndroid Build Coastguard Worker	**bpftool map peek**  *MAP*
142*858ea5e5SAndroid Build Coastguard Worker		  Peek next value in the queue or stack.
143*858ea5e5SAndroid Build Coastguard Worker
144*858ea5e5SAndroid Build Coastguard Worker	**bpftool map push**  *MAP* **value** *VALUE*
145*858ea5e5SAndroid Build Coastguard Worker		  Push *VALUE* onto the stack.
146*858ea5e5SAndroid Build Coastguard Worker
147*858ea5e5SAndroid Build Coastguard Worker	**bpftool map pop**  *MAP*
148*858ea5e5SAndroid Build Coastguard Worker		  Pop and print value from the stack.
149*858ea5e5SAndroid Build Coastguard Worker
150*858ea5e5SAndroid Build Coastguard Worker	**bpftool map enqueue**  *MAP* **value** *VALUE*
151*858ea5e5SAndroid Build Coastguard Worker		  Enqueue *VALUE* into the queue.
152*858ea5e5SAndroid Build Coastguard Worker
153*858ea5e5SAndroid Build Coastguard Worker	**bpftool map dequeue**  *MAP*
154*858ea5e5SAndroid Build Coastguard Worker		  Dequeue and print value from the queue.
155*858ea5e5SAndroid Build Coastguard Worker
156*858ea5e5SAndroid Build Coastguard Worker	**bpftool map freeze**  *MAP*
157*858ea5e5SAndroid Build Coastguard Worker		  Freeze the map as read-only from user space. Entries from a
158*858ea5e5SAndroid Build Coastguard Worker		  frozen map can not longer be updated or deleted with the
159*858ea5e5SAndroid Build Coastguard Worker		  **bpf**\ () system call. This operation is not reversible,
160*858ea5e5SAndroid Build Coastguard Worker		  and the map remains immutable from user space until its
161*858ea5e5SAndroid Build Coastguard Worker		  destruction. However, read and write permissions for BPF
162*858ea5e5SAndroid Build Coastguard Worker		  programs to the map remain unchanged.
163*858ea5e5SAndroid Build Coastguard Worker
164*858ea5e5SAndroid Build Coastguard Worker	**bpftool map help**
165*858ea5e5SAndroid Build Coastguard Worker		  Print short help message.
166*858ea5e5SAndroid Build Coastguard Worker
167*858ea5e5SAndroid Build Coastguard WorkerOPTIONS
168*858ea5e5SAndroid Build Coastguard Worker=======
169*858ea5e5SAndroid Build Coastguard Worker	.. include:: common_options.rst
170*858ea5e5SAndroid Build Coastguard Worker
171*858ea5e5SAndroid Build Coastguard Worker	-f, --bpffs
172*858ea5e5SAndroid Build Coastguard Worker		  Show file names of pinned maps.
173*858ea5e5SAndroid Build Coastguard Worker
174*858ea5e5SAndroid Build Coastguard Worker	-n, --nomount
175*858ea5e5SAndroid Build Coastguard Worker		  Do not automatically attempt to mount any virtual file system
176*858ea5e5SAndroid Build Coastguard Worker		  (such as tracefs or BPF virtual file system) when necessary.
177*858ea5e5SAndroid Build Coastguard Worker
178*858ea5e5SAndroid Build Coastguard WorkerEXAMPLES
179*858ea5e5SAndroid Build Coastguard Worker========
180*858ea5e5SAndroid Build Coastguard Worker**# bpftool map show**
181*858ea5e5SAndroid Build Coastguard Worker
182*858ea5e5SAndroid Build Coastguard Worker::
183*858ea5e5SAndroid Build Coastguard Worker
184*858ea5e5SAndroid Build Coastguard Worker  10: hash  name some_map  flags 0x0
185*858ea5e5SAndroid Build Coastguard Worker        key 4B  value 8B  max_entries 2048  memlock 167936B
186*858ea5e5SAndroid Build Coastguard Worker        pids systemd(1)
187*858ea5e5SAndroid Build Coastguard Worker
188*858ea5e5SAndroid Build Coastguard WorkerThe following three commands are equivalent:
189*858ea5e5SAndroid Build Coastguard Worker
190*858ea5e5SAndroid Build Coastguard Worker|
191*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map update id 10 key hex   20   c4   b7   00 value hex   0f   ff   ff   ab   01   02   03   4c**
192*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map update id 10 key     0x20 0xc4 0xb7 0x00 value     0x0f 0xff 0xff 0xab 0x01 0x02 0x03 0x4c**
193*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map update id 10 key       32  196  183    0 value       15  255  255  171    1    2    3   76**
194*858ea5e5SAndroid Build Coastguard Worker
195*858ea5e5SAndroid Build Coastguard Worker**# bpftool map lookup id 10 key 0 1 2 3**
196*858ea5e5SAndroid Build Coastguard Worker
197*858ea5e5SAndroid Build Coastguard Worker::
198*858ea5e5SAndroid Build Coastguard Worker
199*858ea5e5SAndroid Build Coastguard Worker  key: 00 01 02 03 value: 00 01 02 03 04 05 06 07
200*858ea5e5SAndroid Build Coastguard Worker
201*858ea5e5SAndroid Build Coastguard Worker
202*858ea5e5SAndroid Build Coastguard Worker**# bpftool map dump id 10**
203*858ea5e5SAndroid Build Coastguard Worker
204*858ea5e5SAndroid Build Coastguard Worker::
205*858ea5e5SAndroid Build Coastguard Worker
206*858ea5e5SAndroid Build Coastguard Worker  key: 00 01 02 03  value: 00 01 02 03 04 05 06 07
207*858ea5e5SAndroid Build Coastguard Worker  key: 0d 00 07 00  value: 02 00 00 00 01 02 03 04
208*858ea5e5SAndroid Build Coastguard Worker  Found 2 elements
209*858ea5e5SAndroid Build Coastguard Worker
210*858ea5e5SAndroid Build Coastguard Worker**# bpftool map getnext id 10 key 0 1 2 3**
211*858ea5e5SAndroid Build Coastguard Worker
212*858ea5e5SAndroid Build Coastguard Worker::
213*858ea5e5SAndroid Build Coastguard Worker
214*858ea5e5SAndroid Build Coastguard Worker  key:
215*858ea5e5SAndroid Build Coastguard Worker  00 01 02 03
216*858ea5e5SAndroid Build Coastguard Worker  next key:
217*858ea5e5SAndroid Build Coastguard Worker  0d 00 07 00
218*858ea5e5SAndroid Build Coastguard Worker
219*858ea5e5SAndroid Build Coastguard Worker|
220*858ea5e5SAndroid Build Coastguard Worker| **# mount -t bpf none /sys/fs/bpf/**
221*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map pin id 10 /sys/fs/bpf/map**
222*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00**
223*858ea5e5SAndroid Build Coastguard Worker
224*858ea5e5SAndroid Build Coastguard WorkerNote that map update can also be used in order to change the program references
225*858ea5e5SAndroid Build Coastguard Workerhold by a program array map. This can be used, for example, to change the
226*858ea5e5SAndroid Build Coastguard Workerprograms used for tail-call jumps at runtime, without having to reload the
227*858ea5e5SAndroid Build Coastguard Workerentry-point program. Below is an example for this use case: we load a program
228*858ea5e5SAndroid Build Coastguard Workerdefining a prog array map, and with a main function that contains a tail call
229*858ea5e5SAndroid Build Coastguard Workerto other programs that can be used either to "process" packets or to "debug"
230*858ea5e5SAndroid Build Coastguard Workerprocessing. Note that the prog array map MUST be pinned into the BPF virtual
231*858ea5e5SAndroid Build Coastguard Workerfile system for the map update to work successfully, as kernel flushes prog
232*858ea5e5SAndroid Build Coastguard Workerarray maps when they have no more references from user space (and the update
233*858ea5e5SAndroid Build Coastguard Workerwould be lost as soon as bpftool exits).
234*858ea5e5SAndroid Build Coastguard Worker
235*858ea5e5SAndroid Build Coastguard Worker|
236*858ea5e5SAndroid Build Coastguard Worker| **# bpftool prog loadall tail_calls.o /sys/fs/bpf/foo type xdp**
237*858ea5e5SAndroid Build Coastguard Worker| **# bpftool prog --bpffs**
238*858ea5e5SAndroid Build Coastguard Worker
239*858ea5e5SAndroid Build Coastguard Worker::
240*858ea5e5SAndroid Build Coastguard Worker
241*858ea5e5SAndroid Build Coastguard Worker  545: xdp  name main_func  tag 674b4b5597193dc3  gpl
242*858ea5e5SAndroid Build Coastguard Worker          loaded_at 2018-12-12T15:02:58+0000  uid 0
243*858ea5e5SAndroid Build Coastguard Worker          xlated 240B  jited 257B  memlock 4096B  map_ids 294
244*858ea5e5SAndroid Build Coastguard Worker          pinned /sys/fs/bpf/foo/xdp
245*858ea5e5SAndroid Build Coastguard Worker  546: xdp  name bpf_func_process  tag e369a529024751fc  gpl
246*858ea5e5SAndroid Build Coastguard Worker          loaded_at 2018-12-12T15:02:58+0000  uid 0
247*858ea5e5SAndroid Build Coastguard Worker          xlated 200B  jited 164B  memlock 4096B
248*858ea5e5SAndroid Build Coastguard Worker          pinned /sys/fs/bpf/foo/process
249*858ea5e5SAndroid Build Coastguard Worker  547: xdp  name bpf_func_debug  tag 0b597868bc7f0976  gpl
250*858ea5e5SAndroid Build Coastguard Worker          loaded_at 2018-12-12T15:02:58+0000  uid 0
251*858ea5e5SAndroid Build Coastguard Worker          xlated 200B  jited 164B  memlock 4096B
252*858ea5e5SAndroid Build Coastguard Worker          pinned /sys/fs/bpf/foo/debug
253*858ea5e5SAndroid Build Coastguard Worker
254*858ea5e5SAndroid Build Coastguard Worker**# bpftool map**
255*858ea5e5SAndroid Build Coastguard Worker
256*858ea5e5SAndroid Build Coastguard Worker::
257*858ea5e5SAndroid Build Coastguard Worker
258*858ea5e5SAndroid Build Coastguard Worker  294: prog_array  name jmp_table  flags 0x0
259*858ea5e5SAndroid Build Coastguard Worker          key 4B  value 4B  max_entries 1  memlock 4096B
260*858ea5e5SAndroid Build Coastguard Worker          owner_prog_type xdp  owner jited
261*858ea5e5SAndroid Build Coastguard Worker
262*858ea5e5SAndroid Build Coastguard Worker|
263*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map pin id 294 /sys/fs/bpf/bar**
264*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map dump pinned /sys/fs/bpf/bar**
265*858ea5e5SAndroid Build Coastguard Worker
266*858ea5e5SAndroid Build Coastguard Worker::
267*858ea5e5SAndroid Build Coastguard Worker
268*858ea5e5SAndroid Build Coastguard Worker  Found 0 elements
269*858ea5e5SAndroid Build Coastguard Worker
270*858ea5e5SAndroid Build Coastguard Worker|
271*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map update pinned /sys/fs/bpf/bar key 0 0 0 0 value pinned /sys/fs/bpf/foo/debug**
272*858ea5e5SAndroid Build Coastguard Worker| **# bpftool map dump pinned /sys/fs/bpf/bar**
273*858ea5e5SAndroid Build Coastguard Worker
274*858ea5e5SAndroid Build Coastguard Worker::
275*858ea5e5SAndroid Build Coastguard Worker
276*858ea5e5SAndroid Build Coastguard Worker  key: 00 00 00 00  value: 22 02 00 00
277*858ea5e5SAndroid Build Coastguard Worker  Found 1 element
278