aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-10-21 14:09:14 +0200
committerDmitry Vyukov <dvyukov@google.com>2021-10-21 15:05:59 +0200
commit7841d8b1babc796e48daf138d80288c2ba1c6ea2 (patch)
tree90a9fb74ec9b0cd179d66af34bf08cae790956f3 /sys
parent99021516e98bad89d08d6254a7c9f58a0dfbeb87 (diff)
sys/linux: extend tcp_zerocopy_receive struct
It has been extended in the kernel, see: https://elixir.bootlin.com/linux/v5.15-rc6/source/include/uapi/linux/tcp.h#L348
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/socket_inet_tcp.txt13
-rw-r--r--sys/linux/socket_inet_tcp.txt.const1
2 files changed, 13 insertions, 1 deletions
diff --git a/sys/linux/socket_inet_tcp.txt b/sys/linux/socket_inet_tcp.txt
index aea321e6b..b59c47e2f 100644
--- a/sys/linux/socket_inet_tcp.txt
+++ b/sys/linux/socket_inet_tcp.txt
@@ -44,9 +44,20 @@ getsockopt$inet6_tcp_TCP_ZEROCOPY_RECEIVE(fd sock_tcp6, level const[IPPROTO_TCP]
tcp_zerocopy_receive {
address vma64
length len[address, int32]
- recv_skip_hint const[0, int32]
+ recv_skip_hint int32 (out)
+ inq int32 (out)
+ err int32 (out)
+ copybuf_address ptr64[out, array[int8]]
+ copybuf_len bytesize[copybuf_address, int32]
+ flags flags[tcp_zerocopy_receive_flags, int32]
+ msg_control ptr64[out, array[int8]]
+ msg_controllen bytesize[msg_control, int64]
+ msg_flags int32 (out)
+ reserved const[0, int32]
}
+tcp_zerocopy_receive_flags = TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT
+
# Specific TCP socket options
# TODO: use TCP_SAVED_SYN to extract sequence numbers
diff --git a/sys/linux/socket_inet_tcp.txt.const b/sys/linux/socket_inet_tcp.txt.const
index 167f58a3f..38324a93e 100644
--- a/sys/linux/socket_inet_tcp.txt.const
+++ b/sys/linux/socket_inet_tcp.txt.const
@@ -37,6 +37,7 @@ TCP_NOTSENT_LOWAT = 25
TCP_NO_QUEUE = 0
TCP_QUEUE_SEQ = 21
TCP_QUICKACK = 12
+TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT = 1
TCP_RECV_QUEUE = 1
TCP_REPAIR = 19
TCP_REPAIR_OFF = 0