Re: [ovs-dev] [PATCH v3] datapath: Fix build errors for 4.9.172+ kernels

2019-06-07 Thread Ben Pfaff
On Fri, May 24, 2019 at 01:32:42PM -0700, Yi-Hung Wei wrote:
> On Fri, May 24, 2019 at 11:24 AM Yifeng Sun  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 
> > Signed-off-by: Yifeng Sun 
> > ---
> Thanks for the update. It looks good to me.
> 
> Acked-by: Yi-Hung Wei 

Yifeng and Yi-Hung, thank you.

I applied this patch to master.  Let me know if it should be backported.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v3] datapath: Fix build errors for 4.9.172+ kernels

2019-05-24 Thread Yi-Hung Wei
On Fri, May 24, 2019 at 11:24 AM Yifeng Sun  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 
> Signed-off-by: Yifeng Sun 
> ---
Thanks for the update. It looks good to me.

Acked-by: Yi-Hung Wei 
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v3] datapath: Fix build errors for 4.9.172+ kernels

2019-05-24 Thread Yifeng Sun
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 
Signed-off-by: Yifeng Sun 
---
v1->v2: Fixed at bug that crashes certain kernels. Thanks YiHung!
v2->v3: Added HAVE_INET_FRAGS_RND, 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
@@ -41,6 +41,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -138,8 +139,12 @@ static void nf_ct_frag6_expire(unsigned long data)
 #ifdef HAVE_INET_FRAGS_RND
ip6_expire_frag_queue(net, fq, _frags);
 #else
+#ifdef HAVE_IPV6_FRAG_H
+   ip6frag_expire_frag_queue(net, fq);
+#else
ip6_expire_frag_queue(net, fq);
 #endif
+#endif
 }
 
 #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;
@@ -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 /* 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
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev