diff options
author | Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | 2018-07-29 14:56:03 +0100 |
---|---|---|
committer | Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | 2018-09-12 10:25:12 +0100 |
commit | b2a042b5fe0c07af342981294126f0097dc84207 (patch) | |
tree | cf86ba91456f4ba25d3a87b8271b983fca5fa860 | |
parent | f14c321a0d26ee84192ff687ac2ee7d8ab664c8e (diff) | |
download | upstream-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/Makefile | 2 | ||||
-rw-r--r-- | package/network/utils/iproute2/patches/950-add-cake-to-tc.patch | 11 |
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) |