diff options
Diffstat (limited to 'net/mac80211/agg-tx.c')
-rw-r--r-- | net/mac80211/agg-tx.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index 2c2e9519a2e7..9bfe28c9ab59 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -430,6 +430,27 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid, | |||
430 | return -EINVAL; | 430 | return -EINVAL; |
431 | } | 431 | } |
432 | 432 | ||
433 | /* | ||
434 | * 802.11n-2009 11.5.1.1: If the initiating STA is an HT STA, is a | ||
435 | * member of an IBSS, and has no other existing Block Ack agreement | ||
436 | * with the recipient STA, then the initiating STA shall transmit a | ||
437 | * Probe Request frame to the recipient STA and shall not transmit an | ||
438 | * ADDBA Request frame unless it receives a Probe Response frame | ||
439 | * from the recipient within dot11ADDBAFailureTimeout. | ||
440 | * | ||
441 | * The probe request mechanism for ADDBA is currently not implemented, | ||
442 | * but we only build up Block Ack session with HT STAs. This information | ||
443 | * is set when we receive a bss info from a probe response or a beacon. | ||
444 | */ | ||
445 | if (sta->sdata->vif.type == NL80211_IFTYPE_ADHOC && | ||
446 | !sta->sta.ht_cap.ht_supported) { | ||
447 | #ifdef CONFIG_MAC80211_HT_DEBUG | ||
448 | printk(KERN_DEBUG "BA request denied - IBSS STA %pM" | ||
449 | "does not advertise HT support\n", pubsta->addr); | ||
450 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | ||
451 | return -EINVAL; | ||
452 | } | ||
453 | |||
433 | spin_lock_bh(&sta->lock); | 454 | spin_lock_bh(&sta->lock); |
434 | 455 | ||
435 | /* we have tried too many times, receiver does not want A-MPDU */ | 456 | /* we have tried too many times, receiver does not want A-MPDU */ |