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:
parent
56e8f8bf34
commit
69d18ab9f2
4 changed files with 15 additions and 3 deletions
|
@ -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, ¶ms, 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 {
|
||||||
|
|
|
@ -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, ¶ms, 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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in a new issue