Scroll to navigation

BPFTOOL-MAP(8) BPFTOOL-MAP(8)

NAME

bpftool-map - tool for inspection and simple manipulation of eBPF maps

SYNOPSIS

bpftool [OPTIONS] map COMMAND

OPTIONS := { { -j | --json } [{ -p | --pretty }] | { -f | --bpffs } }

COMMANDS := { show | list | dump | update | lookup | getnext | delete | pin | help }



MAP COMMANDS

bpftool map { show | list }   [MAP]
bpftool map dump    MAP
bpftool map update  MAP  key DATA   value VALUE [UPDATE_FLAGS]
bpftool map lookup  MAP  key DATA
bpftool map getnext MAP [key DATA]
bpftool map delete  MAP  key DATA
bpftool map pin     MAP  FILE
bpftool map help
MAP := { id MAP_ID | pinned FILE }
DATA := { [hex] BYTES }
PROG := { id PROG_ID | pinned FILE | tag PROG_TAG }
VALUE := { DATA | MAP | PROG }
UPDATE_FLAGS := { any | exist | noexist }

DESCRIPTION

Show information about loaded maps. If MAP is specified show information only about given map, otherwise list all maps currently loaded on the system.

Output will start with map ID followed by map type and zero or more named attributes (depending on kernel version).

Dump all entries in a given MAP.
Update map entry for a given KEY.

UPDATE_FLAGS can be one of: any update existing entry or add if doesn't exit; exist update only if entry already exists; noexist update only if entry doesn't exist.

If the hex keyword is provided in front of the bytes sequence, the bytes are parsed as hexadeximal values, even if no "0x" prefix is added. If the keyword is not provided, then the bytes are parsed as decimal values, unless a "0x" prefix (for hexadecimal) or a "0" prefix (for octal) is provided.

Lookup key in the map.
Get next key. If key is not specified, get first key.
Remove entry from the map.
Pin map MAP as FILE.

Note: FILE must be located in bpffs mount.

Print short help message.



OPTIONS

Print short generic help message (similar to bpftool help).
Print version number (similar to bpftool version).
Generate JSON output. For commands that cannot produce JSON, this option has no effect.
Generate human-readable JSON output. Implies -j.
Show file names of pinned maps.



EXAMPLES

# bpftool map show

10: hash  name some_map  flags 0x0

key 4B value 8B max_entries 2048 memlock 167936B


The following three commands are equivalent:

# bpftool map update id 10 key hex   20   c4   b7   00 value hex   0f   ff   ff   ab   01   02   03   4c
# bpftool map update id 10 key     0x20 0xc4 0xb7 0x00 value     0x0f 0xff 0xff 0xab 0x01 0x02 0x03 0x4c
# bpftool map update id 10 key       32  196  183    0 value       15  255  255  171    1    2    3   76

# bpftool map lookup id 10 key 0 1 2 3

key: 00 01 02 03 value: 00 01 02 03 04 05 06 07


# bpftool map dump id 10

key: 00 01 02 03  value: 00 01 02 03 04 05 06 07
key: 0d 00 07 00  value: 02 00 00 00 01 02 03 04
Found 2 elements


# bpftool map getnext id 10 key 0 1 2 3

key:
00 01 02 03
next key:
0d 00 07 00


# mount -t bpf none /sys/fs/bpf/
# bpftool map pin id 10 /sys/fs/bpf/map
# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00

SEE ALSO