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 # Copyright (C) 2014-2017 OpenWrt.org -# Copyright (C) 2018-2019 Yousong Zhou +# Copyright (C) 2018-2020 Yousong Zhou # # 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 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 +# +# 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 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 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 -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 +Date: Fri, 20 Mar 2020 15:11:31 +0800 +Subject: [PATCH] python: separate host/target python for cross-compile Signed-off-by: Yousong Zhou --- 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 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 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 --- @@ -9,7 +9,7 @@ Signed-off-by: Yousong Zhou 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 similarity index 94% rename from net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch rename to 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 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 -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 - 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 -Signed-off-by: Ben Pfaff ---- - 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 -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 -Signed-off-by: Simon Horman -Signed-off-by: Yousong Zhou -(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) &&