summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@ovn.org>2016-07-08 16:24:02 -0700
committerPravin B Shelar <pshelar@ovn.org>2016-07-08 19:27:49 -0700
commitf2252c6105a32bada26949fa65ec146c4ac30697 (patch)
tree1ea940985991d6241836991cf8abdca8bb183a0c /acinclude.m4
parent54461156108126d4a3b5c71367d9425a82f7cfbd (diff)
downloadopenvswitch-f2252c6105a32bada26949fa65ec146c4ac30697.tar.gz
datapath: compat: Update Geneve and VxLAN modules.
This patch brings in various updates to upstream Geneve and VxLAN modules. For geneve this patch adds IPv6 support, for vxlan it adds VXLAN GPE is the major feature. This should make OVS compat tunnel implementation in sync upto current net branch. Signed-off-by: Pravin B Shelar <pshelar@ovn.org> Acked-by: Jesse Gross <jesse@kernel.org>
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m414
1 files changed, 12 insertions, 2 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index ba59e3d92..ddec99379 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -392,6 +392,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/linux/etherdevice.h], [eth_hw_addr_random])
OVS_GREP_IFELSE([$KSRC/include/linux/etherdevice.h], [ether_addr_copy])
+ OVS_GREP_IFELSE([$KSRC/nclude/linux/if_ether.h], [inner_eth_hdr])
OVS_GREP_IFELSE([$KSRC/include/uapi/linux/if_link.h], [IFLA_GENEVE_TOS])
OVS_GREP_IFELSE([$KSRC/include/uapi/linux/if_link.h], [rtnl_link_stats64])
@@ -432,11 +433,18 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/net/inetpeer.h], [vif],
[OVS_DEFINE([HAVE_INETPEER_VIF_SUPPORT])])
+ dnl Check for dst_cache and ipv6 lable to use backported tunnel infrastructure.
+ dnl OVS does not really need ipv6 label field, but its presence signifies that
+ dnl the stack has all required ipv6 support.
+ dnl OVS also does not need dst_cache But this dependency allows us to write
+ dnl much cleaner code.
+
OVS_FIND_FIELD_IFELSE([$KSRC/include/net/ip_tunnels.h], [ip_tunnel_key],
[label],
[OVS_GREP_IFELSE([$KSRC/include/net/ip_tunnels.h],
[iptunnel_pull_offloads],
- [OVS_DEFINE([USE_UPSTREAM_TUNNEL])])])
+ [OVS_GREP_IFELSE([$KSRC/include/net/dst_cache.h], [dst_cache],
+ [OVS_DEFINE([USE_UPSTREAM_TUNNEL])])])])
OVS_GREP_IFELSE([$KSRC/include/linux/net.h], [sock_create_kern.*net],
[OVS_DEFINE([HAVE_SOCK_CREATE_KERN_NET])])
@@ -448,6 +456,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [__skb_gso_segment])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [can_checksum_protocol])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [ndo_get_iflink])
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [ndo_add_vxlan_port])
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [ndo_add_geneve_port])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [netdev_features_t])
dnl Ubuntu kernel 3.13 has defined this struct but not used for netdev->tstats.
dnl So check type of tstats.
@@ -511,6 +521,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
[OVS_DEFINE([HAVE_PROTO_DATA_VALID])])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_checksum_start_offset])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [inner_protocol])
+ OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [inner_protocol_type])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [inner_mac_header])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [inner_network_header])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [kfree_skb_list])
@@ -606,7 +617,6 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/net/vxlan.h], [struct vxlan_metadata],
[OVS_DEFINE([HAVE_VXLAN_METADATA])])
- OVS_GREP_IFELSE([$KSRC/include/net/vxlan.h], [VXLAN_HF_RCO])
OVS_GREP_IFELSE([$KSRC/include/net/udp.h], [udp_flow_src_port],
[OVS_GREP_IFELSE([$KSRC/include/net/udp.h], [inet_get_local_port_range(net],
[OVS_DEFINE([HAVE_UDP_FLOW_SRC_PORT])])])