hostapd: Don't force HT Mixed Mode for non-GF STAs
Currently hostapd will force HT Mixed Mode if at least one non-GF STA is associated. This will force _all_ HT transmissions to be protected. 802.11n-2009 doesn't require HT Mixed Mode to be used in case of non-GF STAs but instead the HT information element contains a flag if non-GF STAs are present. All STAs are required to protect GF transmissions in that case. Hence, setting HT Mixed mode if non-GF STAs are present is superfluous. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
This commit is contained in:
parent
ec2b890981
commit
4f6bd86d07
1 changed files with 1 additions and 7 deletions
|
@ -93,7 +93,6 @@ Set to 1 (HT non-member protection) if there may be non-HT STAs
|
||||||
Set to 2 if only HT STAs are associated in BSS,
|
Set to 2 if only HT STAs are associated in BSS,
|
||||||
however and at least one 20 MHz HT STA is associated
|
however and at least one 20 MHz HT STA is associated
|
||||||
Set to 3 (HT mixed mode) when one or more non-HT STAs are associated
|
Set to 3 (HT mixed mode) when one or more non-HT STAs are associated
|
||||||
(currently non-GF HT station is considered as non-HT STA also)
|
|
||||||
*/
|
*/
|
||||||
int hostapd_ht_operation_update(struct hostapd_iface *iface)
|
int hostapd_ht_operation_update(struct hostapd_iface *iface)
|
||||||
{
|
{
|
||||||
|
@ -131,13 +130,8 @@ int hostapd_ht_operation_update(struct hostapd_iface *iface)
|
||||||
op_mode_changes++;
|
op_mode_changes++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note: currently we switch to the MIXED op mode if HT non-greenfield
|
|
||||||
* station is associated. Probably it's a theoretical case, since
|
|
||||||
* it looks like all known HT STAs support greenfield.
|
|
||||||
*/
|
|
||||||
new_op_mode = 0;
|
new_op_mode = 0;
|
||||||
if (iface->num_sta_no_ht ||
|
if (iface->num_sta_no_ht)
|
||||||
(iface->ht_op_mode & HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT))
|
|
||||||
new_op_mode = OP_MODE_MIXED;
|
new_op_mode = OP_MODE_MIXED;
|
||||||
else if ((iface->conf->ht_capab & HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)
|
else if ((iface->conf->ht_capab & HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET)
|
||||||
&& iface->num_sta_ht_20mhz)
|
&& iface->num_sta_ht_20mhz)
|
||||||
|
|
Loading…
Reference in a new issue