P2P: Do not allow 40 MHz co-ex PRI/SEC switch to force MCC
Do not allow 40 MHz co-ex PRI/SEC switch to force us to change our PRI channel if we have an existing connection on the selected PRI channel since doing multi-channel concurrency is likely to cause more harm than using different PRI/SEC selection in environment with multiple BSSes on these two channels with mixed 20 MHz or PRI channel selection. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
8c43ef8449
commit
55413ce072
3 changed files with 32 additions and 2 deletions
|
@ -619,6 +619,7 @@ struct hostapd_config {
|
|||
u16 ht_capab;
|
||||
int ieee80211n;
|
||||
int secondary_channel;
|
||||
int no_pri_sec_switch;
|
||||
int require_ht;
|
||||
int obss_interval;
|
||||
u32 vht_capab;
|
||||
|
|
|
@ -260,8 +260,14 @@ static int ieee80211n_check_40mhz_5g(struct hostapd_iface *iface,
|
|||
|
||||
res = check_40mhz_5g(iface->current_mode, scan_res, pri_chan, sec_chan);
|
||||
|
||||
if (res == 2)
|
||||
ieee80211n_switch_pri_sec(iface);
|
||||
if (res == 2) {
|
||||
if (iface->conf->no_pri_sec_switch) {
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"Cannot switch PRI/SEC channels due to local constraint");
|
||||
} else {
|
||||
ieee80211n_switch_pri_sec(iface);
|
||||
}
|
||||
}
|
||||
|
||||
return !!res;
|
||||
}
|
||||
|
|
|
@ -142,6 +142,29 @@ void wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (conf->secondary_channel) {
|
||||
struct wpa_supplicant *iface;
|
||||
|
||||
for (iface = wpa_s->global->ifaces; iface; iface = iface->next)
|
||||
{
|
||||
if (iface == wpa_s ||
|
||||
iface->wpa_state < WPA_AUTHENTICATING ||
|
||||
(int) iface->assoc_freq != ssid->frequency)
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Do not allow 40 MHz co-ex PRI/SEC switch to force us
|
||||
* to change our PRI channel since we have an existing,
|
||||
* concurrent connection on that channel and doing
|
||||
* multi-channel concurrency is likely to cause more
|
||||
* harm than using different PRI/SEC selection in
|
||||
* environment with multiple BSSes on these two channels
|
||||
* with mixed 20 MHz or PRI channel selection.
|
||||
*/
|
||||
conf->no_pri_sec_switch = 1;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211N */
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue