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;
|
u16 ht_capab;
|
||||||
int ieee80211n;
|
int ieee80211n;
|
||||||
int secondary_channel;
|
int secondary_channel;
|
||||||
|
int no_pri_sec_switch;
|
||||||
int require_ht;
|
int require_ht;
|
||||||
int obss_interval;
|
int obss_interval;
|
||||||
u32 vht_capab;
|
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);
|
res = check_40mhz_5g(iface->current_mode, scan_res, pri_chan, sec_chan);
|
||||||
|
|
||||||
if (res == 2)
|
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);
|
ieee80211n_switch_pri_sec(iface);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return !!res;
|
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 */
|
#endif /* CONFIG_IEEE80211N */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue