1ff69c21aSJakub Kicinski================
2ff69c21aSJakub Kicinskibpftool-map
3ff69c21aSJakub Kicinski================
4ff69c21aSJakub Kicinski-------------------------------------------------------------------------------
5ff69c21aSJakub Kicinskitool for inspection and simple manipulation of eBPF maps
6ff69c21aSJakub Kicinski-------------------------------------------------------------------------------
7ff69c21aSJakub Kicinski
8ff69c21aSJakub Kicinski:Manual section: 8
9ff69c21aSJakub Kicinski
10ff69c21aSJakub KicinskiSYNOPSIS
11ff69c21aSJakub Kicinski========
12ff69c21aSJakub Kicinski
130641c3c8SQuentin Monnet	**bpftool** [*OPTIONS*] **map** *COMMAND*
140641c3c8SQuentin Monnet
15c541b734SPrashant Bhole	*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } }
16ff69c21aSJakub Kicinski
17ff69c21aSJakub Kicinski	*COMMANDS* :=
1847ff7ac6SQuentin Monnet	{ **show** | **dump** | **update** | **lookup** | **getnext** | **delete**
1947ff7ac6SQuentin Monnet	| **pin** | **help** }
20ff69c21aSJakub Kicinski
21ff69c21aSJakub KicinskiMAP COMMANDS
22ff69c21aSJakub Kicinski=============
23ff69c21aSJakub Kicinski
2447ff7ac6SQuentin Monnet|	**bpftool** **map show**   [*MAP*]
2547ff7ac6SQuentin Monnet|	**bpftool** **map dump**    *MAP*
2647ff7ac6SQuentin Monnet|	**bpftool** **map update**  *MAP*  **key** *BYTES*   **value** *VALUE* [*UPDATE_FLAGS*]
2747ff7ac6SQuentin Monnet|	**bpftool** **map lookup**  *MAP*  **key** *BYTES*
2847ff7ac6SQuentin Monnet|	**bpftool** **map getnext** *MAP* [**key** *BYTES*]
2947ff7ac6SQuentin Monnet|	**bpftool** **map delete**  *MAP*  **key** *BYTES*
3047ff7ac6SQuentin Monnet|	**bpftool** **map pin**     *MAP*  *FILE*
3147ff7ac6SQuentin Monnet|	**bpftool** **map help**
32ff69c21aSJakub Kicinski|
3347ff7ac6SQuentin Monnet|	*MAP* := { **id** *MAP_ID* | **pinned** *FILE* }
3447ff7ac6SQuentin Monnet|	*VALUE* := { *BYTES* | *MAP* | *PROGRAM* }
3547ff7ac6SQuentin Monnet|	*UPDATE_FLAGS* := { **any** | **exist** | **noexist** }
36ff69c21aSJakub Kicinski
37ff69c21aSJakub KicinskiDESCRIPTION
38ff69c21aSJakub Kicinski===========
39ff69c21aSJakub Kicinski	**bpftool map show**   [*MAP*]
40ff69c21aSJakub Kicinski		  Show information about loaded maps.  If *MAP* is specified
41ff69c21aSJakub Kicinski		  show information only about given map, otherwise list all
42ff69c21aSJakub Kicinski		  maps currently loaded on the system.
43ff69c21aSJakub Kicinski
44ff69c21aSJakub Kicinski		  Output will start with map ID followed by map type and
45ff69c21aSJakub Kicinski		  zero or more named attributes (depending on kernel version).
46ff69c21aSJakub Kicinski
47ff69c21aSJakub Kicinski	**bpftool map dump**    *MAP*
48ff69c21aSJakub Kicinski		  Dump all entries in a given *MAP*.
49ff69c21aSJakub Kicinski
50ff69c21aSJakub Kicinski	**bpftool map update**  *MAP*  **key** *BYTES*   **value** *VALUE* [*UPDATE_FLAGS*]
51ff69c21aSJakub Kicinski		  Update map entry for a given *KEY*.
52ff69c21aSJakub Kicinski
53ff69c21aSJakub Kicinski		  *UPDATE_FLAGS* can be one of: **any** update existing entry
54ff69c21aSJakub Kicinski		  or add if doesn't exit; **exist** update only if entry already
55ff69c21aSJakub Kicinski		  exists; **noexist** update only if entry doesn't exist.
56ff69c21aSJakub Kicinski
57ff69c21aSJakub Kicinski	**bpftool map lookup**  *MAP*  **key** *BYTES*
58ff69c21aSJakub Kicinski		  Lookup **key** in the map.
59ff69c21aSJakub Kicinski
60ff69c21aSJakub Kicinski	**bpftool map getnext** *MAP* [**key** *BYTES*]
61ff69c21aSJakub Kicinski		  Get next key.  If *key* is not specified, get first key.
62ff69c21aSJakub Kicinski
63ff69c21aSJakub Kicinski	**bpftool map delete**  *MAP*  **key** *BYTES*
64ff69c21aSJakub Kicinski		  Remove entry from the map.
65ff69c21aSJakub Kicinski
66ff69c21aSJakub Kicinski	**bpftool map pin**     *MAP*  *FILE*
67ff69c21aSJakub Kicinski		  Pin map *MAP* as *FILE*.
68ff69c21aSJakub Kicinski
69ff69c21aSJakub Kicinski		  Note: *FILE* must be located in *bpffs* mount.
70ff69c21aSJakub Kicinski
71ff69c21aSJakub Kicinski	**bpftool map help**
72ff69c21aSJakub Kicinski		  Print short help message.
73ff69c21aSJakub Kicinski
74a2bc2e5cSQuentin MonnetOPTIONS
75a2bc2e5cSQuentin Monnet=======
76a2bc2e5cSQuentin Monnet	-h, --help
77a2bc2e5cSQuentin Monnet		  Print short generic help message (similar to **bpftool help**).
78a2bc2e5cSQuentin Monnet
79a2bc2e5cSQuentin Monnet	-v, --version
80a2bc2e5cSQuentin Monnet		  Print version number (similar to **bpftool version**).
81a2bc2e5cSQuentin Monnet
820641c3c8SQuentin Monnet	-j, --json
830641c3c8SQuentin Monnet		  Generate JSON output. For commands that cannot produce JSON, this
840641c3c8SQuentin Monnet		  option has no effect.
850641c3c8SQuentin Monnet
860641c3c8SQuentin Monnet	-p, --pretty
870641c3c8SQuentin Monnet		  Generate human-readable JSON output. Implies **-j**.
880641c3c8SQuentin Monnet
89c541b734SPrashant Bhole	-f, --bpffs
90c541b734SPrashant Bhole		  Show file names of pinned maps.
91c541b734SPrashant Bhole
92ff69c21aSJakub KicinskiEXAMPLES
93ff69c21aSJakub Kicinski========
94ff69c21aSJakub Kicinski**# bpftool map show**
95ff69c21aSJakub Kicinski::
96ff69c21aSJakub Kicinski
97ff69c21aSJakub Kicinski  10: hash  name some_map  flags 0x0
98ff69c21aSJakub Kicinski	key 4B  value 8B  max_entries 2048  memlock 167936B
99ff69c21aSJakub Kicinski
100ff69c21aSJakub Kicinski**# bpftool map update id 10 key 13 00 07 00 value 02 00 00 00 01 02 03 04**
101ff69c21aSJakub Kicinski
102ff69c21aSJakub Kicinski**# bpftool map lookup id 10 key 0 1 2 3**
103ff69c21aSJakub Kicinski
104ff69c21aSJakub Kicinski::
105ff69c21aSJakub Kicinski
106ff69c21aSJakub Kicinski  key: 00 01 02 03 value: 00 01 02 03 04 05 06 07
107ff69c21aSJakub Kicinski
108ff69c21aSJakub Kicinski
109ff69c21aSJakub Kicinski**# bpftool map dump id 10**
110ff69c21aSJakub Kicinski::
111ff69c21aSJakub Kicinski
112ff69c21aSJakub Kicinski  key: 00 01 02 03  value: 00 01 02 03 04 05 06 07
113ff69c21aSJakub Kicinski  key: 0d 00 07 00  value: 02 00 00 00 01 02 03 04
114ff69c21aSJakub Kicinski  Found 2 elements
115ff69c21aSJakub Kicinski
116ff69c21aSJakub Kicinski**# bpftool map getnext id 10 key 0 1 2 3**
117ff69c21aSJakub Kicinski::
118ff69c21aSJakub Kicinski
119ff69c21aSJakub Kicinski  key:
120ff69c21aSJakub Kicinski  00 01 02 03
121ff69c21aSJakub Kicinski  next key:
122ff69c21aSJakub Kicinski  0d 00 07 00
123ff69c21aSJakub Kicinski
124ff69c21aSJakub Kicinski|
125ff69c21aSJakub Kicinski| **# mount -t bpf none /sys/fs/bpf/**
126ff69c21aSJakub Kicinski| **# bpftool map pin id 10 /sys/fs/bpf/map**
127ff69c21aSJakub Kicinski| **# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00**
128ff69c21aSJakub Kicinski
129ff69c21aSJakub KicinskiSEE ALSO
130ff69c21aSJakub Kicinski========
131ff69c21aSJakub Kicinski	**bpftool**\ (8), **bpftool-prog**\ (8)
132