MLD STA: Use AP MLD address in PMKSA cache attempts for driver-SME case

The previous implementation handles PMKSA cache attempts with AP MLD
address only for SME-in-wpa_supplicant cases since wpa_s->valid_links
wouldn't be set for SME-in-driver cases.

Fix SME-in-driver behavior by enabling PMKSA cache attempts with AP MLD
address when driver supports MLO and SME offload to driver.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
This commit is contained in:
Veerendranath Jakkam 2022-12-24 15:11:05 +05:30 committed by Jouni Malinen
parent 8c4790cef8
commit a32b424a3d

View file

@ -3164,7 +3164,13 @@ static u8 * wpas_populate_assoc_ies(
const u8 *cache_id = NULL;
const u8 *addr = bss->bssid;
if (wpa_s->valid_links)
if (!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME) &&
(wpa_s->drv_flags2 & WPA_DRIVER_FLAGS2_MLO) &&
!is_zero_ether_addr(bss->mld_addr))
addr = bss->mld_addr;
if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME) &&
wpa_s->valid_links)
addr = wpa_s->ap_mld_addr;
try_opportunistic = (ssid->proactive_key_caching < 0 ?