Forgot to put reported-by. Reported-by: Ilya Maximets <[email protected]>
On Mon, May 20, 2019 at 4:58 PM Yifeng Sun <[email protected]> wrote: > > 4.9.172+ kernel backported upstream patch 70b095c843266 > ("ipv6: remove dependency of nf_defrag_ipv6 on ipv6 module") > and this caused compilation errors of OVS kernel module. > > This patch fixes it by checking and using new functions > introduced by the upstream patch. > > Travis tests passed at > https://travis-ci.org/yifsun/ovs-travis/builds/535047469 > with latest Linux kernel version. > > Signed-off-by: Yifeng Sun <[email protected]> > --- > datapath/linux/compat/nf_conntrack_reasm.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > > diff --git a/datapath/linux/compat/nf_conntrack_reasm.c > b/datapath/linux/compat/nf_conntrack_reasm.c > index 9d77d982712c..ac5ec6dd30ab 100644 > --- a/datapath/linux/compat/nf_conntrack_reasm.c > +++ b/datapath/linux/compat/nf_conntrack_reasm.c > @@ -41,6 +41,7 @@ > #include <net/inet_frag.h> > > #include <net/ipv6.h> > +#include <net/ipv6_frag.h> > #include <net/protocol.h> > #include <net/transp_v6.h> > #include <net/rawv6.h> > @@ -138,8 +139,12 @@ static void nf_ct_frag6_expire(unsigned long data) > #ifdef HAVE_INET_FRAGS_RND > ip6_expire_frag_queue(net, fq, &nf_frags); > #else > +#ifdef HAVE_IPV6_FRAG_H > + ip6frag_expire_frag_queue(net, fq); > +#else > ip6_expire_frag_queue(net, fq); > #endif > +#endif /* HAVE_INET_FRAGS_RND */ > } > > #ifdef HAVE_INET_FRAGS_RND > @@ -673,6 +678,16 @@ static struct pernet_operations nf_ct_net_ops = { > .exit = nf_ct_net_exit, > }; > > +#ifdef HAVE_IPV6_FRAG_H > +static const struct rhashtable_params nfct_rhash_params = { > + .head_offset = offsetof(struct inet_frag_queue, node), > + .hashfn = ip6frag_key_hashfn, > + .obj_hashfn = ip6frag_obj_hashfn, > + .obj_cmpfn = ip6frag_obj_cmpfn, > + .automatic_shrinking = true, > +}; > +#endif > + > int rpl_nf_ct_frag6_init(void) > { > int ret = 0; > @@ -684,9 +699,14 @@ int rpl_nf_ct_frag6_init(void) > nf_frags.hashfn = nf_hashfn; > nf_frags.match = ip6_frag_match; > #else > +#ifdef HAVE_IPV6_FRAG_H > + nf_frags.rhash_params = nfct_rhash_params; > + nf_frags.constructor = ip6frag_init; > +#else > nf_frags.rhash_params = ip6_rhash_params; > -#endif > nf_frags.constructor = ip6_frag_init; > +#endif > +#endif /* HAVE_INET_FRAGS_RND */ > nf_frags.destructor = NULL; > nf_frags.qsize = sizeof(struct frag_queue); > nf_frags.frag_expire = nf_ct_frag6_expire; > -- > 2.7.4 > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
