aboutsummaryrefslogtreecommitdiff
path: root/net/openvswitch
diff options
context:
space:
mode:
Diffstat (limited to 'net/openvswitch')
-rw-r--r--net/openvswitch/Makefile88
-rwxr-xr-xnet/openvswitch/files/openvswitch.init5
-rwxr-xr-xnet/openvswitch/files/ovs-ctl-wrapper2
-rw-r--r--net/openvswitch/openvswitch.mk36
-rw-r--r--net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch9
-rw-r--r--net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch40
-rw-r--r--net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch4
-rw-r--r--net/openvswitch/patches/0004-build-disable-building-tests.patch6
-rw-r--r--net/openvswitch/patches/0005-datapath-unexport-LDFLAGS.patch (renamed from net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch)2
-rw-r--r--net/openvswitch/patches/0005-ovsdb-idlc-fix-dict-change-during-iteration.patch38
-rw-r--r--net/openvswitch/patches/0006-compat-Include-confirm_neigh-parameter-if-needed.patch70
11 files changed, 75 insertions, 225 deletions
diff --git a/net/openvswitch/Makefile b/net/openvswitch/Makefile
index 8750c6a8b..5f7d8a345 100644
--- a/net/openvswitch/Makefile
+++ b/net/openvswitch/Makefile
@@ -1,13 +1,14 @@
#
# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
# Copyright (C) 2014-2017 OpenWrt.org
-# Copyright (C) 2018-2019 Yousong Zhou <yszhou4tech@gmail.com>
+# Copyright (C) 2018-2020 Yousong Zhou <yszhou4tech@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
+include ./openvswitch.mk
# Checklist on version bump
#
@@ -15,16 +16,17 @@ include $(INCLUDE_DIR)/kernel.mk
# - Check and update kmod dependencies when necessary (runtime module load check in the least)
#
PKG_NAME:=openvswitch
-PKG_VERSION:=2.12.0
-PKG_RELEASE:=4
+PKG_VERSION:=$(ovs_version)
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
-PKG_HASH:=13fd42703180b4b1146c7e97926d09225485868cc2fbbd58dc0c421b4b8fe8f8
+PKG_HASH:=dd5f727427e36cab22bdeae61529d8c8fccacc53d968cfa7658f7f935ddda531
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:openvswitch:openvswitch
+PKG_BUILD_DIR:=$(ovs_builddir)
PKG_BUILD_DEPENDS+=python3/host python-six/host
PKG_USE_MIPS16:=0
PKG_BUILD_PARALLEL:=1
@@ -35,7 +37,6 @@ PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
include $(INCLUDE_DIR)/package.mk
include ../../lang/python/python3-host.mk
-include ../../lang/python/python-package.mk
include ../../lang/python/python3-package.mk
@@ -154,31 +155,6 @@ ovs_kmod_openvswitch-lisp-intree_depends:= +kmod-openvswitch-intree
ovs_kmod_openvswitch-lisp-intree_files:= $(ovs_kmod_intree_dir)/vport-lisp.ko
$(eval $(call OvsKmodPackageTemplate,openvswitch-lisp-intree))
-
-ovs_packages:=
-ovs_package_name=$(if $(filter openvswitch,$(1)),openvswitch,openvswitch-$(1))
-define OvsPackageTemplate
- define Package/$(call ovs_package_name,$(1))
- SECTION:=net
- SUBMENU:=Open vSwitch
- CATEGORY:=Network
- URL:=https://www.openvswitch.org
- TITLE:=$(ovs_$(1)_title)
- HIDDEN:=$(ovs_$(1)_hidden)
- DEPENDS:=$(ovs_$(1)_depends) +libatomic +libunbound
- endef
-
- define Package/$(call ovs_package_name,$(1))/install
- $(foreach f,$(ovs_$(1)_files),
- $(INSTALL_DIR) $$(1)/$(dir $(f))
- $(CP) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(dir $(f))
- )
- $(ovs_$(1)_install)
- endef
-
- ovs_packages+=$(call ovs_package_name,$(1))
-endef
-
# Dependency review
#
# for f in sbin/*; do echo $f; readelf -d $f | grep -i shared; done
@@ -206,13 +182,6 @@ ovs_libovsdb_files:=usr/lib/libovsdb*.so*
$(eval $(call OvsPackageTemplate,libovsdb))
-ovs_libovn_title:=Open vSwitch (libovn.so)
-ovs_libovn_hidden:=1
-ovs_libovn_depends:=+librt
-ovs_libovn_files:=usr/lib/libovn*.so*
-$(eval $(call OvsPackageTemplate,libovn))
-
-
ovs_vswitchd_title:=Open vSwitch (ovs-vswitchd)
ovs_vswitchd_hidden:=1
ovs_vswitchd_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto
@@ -264,46 +233,6 @@ ovs_openvswitch_files:= usr/share/openvswitch/vswitch.ovsschema
$(eval $(call OvsPackageTemplate,openvswitch))
-ovs_ovn-common_title:=Open Virtual Network (common files)
-ovs_ovn-common_hidden:=1
-ovs_ovn-common_depends:=+librt +openvswitch-common +openvswitch-libopenvswitch +openvswitch-libovn +openvswitch-libovsdb
-ovs_ovn-common_files:= \
- usr/share/openvswitch/scripts/ovn-ctl \
- $(foreach b,ovn-nbctl ovn-sbctl ovn-trace ovn-detrace,usr/bin/$(b))
-define ovs_ovn-common_install
- $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
- $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovn-ctl
-endef
-$(eval $(call OvsPackageTemplate,ovn-common))
-
-
-ovs_ovn-north_title:=Open Virtual Network (north package)
-ovs_ovn-north_hidden:=
-ovs_ovn-north_depends:=+openvswitch-ovsdb +openvswitch-ovn-common
-ovs_ovn-north_files:=\
- usr/share/openvswitch/ovn-nb.ovsschema \
- usr/share/openvswitch/ovn-sb.ovsschema \
- usr/bin/ovn-northd
-$(eval $(call OvsPackageTemplate,ovn-north))
-
-
-ovs_ovn-host_title:=Open Virtual Network (chassis package)
-ovs_ovn-host_hidden:=
-ovs_ovn-host_depends:=+openvswitch +openvswitch-ovn-common
-ovs_ovn-host_files:=usr/bin/ovn-controller
-$(eval $(call OvsPackageTemplate,ovn-host))
-
-
-ovs_python_title:=Open vSwitch (Python library)
-ovs_python_hidden:=
-ovs_python_depends:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
-define ovs_python_install
- $$(INSTALL_DIR) $$(1)$$(PYTHON_PKG_DIR)
- $$(CP) $$(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs $$(1)$$(PYTHON_PKG_DIR)
-endef
-$(eval $(call OvsPackageTemplate,python))
-
-
ovs_python3_title:=Open vSwitch (Python3 library)
ovs_python3_hidden:=
ovs_python3_depends:=+PACKAGE_openvswitch-python3:python3 +PACKAGE_openvswitch-python3:python3-six
@@ -322,10 +251,9 @@ CONFIGURE_ARGS+= \
CONFIGURE_VARS += \
ovs_cv_flake8=no \
- ovs_cv_python=$(PYTHON3) \
- ovs_cv_python_host=$(HOST_PYTHON3_BIN) \
+ ovs_cv_python3=$(PYTHON3) \
+ ovs_cv_python3_host=$(HOST_PYTHON3_BIN) \
ovs_cv_sphinx=no \
- ovs_cv_python2=no \
KARCH=$(LINUX_KARCH) \
ovs_intree_kmod_configs:=CONFIG_PACKAGE_kmod-openvswitch-intree
diff --git a/net/openvswitch/files/openvswitch.init b/net/openvswitch/files/openvswitch.init
index f504bb63a..aa1e72ac3 100755
--- a/net/openvswitch/files/openvswitch.init
+++ b/net/openvswitch/files/openvswitch.init
@@ -5,9 +5,8 @@
START=15
-ovs_script_dir=/usr/share/openvswitch/scripts
-ovs_ctl="$ovs_script_dir/ovs-ctl"; [ -x "$ovs_ctl" ] || ovs_ctl=:
-ovn_ctl="$ovs_script_dir/ovn-ctl"; [ -x "$ovn_ctl" ] || ovn_ctl=:
+ovs_ctl="/usr/share/openvswitch/scripts/ovs-ctl"; [ -x "$ovs_ctl" ] || ovs_ctl=:
+ovn_ctl="/usr/share/ovn/scripts/ovn-ctl"; [ -x "$ovn_ctl" ] || ovn_ctl=:
EXTRA_COMMANDS=status
diff --git a/net/openvswitch/files/ovs-ctl-wrapper b/net/openvswitch/files/ovs-ctl-wrapper
index 88ae72429..ee717554e 100755
--- a/net/openvswitch/files/ovs-ctl-wrapper
+++ b/net/openvswitch/files/ovs-ctl-wrapper
@@ -4,6 +4,6 @@ s=/usr/share/openvswitch/scripts
case "$0" in
*ovs-ctl) "$s/ovs-ctl" "$@" ;;
*ovs-kmod-ctl) "$s/ovs-kmod-ctl" "$@" ;;
- *ovn-ctl) "$s/ovn-ctl" "$@" ;;
+ *ovn-ctl) "/usr/share/ovn/scripts/ovn-ctl" "$@" ;;
*) exit 1;;
esac
diff --git a/net/openvswitch/openvswitch.mk b/net/openvswitch/openvswitch.mk
new file mode 100644
index 000000000..71022a7f4
--- /dev/null
+++ b/net/openvswitch/openvswitch.mk
@@ -0,0 +1,36 @@
+# Copyright (C) 2020 Yousong Zhou <yszhou4tech@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+# Versions
+
+ovs_version:=2.13.0
+ovs_builddir=$(KERNEL_BUILD_DIR)/openvswitch-$(ovs_version)
+
+# Shared vars, macros
+
+ovs_packages:=
+
+ovs_package_name=$(if $(filter openvswitch,$(1)),openvswitch,openvswitch-$(1))
+define OvsPackageTemplate
+ define Package/$(call ovs_package_name,$(1))
+ SECTION:=net
+ SUBMENU:=Open vSwitch
+ CATEGORY:=Network
+ URL:=https://www.openvswitch.org
+ TITLE:=$(ovs_$(1)_title)
+ HIDDEN:=$(ovs_$(1)_hidden)
+ DEPENDS:=$(ovs_$(1)_depends) +libatomic +libunbound
+ endef
+
+ define Package/$(call ovs_package_name,$(1))/install
+ $(foreach f,$(ovs_$(1)_files),
+ $(INSTALL_DIR) $$(1)/$(dir $(f))
+ $(CP) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(dir $(f))
+ )
+ $(ovs_$(1)_install)
+ endef
+
+ ovs_packages+=$(call ovs_package_name,$(1))
+endef
diff --git a/net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch b/net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch
index 3a293f21a..565f14a91 100644
--- a/net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch
+++ b/net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch
@@ -1,8 +1,7 @@
-From d215c18a17e82194d4ab9ecd14776712f12d6b07 Mon Sep 17 00:00:00 2001
+From 6fda3936a85319d6b09108dda67466baa1c93b6c Mon Sep 17 00:00:00 2001
From: Helmut Schaa <helmut.schaa@googlemail.com>
Date: Wed, 8 Jan 2014 13:48:49 +0100
-Subject: [PATCH 1/4] netdev-linux: Let interface flag survive internal port
- setup
+Subject: [PATCH] netdev-linux: Let interface flag survive internal port setup
Due to a race condition when bringing up an internal port on Linux
some interface flags (e.g. IFF_MULTICAST) are falsely reset. This
@@ -18,10 +17,10 @@ Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index 2432cd176..11efbdbc9 100644
+index c6f3d2740..136668b1d 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
-@@ -3161,7 +3161,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
+@@ -3461,7 +3461,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
unsigned int old_flags, new_flags;
int error = 0;
diff --git a/net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch b/net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch
index 73f40ff31..a760cd5a2 100644
--- a/net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch
+++ b/net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch
@@ -1,41 +1,37 @@
-From e2d9b5d6fc33d7b9cbb7dc16832c5c86e6470966 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <zhouyousong@yunionyun.com>
-Date: Tue, 21 Aug 2018 12:21:05 +0000
-Subject: [PATCH 2/4] python: separate host/target python for cross-compile
-
-At the moment, python-six is a requirement for openvswitch python
-library on target machine.
+From c17f9e73b543043b438dee6759ae20047ee33d4a Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Fri, 20 Mar 2020 15:11:31 +0800
+Subject: [PATCH] python: separate host/target python for cross-compile
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
---
Makefile.am | 2 +-
- m4/openvswitch.m4 | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
+ m4/openvswitch.m4 | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index ff1f94b48..417f53230 100644
+index b279303d1..6140b2c7f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -60,7 +60,7 @@ endif
# foo/__init__.pyc will cause Python to ignore foo.py.
run_python = \
PYTHONPATH=$(top_srcdir)/python$(psep)$$PYTHONPATH \
-- PYTHONDONTWRITEBYTECODE=yes $(PYTHON)
-+ PYTHONDONTWRITEBYTECODE=yes $(PYTHON_HOST)
+- PYTHONDONTWRITEBYTECODE=yes $(PYTHON3)
++ PYTHONDONTWRITEBYTECODE=yes $(PYTHON3_HOST)
ALL_LOCAL =
BUILT_SOURCES =
diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
-index cd6b51d86..6dc9d630b 100644
+index add3aabcc..839eb7bda 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
-@@ -456,7 +456,9 @@ AC_DEFUN([OVS_CHECK_PYTHON],
- fi])
- AC_SUBST([PYTHON])
- PYTHON=$ovs_cv_python
-+ PYTHON_HOST=$ovs_cv_python_host
- AC_SUBST([HAVE_PYTHON])
-+ AM_MISSING_PROG([PYTHON_HOST], [python])
- HAVE_PYTHON=yes
- AM_CONDITIONAL([HAVE_PYTHON], [test "$HAVE_PYTHON" = yes])])
+@@ -383,6 +383,8 @@ else:
+ AC_MSG_ERROR([Python 3.4 or later is required but not found in $PATH, please install it or set $PYTHON3 to point to it])
+ fi
+ AC_ARG_VAR([PYTHON3])
++ PYTHON3_HOST=$ovs_cv_python3_host
++ AM_MISSING_PROG([PYTHON3_HOST], [python3])
+ PYTHON3=$ovs_cv_python3])
+ dnl Checks for flake8.
diff --git a/net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch b/net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch
index 4d9b04de3..dfa5c424d 100644
--- a/net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch
+++ b/net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch
@@ -1,7 +1,7 @@
-From 10fa6a820c155b6b7a97875de0b805aacf1046b8 Mon Sep 17 00:00:00 2001
+From e8203d10706e6289f773bfe84a3fd87f19fcee07 Mon Sep 17 00:00:00 2001
From: Yousong Zhou <yszhou4tech@gmail.com>
Date: Wed, 14 Mar 2018 16:44:13 +0800
-Subject: [PATCH 3/4] ovs-lib: fix install_dir()
+Subject: [PATCH] ovs-lib: fix install_dir()
The command "install" is not available in OpenWrt by default
diff --git a/net/openvswitch/patches/0004-build-disable-building-tests.patch b/net/openvswitch/patches/0004-build-disable-building-tests.patch
index e1c0f8211..577181ef3 100644
--- a/net/openvswitch/patches/0004-build-disable-building-tests.patch
+++ b/net/openvswitch/patches/0004-build-disable-building-tests.patch
@@ -1,7 +1,7 @@
-From 77dfef9dd14987b091c2d4fc9475690759e1f4d7 Mon Sep 17 00:00:00 2001
+From 46c5ce605b19fd6a782559bda8c90a663bf36014 Mon Sep 17 00:00:00 2001
From: Yousong Zhou <zhouyousong@yunionyun.com>
Date: Tue, 21 Aug 2018 13:02:21 +0000
-Subject: [PATCH 4/4] build: disable building tests
+Subject: [PATCH] build: disable building tests
Signed-off-by: Yousong Zhou <zhouyousong@yunionyun.com>
---
@@ -9,7 +9,7 @@ Signed-off-by: Yousong Zhou <zhouyousong@yunionyun.com>
1 file changed, 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 417f53230..3fc630f33 100644
+index 6140b2c7f..03c65796f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -480,7 +480,6 @@ include m4/automake.mk
diff --git a/net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch b/net/openvswitch/patches/0005-datapath-unexport-LDFLAGS.patch
index ebf846042..084127960 100644
--- a/net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch
+++ b/net/openvswitch/patches/0005-datapath-unexport-LDFLAGS.patch
@@ -1,4 +1,4 @@
-From ddbe0a362cad22e7171524661fd3d3f83628dd7a Mon Sep 17 00:00:00 2001
+From cb16c9b1be1a0d11a26a3027af8168bd314c4114 Mon Sep 17 00:00:00 2001
From: Yousong Zhou <yszhou4tech@gmail.com>
Date: Mon, 16 Mar 2020 15:18:16 +0800
Subject: [PATCH] datapath: unexport LDFLAGS
diff --git a/net/openvswitch/patches/0005-ovsdb-idlc-fix-dict-change-during-iteration.patch b/net/openvswitch/patches/0005-ovsdb-idlc-fix-dict-change-during-iteration.patch
deleted file mode 100644
index f9cadd2d7..000000000
--- a/net/openvswitch/patches/0005-ovsdb-idlc-fix-dict-change-during-iteration.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d84109f0b60096ce71cd0537b31b69a7f5ea8756 Mon Sep 17 00:00:00 2001
-From: Flavio Leitner <fbl@sysclose.org>
-Date: Sat, 14 Sep 2019 20:17:28 -0300
-Subject: [PATCH] ovsdb-idlc.in: fix dict change during iteration.
-
-Python3 complains if a dict key is changed during the
-iteration.
-
-Use list() to create a copy of it.
-
-Traceback (most recent call last):
- File "./ovsdb/ovsdb-idlc.in", line 1581, in <module>
- func(*args[1:])
- File "./ovsdb/ovsdb-idlc.in", line 185, in printCIDLHeader
- replace_cplusplus_keyword(schema)
- File "./ovsdb/ovsdb-idlc.in", line 179, in replace_cplusplus_keyword
- for columnName in table.columns:
-RuntimeError: dictionary keys changed during iteration
-
-Signed-off-by: Flavio Leitner <fbl@sysclose.org>
-Signed-off-by: Ben Pfaff <blp@ovn.org>
----
- ovsdb/ovsdb-idlc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index 40fef39edf..22d0a4e22e 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -176,7 +176,7 @@ def replace_cplusplus_keyword(schema):
- 'wchar_t', 'while', 'xor', 'xor_eq'}
-
- for tableName, table in schema.tables.items():
-- for columnName in table.columns:
-+ for columnName in list(table.columns):
- if columnName in keywords:
- table.columns[columnName + '_'] = table.columns.pop(columnName)
-
diff --git a/net/openvswitch/patches/0006-compat-Include-confirm_neigh-parameter-if-needed.patch b/net/openvswitch/patches/0006-compat-Include-confirm_neigh-parameter-if-needed.patch
deleted file mode 100644
index 89bb772d6..000000000
--- a/net/openvswitch/patches/0006-compat-Include-confirm_neigh-parameter-if-needed.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 2dec526496a62c3aaf849f24ec1b5983a91827a9 Mon Sep 17 00:00:00 2001
-From: Greg Rose <gvrose8192@gmail.com>
-Date: Mon, 6 Jan 2020 13:36:34 -0800
-Subject: [PATCH] compat: Include confirm_neigh parameter if needed
-
-A change backported to the Linux 4.14.162 LTS kernel requires
-a boolean parameter. Check for the presence of the parameter
-and adjust the caller in that case.
-
-Passes check-kmod test with no regressions.
-
-Passes Travis build here:
-https://travis-ci.org/gvrose8192/ovs-experimental/builds/633461320
-
-Signed-off-by: Greg Rose <gvrose8192@gmail.com>
-Signed-off-by: Simon Horman <simon.horman@netronome.com>
-Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
-(fix acinclude.m4 patch conflict)
----
- acinclude.m4 | 2 ++
- datapath/linux/compat/ip6_gre.c | 4 ++++
- datapath/linux/compat/ip_tunnel.c | 5 +++++
- 3 files changed, 11 insertions(+)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index a581e1ef2..ec1f027e9 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -1005,6 +1005,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
- [OVS_DEFINE([HAVE_GRE_CALC_HLEN])])
- OVS_GREP_IFELSE([$KSRC/include/net/gre.h], [ip_gre_calc_hlen],
- [OVS_DEFINE([HAVE_IP_GRE_CALC_HLEN])])
-+ OVS_GREP_IFELSE([$KSRC/include/net/dst_ops.h], [bool confirm_neigh],
-+ [OVS_DEFINE([HAVE_DST_OPS_CONFIRM_NEIGH])])
-
- if cmp -s datapath/linux/kcompat.h.new \
- datapath/linux/kcompat.h >/dev/null 2>&1; then
-diff --git a/datapath/linux/compat/ip6_gre.c b/datapath/linux/compat/ip6_gre.c
-index afff817ec..7fd345309 100644
---- a/datapath/linux/compat/ip6_gre.c
-+++ b/datapath/linux/compat/ip6_gre.c
-@@ -1089,7 +1089,11 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb,
-
- /* TooBig packet may have updated dst->dev's mtu */
- if (!t->parms.collect_md && dst && dst_mtu(dst) > dst->dev->mtu)
-+#ifndef HAVE_DST_OPS_CONFIRM_NEIGH
- dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu);
-+#else
-+ dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu, false);
-+#endif
-
- err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu,
- NEXTHDR_GRE);
-diff --git a/datapath/linux/compat/ip_tunnel.c b/datapath/linux/compat/ip_tunnel.c
-index 7dd57fee9..e7a039358 100644
---- a/datapath/linux/compat/ip_tunnel.c
-+++ b/datapath/linux/compat/ip_tunnel.c
-@@ -267,7 +267,12 @@ static int rpl_tnl_update_pmtu(struct net_device *dev, struct sk_buff *skb,
- mtu = skb_valid_dst(skb) ? dst_mtu(skb_dst(skb)) : dev->mtu;
-
- if (skb_valid_dst(skb))
-+#ifndef HAVE_DST_OPS_CONFIRM_NEIGH
- skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
-+#else
-+ skb_dst(skb)->ops->update_pmtu(skb_dst(skb),
-+ NULL, skb, mtu, false);
-+#endif
-
- if (skb->protocol == htons(ETH_P_IP)) {
- if (!skb_is_gso(skb) &&