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. Signed-off-by: Mauricio Vasquez B <mauricio.vasq...@polito.it> --- 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 | 287 +++++++++++++++++++++++++++++++ kernel/bpf/syscall.c | 61 +++++-- kernel/bpf/verifier.c | 16 +- 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 | 72 ++++++++ 14 files changed, 577 insertions(+), 26 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 --