summaryrefslogtreecommitdiff
path: root/net/mac80211
diff options
context:
space:
mode:
authorKrishna Chaitanya <chaitanya.mgit@gmail.com>2015-06-12 02:34:52 +0530
committerJohannes Berg <johannes.berg@intel.com>2015-07-17 15:38:20 +0200
commita3ebb4e1b76346156e8e7233c262ce24e3a86a24 (patch)
treed3cc48a1c1a1453702b0637d2569657ba99e732a /net/mac80211
parent932e628da2fe9be759e19b14e3e5bf1e0e6f0984 (diff)
mac80211: minstrel_ht: handle peers in dynamic SMPS
In case of Dynamic SMPS enable RTS/CTS for all rates. Signed-off-by: Chaitanya T K <chaitanya.mgit@gmail.com> [change comment] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rc80211_minstrel_ht.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index 543b67233535..3928dbd24e25 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -867,7 +867,13 @@ minstrel_ht_set_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
else
idx = index % MCS_GROUP_RATES + (group->streams - 1) * 8;
- if (offset > 0) {
+ /* enable RTS/CTS if needed:
+ * - if station is in dynamic SMPS (and streams > 1)
+ * - for fallback rates, to increase chances of getting through
+ */
+ if (offset > 0 &&
+ (mi->sta->smps_mode == IEEE80211_SMPS_DYNAMIC &&
+ group->streams > 1)) {
ratetbl->rate[offset].count = ratetbl->rate[offset].count_rts;
flags |= IEEE80211_TX_RC_USE_RTS_CTS;
}