On 3.11 kernel, gre module exports IP_GRE demux API, ovs needs
to use it to register for GRE protocol handler.
Reported-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Tested-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Acked-by: Jesse Gross <jesse@nicira.com>
#include "gso.h"
-static struct gre_cisco_protocol __rcu *gre_cisco_proto;
-
static void gre_csum_fix(struct sk_buff *skb)
{
struct gre_base_hdr *greh;
}
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
+
static __sum16 check_checksum(struct sk_buff *skb)
{
__sum16 csum = 0;
return iptunnel_pull_header(skb, hdr_len, tpi->proto);
}
+static struct gre_cisco_protocol __rcu *gre_cisco_proto;
+
static int gre_cisco_rcv(struct sk_buff *skb)
{
struct tnl_ptk_info tpi;
return ret;
}
+#endif /* 3.11 */
+
#endif /* CONFIG_NET_IPGRE_DEMUX */
}
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
+/* GRE demux not available, implement our own demux. */
#define MAX_GRE_PROTO_PRIORITY 255
#define gre_cisco_protocol rpl_gre_cisco_protocol
#define gre_cisco_unregister rpl_gre_cisco_unregister
int gre_cisco_unregister(struct gre_cisco_protocol *proto);
+#endif
+
#define gre_build_header rpl_gre_build_header
void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
int hdr_len);