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
13ff69c21aSJakub Kicinski	**bpftool** **map** *COMMAND*
14ff69c21aSJakub Kicinski
15ff69c21aSJakub Kicinski	*COMMANDS* :=
16ff69c21aSJakub Kicinski	{ show | dump | update | lookup | getnext | delete | pin | help }
17ff69c21aSJakub Kicinski
18ff69c21aSJakub KicinskiMAP COMMANDS
19ff69c21aSJakub Kicinski=============
20ff69c21aSJakub Kicinski
21ff69c21aSJakub Kicinski|	**bpftool** map show   [*MAP*]
22ff69c21aSJakub Kicinski|	**bpftool** map dump    *MAP*
23ff69c21aSJakub Kicinski|	**bpftool** map update  *MAP*  key *BYTES*   value *VALUE* [*UPDATE_FLAGS*]
24ff69c21aSJakub Kicinski|	**bpftool** map lookup  *MAP*  key *BYTES*
25ff69c21aSJakub Kicinski|	**bpftool** map getnext *MAP* [key *BYTES*]
26ff69c21aSJakub Kicinski|	**bpftool** map delete  *MAP*  key *BYTES*
27ff69c21aSJakub Kicinski|	**bpftool** map pin     *MAP*  *FILE*
28ff69c21aSJakub Kicinski|	**bpftool** map help
29ff69c21aSJakub Kicinski|
30ff69c21aSJakub Kicinski|	*MAP* := { id MAP_ID | pinned FILE }
31ff69c21aSJakub Kicinski|	*VALUE* := { BYTES | MAP | PROGRAM }
32ff69c21aSJakub Kicinski|	*UPDATE_FLAGS* := { any | exist | noexist }
33ff69c21aSJakub Kicinski
34ff69c21aSJakub KicinskiDESCRIPTION
35ff69c21aSJakub Kicinski===========
36ff69c21aSJakub Kicinski	**bpftool map show**   [*MAP*]
37ff69c21aSJakub Kicinski		  Show information about loaded maps.  If *MAP* is specified
38ff69c21aSJakub Kicinski		  show information only about given map, otherwise list all
39ff69c21aSJakub Kicinski		  maps currently loaded on the system.
40ff69c21aSJakub Kicinski
41ff69c21aSJakub Kicinski		  Output will start with map ID followed by map type and
42ff69c21aSJakub Kicinski		  zero or more named attributes (depending on kernel version).
43ff69c21aSJakub Kicinski
44ff69c21aSJakub Kicinski	**bpftool map dump**    *MAP*
45ff69c21aSJakub Kicinski		  Dump all entries in a given *MAP*.
46ff69c21aSJakub Kicinski
47ff69c21aSJakub Kicinski	**bpftool map update**  *MAP*  **key** *BYTES*   **value** *VALUE* [*UPDATE_FLAGS*]
48ff69c21aSJakub Kicinski		  Update map entry for a given *KEY*.
49ff69c21aSJakub Kicinski
50ff69c21aSJakub Kicinski		  *UPDATE_FLAGS* can be one of: **any** update existing entry
51ff69c21aSJakub Kicinski		  or add if doesn't exit; **exist** update only if entry already
52ff69c21aSJakub Kicinski		  exists; **noexist** update only if entry doesn't exist.
53ff69c21aSJakub Kicinski
54ff69c21aSJakub Kicinski	**bpftool map lookup**  *MAP*  **key** *BYTES*
55ff69c21aSJakub Kicinski		  Lookup **key** in the map.
56ff69c21aSJakub Kicinski
57ff69c21aSJakub Kicinski	**bpftool map getnext** *MAP* [**key** *BYTES*]
58ff69c21aSJakub Kicinski		  Get next key.  If *key* is not specified, get first key.
59ff69c21aSJakub Kicinski
60ff69c21aSJakub Kicinski	**bpftool map delete**  *MAP*  **key** *BYTES*
61ff69c21aSJakub Kicinski		  Remove entry from the map.
62ff69c21aSJakub Kicinski
63ff69c21aSJakub Kicinski	**bpftool map pin**     *MAP*  *FILE*
64ff69c21aSJakub Kicinski		  Pin map *MAP* as *FILE*.
65ff69c21aSJakub Kicinski
66ff69c21aSJakub Kicinski		  Note: *FILE* must be located in *bpffs* mount.
67ff69c21aSJakub Kicinski
68ff69c21aSJakub Kicinski	**bpftool map help**
69ff69c21aSJakub Kicinski		  Print short help message.
70ff69c21aSJakub Kicinski
71a2bc2e5cSQuentin MonnetOPTIONS
72a2bc2e5cSQuentin Monnet=======
73a2bc2e5cSQuentin Monnet	-h, --help
74a2bc2e5cSQuentin Monnet		  Print short generic help message (similar to **bpftool help**).
75a2bc2e5cSQuentin Monnet
76a2bc2e5cSQuentin Monnet	-v, --version
77a2bc2e5cSQuentin Monnet		  Print version number (similar to **bpftool version**).
78a2bc2e5cSQuentin Monnet
79ff69c21aSJakub KicinskiEXAMPLES
80ff69c21aSJakub Kicinski========
81ff69c21aSJakub Kicinski**# bpftool map show**
82ff69c21aSJakub Kicinski::
83ff69c21aSJakub Kicinski
84ff69c21aSJakub Kicinski  10: hash  name some_map  flags 0x0
85ff69c21aSJakub Kicinski	key 4B  value 8B  max_entries 2048  memlock 167936B
86ff69c21aSJakub Kicinski
87ff69c21aSJakub Kicinski**# bpftool map update id 10 key 13 00 07 00 value 02 00 00 00 01 02 03 04**
88ff69c21aSJakub Kicinski
89ff69c21aSJakub Kicinski**# bpftool map lookup id 10 key 0 1 2 3**
90ff69c21aSJakub Kicinski
91ff69c21aSJakub Kicinski::
92ff69c21aSJakub Kicinski
93ff69c21aSJakub Kicinski  key: 00 01 02 03 value: 00 01 02 03 04 05 06 07
94ff69c21aSJakub Kicinski
95ff69c21aSJakub Kicinski
96ff69c21aSJakub Kicinski**# bpftool map dump id 10**
97ff69c21aSJakub Kicinski::
98ff69c21aSJakub Kicinski
99ff69c21aSJakub Kicinski  key: 00 01 02 03  value: 00 01 02 03 04 05 06 07
100ff69c21aSJakub Kicinski  key: 0d 00 07 00  value: 02 00 00 00 01 02 03 04
101ff69c21aSJakub Kicinski  Found 2 elements
102ff69c21aSJakub Kicinski
103ff69c21aSJakub Kicinski**# bpftool map getnext id 10 key 0 1 2 3**
104ff69c21aSJakub Kicinski::
105ff69c21aSJakub Kicinski
106ff69c21aSJakub Kicinski  key:
107ff69c21aSJakub Kicinski  00 01 02 03
108ff69c21aSJakub Kicinski  next key:
109ff69c21aSJakub Kicinski  0d 00 07 00
110ff69c21aSJakub Kicinski
111ff69c21aSJakub Kicinski|
112ff69c21aSJakub Kicinski| **# mount -t bpf none /sys/fs/bpf/**
113ff69c21aSJakub Kicinski| **# bpftool map pin id 10 /sys/fs/bpf/map**
114ff69c21aSJakub Kicinski| **# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00**
115ff69c21aSJakub Kicinski
116ff69c21aSJakub KicinskiSEE ALSO
117ff69c21aSJakub Kicinski========
118ff69c21aSJakub Kicinski	**bpftool**\ (8), **bpftool-prog**\ (8)
119