Thanks Yi-Hung for the review. 4.9 kernel is using ip6frag_init instead of ip6_frag_init, so the original change is essential. Otherwise, there will be compiling errors: https://travis-ci.org/yifsun/ovs-travis/builds/536900954
I will add /* HAVE_INET_FRAGS_RND */ and submit a new version. Yifeng On Fri, May 24, 2019 at 10:59 AM Yi-Hung Wei <[email protected]> wrote: > > On Thu, May 23, 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/536527230 > > with latest Linux kernel version. > > > > In addition, this patch doesn't introduce failed tests for latest kernels > > of Ubuntu (bionic, trusty, xenial), fedora, centos 73, rhel (74, 75, 76). > > > > Reported-by: Ilya Maximets <[email protected]> > > Signed-off-by: Yifeng Sun <[email protected]> > > --- > > v1->v2: Fixed at bug that crashes certain kernels. Thanks YiHung! > > > > datapath/linux/compat/nf_conntrack_reasm.c | 23 ++++++++++++++++++++++- > > 1 file changed, 22 insertions(+), 1 deletion(-) > > > > diff --git a/datapath/linux/compat/nf_conntrack_reasm.c > > b/datapath/linux/compat/nf_conntrack_reasm.c > > index 9d77d982712c..23904eef08d7 100644 > > --- a/datapath/linux/compat/nf_conntrack_reasm.c > > +++ b/datapath/linux/compat/nf_conntrack_reasm.c > > int rpl_nf_ct_frag6_init(void) > > { > > int ret = 0; > > @@ -683,10 +698,16 @@ int rpl_nf_ct_frag6_init(void) > > #ifdef HAVE_INET_FRAGS_RND > > nf_frags.hashfn = nf_hashfn; > > nf_frags.match = ip6_frag_match; > > + nf_frags.constructor = ip6_frag_init; > > +#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 > > Hi Yifeng, > > Thanks for the update. Are we replicating "nf_frags.constructor = > ip6_frag_init;" for the 3 cases? > > How about the following change? > > int rpl_nf_ct_frag6_init(void) > { > int ret = 0; > @@ -684,8 +699,12 @@ 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; > +#else > nf_frags.rhash_params = ip6_rhash_params; > #endif > +#endif /* HAVE_INET_FRAGS_RND */ > nf_frags.constructor = ip6_frag_init; > > -Yi-Hung > > > 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 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
