X-Git-Url: http://git.meshlink.io/?p=utcp;a=blobdiff_plain;f=utcp_priv.h;h=197fd2685a32416f46bc87652ddae5bb27664553;hp=0b2efe4e1efd9c8e81b5981554f29b8a8bc8f6cd;hb=HEAD;hpb=97f8b67ac77d0623e536d302eb1e08666be7d411 diff --git a/utcp_priv.h b/utcp_priv.h index 0b2efe4..197fd26 100644 --- a/utcp_priv.h +++ b/utcp_priv.h @@ -29,6 +29,7 @@ #define ACK 2 #define FIN 4 #define RST 8 +#define MF 16 #define AUX_INIT 1 #define AUX_FRAME 2 @@ -41,13 +42,14 @@ #define DEFAULT_RCVBUFSIZE 0 #define DEFAULT_MAXRCVBUFSIZE 131072 +#define MAX_UNRELIABLE_SIZE 65536 #define DEFAULT_MTU 1000 -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 +#define USEC_PER_SEC 1000000L +#define NSEC_PER_SEC 1000000000L +#define DEFAULT_USER_TIMEOUT 60 +#define START_RTO (1 * USEC_PER_SEC) +#define MAX_RTO (3 * USEC_PER_SEC) struct hdr { uint16_t src; // Source port @@ -144,6 +146,12 @@ struct utcp_connection { struct timespec rtt_start; uint32_t rtt_seq; + // RTT variables + + uint32_t srtt; // usec + uint32_t rttvar; // usec + uint32_t rto; // usec + // Buffers uint32_t prev_free; @@ -170,6 +178,7 @@ struct utcp { utcp_accept_t accept; utcp_pre_accept_t pre_accept; + utcp_retransmit_t retransmit; utcp_send_t send; // Packet buffer @@ -182,12 +191,6 @@ struct utcp { uint16_t mss; // The maximum size of the payload of a UTCP packet. int timeout; // sec - // RTT variables - - uint32_t srtt; // usec - uint32_t rttvar; // usec - uint32_t rto; // usec - // Connection management struct utcp_connection **connections;