[PATCH 7/7] wpa_supplicant: Do not allow fast associate before scanning 6 GHz
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Mon Apr 8 06:07:01 PDT 2024
From: Ilan Peer <ilan.peer at intel.com>
In case the channel map was updated to include the 6 GHz but these channels
were not scanned yet, do not allow fast associate.
Signed-off-by: Ilan Peer <ilan.peer at intel.com>
---
wpa_supplicant/events.c | 10 ++++++----
wpa_supplicant/scan.c | 6 ++++++
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index bfe3d85e8f..96054f264a 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2852,6 +2852,9 @@ int wpa_supplicant_fast_associate(struct wpa_supplicant *wpa_s)
wpa_s->conf->scan_res_valid_for_connect)) {
wpa_printf(MSG_DEBUG, "Fast associate: Old scan results");
return -1;
+ } else if (wpa_s->crossed_6ghz_dom) {
+ wpa_printf(MSG_DEBUG, "Fast associate: crossed 6 GHz dom");
+ return -1;
}
return wpas_select_network_from_last_scan(wpa_s, 0, 1, false, NULL);
@@ -5234,11 +5237,10 @@ void wpa_supplicant_update_channel_list(struct wpa_supplicant *wpa_s,
wpa_dbg(ifs, MSG_DEBUG,
"Channel list changed - restart sched_scan");
wpas_scan_restart_sched_scan(ifs);
- } else if (ifs->scanning && !was_6ghz_enabled &&
- ifs->is_6ghz_enabled) {
- /* Look for APs in the 6 GHz band */
+ } else if (!was_6ghz_enabled && ifs->is_6ghz_enabled) {
wpa_dbg(ifs, MSG_INFO,
- "Channel list changed - trigger 6 GHz-only scan");
+ "Channel list changed: 6 GHz are enabled");
+
ifs->crossed_6ghz_dom = true;
}
}
diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index 2db4d8b910..e591f22507 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -322,6 +322,12 @@ int wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
}
wpa_s->last_scan_all_chan = !params->freqs;
wpa_s->last_scan_non_coloc_6ghz = params->non_coloc_6ghz;
+
+ if (wpa_s->crossed_6ghz_dom) {
+ wpa_printf(MSG_DEBUG, "First scan after crossing 6 GHz domain");
+ wpa_s->crossed_6ghz_dom = false;
+ }
+
if (!ctx ||
radio_add_work(wpa_s, 0, "scan", next, wpas_trigger_scan_cb,
ctx) < 0) {
--
2.43.0
More information about the Hostap
mailing list