From dde158e0af7bc1acf328d393a1fcb4eca60a5dfe Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 18 Jun 2018 19:45:49 +0200 Subject: sys/linux: refine xdp description Split sockaddr_xdp for bind. Bind accepts another sock_xdp in addr. Without the split getsockaddr "can" create sock_xdp's because it returns generic sockaddr which contains all addresses, including sockaddr_xdp, which in turn contains sock_xdp. --- sys/linux/socket_xdp.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sys/linux/socket_xdp.txt') diff --git a/sys/linux/socket_xdp.txt b/sys/linux/socket_xdp.txt index 0034a948e..564fe2078 100644 --- a/sys/linux/socket_xdp.txt +++ b/sys/linux/socket_xdp.txt @@ -10,7 +10,7 @@ include resource sock_xdp[sock] socket$xdp(domain const[AF_XDP], type const[SOCK_RAW], proto const[0]) sock_xdp -bind$xdp(fd sock_xdp, addr ptr[in, sockaddr_xdp], len bytesize[addr]) +bind$xdp(fd sock_xdp, addr ptr[in, sockaddr_xdp_bind], len bytesize[addr]) sendmsg$xdp(fd sock_xdp, msg ptr[in, msghdr_xdp], f flags[send_flags]) mmap$xdp(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd sock_xdp, offset flags[xdp_mmap_offsets]) @@ -27,6 +27,14 @@ xdp_mmap_offsets = XDP_PGOFF_RX_RING, XDP_PGOFF_TX_RING, XDP_UMEM_PGOFF_FILL_RIN xdp_ring_sizes = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 1048576, 2097152, 16777216 sockaddr_xdp { + sxdp_family const[AF_XDP, int16] + sxdp_flags flags[sxdp_flags, int16] + sxdp_ifindex ifindex + sxdp_queue_id int32[0:64] + sxdp_shared_umem_fd const[0, int32] +} + +sockaddr_xdp_bind { sxdp_family const[AF_XDP, int16] sxdp_flags flags[sxdp_flags, int16] sxdp_ifindex ifindex -- cgit mrf-deployment