<tr><td>IEs</td><td>aay</td><td>Information elements to used in active scan (applies only if scan type is active)</td><td>No</td>
<tr><td>Channels</td><td>a(uu)</td><td>Array of frequencies to scan in form of (center, width) in MHz.</td><td>No</td>
<tr><td>AllowRoam</td><td>b</td><td>TRUE (or absent) to allow a roaming decision based on the results of this scan, FALSE to prevent a roaming decision.</td><td>No</td>
+ <tr><td>NonColoc6GHz</td><td>b</td><td>TRUE to force scanning of non-PSC 6 GHz channels, FALSE (or absent) to skip scanning of non-PSC 6 GHz channels.</td><td>No</td>
+ <tr><td>6GHzOnly</td><td>b</td><td>TRUE to scan only 6 GHz channels, FALSE (or absent) to scan all channels. Applies only if Channels is absent.</td><td>No</td>
</table>
</dd>
</dl>
}
-static int wpas_dbus_get_scan_allow_roam(DBusMessage *message,
- DBusMessageIter *var,
- dbus_bool_t *allow,
- DBusMessage **reply)
+static int wpas_dbus_get_scan_boolean(DBusMessage *message,
+ DBusMessageIter *var,
+ dbus_bool_t *allow,
+ DBusMessage **reply)
{
if (dbus_message_iter_get_arg_type(var) != DBUS_TYPE_BOOLEAN) {
wpa_printf(MSG_DEBUG, "%s[dbus]: Type must be a boolean",
struct wpa_driver_scan_params params;
size_t i;
dbus_bool_t allow_roam = 1;
+ dbus_bool_t non_coloc_6ghz = FALSE;
+ dbus_bool_t scan_6ghz_only = FALSE;
os_memset(¶ms, 0, sizeof(params));
¶ms, &reply) < 0)
goto out;
} else if (os_strcmp(key, "AllowRoam") == 0) {
- if (wpas_dbus_get_scan_allow_roam(message,
- &variant_iter,
- &allow_roam,
- &reply) < 0)
+ if (wpas_dbus_get_scan_boolean(message,
+ &variant_iter,
+ &allow_roam,
+ &reply) < 0)
+ goto out;
+ } else if (os_strcmp(key, "NonColoc6GHz") == 0) {
+ if (wpas_dbus_get_scan_boolean(message,
+ &variant_iter,
+ &non_coloc_6ghz,
+ &reply) < 0)
+ goto out;
+ } else if (os_strcmp(key, "6GHzOnly") == 0) {
+ if (wpas_dbus_get_scan_boolean(message,
+ &variant_iter,
+ &scan_6ghz_only,
+ &reply) < 0)
goto out;
} else {
wpa_printf(MSG_DEBUG, "%s[dbus]: Unknown argument %s",
goto out;
}
+ if (non_coloc_6ghz)
+ params.non_coloc_6ghz = 1;
+
+ if (scan_6ghz_only && !params.freqs)
+ wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211A, ¶ms,
+ true, false, false);
+
if (os_strcmp(type, "passive") == 0) {
if (params.num_ssids || params.extra_ies_len) {
wpa_printf(MSG_DEBUG,