mbox series

[bpf-next,0/3] Implement bpf map queue

Message ID 153356387977.6981.12236150594041620482.stgit@kernel
Headers show
Series Implement bpf map queue | expand

Message

Mauricio Vasquez Aug. 6, 2018, 1:58 p.m. UTC
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.vasquez@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

--