mac80211: fix AQL issue with multicast traffic
Exclude multicast from pending AQL budget
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 9f1d622328)
			
			
This commit is contained in:
		@@ -0,0 +1,30 @@
 | 
			
		||||
From: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
Date: Wed, 13 Jul 2022 07:32:26 +0200
 | 
			
		||||
Subject: [PATCH] mac80211: exclude multicast packets from AQL pending airtime
 | 
			
		||||
 | 
			
		||||
In AP mode, multicast traffic is handled very differently from normal traffic,
 | 
			
		||||
especially if at least one client is in powersave mode.
 | 
			
		||||
This means that multicast packets can be buffered a lot longer than normal
 | 
			
		||||
unicast packets, and can eat up the AQL budget very quickly because of the low
 | 
			
		||||
data rate.
 | 
			
		||||
Along with the recent change to maintain a global PHY AQL limit, this can lead
 | 
			
		||||
to significant latency spikes for unicast traffic.
 | 
			
		||||
 | 
			
		||||
Since queueing multicast to hardware is currently not constrained by AQL limits
 | 
			
		||||
anyway, let's just exclude it from the AQL pending airtime calculation entirely.
 | 
			
		||||
 | 
			
		||||
Fixes: 8e4bac067105 ("wifi: mac80211: add a per-PHY AQL limit to improve fairness")
 | 
			
		||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
--- a/net/mac80211/tx.c
 | 
			
		||||
+++ b/net/mac80211/tx.c
 | 
			
		||||
@@ -3792,7 +3792,7 @@ begin:
 | 
			
		||||
 encap_out:
 | 
			
		||||
 	IEEE80211_SKB_CB(skb)->control.vif = vif;
 | 
			
		||||
 
 | 
			
		||||
-	if (vif &&
 | 
			
		||||
+	if (tx.sta &&
 | 
			
		||||
 	    wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
 | 
			
		||||
 		bool ampdu = txq->ac != IEEE80211_AC_VO;
 | 
			
		||||
 		u32 airtime;
 | 
			
		||||
		Reference in New Issue
	
	Block a user