#define AUX_SAK 3
#define AUX_TIMESTAMP 4
-#define NSACKS 4
-#define DEFAULT_SNDBUFSIZE 0
-#define DEFAULT_MAXSNDBUFSIZE 131072
-#define DEFAULT_RCVBUFSIZE 0
-#define DEFAULT_MAXRCVBUFSIZE 131072
-
#define MAX_UNRELIABLE_SIZE 16777215
#define DEFAULT_MTU 1000
[TIME_WAIT] = "TIME_WAIT"
};
-struct buffer {
- char *data;
- uint32_t offset;
- uint32_t used;
- uint32_t size;
- uint32_t maxsize;
- bool external;
-};
-
-struct sack {
- uint32_t offset;
- uint32_t len;
-};
-
struct utcp_connection {
void *priv;
struct utcp *utcp;
uint32_t flags;
bool reapable;
- bool do_poll;
// Callbacks
utcp_recv_t recv;
- utcp_poll_t poll;
// TCP State
uint32_t rttvar; // usec
uint32_t rto; // usec
- // Buffers
-
- uint32_t prev_free;
- struct buffer sndbuf;
- struct buffer rcvbuf;
- struct sack sacks[NSACKS];
-
// Per-socket options
bool nodelay;
utcp_accept_t accept;
utcp_listen_t listen;
- utcp_retransmit_t retransmit;
utcp_send_t send;
// Packet buffer