[PATCH] Rescan on regulatory domain change

Jouni Malinen j at w1.fi
Tue Jan 11 08:20:10 PST 2022


On Thu, Dec 23, 2021 at 02:33:58AM +0000, Nicolas Norvez wrote:
> On boot or when resuming after suspending, radios use the lowest common
> denominator across all geographies to know which channels/bands to scan.
> Because of that, the first scan does not detects APs that are present in
> bands that are not allowed everywhere, like the 6GHz band.
> 
> With this patch, supplicant triggers a new scan when the regulatory
> domain has changed to include channels and bands that were not enabled
> previously. It allows the station to connect to WiFi 6E APs faster on
> resume in case the only known APs are in the 6GHz band. Without the
> patch the station doesn't find any known APs after the first scan, then
> it has to wait longer for the next scheduled scan.
> If the first scan does contain known APs, the second scan is canceled
> either way.

I'd expect many devices to use passive scanning to find APs on
potential channels, but I guess there may be cases where something like
what is proposed here can indeed speed up things. That said, doing this
unconditionally on the CHANNEL_LIST_CHANGED event seems excessive. This
could result in extra scanning whenever associating to a new AP and
especially when roaming between APs that advertise different country
code (e.g., a number of APs that I've purchased in Finland seem to be
advertising semi-randomly selected country code from EU) or some
advertise and some don't. In addition, operations like the control
interface FLUSH command would trigger a new scan with this change.

> diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
> @@ -4331,6 +4331,14 @@ void wpa_supplicant_update_channel_list(struct wpa_supplicant *wpa_s,
> +		} else {
> +			/*
> +			 * Look for APs in bands/channels (e.g. 6GHz) that were
> +			 * previously disabled.
> +			 */
> +			wpa_dbg(ifs, MSG_DEBUG,
> +				"Channel list changed - restart scan");
> +			wpa_supplicant_req_new_scan(ifs, 0, 0);
>  		}

Could this be conditional the current state (wpa_s->wpa_state) and/or
something specific changing in the channel list? If this is explicitly
targeting Wi-Fi 6E, it would seem to make sense to do this only if the
previously used channel list did not include 6 GHz channels while the
new one does.

-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the Hostap mailing list