Importing all of DRL, including ulogd and all of its files.
[distributedratelimiting.git] / include / ulogd / gre.h
1 #ifndef _ULOGD_GRE_H_
2 #define _ULOGD_GRE_H_
3
4 #define GRE_FLAG_CKSUM  htons(0x8000)  /* Checksum Present */
5 #define GRE_FLAG_ROUTE  htons(0x4000)  /* Routing Present */
6 #define GRE_FLAG_KEY    htons(0x2000)  /* Key Present */
7 #define GRE_FLAG_SEQ    htons(0x1000)  /* Sequence Present */
8 #define GRE_FLAG_SSR    htons(0x0800)  /* Strict Source Route */
9 #define GRE_FLAG_RECUR  htons(0x0700)  /* Recursion Control */
10 #define GRE_FLAG_ACK    htons(0x0080)  /* Acknowledgement Present (PPTP only) */
11 #define GRE_FLAG_FLAGS  htons(0x0078)  /* Additional Flags */
12 #define GRE_FLAG_VER    htons(0x0007)  /* Version Number */
13 #define GRE_VER_GRE     htons(0x0000)  /* GRE version 0 (RFC1701 GRE) */
14 #define GRE_VER_PPTP    htons(0x0001)  /* Enhanced GRE (RFC2637 PPTP) */
15
16 struct grehdr {
17   u_int16_t  flags_ver;          /* See above */
18   u_int16_t  protocol;           /* Ethernet protocol type */
19   u_int16_t  cksum;              /* present if (flags_ver & GRE_FLAG_CKSUM) */
20   u_int16_t  reserved1;          /* present if (flags_ver & GRE_FLAG_CKSUM) */
21   u_int32_t  key;                /* present if (flags_ver & GRE_FLAG_KEY) */
22   u_int32_t  seq;                /* present if (flags_ver & GRE_FLAG_SEQ) */
23 };
24
25 struct pptphdr {
26   u_int16_t  flags_ver;          /* See above */
27   u_int16_t  protocol;           /* Ethernet protocol type */
28   u_int16_t  payload_len;        /* following payload length (not including this header) */
29   u_int16_t  call_id;            /* peer call ID */
30   u_int32_t  seq;                /* present if (flags_ver & GRE_FLAG_SEQ) */
31   u_int32_t  ack;                /* present if (flags_ver & GRE_FLAG_ACK) */
32 };
33
34 #endif  /* _ULOGD_GRE_H_ */