bpftool-map(8) System Manager's Manual bpftool-map(8) (NAME) bpftool-map - bpf (SYNOPSIS) bpftool [OPTIONS] map COMMAND OPTIONS := { { -j | --json } [{ -p | --pretty }] | { -d | --debug } | { -f | --bpffs } | { -n | --nomount } } COMMANDS := { show | list | create | dump | update | lookup | getnext | delete | pin | help } (MAP COMMANDS) bpftool map { show | list } [MAP] bpftool map create FILE type TYPE key KEY_SIZE value VALUE_SIZE entries MAX_ENTRIES name NAME [flags FLAGS] [inner_map MAP] [offload_dev NAME] 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 event_pipe MAP [cpu N index M] bpftool map peek MAP bpftool map push MAP value VALUE bpftool map pop MAP bpftool map enqueue MAP value VALUE bpftool map dequeue MAP bpftool map freeze MAP bpftool map help MAP := { id MAP_ID | pinned FILE | name MAP_NAME } DATA := { [hex] BYTES } PROG := { id PROG_ID | pinned FILE | tag PROG_TAG | name PROG_NAME } VALUE := { DATA | MAP | PROG } UPDATE_FLAGS := { any | exist | noexist } TYPE := { hash | array | prog_array | perf_event_array | percpu_hash | percpu_array | stack_trace | cgroup_array | lru_hash | lru_percpu_hash | lpm_trie | array_of_maps | hash_of_maps | devmap | devmap_hash | sockmap | cpumap | xskmap | sockhash | cgroup_storage | reuseport_sockarray | percpu_cgroup_storage | queue | stack | sk_storage | struct_ops | ringbuf | inode_storage | task_storage | bloom_filter | user_ringbuf | cgrp_storage | arena | insn_array | rhash } (DESCRIPTION) bpftool map { show | list } [MAP] . MAP . name MAP . (ID) ( ) . . bpftool (FD) BPF . bpftool . bpftool map create FILE type TYPE key KEY_SIZE value VALUE_SIZE entries MAX_ENTRIES name NAME [flags FLAGS] [inner_map MAP] [offload_dev NAME] (pin) bpffs FILE. FLAGS BPF_F_MMAPABLE ( UAPI bpf.h ). array-of-maps hash-of-maps inner_map . . offload_dev (hardware offload) . bpftool map dump MAP MAP . name MAP . bpftool map update MAP [key DATA] [value VALUE] [UPDATE_FLAGS] KEY . UPDATE_FLAGS : any exist noexist . hex "0x" . "0x" ( ) "0" ( ) . bpftool map lookup MAP [key DATA] key . bpftool map getnext MAP [key DATA] . key . bpftool map delete MAP key DATA . bpftool map pin MAP FILE MAP FILE. : FILE bpffs . ('.') bpffs . bpftool map event_pipe MAP [cpu N index M] BPF_MAP_TYPE_PERF_EVENT_ARRAY. perf perf bpf_perf_event_output() . CPU CPU perf . cpu index perf cpu index ( ). perf . . bpftool map peek MAP . bpftool map push MAP value VALUE VALUE . bpftool map pop MAP . bpftool map enqueue MAP value VALUE VALUE . bpftool map dequeue MAP . bpftool map freeze MAP . bpf() . . BPF . bpftool map help . (OPTIONS) -h, --help ( bpftool help). -V, --version bpftool ( bpftool version) libbpf bpftool . LLVM libbfd JIT (bpftool prog dump jited) BPF ( bpftool prog profile pid BPF ) . -j, --json JSON. JSON . -p, --pretty JSON . -j . -d, --debug (debug). libbpf (verifier) . -f, --bpffs . -n, --nomount (mount) ( tracefs BPF) . (EXAMPLES) # bpftool map show 10: hash name some_map flags 0x0 key 4B value 8B max_entries 2048 memlock 167936B pids systemd(1) : # 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 prog array . (tail-call) (entry-point) . : prog array "process" "debug" . prog array BPF (pin) prog array ( bpftool ). # bpftool prog loadall tail_calls.o /sys/fs/bpf/foo type xdp # bpftool prog --bpffs 545: xdp name main_func tag 674b4b5597193dc3 gpl loaded_at 2018-12-12T15:02:58+0000 uid 0 xlated 240B jited 257B memlock 4096B map_ids 294 pinned /sys/fs/bpf/foo/xdp 546: xdp name bpf_func_process tag e369a529024751fc gpl loaded_at 2018-12-12T15:02:58+0000 uid 0 xlated 200B jited 164B memlock 4096B pinned /sys/fs/bpf/foo/process 547: xdp name bpf_func_debug tag 0b597868bc7f0976 gpl loaded_at 2018-12-12T15:02:58+0000 uid 0 xlated 200B jited 164B memlock 4096B pinned /sys/fs/bpf/foo/debug # bpftool map 294: prog_array name jmp_table flags 0x0 key 4B value 4B max_entries 1 memlock 4096B owner_prog_type xdp owner jited # bpftool map pin id 294 /sys/fs/bpf/bar # bpftool map dump pinned /sys/fs/bpf/bar Found 0 elements # bpftool map update pinned /sys/fs/bpf/bar key 0 0 0 0 value pinned /sys/fs/bpf/foo/debug # bpftool map dump pinned /sys/fs/bpf/bar key: 00 00 00 00 value: 22 02 00 00 Found 1 element (SEE ALSO) bpf(2), bpf-helpers(7), bpftool(8), bpftool-btf(8), bpftool-cgroup(8), bpftool-feature(8), bpftool-gen(8), bpftool-iter(8), bpftool-link(8), bpftool-net(8), bpftool-perf(8), bpftool-prog(8), bpftool-struct_ops(8), bpftool-token(8) bpftool-map(8)