AP: Unset HT capabilities for an HT association request without WMM
authorIlan Peer <ilan.peer@intel.com>
Tue, 24 Mar 2015 07:40:06 +0000 (09:40 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 25 Mar 2015 13:02:58 +0000 (15:02 +0200)
HT requires QoS/WMM, so unset HT capabilities for a station
whose association request does not include a valid WMM IE.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
src/ap/ieee802_11_ht.c

index 4b0653d..15edbe9 100644 (file)
@@ -312,10 +312,14 @@ void hostapd_2040_coex_action(struct hostapd_data *hapd,
 u16 copy_sta_ht_capab(struct hostapd_data *hapd, struct sta_info *sta,
                      const u8 *ht_capab, size_t ht_capab_len)
 {
-       /* Disable HT caps for STAs associated to no-HT BSSes. */
+       /*
+        * Disable HT caps for STAs associated to no-HT BSSes, or for stations
+        * that did not specify a valid WMM IE in the (Re)Association Request
+        * frame.
+        */
        if (!ht_capab ||
            ht_capab_len < sizeof(struct ieee80211_ht_capabilities) ||
-           hapd->conf->disable_11n) {
+           !(sta->flags & WLAN_STA_WMM) || hapd->conf->disable_11n) {
                sta->flags &= ~WLAN_STA_HT;
                os_free(sta->ht_capabilities);
                sta->ht_capabilities = NULL;