aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/agg-rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2015-03-09 06:13:04 -0400
committerJohannes Berg <johannes.berg@intel.com>2015-03-30 04:33:19 -0400
commit8f9c77fc1e8d4dfc1e7dc631d193162c75feef2e (patch)
treed62ce6c08dc235112df22a3524d8266942c5c6bb /net/mac80211/agg-rx.c
parenta38700dd486f3def34cef47d00e2d360a04a7bc8 (diff)
mac80211: reject aggregation sessions with non-HT peers
If a peer or some local agent (rate control, ...) decides to start an aggregation session but doesn't support HT (which also implies QoS), reject it. This is mostly a corner case as such peers normally won't try to use block-ack sessions and rate control wouldn't start them, but technically QoS stations could request it according to the spec. However, since drivers don't really support such non-HT sessions it's better to reject them. Also, while at it, move the tracing for TX sessions earlier so it captures the error cases as well. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/agg-rx.c')
-rw-r--r--net/mac80211/agg-rx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index a48bad468880..2c090c507391 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -234,6 +234,14 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
234 int i, ret = -EOPNOTSUPP; 234 int i, ret = -EOPNOTSUPP;
235 u16 status = WLAN_STATUS_REQUEST_DECLINED; 235 u16 status = WLAN_STATUS_REQUEST_DECLINED;
236 236
237 if (!sta->sta.ht_cap.ht_supported) {
238 ht_dbg(sta->sdata,
239 "STA %pM erroneously requests BA session on tid %d w/o QoS\n",
240 sta->sta.addr, tid);
241 /* send a response anyway, it's an error case if we get here */
242 goto end_no_lock;
243 }
244
237 if (test_sta_flag(sta, WLAN_STA_BLOCK_BA)) { 245 if (test_sta_flag(sta, WLAN_STA_BLOCK_BA)) {
238 ht_dbg(sta->sdata, 246 ht_dbg(sta->sdata,
239 "Suspend in progress - Denying ADDBA request (%pM tid %d)\n", 247 "Suspend in progress - Denying ADDBA request (%pM tid %d)\n",