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-08-02 22:00:19 +0100 |
commit | 13c66f88207149521e5ab675603fd6c650309dbf (patch) | |
tree | 85e486b03a80cca1d5e8a6e65a1c25f53ca1cf3a /package/network | |
parent | 4f3c9a63b286b6d56dce5b34294bb16bc1305bad (diff) | |
download | upstream-13c66f88207149521e5ab675603fd6c650309dbf.tar.gz upstream-13c66f88207149521e5ab675603fd6c650309dbf.tar.bz2 upstream-13c66f88207149521e5ab675603fd6c650309dbf.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>
Diffstat (limited to 'package/network')
-rw-r--r-- | package/network/utils/iproute2/Makefile | 2 | ||||
-rw-r--r-- | package/network/utils/iproute2/patches/190-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 b1e4518b23..d91616e456 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.17.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 diff --git a/package/network/utils/iproute2/patches/190-add-cake-to-tc.patch b/package/network/utils/iproute2/patches/190-add-cake-to-tc.patch index 76594cca49..b44efac974 100644 --- a/package/network/utils/iproute2/patches/190-add-cake-to-tc.patch +++ b/package/network/utils/iproute2/patches/190-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) |