MLD STA: Use AP MLD address as previous BSSID for reassociation requests
The Linux kernel expects to use the AP MLD address in NL80211_ATTR_PREV_BSSID for reassociation requests when the current association is MLO capable. Previously, wpa_supplicant was using the BSSID value in NL80211_ATTR_PREV_BSSID even if the connection is MLO capable. Fix this by sending the AP MLD address in NL80211_ATTR_PREV_BSSID for reassociation requests when MLO is used. Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
This commit is contained in:
parent
199b44213c
commit
df2f22faf9
2 changed files with 17 additions and 2 deletions
|
@ -3674,7 +3674,13 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
|
|||
wpas_fst_update_mb_assoc(wpa_s, data);
|
||||
|
||||
#ifdef CONFIG_SME
|
||||
os_memcpy(wpa_s->sme.prev_bssid, bssid, ETH_ALEN);
|
||||
/*
|
||||
* Cache the current AP's BSSID (for non-MLO connection) or MLD address
|
||||
* (for MLO connection) as the previous BSSID for subsequent
|
||||
* reassociation requests handled by SME-in-wpa_supplicant.
|
||||
*/
|
||||
os_memcpy(wpa_s->sme.prev_bssid,
|
||||
wpa_s->valid_links ? wpa_s->ap_mld_addr : bssid, ETH_ALEN);
|
||||
wpa_s->sme.prev_bssid_set = 1;
|
||||
wpa_s->sme.last_unprot_disconnect.sec = 0;
|
||||
#endif /* CONFIG_SME */
|
||||
|
|
|
@ -3972,7 +3972,16 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
return;
|
||||
}
|
||||
|
||||
os_memcpy(prev_bssid, wpa_s->bssid, ETH_ALEN);
|
||||
/*
|
||||
* Set the current AP's BSSID (for non-MLO connection) or MLD address
|
||||
* (for MLO connection) as the previous BSSID for reassociation requests
|
||||
* handled by SME-in-driver. If wpa_supplicant is in disconnected state,
|
||||
* prev_bssid will be zero as both wpa_s->valid_links and wpa_s->bssid
|
||||
* will be zero.
|
||||
*/
|
||||
os_memcpy(prev_bssid,
|
||||
wpa_s->valid_links ? wpa_s->ap_mld_addr : wpa_s->bssid,
|
||||
ETH_ALEN);
|
||||
os_memset(¶ms, 0, sizeof(params));
|
||||
wpa_s->reassociate = 0;
|
||||
wpa_s->eap_expected_failure = 0;
|
||||
|
|
Loading…
Reference in a new issue