aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/socket_xdp.txt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-18 19:45:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-18 19:45:49 +0200
commitdde158e0af7bc1acf328d393a1fcb4eca60a5dfe (patch)
tree411b44720318efb357cf2f3da12eb85fc85d1695 /sys/linux/socket_xdp.txt
parentdcb1eebb7ffdd179de39e7cb89ca085368ee69d5 (diff)
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.
Diffstat (limited to 'sys/linux/socket_xdp.txt')
-rw-r--r--sys/linux/socket_xdp.txt10
1 files changed, 9 insertions, 1 deletions
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 <uapi/linux/if_xdp.h>
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])
@@ -31,6 +31,14 @@ sockaddr_xdp {
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
+ sxdp_queue_id int32[0:64]
sxdp_shared_umem_fd sock_xdp[opt]
}