Browse Source

iproute2: add cake_mq support

Add two patches backported from iproute2-next.

Signed-off-by: Rui Salvaterra <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/21964
Signed-off-by: Christian Marangi <[email protected]>
Rui Salvaterra 1 day ago
parent
commit
f9320e8d2d

+ 23 - 0
package/network/utils/iproute2/patches/001-0-Update-kernel-headers.patch

@@ -0,0 +1,23 @@
+From a3ec2778576b1841b7fb71afa178cd2d2df8c893 Mon Sep 17 00:00:00 2001
+From: David Ahern <[email protected]>
+Date: Thu, 15 Jan 2026 09:23:04 -0700
+Subject: [PATCH] Update kernel headers
+
+Update kernel headers to commit:
+	d4596891e72c: ("net: inline napi_skb_cache_get()")
+
+Signed-off-by: David Ahern <[email protected]>
+---
+ include/uapi/linux/pkt_sched.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/include/uapi/linux/pkt_sched.h
++++ b/include/uapi/linux/pkt_sched.h
+@@ -1036,6 +1036,7 @@ enum {
+ 	TCA_CAKE_STATS_DROP_NEXT_US,
+ 	TCA_CAKE_STATS_P_DROP,
+ 	TCA_CAKE_STATS_BLUE_TIMER_US,
++	TCA_CAKE_STATS_ACTIVE_QUEUES,
+ 	__TCA_CAKE_STATS_MAX
+ };
+ #define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)

+ 43 - 0
package/network/utils/iproute2/patches/001-1-tc-cake-add-cake_mq-support.patch

@@ -0,0 +1,43 @@
+From 24236c0eb5ddd710d1b28e63c6a7a685ef5660a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20K=C3=B6ppeler?= <[email protected]>
+Date: Mon, 5 Jan 2026 17:29:02 +0100
+Subject: [PATCH] tc: cake: add cake_mq support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This adds support for the cake_mq variant of sch_cake to tc.
+
+Signed-off-by: Jonas Köppeler <[email protected]>
+Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
+Signed-off-by: David Ahern <[email protected]>
+---
+ tc/q_cake.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/tc/q_cake.c
++++ b/tc/q_cake.c
+@@ -667,6 +667,11 @@ static int cake_print_xstats(const struc
+ 			   " /%8u\n", GET_STAT_U32(MAX_ADJLEN));
+ 	}
+ 
++	if (st[TCA_CAKE_STATS_ACTIVE_QUEUES])
++		print_uint(PRINT_ANY, "active_queues",
++			   " active queues: %25u\n",
++			   GET_STAT_U32(ACTIVE_QUEUES));
++
+ 	if (st[TCA_CAKE_STATS_AVG_NETOFF])
+ 		print_uint(PRINT_ANY, "avg_hdr_offset",
+ 			   " average network hdr offset: %12u\n\n",
+@@ -826,4 +831,11 @@ struct qdisc_util cake_qdisc_util = {
+ 	.parse_qopt	= cake_parse_opt,
+ 	.print_qopt	= cake_print_opt,
+ 	.print_xstats	= cake_print_xstats,
++};
++
++struct qdisc_util cake_mq_qdisc_util = {
++	.id		= "cake_mq",
++	.parse_qopt	= cake_parse_opt,
++	.print_qopt	= cake_print_opt,
++	.print_xstats	= cake_print_xstats,
+ };