CFLAGS="$ovs_save_CFLAGS"
LDFLAGS="$ovs_save_LDFLAGS"
OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR"
- OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE -mssse3"
+ OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE"
+ OVS_ENABLE_OPTION([-mssse3])
# DPDK pmd drivers are not linked unless --whole-archive is used.
#
OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [inet_get_local_port_range.*net],
[OVS_DEFINE([HAVE_INET_GET_LOCAL_PORT_RANGE_USING_NET])])
+ OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [ip_do_fragment])
OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [ip_is_fragment])
+ OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [ip_skb_dst_mtu])
+
+ OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [IPSKB_FRAG_PMTU],
+ [OVS_DEFINE([HAVE_CORRECT_MRU_HANDLING])])
+ OVS_GREP_IFELSE([$KSRC/include/net/ip_tunnels.h], [__ip_tunnel_change_mtu])
+ OVS_GREP_IFELSE([$KSRC/include/net/inet_frag.h], [hashfn.*const],
+ [OVS_DEFINE([HAVE_INET_FRAGS_CONST])])
+ OVS_GREP_IFELSE([$KSRC/include/net/inet_frag.h], [last_in],
+ [OVS_DEFINE([HAVE_INET_FRAGS_LAST_IN])])
+ OVS_GREP_IFELSE([$KSRC/include/net/inet_frag.h], [inet_frag_evicting])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/net/inet_frag.h], [inet_frags],
+ [frags_work])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/net/inet_frag.h], [inet_frags],
+ [rwlock])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/net/inet_frag.h], [inet_frag_queue],
+ [list_evictor])
+ OVS_GREP_IFELSE([$KSRC/include/net/inetpeer.h], [vif],
+ [OVS_DEFINE([HAVE_INETPEER_VIF_SUPPORT])])
+
OVS_GREP_IFELSE([$KSRC/include/net/dst_metadata.h], [metadata_dst])
OVS_GREP_IFELSE([$KSRC/include/linux/net.h], [sock_create_kern.*net],
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_disable_lro])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_get_stats])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_get_by_index_rcu])
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_recursion_level])
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/netfilter.h], [nf_register_net_hook])
OVS_GREP_IFELSE([$KSRC/include/linux/netfilter.h], [nf_hookfn.*nf_hook_ops],
[OVS_DEFINE([HAVE_NF_HOOKFN_ARG_OPS])])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/linux/netfilter_ipv6.h], [nf_ipv6_ops],
+ [fragment], [OVS_DEFINE([HAVE_NF_IPV6_OPS_FRAGMENT])])
OVS_GREP_IFELSE([$KSRC/include/net/netfilter/nf_conntrack.h],
[tmpl_alloc.*conntrack_zone],
[OVS_DEFINE([HAVE_NF_CT_TMPL_ALLOC_TAKES_STRUCT_ZONE])])
+ OVS_GREP_IFELSE([$KSRC/include/net/netfilter/nf_conntrack_zones.h],
+ [nf_ct_zone_init])
+ OVS_GREP_IFELSE([$KSRC/include/net/netfilter/nf_conntrack_labels.h],
+ [nf_connlabels_get])
+ OVS_GREP_IFELSE([$KSRC/include/net/netfilter/ipv6/nf_defrag_ipv6.h],
+ [nf_ct_frag6_consume_orig])
+ OVS_GREP_IFELSE([$KSRC/include/net/netfilter/ipv6/nf_defrag_ipv6.h],
+ [nf_ct_frag6_output])
OVS_GREP_IFELSE([$KSRC/include/linux/random.h], [prandom_u32])
+ OVS_GREP_IFELSE([$KSRC/include/linux/random.h], [prandom_u32_max])
OVS_GREP_IFELSE([$KSRC/include/net/rtnetlink.h], [get_link_net])
OVS_GREP_IFELSE([$KSRC/include/net/rtnetlink.h], [name_assign_type])
OVS_GREP_IFELSE([$KSRC/include/net/checksum.h], [csum_replace4])
OVS_GREP_IFELSE([$KSRC/include/net/checksum.h], [csum_unfold])
+ OVS_GREP_IFELSE([$KSRC/include/net/dst.h], [dst_discard_sk])
+ OVS_GREP_IFELSE([$KSRC/include/net/dst.h], [__skb_dst_copy])
+
OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [genl_has_listeners])
OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [mcgrp_offset])
OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [parallel_ops])
OVS_GREP_IFELSE([$KSRC/include/net/gre.h], [gre_handle_offloads])
OVS_GREP_IFELSE([$KSRC/include/net/ipv6.h], [IP6_FH_F_SKIP_RH])
OVS_GREP_IFELSE([$KSRC/include/net/ipv6.h], [ip6_local_out_sk])
+ OVS_GREP_IFELSE([$KSRC/include/net/ipv6.h], [__ipv6_addr_jhash])
+ OVS_GREP_IFELSE([$KSRC/include/net/ip6_fib.h], [rt6i.*u.dst],
+ [OVS_DEFINE([HAVE_RT6INFO_DST_UNION])])
+ OVS_GREP_IFELSE([$KSRC/include/net/ip6_route.h], [ip6_frag.*sock],
+ [OVS_DEFINE([HAVE_IP_FRAGMENT_TAKES_SOCK])])
+
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_get_be16])
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_put_be16])
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_put_be32])
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_put_in_addr])
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_find_nested])
OVS_GREP_IFELSE([$KSRC/include/net/netlink.h], [nla_is_last])
+ OVS_GREP_IFELSE([$KSRC/include/linux/netlink.h], [void.*netlink_set_err],
+ [OVS_DEFINE([HAVE_VOID_NETLINK_SET_ERR])])
OVS_GREP_IFELSE([$KSRC/include/net/sctp/checksum.h], [sctp_compute_cksum])
OVS_GREP_IFELSE([$KSRC/include/linux/utsrelease.h], [el6],
[OVS_DEFINE([HAVE_RHEL6_PER_CPU])])
+ dnl Conntrack support, and therefore, IP fragment handling backport, should
+ dnl only be enabled on kernels 3.10+. In future when OVS drops support for
+ dnl kernels older than 3.10, this macro could be removed from the codebase.
+ if test "$version" = 4; then
+ OVS_DEFINE([OVS_FRAGMENT_BACKPORT])
+ elif test "$version" = 3 && test "$patchlevel" -ge 10; then
+ OVS_DEFINE([OVS_FRAGMENT_BACKPORT])
+ fi
+
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then
rm datapath/linux/kcompat.h.new