#ifndef VJBSDHDR_H
#define VJBSDHDR_H

#include "lwip/tcp.h"


/*
 * Structure of an internet header, naked of options.
 *
 * We declare ip_len and ip_off to be short, rather than u_short
 * pragmatically since otherwise unsigned comparisons can result
 * against negative integers quite easily, and fail in subtle ways.
 */
struct ip
{
#if defined(NO_CHAR_BITFIELDS)
	u_char ip_hl_v;	/* bug in GCC for mips means the bitfield stuff will sometimes break - so we use a char for both and get round it with macro's instead... */
#else
#if BYTE_ORDER == LITTLE_ENDIAN
	unsigned ip_hl:4,				/* header length */
		ip_v:4;						/* version */
#elif BYTE_ORDER == BIG_ENDIAN 
	unsigned ip_v:4,					/* version */
		ip_hl:4;					/* header length */
#else
	COMPLAIN - NO BYTE ORDER SELECTED!
#endif
#endif
	u_char	ip_tos;					/* type of service */
	u_short	ip_len;					/* total length */
	u_short	ip_id;					/* identification */
	u_short	ip_off;					/* fragment offset field */
#define	IP_DF 0x4000				/* dont fragment flag */
#define	IP_MF 0x2000				/* more fragments flag */
#define	IP_OFFMASK 0x1fff			/* mask for fragmenting bits */
	u_char	ip_ttl;					/* time to live */
	u_char	ip_p;					/* protocol */
	u_short	ip_sum;					/* checksum */
	struct	in_addr ip_src,ip_dst;	/* source and dest address */
};

typedef u32_t tcp_seq;

/*
 * TCP header.
 * Per RFC 793, September, 1981.
 */
struct tcphdr  
{
	u_short	th_sport;		/* source port */
	u_short	th_dport;		/* destination port */
	tcp_seq	th_seq;			/* sequence number */
	tcp_seq	th_ack;			/* acknowledgement number */
#if defined(NO_CHAR_BITFIELDS)
	u_char th_x2_off;
#else
#if BYTE_ORDER == LITTLE_ENDIAN
	unsigned	th_x2:4,		/* (unused) */
			th_off:4;		/* data offset */
#endif
#if BYTE_ORDER == BIG_ENDIAN 
	unsigned	th_off:4,		/* data offset */
			th_x2:4;		/* (unused) */
#endif
#endif
	u_char	th_flags;
	u_short	th_win;			/* window */
	u_short	th_sum;			/* checksum */
	u_short	th_urp;			/* urgent pointer */
};

#endif /* VJBSDHDR_H */
