Bpf queue map is a new kind of map that provides a LIFO/FIFO queue implementation.
In some applications, like a SNAT, it is necessary to keep track of a pool of free elemenets, network ports in this case, then a queue can be used for that purpose. v2: - precharge memory on map allocation - add percpu free list when prealloc is enabled Signed-off-by: Mauricio Vasquez B <[email protected]> --- Mauricio Vasquez B (3): bpf: add bpf queue map selftests/bpf: add test cases for BPF_MAP_TYPE_QUEUE bpf: add sample for BPF_MAP_TYPE_QUEUE include/linux/bpf_types.h | 1 include/uapi/linux/bpf.h | 5 + kernel/bpf/Makefile | 2 kernel/bpf/queuemap.c | 285 +++++++++++++++++++++++++++++++ kernel/bpf/syscall.c | 61 +++++-- kernel/bpf/verifier.c | 10 + samples/bpf/.gitignore | 1 samples/bpf/Makefile | 3 samples/bpf/test_map_in_map_user.c | 9 - samples/bpf/test_queuemap.sh | 37 ++++ samples/bpf/test_queuemap_kern.c | 51 ++++++ samples/bpf/test_queuemap_user.c | 53 ++++++ tools/include/uapi/linux/bpf.h | 5 + tools/testing/selftests/bpf/test_maps.c | 71 ++++++++ 14 files changed, 569 insertions(+), 25 deletions(-) create mode 100644 kernel/bpf/queuemap.c create mode 100755 samples/bpf/test_queuemap.sh create mode 100644 samples/bpf/test_queuemap_kern.c create mode 100644 samples/bpf/test_queuemap_user.c -- Signature -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#1419): https://lists.iovisor.org/g/iovisor-dev/message/1419 Mute This Topic: https://lists.iovisor.org/mt/24146803/21656 Group Owner: [email protected] Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
