openvswitch: bump to version 2.13.0
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 <yszhou4tech@gmail.com>
This commit is contained in:
parent
f426ad6acc
commit
bf4f584e75
11 changed files with 75 additions and 225 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
36
net/openvswitch/openvswitch.mk
Normal file
36
net/openvswitch/openvswitch.mk
Normal file
|
@ -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
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
|
|
@ -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) &&
|
Loading…
Reference in a new issue