aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2018-07-29 14:56:03 +0100
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2018-09-12 10:25:12 +0100
commitb2a042b5fe0c07af342981294126f0097dc84207 (patch)
treecf86ba91456f4ba25d3a87b8271b983fca5fa860
parentf14c321a0d26ee84192ff687ac2ee7d8ab664c8e (diff)
downloadupstream-b2a042b5fe0c07af342981294126f0097dc84207.tar.gz
upstream-b2a042b5fe0c07af342981294126f0097dc84207.tar.bz2
upstream-b2a042b5fe0c07af342981294126f0097dc84207.zip
iproute2: cake: make gso/gro splitting configurable
This patch makes sch_cake's gso/gro splitting configurable from userspace. To disable breaking apart superpackets in sch_cake: tc qdisc replace dev whatever root cake no-split-gso to enable: tc qdisc replace dev whatever root cake split-gso Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: Dave Taht <dave.taht@gmail.com> [pulled from netdev list - no API/ABI change] Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> (cherry picked from commit 3e8a9389961cd866b867740a2f71c2a0af97ab56)
-rw-r--r--package/network/utils/iproute2/Makefile2
-rw-r--r--package/network/utils/iproute2/patches/950-add-cake-to-tc.patch11
2 files changed, 11 insertions, 2 deletions
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index 54e0fdede2..f72b86d034 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
PKG_VERSION:=4.16.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
diff --git a/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch b/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch
index 05142fa95e..1af47c587d 100644
--- a/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch
+++ b/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch
@@ -776,7 +776,7 @@
TCMODULES += e_bpf.o
--- /dev/null
+++ b/tc/q_cake.c
-@@ -0,0 +1,790 @@
+@@ -0,0 +1,799 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+
+/*
@@ -858,6 +858,7 @@
+" dual-srchost | dual-dsthost | triple-isolate* ]\n"
+" [ nat | nonat* ]\n"
+" [ wash | nowash* ]\n"
++" [ split-gso* | no-split-gso ]\n"
+" [ ack-filter | ack-filter-aggressive | no-ack-filter* ]\n"
+" [ memlimit LIMIT ]\n"
+" [ ptm | atm | noatm* ] [ overhead N | conservative | raw* ]\n"
@@ -887,6 +888,7 @@
+ int nat = -1;
+ int atm = -1;
+ int mpu = 0;
++ int split_gso = -1;
+
+ while (argc > 0) {
+ if (strcmp(*argv, "bandwidth") == 0) {
@@ -934,6 +936,10 @@
+ wash = 0;
+ } else if (strcmp(*argv, "wash") == 0) {
+ wash = 1;
++ } else if (strcmp(*argv, "split-gso") == 0) {
++ split_gso = 1;
++ } else if (strcmp(*argv, "no-split-gso") == 0) {
++ split_gso = 0;
+ } else if (strcmp(*argv, "flowblind") == 0) {
+ flowmode = CAKE_FLOW_NONE;
+ } else if (strcmp(*argv, "srchost") == 0) {
@@ -1153,6 +1159,9 @@
+ addattr_l(n, 1024, TCA_CAKE_NAT, &nat, sizeof(nat));
+ if (wash != -1)
+ addattr_l(n, 1024, TCA_CAKE_WASH, &wash, sizeof(wash));
++ if (split_gso != -1)
++ addattr_l(n, 1024, TCA_CAKE_SPLIT_GSO, &split_gso,
++ sizeof(split_gso));
+ if (ingress != -1)
+ addattr_l(n, 1024, TCA_CAKE_INGRESS, &ingress, sizeof(ingress));
+ if (ack_filter != -1)