update netinet/tcp.h for linux v4.18
authorSzabolcs Nagy <nsz@port70.net>
Tue, 21 Aug 2018 22:27:57 +0000 (22:27 +0000)
committerRich Felker <dalias@aerifal.cx>
Mon, 10 Dec 2018 03:23:30 +0000 (22:23 -0500)
add packet delivery info to tcp_info,
new in linux commit feb5f2ec646483fb66f9ad7218b1aad2a93a2a5c
add TCP_ZEROCOPY_RECEIVE socket option for zerocopy receive,
new in linux commit 05255b823a6173525587f29c4e8f1ca33fd7677d
add TCP_INQ socket option and TCP_CM_INQ cmsg to get in-queue bytes in cmsg
upon read, new in linux commit b75eba76d3d72e2374fac999926dafef2997edd2
add TCP_REPAIR_* to fix repair socket window probe patch,
new in linux commit 31048d7aedf31bf0f69c54a662944632f29d82f2

include/netinet/tcp.h

index 1e2acfbff847b486ce314ce4fb02291f0f8f7f4b..584af2f5b92c353c401f50b343b2560bafefe247 100644 (file)
 #define TCP_MD5SIG_EXT   32
 #define TCP_FASTOPEN_KEY 33
 #define TCP_FASTOPEN_NO_COOKIE 34
+#define TCP_ZEROCOPY_RECEIVE   35
+#define TCP_INQ          36
+
+#define TCP_CM_INQ TCP_INQ
 
 #define TCP_ESTABLISHED  1
 #define TCP_SYN_SENT     2
@@ -66,6 +70,8 @@ enum {
        TCP_NLA_SNDQ_SIZE,
        TCP_NLA_CA_STATE,
        TCP_NLA_SND_SSTHRESH,
+       TCP_NLA_DELIVERED,
+       TCP_NLA_DELIVERED_CE,
 };
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
@@ -217,6 +223,8 @@ struct tcp_info {
        uint64_t tcpi_busy_time;
        uint64_t tcpi_rwnd_limited;
        uint64_t tcpi_sndbuf_limited;
+       uint32_t tcpi_delivered;
+       uint32_t tcpi_delivered_ce;
 };
 
 #define TCP_MD5SIG_MAXKEYLEN    80
@@ -240,6 +248,10 @@ struct tcp_diag_md5sig {
        uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
 };
 
+#define TCP_REPAIR_ON          1
+#define TCP_REPAIR_OFF         0
+#define TCP_REPAIR_OFF_NO_WP   -1
+
 struct tcp_repair_window {
        uint32_t snd_wl1;
        uint32_t snd_wnd;
@@ -248,6 +260,12 @@ struct tcp_repair_window {
        uint32_t rcv_wup;
 };
 
+struct tcp_zerocopy_receive {
+       uint64_t address;
+       uint32_t length;
+       uint32_t recv_skip_hint;
+};
+
 #endif
 
 #endif