diff options
author | 2021-05-19 14:20:18 +0200 | |
---|---|---|
committer | 2021-06-23 11:01:41 +0200 | |
commit | d333322361e7a099dc74df2498d3fa5fde5c4fa7 (patch) | |
tree | 3e47779ba4058966b0e9e649a1c18e0ede279676 /net/mac80211/rate.c | |
parent | mac80211: add ieee80211_is_tx_data helper function (diff) | |
download | linux-d333322361e7a099dc74df2498d3fa5fde5c4fa7.tar.gz linux-d333322361e7a099dc74df2498d3fa5fde5c4fa7.tar.bz2 linux-d333322361e7a099dc74df2498d3fa5fde5c4fa7.zip |
mac80211: do not use low data rates for data frames with no ack flag
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>
Diffstat (limited to 'net/mac80211/rate.c')
-rw-r--r-- | net/mac80211/rate.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c index 63652c39c8e0..01d6407b0279 100644 --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -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); |