Message ID | 1534862529-12916-1-git-send-email-pkusunyifeng@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [ovs-dev,1/2] porting: Support for kernel 4.16.x & 4.17.x | expand |
On 8/21/2018 7:42 AM, Yifeng Sun wrote: > Add support for kernel version up to 4.17.x. On Travis, build passed > for all kernel versions. And no new test fails are introduced by this > patch. > > Cleaned up file datapath/linux/compat/include/net/ip6_fib.h which > has no effect to kernel module but brings complexity to porting. > > Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> LGTM. Travis is happy: https://travis-ci.org/gvrose8192/ovs-experimental/builds/419847640 I ran check-kmod on a 4.16.13 kernel and got one transient error but everything else looks good there too. ## ------------- ## ## Test results. ## ## ------------- ## ERROR: 116 tests were run, 1 failed unexpectedly. 14 tests were skipped. ## -------------------------------------- ## ## system-kmod-testsuite.log was created. ## ## -------------------------------------- ## Please send `tests/system-kmod-testsuite.log' and all information you think might help: To: <bugs@openvswitch.org> Subject: [openvswitch 2.10.90] system-kmod-testsuite: 109 failed Nice work, thanks!!! Reviewed-by: Greg Rose <gvrose8192@gmail.com> Tested-by: Greg Rose <gvrose8192@gmail.com> > --- > .travis.yml | 2 ++ > Documentation/faq/releases.rst | 2 +- > NEWS | 2 +- > acinclude.m4 | 6 ++-- > datapath/linux/Modules.mk | 1 - > datapath/linux/compat/include/net/dst_metadata.h | 14 ++++++--- > datapath/linux/compat/include/net/ip6_fib.h | 40 ------------------------ > 7 files changed, 15 insertions(+), 52 deletions(-) > delete mode 100644 datapath/linux/compat/include/net/ip6_fib.h > > diff --git a/.travis.yml b/.travis.yml > index 998b33d..21447b5 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -35,6 +35,8 @@ env: > - BUILD_ENV="-m32" OPTS="--disable-ssl" > - KERNEL=3.16.54 DPDK=1 > - KERNEL=3.16.54 DPDK=1 OPTS="--enable-shared" > + - KERNEL=4.17.14 > + - KERNEL=4.16.18 > - KERNEL=4.15.18 > - KERNEL=4.14.63 > - KERNEL=4.9.120 > diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst > index e64fa22..41d41e3 100644 > --- a/Documentation/faq/releases.rst > +++ b/Documentation/faq/releases.rst > @@ -67,7 +67,7 @@ Q: What Linux kernel versions does each Open vSwitch release work with? > 2.7.x 3.10 to 4.9 > 2.8.x 3.10 to 4.12 > 2.9.x 3.10 to 4.13 > - 2.10.x 3.10 to 4.15 > + 2.10.x 3.10 to 4.17 > ============ ============== > > Open vSwitch userspace should also work with the Linux kernel module built > diff --git a/NEWS b/NEWS > index 8987f9a..5bab26d 100644 > --- a/NEWS > +++ b/NEWS > @@ -4,7 +4,7 @@ Post-v2.10.0 > as the default syslog method. > - The environment variable OVS_CTL_TIMEOUT, if set, is now used > as the default timeout for control utilities. > - > + - Support for the kernel versions 4.16.x and 4.17.x. > > v2.10.0 - xx xxx xxxx > --------------------- > diff --git a/acinclude.m4 b/acinclude.m4 > index a6a0e9a..ab141bd 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -151,10 +151,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [ > AC_MSG_RESULT([$kversion]) > > if test "$version" -ge 4; then > - if test "$version" = 4 && test "$patchlevel" -le 15; then > + if test "$version" = 4 && test "$patchlevel" -le 17; then > : # Linux 4.x > else > - AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.15.x is not supported (please refer to the FAQ for advice)]) > + AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.17.x is not supported (please refer to the FAQ for advice)]) > fi > elif test "$version" = 3 && test "$patchlevel" -ge 10; then > : # Linux 3.x > @@ -803,8 +803,6 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ > [OVS_DEFINE(HAVE_NF_CONNTRACK_HELPER_PUT)]) > OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h],[[[[:space:]]]SKB_GSO_UDP[[[:space:]]]], > [OVS_DEFINE([HAVE_SKB_GSO_UDP])]) > - OVS_GREP_IFELSE([$KSRC/include/net/dst.h],[DST_NOCACHE], > - [OVS_DEFINE([HAVE_DST_NOCACHE])]) > OVS_FIND_FIELD_IFELSE([$KSRC/include/net/rtnetlink.h], [rtnl_link_ops], > [extack], > [OVS_DEFINE([HAVE_EXT_ACK_IN_RTNL_LINKOPS])]) > diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk > index 2fec650..b06ca15 100644 > --- a/datapath/linux/Modules.mk > +++ b/datapath/linux/Modules.mk > @@ -82,7 +82,6 @@ openvswitch_headers += \ > linux/compat/include/net/inetpeer.h \ > linux/compat/include/net/ip.h \ > linux/compat/include/net/ip_tunnels.h \ > - linux/compat/include/net/ip6_fib.h \ > linux/compat/include/net/ip6_route.h \ > linux/compat/include/net/ip6_tunnel.h \ > linux/compat/include/net/ipv6.h \ > diff --git a/datapath/linux/compat/include/net/dst_metadata.h b/datapath/linux/compat/include/net/dst_metadata.h > index e53a29e..36f3f39 100644 > --- a/datapath/linux/compat/include/net/dst_metadata.h > +++ b/datapath/linux/compat/include/net/dst_metadata.h > @@ -1,11 +1,6 @@ > #ifndef __NET_DST_METADATA_WRAPPER_H > #define __NET_DST_METADATA_WRAPPER_H 1 > > -enum metadata_type { > - METADATA_IP_TUNNEL, > - METADATA_HW_PORT_MUX, > -}; > - > #ifdef USE_UPSTREAM_TUNNEL > #include_next <net/dst_metadata.h> > #else > @@ -16,6 +11,11 @@ enum metadata_type { > #include <net/ipv6.h> > #include <net/ip_tunnels.h> > > +enum metadata_type { > + METADATA_IP_TUNNEL, > + METADATA_HW_PORT_MUX, > +}; > + > struct hw_port_info { > struct net_device *lower_dev; > u32 port_id; > @@ -119,7 +119,11 @@ void ovs_ip_tunnel_rcv(struct net_device *dev, struct sk_buff *skb, > static inline struct metadata_dst * > rpl_metadata_dst_alloc(u8 optslen, enum metadata_type type, gfp_t flags) > { > +#if defined(HAVE_METADATA_DST_ALLOC_WITH_METADATA_TYPE) && defined(USE_UPSTREAM_TUNNEL) > + return metadata_dst_alloc(optslen, type, flags); > +#else > return metadata_dst_alloc(optslen, flags); > +#endif > } > #define metadata_dst_alloc rpl_metadata_dst_alloc > > diff --git a/datapath/linux/compat/include/net/ip6_fib.h b/datapath/linux/compat/include/net/ip6_fib.h > deleted file mode 100644 > index 4d58375..0000000 > --- a/datapath/linux/compat/include/net/ip6_fib.h > +++ /dev/null > @@ -1,40 +0,0 @@ > -/* > - * Linux INET6 implementation > - * > - * Authors: > - * Pedro Roque <roque@di.fc.ul.pt> > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Public License > - * as published by the Free Software Foundation; either version > - * 2 of the License, or (at your option) any later version. > - */ > - > -#ifndef _IP6_FIB_WRAPPER_H > -#define _IP6_FIB_WRAPPER_H > - > -#include_next <net/ip6_fib.h> > - > -#ifndef RTF_PCPU > -#define RTF_PCPU 0x40000000 > -#endif > - > -#ifndef RTF_LOCAL > -#define RTF_LOCAL 0x80000000 > -#endif > - > -#define rt6_get_cookie rpl_rt6_get_cookie > -static inline u32 rt6_get_cookie(const struct rt6_info *rt) > -{ > - if (rt->rt6i_flags & RTF_PCPU || > -#ifdef HAVE_DST_NOCACHE > - (unlikely(rt->dst.flags & DST_NOCACHE) && rt->dst.from)) > -#else > - (unlikely(!list_empty(&rt->rt6i_uncached)) && rt->dst.from)) > -#endif > - rt = (struct rt6_info *)(rt->dst.from); > - > - return rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0; > -} > - > -#endif
Thanks Greg for your review and testing. Yifeng On Thu, Aug 23, 2018 at 10:17 PM, Gregory Rose <gvrose8192@gmail.com> wrote: > On 8/21/2018 7:42 AM, Yifeng Sun wrote: > > Add support for kernel version up to 4.17.x. On Travis, build passed > for all kernel versions. And no new test fails are introduced by this > patch. > > Cleaned up file datapath/linux/compat/include/net/ip6_fib.h which > has no effect to kernel module but brings complexity to porting. > > Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> <pkusunyifeng@gmail.com> > > > LGTM. > > Travis is happy: > > https://travis-ci.org/gvrose8192/ovs-experimental/builds/419847640 > > I ran check-kmod on a 4.16.13 kernel and got one transient error but > everything else looks good there > too. > > ## ------------- ## > ## Test results. ## > ## ------------- ## > > ERROR: 116 tests were run, > 1 failed unexpectedly. > 14 tests were skipped. > ## -------------------------------------- ## > ## system-kmod-testsuite.log was created. ## > ## -------------------------------------- ## > > Please send `tests/system-kmod-testsuite.log' and all information you > think might help: > > To: <bugs@openvswitch.org> <bugs@openvswitch.org> > Subject: [openvswitch 2.10.90] system-kmod-testsuite: 109 failed > > Nice work, thanks!!! > > Reviewed-by: Greg Rose <gvrose8192@gmail.com> <gvrose8192@gmail.com> > Tested-by: Greg Rose <gvrose8192@gmail.com> <gvrose8192@gmail.com> > > > --- > .travis.yml | 2 ++ > Documentation/faq/releases.rst | 2 +- > NEWS | 2 +- > acinclude.m4 | 6 ++-- > datapath/linux/Modules.mk | 1 - > datapath/linux/compat/include/net/dst_metadata.h | 14 ++++++--- > datapath/linux/compat/include/net/ip6_fib.h | 40 ------------------------ > 7 files changed, 15 insertions(+), 52 deletions(-) > delete mode 100644 datapath/linux/compat/include/net/ip6_fib.h > > diff --git a/.travis.yml b/.travis.yml > index 998b33d..21447b5 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -35,6 +35,8 @@ env: > - BUILD_ENV="-m32" OPTS="--disable-ssl" > - KERNEL=3.16.54 DPDK=1 > - KERNEL=3.16.54 DPDK=1 OPTS="--enable-shared" > + - KERNEL=4.17.14 > + - KERNEL=4.16.18 > - KERNEL=4.15.18 > - KERNEL=4.14.63 > - KERNEL=4.9.120 > diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst > index e64fa22..41d41e3 100644 > --- a/Documentation/faq/releases.rst > +++ b/Documentation/faq/releases.rst > @@ -67,7 +67,7 @@ Q: What Linux kernel versions does each Open vSwitch release work with? > 2.7.x 3.10 to 4.9 > 2.8.x 3.10 to 4.12 > 2.9.x 3.10 to 4.13 > - 2.10.x 3.10 to 4.15 > + 2.10.x 3.10 to 4.17 > ============ ============== > > Open vSwitch userspace should also work with the Linux kernel module built > diff --git a/NEWS b/NEWS > index 8987f9a..5bab26d 100644 > --- a/NEWS > +++ b/NEWS > @@ -4,7 +4,7 @@ Post-v2.10.0 > as the default syslog method. > - The environment variable OVS_CTL_TIMEOUT, if set, is now used > as the default timeout for control utilities. > - > + - Support for the kernel versions 4.16.x and 4.17.x. > > v2.10.0 - xx xxx xxxx > --------------------- > diff --git a/acinclude.m4 b/acinclude.m4 > index a6a0e9a..ab141bd 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -151,10 +151,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [ > AC_MSG_RESULT([$kversion]) > > if test "$version" -ge 4; then > - if test "$version" = 4 && test "$patchlevel" -le 15; then > + if test "$version" = 4 && test "$patchlevel" -le 17; then > : # Linux 4.x > else > - AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.15.x is not supported (please refer to the FAQ for advice)]) > + AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.17.x is not supported (please refer to the FAQ for advice)]) > fi > elif test "$version" = 3 && test "$patchlevel" -ge 10; then > : # Linux 3.x > @@ -803,8 +803,6 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ > [OVS_DEFINE(HAVE_NF_CONNTRACK_HELPER_PUT)]) > OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h],[[[[:space:]]]SKB_GSO_UDP[[[:space:]]]], > [OVS_DEFINE([HAVE_SKB_GSO_UDP])]) > - OVS_GREP_IFELSE([$KSRC/include/net/dst.h],[DST_NOCACHE], > - [OVS_DEFINE([HAVE_DST_NOCACHE])]) > OVS_FIND_FIELD_IFELSE([$KSRC/include/net/rtnetlink.h], [rtnl_link_ops], > [extack], > [OVS_DEFINE([HAVE_EXT_ACK_IN_RTNL_LINKOPS])]) > diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk > index 2fec650..b06ca15 100644 > --- a/datapath/linux/Modules.mk > +++ b/datapath/linux/Modules.mk > @@ -82,7 +82,6 @@ openvswitch_headers += \ > linux/compat/include/net/inetpeer.h \ > linux/compat/include/net/ip.h \ > linux/compat/include/net/ip_tunnels.h \ > - linux/compat/include/net/ip6_fib.h \ > linux/compat/include/net/ip6_route.h \ > linux/compat/include/net/ip6_tunnel.h \ > linux/compat/include/net/ipv6.h \ > diff --git a/datapath/linux/compat/include/net/dst_metadata.h b/datapath/linux/compat/include/net/dst_metadata.h > index e53a29e..36f3f39 100644 > --- a/datapath/linux/compat/include/net/dst_metadata.h > +++ b/datapath/linux/compat/include/net/dst_metadata.h > @@ -1,11 +1,6 @@ > #ifndef __NET_DST_METADATA_WRAPPER_H > #define __NET_DST_METADATA_WRAPPER_H 1 > > -enum metadata_type { > - METADATA_IP_TUNNEL, > - METADATA_HW_PORT_MUX, > -}; > - > #ifdef USE_UPSTREAM_TUNNEL > #include_next <net/dst_metadata.h> > #else > @@ -16,6 +11,11 @@ enum metadata_type { > #include <net/ipv6.h> > #include <net/ip_tunnels.h> > > +enum metadata_type { > + METADATA_IP_TUNNEL, > + METADATA_HW_PORT_MUX, > +}; > + > struct hw_port_info { > struct net_device *lower_dev; > u32 port_id; > @@ -119,7 +119,11 @@ void ovs_ip_tunnel_rcv(struct net_device *dev, struct sk_buff *skb, > static inline struct metadata_dst * > rpl_metadata_dst_alloc(u8 optslen, enum metadata_type type, gfp_t flags) > { > +#if defined(HAVE_METADATA_DST_ALLOC_WITH_METADATA_TYPE) && defined(USE_UPSTREAM_TUNNEL) > + return metadata_dst_alloc(optslen, type, flags); > +#else > return metadata_dst_alloc(optslen, flags); > +#endif > } > #define metadata_dst_alloc rpl_metadata_dst_alloc > > diff --git a/datapath/linux/compat/include/net/ip6_fib.h b/datapath/linux/compat/include/net/ip6_fib.h > deleted file mode 100644 > index 4d58375..0000000 > --- a/datapath/linux/compat/include/net/ip6_fib.h > +++ /dev/null > @@ -1,40 +0,0 @@ > -/* > - * Linux INET6 implementation > - * > - * Authors: > - * Pedro Roque <roque@di.fc.ul.pt> <roque@di.fc.ul.pt> > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Public License > - * as published by the Free Software Foundation; either version > - * 2 of the License, or (at your option) any later version. > - */ > - > -#ifndef _IP6_FIB_WRAPPER_H > -#define _IP6_FIB_WRAPPER_H > - > -#include_next <net/ip6_fib.h> > - > -#ifndef RTF_PCPU > -#define RTF_PCPU 0x40000000 > -#endif > - > -#ifndef RTF_LOCAL > -#define RTF_LOCAL 0x80000000 > -#endif > - > -#define rt6_get_cookie rpl_rt6_get_cookie > -static inline u32 rt6_get_cookie(const struct rt6_info *rt) > -{ > - if (rt->rt6i_flags & RTF_PCPU || > -#ifdef HAVE_DST_NOCACHE > - (unlikely(rt->dst.flags & DST_NOCACHE) && rt->dst.from)) > -#else > - (unlikely(!list_empty(&rt->rt6i_uncached)) && rt->dst.from)) > -#endif > - rt = (struct rt6_info *)(rt->dst.from); > - > - return rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0; > -} > - > -#endif > > >
diff --git a/.travis.yml b/.travis.yml index 998b33d..21447b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,8 @@ env: - BUILD_ENV="-m32" OPTS="--disable-ssl" - KERNEL=3.16.54 DPDK=1 - KERNEL=3.16.54 DPDK=1 OPTS="--enable-shared" + - KERNEL=4.17.14 + - KERNEL=4.16.18 - KERNEL=4.15.18 - KERNEL=4.14.63 - KERNEL=4.9.120 diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst index e64fa22..41d41e3 100644 --- a/Documentation/faq/releases.rst +++ b/Documentation/faq/releases.rst @@ -67,7 +67,7 @@ Q: What Linux kernel versions does each Open vSwitch release work with? 2.7.x 3.10 to 4.9 2.8.x 3.10 to 4.12 2.9.x 3.10 to 4.13 - 2.10.x 3.10 to 4.15 + 2.10.x 3.10 to 4.17 ============ ============== Open vSwitch userspace should also work with the Linux kernel module built diff --git a/NEWS b/NEWS index 8987f9a..5bab26d 100644 --- a/NEWS +++ b/NEWS @@ -4,7 +4,7 @@ Post-v2.10.0 as the default syslog method. - The environment variable OVS_CTL_TIMEOUT, if set, is now used as the default timeout for control utilities. - + - Support for the kernel versions 4.16.x and 4.17.x. v2.10.0 - xx xxx xxxx --------------------- diff --git a/acinclude.m4 b/acinclude.m4 index a6a0e9a..ab141bd 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -151,10 +151,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [ AC_MSG_RESULT([$kversion]) if test "$version" -ge 4; then - if test "$version" = 4 && test "$patchlevel" -le 15; then + if test "$version" = 4 && test "$patchlevel" -le 17; then : # Linux 4.x else - AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.15.x is not supported (please refer to the FAQ for advice)]) + AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.17.x is not supported (please refer to the FAQ for advice)]) fi elif test "$version" = 3 && test "$patchlevel" -ge 10; then : # Linux 3.x @@ -803,8 +803,6 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ [OVS_DEFINE(HAVE_NF_CONNTRACK_HELPER_PUT)]) OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h],[[[[:space:]]]SKB_GSO_UDP[[[:space:]]]], [OVS_DEFINE([HAVE_SKB_GSO_UDP])]) - OVS_GREP_IFELSE([$KSRC/include/net/dst.h],[DST_NOCACHE], - [OVS_DEFINE([HAVE_DST_NOCACHE])]) OVS_FIND_FIELD_IFELSE([$KSRC/include/net/rtnetlink.h], [rtnl_link_ops], [extack], [OVS_DEFINE([HAVE_EXT_ACK_IN_RTNL_LINKOPS])]) diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk index 2fec650..b06ca15 100644 --- a/datapath/linux/Modules.mk +++ b/datapath/linux/Modules.mk @@ -82,7 +82,6 @@ openvswitch_headers += \ linux/compat/include/net/inetpeer.h \ linux/compat/include/net/ip.h \ linux/compat/include/net/ip_tunnels.h \ - linux/compat/include/net/ip6_fib.h \ linux/compat/include/net/ip6_route.h \ linux/compat/include/net/ip6_tunnel.h \ linux/compat/include/net/ipv6.h \ diff --git a/datapath/linux/compat/include/net/dst_metadata.h b/datapath/linux/compat/include/net/dst_metadata.h index e53a29e..36f3f39 100644 --- a/datapath/linux/compat/include/net/dst_metadata.h +++ b/datapath/linux/compat/include/net/dst_metadata.h @@ -1,11 +1,6 @@ #ifndef __NET_DST_METADATA_WRAPPER_H #define __NET_DST_METADATA_WRAPPER_H 1 -enum metadata_type { - METADATA_IP_TUNNEL, - METADATA_HW_PORT_MUX, -}; - #ifdef USE_UPSTREAM_TUNNEL #include_next <net/dst_metadata.h> #else @@ -16,6 +11,11 @@ enum metadata_type { #include <net/ipv6.h> #include <net/ip_tunnels.h> +enum metadata_type { + METADATA_IP_TUNNEL, + METADATA_HW_PORT_MUX, +}; + struct hw_port_info { struct net_device *lower_dev; u32 port_id; @@ -119,7 +119,11 @@ void ovs_ip_tunnel_rcv(struct net_device *dev, struct sk_buff *skb, static inline struct metadata_dst * rpl_metadata_dst_alloc(u8 optslen, enum metadata_type type, gfp_t flags) { +#if defined(HAVE_METADATA_DST_ALLOC_WITH_METADATA_TYPE) && defined(USE_UPSTREAM_TUNNEL) + return metadata_dst_alloc(optslen, type, flags); +#else return metadata_dst_alloc(optslen, flags); +#endif } #define metadata_dst_alloc rpl_metadata_dst_alloc diff --git a/datapath/linux/compat/include/net/ip6_fib.h b/datapath/linux/compat/include/net/ip6_fib.h deleted file mode 100644 index 4d58375..0000000 --- a/datapath/linux/compat/include/net/ip6_fib.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Linux INET6 implementation - * - * Authors: - * Pedro Roque <roque@di.fc.ul.pt> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -#ifndef _IP6_FIB_WRAPPER_H -#define _IP6_FIB_WRAPPER_H - -#include_next <net/ip6_fib.h> - -#ifndef RTF_PCPU -#define RTF_PCPU 0x40000000 -#endif - -#ifndef RTF_LOCAL -#define RTF_LOCAL 0x80000000 -#endif - -#define rt6_get_cookie rpl_rt6_get_cookie -static inline u32 rt6_get_cookie(const struct rt6_info *rt) -{ - if (rt->rt6i_flags & RTF_PCPU || -#ifdef HAVE_DST_NOCACHE - (unlikely(rt->dst.flags & DST_NOCACHE) && rt->dst.from)) -#else - (unlikely(!list_empty(&rt->rt6i_uncached)) && rt->dst.from)) -#endif - rt = (struct rt6_info *)(rt->dst.from); - - return rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0; -} - -#endif
Add support for kernel version up to 4.17.x. On Travis, build passed for all kernel versions. And no new test fails are introduced by this patch. Cleaned up file datapath/linux/compat/include/net/ip6_fib.h which has no effect to kernel module but brings complexity to porting. Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> --- .travis.yml | 2 ++ Documentation/faq/releases.rst | 2 +- NEWS | 2 +- acinclude.m4 | 6 ++-- datapath/linux/Modules.mk | 1 - datapath/linux/compat/include/net/dst_metadata.h | 14 ++++++--- datapath/linux/compat/include/net/ip6_fib.h | 40 ------------------------ 7 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 datapath/linux/compat/include/net/ip6_fib.h