netinet/tcp.h: add tcp zerocopy related changes from linux v5.11
[musl] / include / netinet / tcp.h
index 2eac793..30f2023 100644 (file)
@@ -38,6 +38,7 @@
 #define TCP_FASTOPEN_NO_COOKIE 34
 #define TCP_ZEROCOPY_RECEIVE   35
 #define TCP_INQ          36
+#define TCP_TX_DELAY     37
 
 #define TCP_CM_INQ TCP_INQ
 
@@ -76,6 +77,9 @@ enum {
        TCP_NLA_BYTES_RETRANS,
        TCP_NLA_DSACK_DUPS,
        TCP_NLA_REORD_SEEN,
+       TCP_NLA_SRTT,
+       TCP_NLA_TIMEOUT_REHASH,
+       TCP_NLA_BYTES_NOTSENT,
 };
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
@@ -96,7 +100,6 @@ enum {
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <stdint.h>
-#include <endian.h>
 
 typedef uint32_t tcp_seq;
 
@@ -180,6 +183,13 @@ struct tcphdr {
 #define TCP_CA_Recovery                3
 #define TCP_CA_Loss            4
 
+enum tcp_fastopen_client_fail {
+       TFO_STATUS_UNSPEC,
+       TFO_COOKIE_UNAVAILABLE,
+       TFO_DATA_NOT_ACKED,
+       TFO_SYN_RETRANSMITTED,
+};
+
 struct tcp_info {
        uint8_t tcpi_state;
        uint8_t tcpi_ca_state;
@@ -188,7 +198,7 @@ struct tcp_info {
        uint8_t tcpi_backoff;
        uint8_t tcpi_options;
        uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
-       uint8_t tcpi_delivery_rate_app_limited : 1;
+       uint8_t tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2;
        uint32_t tcpi_rto;
        uint32_t tcpi_ato;
        uint32_t tcpi_snd_mss;
@@ -233,18 +243,21 @@ struct tcp_info {
        uint64_t tcpi_bytes_retrans;
        uint32_t tcpi_dsack_dups;
        uint32_t tcpi_reord_seen;
+       uint32_t tcpi_rcv_ooopack;
+       uint32_t tcpi_snd_wnd;
 };
 
 #define TCP_MD5SIG_MAXKEYLEN    80
 
-#define TCP_MD5SIG_FLAG_PREFIX  1
+#define TCP_MD5SIG_FLAG_PREFIX  0x1
+#define TCP_MD5SIG_FLAG_IFINDEX 0x2
 
 struct tcp_md5sig {
        struct sockaddr_storage tcpm_addr;
        uint8_t tcpm_flags;
        uint8_t tcpm_prefixlen;
        uint16_t tcpm_keylen;
-       uint32_t __tcpm_pad;
+       int tcpm_ifindex;
        uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
 };
 
@@ -268,10 +281,17 @@ struct tcp_repair_window {
        uint32_t rcv_wup;
 };
 
+#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1
+
 struct tcp_zerocopy_receive {
        uint64_t address;
        uint32_t length;
        uint32_t recv_skip_hint;
+       uint32_t inq;
+       int32_t err;
+       uint64_t copybuf_address;
+       int32_t copybuf_len;
+       uint32_t flags;
 };
 
 #endif