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