
#ifndef _PFRING_UTILS_H_
#define _PFRING_UTILS_H_

#if 0
struct eth_hdr {
  unsigned char   h_dest[ETH_ALEN];       /* destination eth addr */
  unsigned char   h_source[ETH_ALEN];     /* source ether addr    */
  u_int16_t       h_proto;                /* packet type ID field */
};

/* defined in pf_ring.h */
struct eth_vlan_hdr {
  u_int16_t       h_vlan_id;              /* Tag Control Information (QoS, VLAN ID) */
  u_int16_t       h_proto;                /* packet type ID field */
};
#endif

#define __LITTLE_ENDIAN_BITFIELD /* FIX */
struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
  u_int8_t	ihl:4,
    version:4;
#elif defined (__BIG_ENDIAN_BITFIELD)
  u_int8_t	version:4,
    ihl:4;
#else
#error	"Please fix <asm/byteorder.h>"
#endif
  u_int8_t	tos;
  u_int16_t	tot_len;
  u_int16_t	id;
#define IP_CE		0x8000
#define IP_DF		0x4000
#define IP_MF		0x2000
#define IP_OFFSET	0x1FFF
  u_int16_t	frag_off;
  u_int8_t	ttl;
  u_int8_t	protocol;
  u_int16_t	check;
  u_int32_t	saddr;
  u_int32_t	daddr;
  /*The options start here. */
};

struct tcphdr {
  u_int16_t	source;
  u_int16_t	dest;
  u_int32_t	seq;
  u_int32_t	ack_seq;
#if defined(__LITTLE_ENDIAN_BITFIELD)
  u_int16_t	res1:4,
    doff:4,
    fin:1,
    syn:1,
    rst:1,
    psh:1,
    ack:1,
    urg:1,
    ece:1,
    cwr:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
  u_int16_t	doff:4,
    res1:4,
    cwr:1,
    ece:1,
    urg:1,
    ack:1,
    psh:1,
    rst:1,
    syn:1,
    fin:1;
#else
#error	"Adjust your <asm/byteorder.h> defines"
#endif
  u_int16_t	window;
  u_int16_t	check;
  u_int16_t	urg_ptr;
};

struct udphdr {
  u_int16_t	source;
  u_int16_t	dest;
  u_int16_t	len;
  u_int16_t	check;
};

#define TH_FIN_MULTIPLIER	0x01
#define TH_SYN_MULTIPLIER	0x02
#define TH_RST_MULTIPLIER	0x04
#define TH_PUSH_MULTIPLIER	0x08
#define TH_ACK_MULTIPLIER	0x10
#define TH_URG_MULTIPLIER	0x20

struct ipv6hdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
  u_int8_t		priority:4,
		version:4;
#elif defined(__BIG_ENDIAN_BITFIELD)
  u_int8_t		version:4,
		priority:4;
#else
#endif
  u_int8_t		flow_lbl[3];

  u_int8_t	        payload_len;
  u_int8_t		nexthdr;
  u_int8_t		hop_limit;

  struct in6_addr saddr;
  struct in6_addr daddr;
};

struct ipv6_opt_hdr {
  u_int8_t		nexthdr;
  u_int8_t 		hdrlen;
	/* TLV encoded option data follows */
} __attribute__((packed));

#define NEXTHDR_HOP     	  0
#define NEXTHDR_TCP     	  6
#define NEXTHDR_UDP     	 17
#define NEXTHDR_IPV6    	 41
#define NEXTHDR_ROUTING 	 43
#define NEXTHDR_FRAGMENT	 44
#define NEXTHDR_ESP     	 50
#define NEXTHDR_AUTH    	 51
#define NEXTHDR_ICMP    	 58
#define NEXTHDR_NONE    	 59
#define NEXTHDR_DEST    	 60
#define NEXTHDR_MOBILITY	135

#endif /* _PFRING_UTILS_H_ */

