AC_MSG_RESULT([$kversion])
if test "$version" -ge 4; then
- if test "$version" = 4 && test "$patchlevel" -le 13; then
+ if test "$version" = 4 && test "$patchlevel" -le 15; then
: # Linux 4.x
else
- 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)])
+ AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.15.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_FLOWER_KEY_IP_TTL_MASK;
+ int x = TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST;
])],
- [AC_DEFINE([HAVE_TCA_FLOWER_KEY_IP_TTL_MASK], [1],
- [Define to 1 if TCA_FLOWER_KEY_IP_TTL_MASK is avaiable.])])
+ [AC_DEFINE([HAVE_TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST], [1],
+ [Define to 1 if TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST is avaiable.])])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([#include <linux/tc_act/tc_vlan.h>], [
[OVS_GREP_IFELSE([$KSRC/include/net/dst_cache.h], [dst_cache],
[OVS_DEFINE([USE_UPSTREAM_TUNNEL])])])])
+ OVS_GREP_IFELSE([$KSRC/include/net/dst_cache.h], [dst_cache],
+ [OVS_DEFINE([USE_BUILTIN_DST_CACHE])])
OVS_GREP_IFELSE([$KSRC/include/net/mpls.h], [mpls_hdr],
[OVS_DEFINE([MPLS_HEADER_IS_L3])])
OVS_GREP_IFELSE([$KSRC/include/linux/net.h], [sock_create_kern.*net],
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], [skb_gso_error_unwind])
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_features_check],
OVS_FIND_FIELD_IFELSE([$KSRC/include/linux/netfilter.h], [nf_hook_ops],
[list],
[OVS_DEFINE([HAVE_LIST_IN_NF_HOOK_OPS])])
+ OVS_GREP_IFELSE([$KSRC/include/uapi/linux/netfilter/nf_conntrack_common.h],
+ [IP_CT_UNTRACKED])
+ OVS_FIND_PARAM_IFELSE([$KSRC/include/linux/netdevice.h],
+ [netdev_master_upper_dev_link], [extack],
+ [OVS_DEFINE([HAVE_UPPER_DEV_LINK_EXTACK])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/compiler_types.h],
+ [__LINUX_COMPILER_TYPES_H],
+ [OVS_DEFINE([HAVE_LINUX_COMPILER_TYPES_H])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/timekeeping.h],
+ [ktime_get_ts64],
+ [OVS_DEFINE([HAVE_KTIME_GET_TS64])])
+ OVS_GREP_IFELSE([$KSRC/include/net/net_namespace.h],
+ [EXPORT_SYMBOL_GPL(peernet2id_alloc)],
+ [OVS_DEFINE([HAVE_PEERNET2ID_ALLOC])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/timekeeping.h],
+ [ktime_get_ns],
+ [OVS_DEFINE([HAVE_KTIME_GET_NS])])
+ OVS_GREP_IFELSE([$KSRC/include/net/inet_frag.h],
+ frag_percpu_counter_batch[],
+ [OVS_DEFINE([HAVE_FRAG_PERCPU_COUNTER_BATCH])])
+
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then