[PATCH v4 1/4] nl80211: set NL80211_SCAN_FLAG_COLOCATED_6GHZ in scan
Ilan Peer
ilan.peer at intel.com
Mon Apr 11 07:21:58 PDT 2022
From: Tova Mussai <tova.mussai at intel.com>
Set NL80211_SCAN_FLAG_COLOCATED_6GHZ in the scan params to enable
scanning for co-located AP's found in 2.4/5 GHz bands when
not scanning passively. Do so only when collocated scanning
is not disabled by higher layer logic.
Signed-off-by: Tova Mussai <tova.mussai at intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
Signed-off-by: Ilan Peer <ilan.peer at intel.com>
Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
src/drivers/driver.h | 10 ++++++++++
src/drivers/driver_nl80211_scan.c | 11 +++++++++++
wpa_supplicant/scan.c | 1 +
3 files changed, 22 insertions(+)
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 111e7e4081..0e31d6e3fc 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -651,6 +651,16 @@ struct wpa_driver_scan_params {
*/
unsigned int p2p_include_6ghz:1;
+ /**
+ * non_coloc_6ghz - force scanning non-PSC 6GHz channels
+ *
+ * If this is set, the driver should scan non-PSC channels from the
+ * scan request even if no co-located AP was reported on these channels.
+ * The default is to scan non-PSC channels only if a co-located AP was
+ * reported on the channel.
+ */
+ unsigned int non_coloc_6ghz:1;
+
/*
* NOTE: Whenever adding new parameters here, please make sure
* wpa_scan_clone_params() and wpa_scan_free_params() get updated with
diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c
index 1316084805..31e3308081 100644
--- a/src/drivers/driver_nl80211_scan.c
+++ b/src/drivers/driver_nl80211_scan.c
@@ -203,6 +203,17 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd,
goto fail;
}
nla_nest_end(msg, ssids);
+
+ /*
+ * If allowed, scan for 6GHz APs that are reported by other
+ * APs. If the flag is not set and 6GHz channels are to be
+ * scanned, they will be scanned passively.
+ */
+ wpa_printf(MSG_DEBUG, "nl80211: non_coloc_6ghz=%u",
+ params->non_coloc_6ghz);
+
+ if (!params->non_coloc_6ghz)
+ scan_flags |= NL80211_SCAN_FLAG_COLOCATED_6GHZ;
} else {
wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested");
}
diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index b0094ca6ca..31b694713b 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -2872,6 +2872,7 @@ wpa_scan_clone_params(const struct wpa_driver_scan_params *src)
params->duration = src->duration;
params->duration_mandatory = src->duration_mandatory;
params->oce_scan = src->oce_scan;
+ params->non_coloc_6ghz = src->non_coloc_6ghz;
if (src->sched_scan_plans_num > 0) {
params->sched_scan_plans =
--
2.25.1
More information about the Hostap
mailing list