]> git.meshlink.io Git - utcp/blobdiff - utcp_priv.h
Implement ringbuffers.
[utcp] / utcp_priv.h
index fa706bcf84bcad5eed5e825bf3c7bc671cd51542..7d2d07396c7c6b097d39ea39bd23dfca98f43be1 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
@@ -84,6 +89,7 @@ static const char *strstate[] __attribute__((unused)) = {
 
 struct buffer {
        char *data;
+       uint32_t offset;
        uint32_t used;
        uint32_t size;
        uint32_t maxsize;
@@ -120,11 +126,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;
 
@@ -147,6 +153,7 @@ struct utcp_connection {
 
        bool nodelay;
        bool keepalive;
+       bool shut_wr;
 
        // Congestion avoidance state
 
@@ -163,9 +170,14 @@ struct utcp {
        utcp_pre_accept_t pre_accept;
        utcp_send_t send;
 
+       // Packet buffer
+
+       void *pkt;
+
        // Global socket options
 
-       uint16_t mtu;
+       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