| .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| ============ | |
| bpftool-iter | |
| ============ | |
| ------------------------------------------------------------------------------- | |
| tool to create BPF iterators | |
| ------------------------------------------------------------------------------- | |
| :Manual section: 8 | |
| .. include:: substitutions.rst | |
| SYNOPSIS | |
| ======== | |
| **bpftool** [*OPTIONS*] **iter** *COMMAND* | |
| *OPTIONS* := { |COMMON_OPTIONS| } | |
| *COMMANDS* := { **pin** | **help** } | |
| ITER COMMANDS | |
| ============= | |
| | **bpftool** **iter pin** *OBJ* *PATH* [**map** *MAP*] | |
| | **bpftool** **iter help** | |
| | | |
| | *OBJ* := /a/file/of/bpf_iter_target.o | |
| | *MAP* := { **id** *MAP_ID* | **pinned** *FILE* } | |
| DESCRIPTION | |
| =========== | |
| bpftool iter pin *OBJ* *PATH* [map *MAP*] | |
| A bpf iterator combines a kernel iterating of particular kernel data (e.g., | |
| tasks, bpf_maps, etc.) and a bpf program called for each kernel data object | |
| (e.g., one task, one bpf_map, etc.). User space can *read* kernel iterator | |
| output through *read()* syscall. | |
| The *pin* command creates a bpf iterator from *OBJ*, and pin it to *PATH*. | |
| The *PATH* should be located in *bpffs* mount. It must not contain a dot | |
| character ('.'), which is reserved for future extensions of *bpffs*. | |
| Map element bpf iterator requires an additional parameter *MAP* so bpf | |
| program can iterate over map elements for that map. User can have a bpf | |
| program in kernel to run with each map element, do checking, filtering, | |
| aggregation, etc. without copying data to user space. | |
| User can then *cat PATH* to see the bpf iterator output. | |
| bpftool iter help | |
| Print short help message. | |
| OPTIONS | |
| ======= | |
| .. include:: common_options.rst | |
| EXAMPLES | |
| ======== | |
| **# bpftool iter pin bpf_iter_netlink.o /sys/fs/bpf/my_netlink** | |
| :: | |
| Create a file-based bpf iterator from bpf_iter_netlink.o and pin it | |
| to /sys/fs/bpf/my_netlink | |
| **# bpftool iter pin bpf_iter_hashmap.o /sys/fs/bpf/my_hashmap map id 20** | |
| :: | |
| Create a file-based bpf iterator from bpf_iter_hashmap.o and map with | |
| id 20, and pin it to /sys/fs/bpf/my_hashmap |