summaryrefslogtreecommitdiff
path: root/datapath
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2019-05-10 12:30:10 -0700
committerBen Pfaff <blp@ovn.org>2019-05-10 12:57:51 -0700
commit7857a9b4fcdb2679687b8a1a0e0f666ee3bbba6b (patch)
tree25dfa64edb1d7121a53716e0bebc35b776437372 /datapath
parent4fdec8986a203b0dc9d9c183c932826967572e0f (diff)
downloadopenvswitch-7857a9b4fcdb2679687b8a1a0e0f666ee3bbba6b.tar.gz
datapath: Use new header file net/ipv6_frag.h
Upstream commit: commit 70b095c84326640eeacfd69a411db8fc36e8ab1a Author: Florian Westphal <fw@strlen.de> Date: Sat Jul 14 01:14:01 2018 +0200 ipv6: remove dependency of nf_defrag_ipv6 on ipv6 module IPV6=m DEFRAG_IPV6=m CONNTRACK=y yields: net/netfilter/nf_conntrack_proto.o: In function `nf_ct_netns_do_get': net/netfilter/nf_conntrack_proto.c:802: undefined reference to `nf_defrag_ipv6_enable' net/netfilter/nf_conntrack_proto.o:(.rodata+0x640): undefined reference to `nf_conntrack_l4proto_icmpv6' Setting DEFRAG_IPV6=y causes undefined references to ip6_rhash_params ip6_frag_init and ip6_expire_frag_queue so it would be needed to force IPV6=y too. This patch gets rid of the 'followup linker error' by removing the dependency of ipv6.ko symbols from netfilter ipv6 defrag. Shared code is placed into a header, then used from both. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> This patch backports the above upstream patch to OVS. Cc: Florian Westphal <fw@strlen.de> Tested-by: Greg Rose <gvrose8192@gmail.com> Reviewed-by: Greg Rose <gvrose8192@gmail.com> Acked-by: Yi-Hung Wei <yihung.wei@gmail.com> Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'datapath')
-rw-r--r--datapath/conntrack.c1
-rw-r--r--datapath/linux/Modules.mk1
-rw-r--r--datapath/linux/compat/include/net/ipv6_frag.h8
3 files changed, 10 insertions, 0 deletions
diff --git a/datapath/conntrack.c b/datapath/conntrack.c
index 8c1a80308..52825a6b2 100644
--- a/datapath/conntrack.c
+++ b/datapath/conntrack.c
@@ -31,6 +31,7 @@
#include <net/netfilter/nf_conntrack_seqadj.h>
#include <net/netfilter/nf_conntrack_zones.h>
#include <net/netfilter/ipv6/nf_defrag_ipv6.h>
+#include <net/ipv6_frag.h>
#ifdef CONFIG_NF_NAT_NEEDED
#include <linux/netfilter/nf_nat.h>
diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk
index ae63e3653..cbb29f1c6 100644
--- a/datapath/linux/Modules.mk
+++ b/datapath/linux/Modules.mk
@@ -86,6 +86,7 @@ openvswitch_headers += \
linux/compat/include/net/ip6_route.h \
linux/compat/include/net/ip6_tunnel.h \
linux/compat/include/net/ipv6.h \
+ linux/compat/include/net/ipv6_frag.h \
linux/compat/include/net/mpls.h \
linux/compat/include/net/net_namespace.h \
linux/compat/include/net/netlink.h \
diff --git a/datapath/linux/compat/include/net/ipv6_frag.h b/datapath/linux/compat/include/net/ipv6_frag.h
new file mode 100644
index 000000000..5d1cc901b
--- /dev/null
+++ b/datapath/linux/compat/include/net/ipv6_frag.h
@@ -0,0 +1,8 @@
+#ifndef __NET_IPV6_FRAG_WRAPPER_H
+#define __NET_IPV6_FRAG_WRAPPER_H
+
+#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6) && defined(HAVE_IPV6_FRAG_H)
+#include_next <net/ipv6_frag.h>
+#endif
+
+#endif /* __NET_IPV6_FRAG_WRAPPER_H */