X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=include%2Fnetinet%2Ftcp.h;h=adcd45e7f2e3a8e3fe91a2cab6aa53749fd64a7d;hb=9432bbd4e880850357fd0a81b429499451eb2084;hp=d6f41cab2535361250c913be4906a6af8cfeb90a;hpb=349877755d283533c19c86244d17801574a60b51;p=musl diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h index d6f41cab..adcd45e7 100644 --- a/include/netinet/tcp.h +++ b/include/netinet/tcp.h @@ -30,6 +30,16 @@ #define TCP_CC_INFO 26 #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 @@ -43,6 +53,32 @@ #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 @@ -61,7 +97,6 @@ #include #include #include -#include typedef uint32_t tcp_seq; @@ -145,8 +180,7 @@ struct tcphdr { #define TCP_CA_Recovery 3 #define TCP_CA_Loss 4 -struct tcp_info -{ +struct tcp_info { uint8_t tcpi_state; uint8_t tcpi_ca_state; uint8_t tcpi_retransmits; @@ -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,19 +223,57 @@ 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 -struct tcp_md5sig -{ +#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; + uint32_t max_window; + uint32_t rcv_wnd; + uint32_t rcv_wup; +}; + +struct tcp_zerocopy_receive { + uint64_t address; + uint32_t length; + uint32_t recv_skip_hint; +}; + #endif #endif