openvswitch: bump to version 2.13.0
authorYousong Zhou <redacted>
Mon, 23 Mar 2020 07:04:40 +0000 (15:04 +0800)
committerYousong Zhou <redacted>
Mon, 23 Mar 2020 08:07:24 +0000 (16:07 +0800)
python2 library is now removed as the transition has been done by the
upstream project

OVN is now a separate project released with its own release plan and
it's not included within openvswitch starting with ovs 2.13.

openvswitch.mk is split out from the main Makefile for adding ovn
packages back in following commits.

The following two patches are already included in 2.13

 - ovsdb-idlc-fix-dict-change-during-iteration.patch
 - compat-Include-confirm_neigh-parameter-if-needed.patch

Signed-off-by: Yousong Zhou <redacted>
net/openvswitch/Makefile
net/openvswitch/files/openvswitch.init
net/openvswitch/files/ovs-ctl-wrapper
net/openvswitch/openvswitch.mk [new file with mode: 0644]
net/openvswitch/patches/0001-netdev-linux-Let-interface-flag-survive-internal-por.patch
net/openvswitch/patches/0002-python-separate-host-target-python-for-cross-compile.patch
net/openvswitch/patches/0003-ovs-lib-fix-install_dir.patch
net/openvswitch/patches/0004-build-disable-building-tests.patch
net/openvswitch/patches/0005-datapath-unexport-LDFLAGS.patch [moved from net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch with 94% similarity]
net/openvswitch/patches/0005-ovsdb-idlc-fix-dict-change-during-iteration.patch [deleted file]
net/openvswitch/patches/0006-compat-Include-confirm_neigh-parameter-if-needed.patch [deleted file]

index 8750c6a8b5992386066f073c256f3bd19d9ea095..5f7d8a34530c30cb395745da30be8f4d1b9ad6ac 100644 (file)
@@ -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
index f504bb63a30ad75d99544ca37b2e8f747b34f54c..aa1e72ac3e7bfae59a911261608311d00147a537 100755 (executable)
@@ -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
 
index 88ae72429cc4ad1fdad8a56d86281905d2e0df3b..ee717554ec7c0d0858e1c009ea71cffbff8e0416 100755 (executable)
@@ -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 (file)
index 0000000..71022a7
--- /dev/null
@@ -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
index 3a293f21a2b91d9531fef0da262de663369d32fa..565f14a91e0cd1ed1305ca8289a025b84fdbbb63 100644 (file)
@@ -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;
  
index 73f40ff314f273569b431ca543cdc45041ae461d..a760cd5a249854abd92b3df8a9d95b845783e479 100644 (file)
@@ -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 | +
+ 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.
index 4d9b04de3b7a626e24167fe95ad3bf98d63f3586..dfa5c424d038d59ee6d7e6c18eceee98a9325fc9 100644 (file)
@@ -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
 
index e1c0f82111fcf2b004db46ebae1fd74a8659efef..577181ef3bbe32e54ca5fd02396d1d6f02390c95 100644 (file)
@@ -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
similarity index 94%
rename from net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch
rename to net/openvswitch/patches/0005-datapath-unexport-LDFLAGS.patch
index ebf8460422732cd5e05817ef98316628a460b087..0841279609b5a831ad86758987341b7ccfda6568 100644 (file)
@@ -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 (file)
index f9cadd2..0000000
+++ /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 (file)
index 89bb772..0000000
+++ /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) &&
git clone https://git.99rst.org/PROJECT