Set ht_capab from based on driver capabilities when in P2P GO mode

Set the HT capabilities of a P2P GO according to the wiphy supported
ones. Mask-in a white-list of HT capabilities that won't cause problems
for non-supporting stations.

Signed-hostap: Arik Nemtsov <arik@wizery.com>
This commit is contained in:
Arik Nemtsov 2011-11-29 23:45:07 +02:00 committed by Jouni Malinen
parent ea5bae4731
commit 79b8c60f81

View file

@ -80,9 +80,10 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
#ifdef CONFIG_IEEE80211N #ifdef CONFIG_IEEE80211N
/* /*
* Enable HT20 if the driver supports it, by setting conf->ieee80211n. * Enable HT20 if the driver supports it, by setting conf->ieee80211n
* and a mask of allowed capabilities within conf->ht_capab.
* Using default config settings for: conf->ht_op_mode_fixed, * Using default config settings for: conf->ht_op_mode_fixed,
* conf->ht_capab, conf->secondary_channel, conf->require_ht * conf->secondary_channel, conf->require_ht
*/ */
if (wpa_s->hw.modes) { if (wpa_s->hw.modes) {
struct hostapd_hw_modes *mode = NULL; struct hostapd_hw_modes *mode = NULL;
@ -93,8 +94,21 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
break; break;
} }
} }
if (mode && mode->ht_capab) if (mode && mode->ht_capab) {
conf->ieee80211n = 1; conf->ieee80211n = 1;
/*
* white-list capabilities that won't cause issues
* to connecting stations, while leaving the current
* capabilities intact (currently disabled SMPS).
*/
conf->ht_capab |= mode->ht_capab &
(HT_CAP_INFO_GREEN_FIELD |
HT_CAP_INFO_SHORT_GI20MHZ |
HT_CAP_INFO_SHORT_GI40MHZ |
HT_CAP_INFO_RX_STBC_MASK |
HT_CAP_INFO_MAX_AMSDU_SIZE);
}
} }
#endif /* CONFIG_IEEE80211N */ #endif /* CONFIG_IEEE80211N */