bgscan: Add OWE transition mode SSID to network scan

Add transition mode SSIDs to the SSID scan-list for bgscan. This is
currently missing and bgscan fails to scan for SSIDs on the OWE
transition network if one is currently used.

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2024-04-28 15:13:43 +02:00 committed by Jouni Malinen
parent 56e8f8bf34
commit 69d18ab9f2
4 changed files with 15 additions and 3 deletions

View file

@ -280,6 +280,11 @@ static void bgscan_learn_timeout(void *eloop_ctx, void *timeout_ctx)
params.num_ssids = 1; params.num_ssids = 1;
params.ssids[0].ssid = data->ssid->ssid; params.ssids[0].ssid = data->ssid->ssid;
params.ssids[0].ssid_len = data->ssid->ssid_len; params.ssids[0].ssid_len = data->ssid->ssid_len;
/* Add OWE transition mode SSID of the current network */
wpa_add_owe_scan_ssid(wpa_s, &params, data->ssid,
wpa_s->max_scan_ssids - params.num_ssids);
if (data->ssid->scan_freq) if (data->ssid->scan_freq)
params.freqs = data->ssid->scan_freq; params.freqs = data->ssid->scan_freq;
else { else {

View file

@ -89,6 +89,10 @@ static void bgscan_simple_timeout(void *eloop_ctx, void *timeout_ctx)
params.ssids[0].ssid_len = data->ssid->ssid_len; params.ssids[0].ssid_len = data->ssid->ssid_len;
params.freqs = data->ssid->scan_freq; params.freqs = data->ssid->scan_freq;
/* Add OWE transition mode SSID of the current network */
wpa_add_owe_scan_ssid(wpa_s, &params, data->ssid,
wpa_s->max_scan_ssids - params.num_ssids);
/* /*
* A more advanced bgscan module would learn about most like channels * A more advanced bgscan module would learn about most like channels
* over time and request scans only for some channels (probing others * over time and request scans only for some channels (probing others

View file

@ -940,9 +940,9 @@ static void wpa_add_scan_ssid(struct wpa_supplicant *wpa_s,
} }
static void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s, void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s,
struct wpa_driver_scan_params *params, struct wpa_driver_scan_params *params,
struct wpa_ssid *ssid, size_t max_ssids) const struct wpa_ssid *ssid, size_t max_ssids)
{ {
#ifdef CONFIG_OWE #ifdef CONFIG_OWE
struct wpa_bss *bss; struct wpa_bss *bss;

View file

@ -104,5 +104,8 @@ int wpas_channel_width_rssi_bump(const u8 *ies, size_t ies_len,
enum chan_width cw); enum chan_width cw);
int wpas_adjust_snr_by_chanwidth(const u8 *ies, size_t ies_len, int wpas_adjust_snr_by_chanwidth(const u8 *ies, size_t ies_len,
enum chan_width max_cw, int snr); enum chan_width max_cw, int snr);
void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s,
struct wpa_driver_scan_params *params,
const struct wpa_ssid *ssid, size_t max_ssids);
#endif /* SCAN_H */ #endif /* SCAN_H */