]> git.meshlink.io Git - utcp/blobdiff - utcp_priv.h
Don't call the poll callback unnecessarily.
[utcp] / utcp_priv.h
index 7d2d07396c7c6b097d39ea39bd23dfca98f43be1..0b2efe4e1efd9c8e81b5981554f29b8a8bc8f6cd 100644 (file)
 
 #define DEFAULT_MTU 1000
 
-#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
+static const long USEC_PER_SEC = 1000000;
+static const long NSEC_PER_SEC = 1000000000;
+static const int DEFAULT_USER_TIMEOUT = 60; // sec
+static const long START_RTO = 1 * USEC_PER_SEC; // usec
+static const long MAX_RTO  = 3 * USEC_PER_SEC; // usec
 
 struct hdr {
        uint16_t src; // Source port
@@ -106,6 +106,7 @@ struct utcp_connection {
        uint32_t flags;
 
        bool reapable;
+       bool do_poll;
 
        // Callbacks
 
@@ -138,13 +139,14 @@ struct utcp_connection {
 
        // Timers
 
-       struct timeval conn_timeout;
-       struct timeval rtrx_timeout;
-       struct timeval rtt_start;
+       struct timespec conn_timeout;
+       struct timespec rtrx_timeout;
+       struct timespec rtt_start;
        uint32_t rtt_seq;
 
        // Buffers
 
+       uint32_t prev_free;
        struct buffer sndbuf;
        struct buffer rcvbuf;
        struct sack sacks[NSACKS];
@@ -157,7 +159,7 @@ struct utcp_connection {
 
        // Congestion avoidance state
 
-       struct timeval tlast;
+       struct timespec tlast;
        uint64_t bandwidth;
 };