AC_MSG_RESULT([$kversion])
if test "$version" -ge 4; then
- if test "$version" = 4 && test "$patchlevel" -le 11; then
+ if test "$version" = 4 && test "$patchlevel" -le 13; then
: # Linux 4.x
else
- AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.11.x is not supported (please refer to the FAQ for advice)])
+ AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.13.x is not supported (please refer to the FAQ for advice)])
fi
elif test "$version" = 3 && test "$patchlevel" -ge 10; then
: # Linux 3.x
AC_DEFUN([OVS_CHECK_LINUX_TC], [
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([#include <linux/pkt_cls.h>], [
- int x = TCA_ACT_COOKIE;
+ int x = TCA_FLOWER_KEY_IP_TTL_MASK;
])],
- [AC_DEFINE([HAVE_TCA_ACT_COOKIE], [1],
- [Define to 1 if TCA_ACT_COOKIE is avaiable.])])
+ [AC_DEFINE([HAVE_TCA_FLOWER_KEY_IP_TTL_MASK], [1],
+ [Define to 1 if TCA_FLOWER_KEY_IP_TTL_MASK is avaiable.])])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([#include <linux/tc_act/tc_vlan.h>], [
])],
[AC_DEFINE([HAVE_TCA_TUNNEL_KEY_ENC_DST_PORT], [1],
[Define to 1 if TCA_TUNNEL_KEY_ENC_DST_PORT is avaiable.])])
+
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([#include <linux/tc_act/tc_pedit.h>], [
+ int x = TCA_PEDIT_KEY_EX_HDR_TYPE_UDP;
+ ])],
+ [AC_DEFINE([HAVE_TCA_PEDIT_KEY_EX_HDR_TYPE_UDP], [1],
+ [Define to 1 if TCA_PEDIT_KEY_EX_HDR_TYPE_UDP is avaiable.])])
])
dnl OVS_CHECK_DPDK
case "$with_dpdk" in
yes)
DPDK_AUTO_DISCOVER="true"
- DPDK_INCLUDE="/usr/local/include/dpdk -I/usr/include/dpdk"
+ PKG_CHECK_MODULES([DPDK], [libdpdk],
+ [DPDK_INCLUDE="$DPDK_CFLAGS"],
+ [DPDK_INCLUDE="-I/usr/local/include/dpdk -I/usr/include/dpdk"])
;;
*)
DPDK_AUTO_DISCOVER="false"
- DPDK_INCLUDE="$with_dpdk/include"
+ DPDK_INCLUDE_PATH="$with_dpdk/include"
# If 'with_dpdk' is passed install directory, point to headers
# installed in $DESTDIR/$prefix/include/dpdk
- if test ! -e "$DPDK_INCLUDE/rte_config.h" && \
- test -e "$DPDK_INCLUDE/dpdk/rte_config.h"; then
- DPDK_INCLUDE=$DPDK_INCLUDE/dpdk
+ if test -e "$DPDK_INCLUDE_PATH/rte_config.h"; then
+ DPDK_INCLUDE="-I$DPDK_INCLUDE_PATH"
+ elif test -e "$DPDK_INCLUDE_PATH/dpdk/rte_config.h"; then
+ DPDK_INCLUDE="-I$DPDK_INCLUDE_PATH/dpdk"
fi
DPDK_LIB_DIR="$with_dpdk/lib"
;;
ovs_save_CFLAGS="$CFLAGS"
ovs_save_LDFLAGS="$LDFLAGS"
- CFLAGS="$CFLAGS -I$DPDK_INCLUDE"
+ CFLAGS="$CFLAGS $DPDK_INCLUDE"
if test "$DPDK_AUTO_DISCOVER" = "false"; then
LDFLAGS="$LDFLAGS -L${DPDK_LIB_DIR}"
fi
if test "$DPDK_AUTO_DISCOVER" = "false"; then
OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR"
fi
- OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE"
+ OVS_CFLAGS="$OVS_CFLAGS $DPDK_INCLUDE"
OVS_ENABLE_OPTION([-mssse3])
# DPDK pmd drivers are not linked unless --whole-archive is used.
OVS_FIND_PARAM_IFELSE([$KSRC/include/linux/netdevice.h],
[netdev_master_upper_dev_link], [upper_priv],
[OVS_DEFINE([HAVE_NETDEV_MASTER_UPPER_DEV_LINK_PRIV])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h],
+ [netdev_master_upper_dev_link_rh],
+ [OVS_DEFINE([HAVE_NETDEV_MASTER_UPPER_DEV_LINK_RH])])
+
OVS_FIND_FIELD_IFELSE([$KSRC/include/linux/netdevice.h], [net_device],
[max_mtu])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_postpush_rcsum])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [lco_csum])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_nfct])
+ OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_put_zero])
OVS_GREP_IFELSE([$KSRC/include/linux/types.h], [bool],
[OVS_DEFINE([HAVE_BOOL_TYPE])])
OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [skb_vlan_tagged])
OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [eth_type_vlan])
+ OVS_FIND_PARAM_IFELSE([$KSRC/include/net/dst_metadata.h],
+ [metadata_dst_alloc], [metadata_type])
+
OVS_GREP_IFELSE([$KSRC/include/linux/u64_stats_sync.h], [u64_stats_fetch_begin_irq])
OVS_GREP_IFELSE([$KSRC/include/net/vxlan.h], [struct vxlan_metadata],
[OVS_DEFINE([HAVE_DEFRAG_ENABLE_TAKES_NET])])
OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [family_list],
[OVS_DEFINE([HAVE_GENL_FAMILY_LIST])])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/linux/netdevice.h], [net_device],
+ [needs_free_netdev],
+ [OVS_DEFINE([HAVE_NEEDS_FREE_NETDEV])])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/net/vxlan.h], [vxlan_dev], [cfg],
+ [OVS_DEFINE([HAVE_VXLAN_DEV_CFG])])
OVS_GREP_IFELSE([$KSRC/include/net/netfilter/nf_conntrack_helper.h],
- [nf_conntrack_helper_put])
+ [nf_conntrack_helper_put],
+ [OVS_DEFINE(HAVE_NF_CONNTRACK_HELPER_PUT)])
+ OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h],[[[[:space:]]]SKB_GSO_UDP[[[:space:]]]],
+ [OVS_DEFINE([HAVE_SKB_GSO_UDP])])
+ OVS_GREP_IFELSE([$KSRC/include/net/dst.h],[DST_NOCACHE],
+ [OVS_DEFINE([HAVE_DST_NOCACHE])])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/net/rtnetlink.h], [rtnl_link_ops],
+ [extack],
+ [OVS_DEFINE([HAVE_EXT_ACK_IN_RTNL_LINKOPS])])
+ OVS_FIND_FIELD_IFELSE([$KSRC/include/linux/netfilter.h], [nf_hook_ops],
+ [list],
+ [OVS_DEFINE([HAVE_LIST_IN_NF_HOOK_OPS])])
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then