From a32b424a3d9754273e6047ed2d60d68b405b79f5 Mon Sep 17 00:00:00 2001 From: Veerendranath Jakkam Date: Sat, 24 Dec 2022 15:11:05 +0530 Subject: [PATCH] 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 --- wpa_supplicant/wpa_supplicant.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 61aa55f81..3766e8b7c 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -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 ?