#ifndef _TCP_H
#define _TCP_H
#define TCP_INITIAL_TIMEOUT (3*TICKS_PER_SEC)
#define TCP_MAX_TIMEOUT (60*TICKS_PER_SEC)
#define TCP_MIN_TIMEOUT (TICKS_PER_SEC)
#define TCP_MAX_RETRY 10
#define TCP_MAX_HEADER ((int)sizeof(struct iphdr)+64)
#define TCP_MIN_WINDOW (1500-TCP_MAX_HEADER)
#define TCP_MAX_WINDOW (65535-TCP_MAX_HEADER)
#define FIN 1
#define SYN 2
#define RST 4
#define PSH 8
#define ACK 16
#define URG 32
struct tcphdr {
uint16_t src;
uint16_t dst;
int32_t seq;
int32_t ack;
uint16_t ctrl;
uint16_t window;
uint16_t chksum;
uint16_t urgent;
};
extern int tcp_transaction ( unsigned long destip, unsigned int destsock,
void *ptr,
int (*send)(int len, void *buf, void *ptr),
int (*recv)(int len, const void *buf, void *ptr));
#endif /* _TCP_H */