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