mac80211: do not use low data rates for data frames with no ack flag
authorPhilipp Borgers <borgers@mi.fu-berlin.de>
Wed, 19 May 2021 12:20:18 +0000 (14:20 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Jun 2021 09:01:41 +0000 (11:01 +0200)
Data Frames with no ack flag set should be handled by the rate
controler. Make sure we reach the rate controler by returning early
from rate_control_send_low if the frame is a data frame with no ack
flag.

Signed-off-by: Philipp Borgers <borgers@mi.fu-berlin.de>
Link: https://lore.kernel.org/r/20210519122019.92359-3-borgers@mi.fu-berlin.de
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rate.c

index 63652c3..01d6407 100644 (file)
@@ -396,6 +396,10 @@ static bool rate_control_send_low(struct ieee80211_sta *pubsta,
        int mcast_rate;
        bool use_basicrate = false;
 
+       if (ieee80211_is_tx_data(txrc->skb) &&
+           info->flags & IEEE80211_TX_CTL_NO_ACK)
+               return false;
+
        if (!pubsta || rc_no_data_or_no_ack_use_min(txrc)) {
                __rate_control_send_low(txrc->hw, sband, pubsta, info,
                                        txrc->rate_idx_mask);