]> git.meshlink.io Git - utcp/blobdiff - utcp_priv.h
Distinguish between MTU and MSS.
[utcp] / utcp_priv.h
index 24f4158318ddccd8a4a586b72420fbe87de172c2..de942a8968ae61ef27592126244ad935dcfe5475 100644 (file)
 #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
 
 #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
 
@@ -163,14 +171,15 @@ struct utcp {
 
        // 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