[PATCH] mesh: Use correct rate in 11n and legacy mixed environment

Masashi Honma masashi.honma at gmail.com
Tue Feb 14 18:09:31 PST 2017


Let mesh STA A is a STA which has config disable_ht=1.
Let mesh STA B is a STA which has config disable_ht=0.
The mesh STA A and B was connected.

Previouly, the mesh STA A sent frame with 11n rate even though its HT
was disabled. This patch fixes the issue.

Signed-off-by: Masashi Honma <masashi.honma at gmail.com>
---
 src/ap/ieee802_11_ht.c    | 4 ++--
 wpa_supplicant/mesh_mpm.c | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/ap/ieee802_11_ht.c b/src/ap/ieee802_11_ht.c
index 5eb1060..146e447 100644
--- a/src/ap/ieee802_11_ht.c
+++ b/src/ap/ieee802_11_ht.c
@@ -340,8 +340,8 @@ u16 copy_sta_ht_capab(struct hostapd_data *hapd, struct sta_info *sta,
 	 * that did not specify a valid WMM IE in the (Re)Association Request
 	 * frame.
 	 */
-	if (!ht_capab ||
-	    !(sta->flags & WLAN_STA_WMM) || hapd->conf->disable_11n) {
+	if (!ht_capab || !(sta->flags & WLAN_STA_WMM) ||
+	    !hapd->iconf->ieee80211n || hapd->conf->disable_11n) {
 		sta->flags &= ~WLAN_STA_HT;
 		os_free(sta->ht_capabilities);
 		sta->ht_capabilities = NULL;
diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index 1a0fd5f..f152044 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -684,7 +684,8 @@ static struct sta_info * mesh_mpm_add_peer(struct wpa_supplicant *wpa_s,
 
 	oper = (struct ieee80211_ht_operation *) elems->ht_operation;
 	if (oper &&
-	    !(oper->ht_param & HT_INFO_HT_PARAM_STA_CHNL_WIDTH)) {
+	    !(oper->ht_param & HT_INFO_HT_PARAM_STA_CHNL_WIDTH) &&
+	    sta->ht_capabilities) {
 		wpa_msg(wpa_s, MSG_DEBUG, MACSTR
 			" does not support 40 MHz bandwidth",
 			MAC2STR(sta->addr));
-- 
2.7.4




More information about the Hostap mailing list