X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=blobdiff_plain;f=acinclude.m4;h=11c77877d46ce0f5cc893eca47b22aeb79257863;hp=41284ea9293f3173d0d239bce4ed763f4ac73c70;hb=HEAD;hpb=d1c390e6791f5e51ab50bf51f2cca34957040da5 diff --git a/acinclude.m4 b/acinclude.m4 index 41284ea92..11c77877d 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -351,14 +351,23 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ 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]) @@ -388,10 +397,20 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ 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]) @@ -465,6 +484,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ 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]) @@ -532,7 +552,10 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ OVS_GREP_IFELSE([$KSRC/include/linux/utsrelease.h], [el6], [OVS_DEFINE([HAVE_RHEL6_PER_CPU])]) - if test "$version" = 4 && test "$patchlevel" -le 2; then + 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])