#ifndef OPENVSWITCH_GRE_H
#define OPENVSWITCH_GRE_H 1
-#include <linux/if_tunnel.h>
-#include <linux/version.h>
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-#define GRE_IOCTL_ONLY
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
-enum
-{
- IFLA_GRE_UNSPEC,
- IFLA_GRE_LINK,
- IFLA_GRE_IFLAGS,
- IFLA_GRE_OFLAGS,
- IFLA_GRE_IKEY,
- IFLA_GRE_OKEY,
- IFLA_GRE_LOCAL,
- IFLA_GRE_REMOTE,
- IFLA_GRE_TTL,
- IFLA_GRE_TOS,
- IFLA_GRE_PMTUDISC,
- __IFLA_GRE_MAX,
-};
-
-#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <sys/types.h>
#endif
-#define GRE_IOCTL_DEVICE "gre0"
+#define GRE_F_IN_CSUM (1 << 0) /* Require incoming packets to have checksums. */
+#define GRE_F_OUT_CSUM (1 << 1) /* Checksum outgoing packets. */
+#define GRE_F_IN_KEY_MATCH (1 << 2) /* Store the key in tun_id to match in flow table. */
+#define GRE_F_OUT_KEY_ACTION (1 << 3) /* Get the key from a SET_TUNNEL action. */
+#define GRE_F_TOS_INHERIT (1 << 4) /* Inherit the ToS from the inner packet. */
+#define GRE_F_TTL_INHERIT (1 << 5) /* Inherit the TTL from the inner packet. */
+#define GRE_F_PMTUD (1 << 6) /* Enable path MTU discovery. */
-#define SIOCGETGRETAP SIOCGETTUNNEL
-#define SIOCADDGRETAP (SIOCDEVPRIVATE + 10)
-#define SIOCDELGRETAP SIOCDELTUNNEL
-#define SIOCCHGGRETAP (SIOCDEVPRIVATE + 11)
+struct gre_port_config {
+ __u32 flags;
+ __be32 saddr;
+ __be32 daddr;
+ __be32 in_key;
+ __be32 out_key;
+ __u8 tos;
+ __u8 ttl;
+};
#endif /* openvswitch/gre.h */