xsk: add user memory registration support sockopt
authorBjörn Töpel <bjorn.topel@intel.com>
Wed, 2 May 2018 11:01:23 +0000 (13:01 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 3 May 2018 22:55:23 +0000 (15:55 -0700)
commitc0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7
tree04413efa068765eb74d50fbb1ab6a4318f3d606f
parent68e8b849b221b37a78a110a0307717d45e3593a0
xsk: add user memory registration support sockopt

In this commit the base structure of the AF_XDP address family is set
up. Further, we introduce the abilty register a window of user memory
to the kernel via the XDP_UMEM_REG setsockopt syscall. The memory
window is viewed by an AF_XDP socket as a set of equally large
frames. After a user memory registration all frames are "owned" by the
user application, and not the kernel.

v2: More robust checks on umem creation and unaccount on error.
    Call set_page_dirty_lock on cleanup.
    Simplified xdp_umem_reg.

Co-authored-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/net/xdp_sock.h [new file with mode: 0644]
include/uapi/linux/if_xdp.h [new file with mode: 0644]
net/Makefile
net/xdp/Makefile [new file with mode: 0644]
net/xdp/xdp_umem.c [new file with mode: 0644]
net/xdp/xdp_umem.h [new file with mode: 0644]
net/xdp/xdp_umem_props.h [new file with mode: 0644]
net/xdp/xsk.c [new file with mode: 0644]