X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fnetinet%2Ftcp.h;h=1339fcc3b4774108b1711d1c9c5186d85ef8e267;hb=1ca597551bab424a1302938dd3504ddf73904efd;hp=9be2b94057216083ce168dd8e45e90b4672c44ee;hpb=fdaaa68d827430caa930e4c966fa8d8a9f8f64c4;p=musl diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h index 9be2b940..1339fcc3 100644 --- a/include/netinet/tcp.h +++ b/include/netinet/tcp.h @@ -27,6 +27,10 @@ #define TCP_FASTOPEN 23 #define TCP_TIMESTAMP 24 #define TCP_NOTSENT_LOWAT 25 +#define TCP_CC_INFO 26 +#define TCP_SAVE_SYN 27 +#define TCP_SAVED_SYN 28 +#define TCP_REPAIR_WINDOW 29 #define TCP_ESTABLISHED 1 #define TCP_SYN_SENT 2 @@ -41,12 +45,26 @@ #define TCP_CLOSING 11 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +#define TCPOPT_EOL 0 +#define TCPOPT_NOP 1 +#define TCPOPT_MAXSEG 2 +#define TCPOPT_WINDOW 3 +#define TCPOPT_SACK_PERMITTED 4 +#define TCPOPT_SACK 5 +#define TCPOPT_TIMESTAMP 8 +#define TCPOLEN_SACK_PERMITTED 2 +#define TCPOLEN_WINDOW 3 +#define TCPOLEN_MAXSEG 4 +#define TCPOLEN_TIMESTAMP 10 + #define SOL_TCP 6 + #include #include +#include #include -typedef u_int32_t tcp_seq; +typedef uint32_t tcp_seq; #define TH_FIN 0x01 #define TH_SYN 0x02 @@ -62,53 +80,53 @@ struct tcphdr { #endif union { struct { - u_int16_t source; - u_int16_t dest; - u_int32_t seq; - u_int32_t ack_seq; + uint16_t source; + uint16_t dest; + uint32_t seq; + uint32_t ack_seq; #if __BYTE_ORDER == __LITTLE_ENDIAN - u_int16_t res1:4; - u_int16_t doff:4; - u_int16_t fin:1; - u_int16_t syn:1; - u_int16_t rst:1; - u_int16_t psh:1; - u_int16_t ack:1; - u_int16_t urg:1; - u_int16_t res2:2; + uint16_t res1:4; + uint16_t doff:4; + uint16_t fin:1; + uint16_t syn:1; + uint16_t rst:1; + uint16_t psh:1; + uint16_t ack:1; + uint16_t urg:1; + uint16_t res2:2; #else - u_int16_t doff:4; - u_int16_t res1:4; - u_int16_t res2:2; - u_int16_t urg:1; - u_int16_t ack:1; - u_int16_t psh:1; - u_int16_t rst:1; - u_int16_t syn:1; - u_int16_t fin:1; + uint16_t doff:4; + uint16_t res1:4; + uint16_t res2:2; + uint16_t urg:1; + uint16_t ack:1; + uint16_t psh:1; + uint16_t rst:1; + uint16_t syn:1; + uint16_t fin:1; #endif - u_int16_t window; - u_int16_t check; - u_int16_t urg_ptr; + uint16_t window; + uint16_t check; + uint16_t urg_ptr; }; struct { #endif - u_int16_t th_sport; - u_int16_t th_dport; - u_int32_t th_seq; - u_int32_t th_ack; + uint16_t th_sport; + uint16_t th_dport; + uint32_t th_seq; + uint32_t th_ack; #if __BYTE_ORDER == __LITTLE_ENDIAN - u_int8_t th_x2:4; - u_int8_t th_off:4; + uint8_t th_x2:4; + uint8_t th_off:4; #else - u_int8_t th_off:4; - u_int8_t th_x2:4; + uint8_t th_off:4; + uint8_t th_x2:4; #endif - u_int8_t th_flags; - u_int16_t th_win; - u_int16_t th_sum; - u_int16_t th_urp; + uint8_t th_flags; + uint16_t th_win; + uint16_t th_sum; + uint16_t th_urp; #ifdef _GNU_SOURCE }; }; @@ -128,50 +146,68 @@ struct tcphdr { #define TCP_CA_Recovery 3 #define TCP_CA_Loss 4 -struct tcp_info -{ - u_int8_t tcpi_state; - u_int8_t tcpi_ca_state; - u_int8_t tcpi_retransmits; - u_int8_t tcpi_probes; - u_int8_t tcpi_backoff; - u_int8_t tcpi_options; - u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; - u_int32_t tcpi_rto; - u_int32_t tcpi_ato; - u_int32_t tcpi_snd_mss; - u_int32_t tcpi_rcv_mss; - u_int32_t tcpi_unacked; - u_int32_t tcpi_sacked; - u_int32_t tcpi_lost; - u_int32_t tcpi_retrans; - u_int32_t tcpi_fackets; - u_int32_t tcpi_last_data_sent; - u_int32_t tcpi_last_ack_sent; - u_int32_t tcpi_last_data_recv; - u_int32_t tcpi_last_ack_recv; - u_int32_t tcpi_pmtu; - u_int32_t tcpi_rcv_ssthresh; - u_int32_t tcpi_rtt; - u_int32_t tcpi_rttvar; - u_int32_t tcpi_snd_ssthresh; - u_int32_t tcpi_snd_cwnd; - u_int32_t tcpi_advmss; - u_int32_t tcpi_reordering; - u_int32_t tcpi_rcv_rtt; - u_int32_t tcpi_rcv_space; - u_int32_t tcpi_total_retrans; +struct tcp_info { + uint8_t tcpi_state; + uint8_t tcpi_ca_state; + uint8_t tcpi_retransmits; + uint8_t tcpi_probes; + 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; + uint32_t tcpi_rcv_mss; + uint32_t tcpi_unacked; + uint32_t tcpi_sacked; + uint32_t tcpi_lost; + uint32_t tcpi_retrans; + uint32_t tcpi_fackets; + uint32_t tcpi_last_data_sent; + uint32_t tcpi_last_ack_sent; + uint32_t tcpi_last_data_recv; + uint32_t tcpi_last_ack_recv; + uint32_t tcpi_pmtu; + uint32_t tcpi_rcv_ssthresh; + uint32_t tcpi_rtt; + uint32_t tcpi_rttvar; + uint32_t tcpi_snd_ssthresh; + uint32_t tcpi_snd_cwnd; + uint32_t tcpi_advmss; + uint32_t tcpi_reordering; + uint32_t tcpi_rcv_rtt; + uint32_t tcpi_rcv_space; + uint32_t tcpi_total_retrans; + uint64_t tcpi_pacing_rate; + uint64_t tcpi_max_pacing_rate; + uint64_t tcpi_bytes_acked; + uint64_t tcpi_bytes_received; + uint32_t tcpi_segs_out; + uint32_t tcpi_segs_in; + uint32_t tcpi_notsent_bytes; + uint32_t tcpi_min_rtt; + uint32_t tcpi_data_segs_in; + uint32_t tcpi_data_segs_out; + uint64_t tcpi_delivery_rate; }; #define TCP_MD5SIG_MAXKEYLEN 80 -struct tcp_md5sig -{ +struct tcp_md5sig { struct sockaddr_storage tcpm_addr; - u_int16_t __tcpm_pad1; - u_int16_t tcpm_keylen; - u_int32_t __tcpm_pad2; - u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; + uint16_t __tcpm_pad1; + uint16_t tcpm_keylen; + uint32_t __tcpm_pad2; + uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; +}; + +struct tcp_repair_window { + uint32_t snd_wl1; + uint32_t snd_wnd; + uint32_t max_window; + uint32_t rcv_wnd; + uint32_t rcv_wup; }; #endif