fix null pointer dereference in setitimer time32 compat shim
[musl] / include / netinet / tcp.h
index b9b8a7f..adcd45e 100644 (file)
 #define TCP_SAVE_SYN     27
 #define TCP_SAVED_SYN    28
 #define TCP_REPAIR_WINDOW 29
+#define TCP_FASTOPEN_CONNECT 30
+#define TCP_ULP          31
+#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
 #define TCP_LISTEN       10
 #define TCP_CLOSING      11
 
+enum {
+       TCP_NLA_PAD,
+       TCP_NLA_BUSY,
+       TCP_NLA_RWND_LIMITED,
+       TCP_NLA_SNDBUF_LIMITED,
+       TCP_NLA_DATA_SEGS_OUT,
+       TCP_NLA_TOTAL_RETRANS,
+       TCP_NLA_PACING_RATE,
+       TCP_NLA_DELIVERY_RATE,
+       TCP_NLA_SND_CWND,
+       TCP_NLA_REORDERING,
+       TCP_NLA_MIN_RTT,
+       TCP_NLA_RECUR_RETRANS,
+       TCP_NLA_DELIVERY_RATE_APP_LMT,
+       TCP_NLA_SNDQ_SIZE,
+       TCP_NLA_CA_STATE,
+       TCP_NLA_SND_SSTHRESH,
+       TCP_NLA_DELIVERED,
+       TCP_NLA_DELIVERED_CE,
+       TCP_NLA_BYTES_SENT,
+       TCP_NLA_BYTES_RETRANS,
+       TCP_NLA_DSACK_DUPS,
+       TCP_NLA_REORD_SEEN,
+       TCP_NLA_SRTT,
+};
+
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 #define TCPOPT_EOL              0
 #define TCPOPT_NOP              1
@@ -62,7 +97,6 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <stdint.h>
-#include <endian.h>
 
 typedef uint32_t tcp_seq;
 
@@ -154,6 +188,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;
        uint32_t tcpi_rto;
        uint32_t tcpi_ato;
        uint32_t tcpi_snd_mss;
@@ -188,18 +223,43 @@ struct tcp_info {
        uint32_t tcpi_min_rtt;
        uint32_t tcpi_data_segs_in;
        uint32_t tcpi_data_segs_out;
+       uint64_t tcpi_delivery_rate;
+       uint64_t tcpi_busy_time;
+       uint64_t tcpi_rwnd_limited;
+       uint64_t tcpi_sndbuf_limited;
+       uint32_t tcpi_delivered;
+       uint32_t tcpi_delivered_ce;
+       uint64_t tcpi_bytes_sent;
+       uint64_t tcpi_bytes_retrans;
+       uint32_t tcpi_dsack_dups;
+       uint32_t tcpi_reord_seen;
 };
 
 #define TCP_MD5SIG_MAXKEYLEN    80
 
+#define TCP_MD5SIG_FLAG_PREFIX  1
+
 struct tcp_md5sig {
        struct sockaddr_storage tcpm_addr;
-       uint16_t __tcpm_pad1;
+       uint8_t tcpm_flags;
+       uint8_t tcpm_prefixlen;
        uint16_t tcpm_keylen;
-       uint32_t __tcpm_pad2;
+       uint32_t __tcpm_pad;
        uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
 };
 
+struct tcp_diag_md5sig {
+       uint8_t tcpm_family;
+       uint8_t tcpm_prefixlen;
+       uint16_t tcpm_keylen;
+       uint32_t tcpm_addr[4];
+       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;
@@ -208,6 +268,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