Use AP MLD address as destination address for EAPOL Four-Way handshake frames since authenticator/supplicant are operates above MLD. Driver/FW will use RA/TA based on the link used for transmitting the EAPOL frames. Signed-off-by: Veerendranath Jakkam <quic_vjakkam@xxxxxxxxxxx> --- src/rsn_supp/wpa.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c index 9a4e0ebee..4c0d05c7e 100644 --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c @@ -743,6 +743,8 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, u8 *kde, *kde_buf = NULL; size_t kde_len; size_t mlo_kde_len = 0; + const unsigned char *dst = sm->valid_links ? + sm->ap_mld_addr : sm->bssid; if (encrypted == FRAME_NOT_ENCRYPTED && sm->tk_set && wpa_sm_pmf_enabled(sm)) { @@ -931,7 +933,7 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, kde_len = pos - kde; } - if (wpa_supplicant_send_2_of_4(sm, sm->bssid, key, ver, sm->snonce, + if (wpa_supplicant_send_2_of_4(sm, dst, key, ver, sm->snonce, kde, kde_len, ptk) < 0) goto failed; @@ -2313,7 +2315,7 @@ static void wpa_supplicant_process_mlo_3_of_4(struct wpa_sm *sm, } #endif /* CONFIG_OCV */ - if (wpa_supplicant_send_4_of_4(sm, sm->bssid, key, ver, key_info, + if (wpa_supplicant_send_4_of_4(sm, sm->ap_mld_addr, key, ver, key_info, &sm->ptk) < 0) goto failed; -- 2.25.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap