X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=utcp_priv.h;h=49ff4bff47bf3f432d3a027f85d8656286a2eb08;hb=d41728102f197003c7db2db6f679e1ca5e26535d;hp=24f4158318ddccd8a4a586b72420fbe87de172c2;hpb=e7e607d6d1b4e53f6f2a6094c02240e4fd8f59d4;p=utcp diff --git a/utcp_priv.h b/utcp_priv.h index 24f4158..49ff4bf 100644 --- a/utcp_priv.h +++ b/utcp_priv.h @@ -30,6 +30,11 @@ #define FIN 4 #define RST 8 +#define AUX_INIT 1 +#define AUX_FRAME 2 +#define AUX_SAK 3 +#define AUX_TIMESTAMP 4 + #define NSACKS 4 #define DEFAULT_SNDBUFSIZE 4096 #define DEFAULT_MAXSNDBUFSIZE 131072 @@ -38,10 +43,11 @@ #define DEFAULT_MTU 1000 -#define DEFAULT_USER_TIMEOUT 60 // s -#define CLOCK_GRANULARITY 1000 // us -#define START_RTO 1000000 // us -#define MAX_RTO 3000000 // us +#define USEC_PER_SEC 1000000 +#define DEFAULT_USER_TIMEOUT 60 // sec +#define CLOCK_GRANULARITY 1000 // usec +#define START_RTO 1000000 // usec +#define MAX_RTO 3000000 // usec struct hdr { uint16_t src; // Source port @@ -96,6 +102,7 @@ struct sack { struct utcp_connection { void *priv; struct utcp *utcp; + uint32_t flags; bool reapable; @@ -118,11 +125,11 @@ struct utcp_connection { uint32_t last; uint32_t cwnd; + uint32_t ssthresh; } snd; struct { uint32_t nxt; - uint32_t wnd; uint32_t irs; } rcv; @@ -145,6 +152,7 @@ struct utcp_connection { bool nodelay; bool keepalive; + bool shut_wr; // Congestion avoidance state @@ -161,16 +169,21 @@ struct utcp { utcp_pre_accept_t pre_accept; utcp_send_t send; + // Packet buffer + + void *pkt; + // Global socket options - uint16_t mtu; - int timeout; // s + uint16_t mtu; // The maximum size of a UTCP packet, including headers. + uint16_t mss; // The maximum size of the payload of a UTCP packet. + int timeout; // sec // RTT variables - uint32_t srtt; // us - uint32_t rttvar; // us - uint32_t rto; // us + uint32_t srtt; // usec + uint32_t rttvar; // usec + uint32_t rto; // usec // Connection management