On 8/27/18, 8:34 PM, "[email protected] on behalf of Yifeng Sun" 
<[email protected] on behalf of [email protected]> wrote:

    Good catch. Just like Greg said, it is so complex when doing back porting.
    
    Do you mind putting 3.19 in the travis.yaml? So that later on we can catch
    this kind of bug, thanks.

Thanks Yifeng
I can add 3.19, for example, specifically.
Later 3.16 minor versions seem to include the api.
    
    Yifeng
    
    On Mon, Aug 27, 2018 at 7:34 PM Gregory Rose <[email protected]> wrote:
    
    >
    > On 8/27/2018 7:19 PM, Darrell Ball wrote:
    > > On older kernels, for example 3.19, the function rt6_get_cookie() is
    > > not available and used with ipv6 config enabled;  it was introduced in
    > > 4.2.  Put back the replacement function if it does not exist.
    >
    > Interesting that builds on 3.16.57 but not 3.19.  You can never tell
    > what's getting backported and
    > to which kernel.  Keeps us busy!
    >
    > Thanks Darrell, looks like a good catch. I'll let Yifeng provide the
    > review.
    >
    > - Greg
    >
    > >
    > > CC: Yifeng Sun <[email protected]>
    > > Fixes: bf61b8b1c1db ("datapath: Add support for kernel 4.16.x & 
4.17.x.")
    > > Signed-off-by: Darrell Ball <[email protected]>
    > > ---
    > >   acinclude.m4                                |  5 ++++
    > >   datapath/linux/Modules.mk                   |  1 +
    > >   datapath/linux/compat/include/net/ip6_fib.h | 43
    > +++++++++++++++++++++++++++++
    > >   3 files changed, 49 insertions(+)
    > >   create mode 100644 datapath/linux/compat/include/net/ip6_fib.h
    > >
    > > diff --git a/acinclude.m4 b/acinclude.m4
    > > index ab141bd..0690bae 100644
    > > --- a/acinclude.m4
    > > +++ b/acinclude.m4
    > > @@ -459,6 +459,9 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
    > >     OVS_GREP_IFELSE([$KSRC/arch/x86/include/asm/checksum_32.h],
    > [src_err,],
    > >                     [OVS_DEFINE([HAVE_CSUM_COPY_DBG])])
    > >
    > > +  OVS_GREP_IFELSE([$KSRC/include/net/ip6_fib.h], [rt6_get_cookie],
    > > +                  [OVS_DEFINE([HAVE_RT6_GET_COOKIE])])
    > > +
    > >     OVS_GREP_IFELSE([$KSRC/include/net/addrconf.h],
    > [ipv6_dst_lookup.*net],
    > >                     [OVS_DEFINE([HAVE_IPV6_DST_LOOKUP_NET])])
    > >     OVS_GREP_IFELSE([$KSRC/include/net/addrconf.h], [ipv6_stub])
    > > @@ -803,6 +806,8 @@ 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 b06ca15..e31d784 100644
    > > --- a/datapath/linux/Modules.mk
    > > +++ b/datapath/linux/Modules.mk
    > > @@ -82,6 +82,7 @@ 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/ip6_fib.h
    > b/datapath/linux/compat/include/net/ip6_fib.h
    > > new file mode 100644
    > > index 0000000..0cc4358
    > > --- /dev/null
    > > +++ b/datapath/linux/compat/include/net/ip6_fib.h
    > > @@ -0,0 +1,43 @@
    > > +/*
    > > + *      Linux INET6 implementation
    > > + *
    > > + *      Authors:
    > > + *      Pedro Roque             <[email protected]>
    > > + *
    > > + *      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 HAVE_RT6_GET_COOKIE
    > > +
    > > +#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
    > > +
    > > +#endif
    >
    > _______________________________________________
    > dev mailing list
    > [email protected]
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.openvswitch.org%2Fmailman%2Flistinfo%2Fovs-dev&amp;data=02%7C01%7Cdball%40vmware.com%7Ce871380ad7914cde235608d60c973798%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636710240957045535&amp;sdata=SfEtxJdZApTSIUFwJIdebruUw3ydTOMUtcaZcwkafsI%3D&amp;reserved=0
    >
    _______________________________________________
    dev mailing list
    [email protected]
    
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.openvswitch.org%2Fmailman%2Flistinfo%2Fovs-dev&amp;data=02%7C01%7Cdball%40vmware.com%7Ce871380ad7914cde235608d60c973798%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636710240957045535&amp;sdata=SfEtxJdZApTSIUFwJIdebruUw3ydTOMUtcaZcwkafsI%3D&amp;reserved=0
    

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to