Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 23.05-SNAPSHOT, r23959-a107b524af
 -----------------------------------------------------
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy0/aql*
1
AC     AQL pending
VO     0 us
VI     0 us
BE     4 us
BK     0 us
total  4 us
5000
AC AQL limit low AQL limit high
VO 1500 	     1500
VI 1500 	     1500
BE 1500 	     1500
BK 1500 	     1500
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql*
1
AC     AQL pending
VO     0 us
VI     0 us
BE     4 us
BK     0 us
total  4 us
5000
AC AQL limit low AQL limit high
VO 1500 	     1500
VI 1500 	     1500
BE 1500 	     1500
BK 1500 	     1500
root@OpenWrt:~#

CoDeL

--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -685,8 +685,8 @@ __sta_info_alloc(struct ieee80211_sub_if
 	}
 
 	sta->cparams.ce_threshold = CODEL_DISABLED_THRESHOLD;
-	sta->cparams.target = MS2TIME(20);
-	sta->cparams.interval = MS2TIME(100);
+	sta->cparams.target = MS2TIME(5);
+	sta->cparams.interval = MS2TIME(50);
 	sta->cparams.ecn = true;
 	sta->cparams.ce_threshold_selector = 0;
 	sta->cparams.ce_threshold_mask = 0;
@@ -2878,23 +2878,18 @@ unsigned long ieee80211_sta_last_active(
 
 static void sta_update_codel_params(struct sta_info *sta, u32 thr)
 {
-	if (thr && thr < STA_SLOW_THRESHOLD * sta->local->num_sta) {
-		sta->cparams.target = MS2TIME(50);
-		sta->cparams.interval = MS2TIME(300);
-		sta->cparams.ecn = false;
-	} else {
-		sta->cparams.target = MS2TIME(20);
-		sta->cparams.interval = MS2TIME(100);
-		sta->cparams.ecn = true;
-	}
+	sta->cparams.target = MS2TIME(5);
+	sta->cparams.interval = MS2TIME(50);
+	sta->cparams.ecn = true;
 }
 
 void ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta,
 					   u32 thr)
 {
 	struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
-
+	
 	sta_update_codel_params(sta, thr);
+
 }
 
 int ieee80211_sta_allocate_link(struct sta_info *sta, unsigned int link_id)
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1607,8 +1607,8 @@ int ieee80211_txq_setup_flows(struct iee
 		fq->memory_limit = 4 << 20; /* 4 Mbytes */
 
 	codel_params_init(&local->cparams);
-	local->cparams.interval = MS2TIME(100);
-	local->cparams.target = MS2TIME(20);
+	local->cparams.interval = MS2TIME(50);
+	local->cparams.target = MS2TIME(5);
 	local->cparams.ecn = true;
 
 	local->cvars = kcalloc(fq->flows_cnt, sizeof(local->cvars[0]),
1 Like