From dabd3fe3f8c0161aab5dc8e2cefb6375e810a38b Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Wed, 7 Nov 2012 07:35:14 -0800 Subject: [PATCH] datapath: ipv6_skip_exthdr() is now fully upstream. OVS required some extensions to ipv6_skip_exthdr() which have since been accepted upstream. On kernels with these changes we can now use the upstream version instead of our compatibility code. Signed-off-by: Jesse Gross Acked-by: Kyle Mestery --- datapath/linux/compat/exthdrs_core.c | 6 +++--- datapath/linux/compat/include/net/ipv6.h | 15 ++++++++------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/datapath/linux/compat/exthdrs_core.c b/datapath/linux/compat/exthdrs_core.c index eb56e6b2..e2b4a03c 100644 --- a/datapath/linux/compat/exthdrs_core.c +++ b/datapath/linux/compat/exthdrs_core.c @@ -1,9 +1,8 @@ #include +#include #include -/* This function is upstream but not the version which supplies the - * fragment offset. We plan to propose the extended version. - */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) int rpl_ipv6_skip_exthdr(const struct sk_buff *skb, int start, u8 *nexthdrp, __be16 *frag_offp) { @@ -46,6 +45,7 @@ int rpl_ipv6_skip_exthdr(const struct sk_buff *skb, int start, *nexthdrp = nexthdr; return start; } +#endif /* Kernel version < 3.3 */ /* * find the offset to specified header or the protocol number of last header diff --git a/datapath/linux/compat/include/net/ipv6.h b/datapath/linux/compat/include/net/ipv6.h index 09115a49..d1e32485 100644 --- a/datapath/linux/compat/include/net/ipv6.h +++ b/datapath/linux/compat/include/net/ipv6.h @@ -1,21 +1,22 @@ #ifndef __NET_IPV6_WRAPPER_H #define __NET_IPV6_WRAPPER_H 1 +#include + #include_next +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +#define ipv6_skip_exthdr rpl_ipv6_skip_exthdr +extern int ipv6_skip_exthdr(const struct sk_buff *skb, int start, + u8 *nexthdrp, __be16 *frag_offp); +#endif + enum { OVS_IP6T_FH_F_FRAG = (1 << 0), OVS_IP6T_FH_F_AUTH = (1 << 1), OVS_IP6T_FH_F_SKIP_RH = (1 << 2), }; -/* This function is upstream but not the version which supplies the - * fragment offset. We plan to propose the extended version. - */ -#define ipv6_skip_exthdr rpl_ipv6_skip_exthdr -extern int ipv6_skip_exthdr(const struct sk_buff *skb, int start, - u8 *nexthdrp, __be16 *frag_offp); - /* This function is upstream, but not the version which skips routing * headers with 0 segments_left. We plan to propose the extended version. */ #define ipv6_find_hdr rpl_ipv6_find_hdr -- 2.30.2