]> asedeno.scripts.mit.edu Git - linux.git/commit
bpf: introduce new bpf AF_XDP map type BPF_MAP_TYPE_XSKMAP
authorBjörn Töpel <bjorn.topel@intel.com>
Wed, 2 May 2018 11:01:28 +0000 (13:01 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 3 May 2018 22:55:24 +0000 (15:55 -0700)
commitfbfc504a24f53f7ebe128ab55cb5dba634f4ece8
treed88b2d04cf60d5b77a5d794a3e0b006738c47e77
parentc497176cb2e478f0a5713b0e05f242276e3194b5
bpf: introduce new bpf AF_XDP map type BPF_MAP_TYPE_XSKMAP

The xskmap is yet another BPF map, very much inspired by
dev/cpu/sockmap, and is a holder of AF_XDP sockets. A user application
adds AF_XDP sockets into the map, and by using the bpf_redirect_map
helper, an XDP program can redirect XDP frames to an AF_XDP socket.

Note that a socket that is bound to certain ifindex/queue index will
*only* accept XDP frames from that netdev/queue index. If an XDP
program tries to redirect from a netdev/queue index other than what
the socket is bound to, the frame will not be received on the socket.

A socket can reside in multiple maps.

v3: Fixed race and simplified code.
v2: Removed one indirection in map lookup.

Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf.h
include/linux/bpf_types.h
include/net/xdp_sock.h
include/uapi/linux/bpf.h
kernel/bpf/Makefile
kernel/bpf/verifier.c
kernel/bpf/xskmap.c [new file with mode: 0644]
net/xdp/xsk.c