Lines Matching refs:mlo

803 	for_each_link(sm->mlo.req_links, i) {  in wpa_mlo_link_kde_len()
804 if (sm->mlo.assoc_link_id != i) in wpa_mlo_link_kde_len()
817 for_each_link(sm->mlo.req_links, i) { in wpa_mlo_link_kde()
818 if (sm->mlo.assoc_link_id == i) in wpa_mlo_link_kde()
824 os_memcpy(&hdr[1], sm->mlo.links[i].addr, ETH_ALEN); in wpa_mlo_link_kde()
835 ether_addr_equal(mac_kde, sm->mlo.ap_mld_addr); in is_valid_ap_mld_mac_kde()
970 if (sm->mlo.valid_links && !is_valid_ap_mld_mac_kde(sm, ie.mac_addr)) { in wpa_supplicant_process_1_of_4()
1008 if (sm->mlo.valid_links) in wpa_supplicant_process_1_of_4()
1093 if (sm->mlo.valid_links) { in wpa_supplicant_process_1_of_4()
1404 if ((sm->mlo.links[link_id].gtk.gtk_len == (size_t) gd->gtk_len && in wpa_supplicant_install_mlo_gtk()
1405 os_memcmp(sm->mlo.links[link_id].gtk.gtk, gd->gtk, in wpa_supplicant_install_mlo_gtk()
1406 sm->mlo.links[link_id].gtk.gtk_len) == 0) || in wpa_supplicant_install_mlo_gtk()
1407 (sm->mlo.links[link_id].gtk_wnm_sleep.gtk_len == in wpa_supplicant_install_mlo_gtk()
1409 os_memcmp(sm->mlo.links[link_id].gtk_wnm_sleep.gtk, gd->gtk, in wpa_supplicant_install_mlo_gtk()
1410 sm->mlo.links[link_id].gtk_wnm_sleep.gtk_len) == 0)) { in wpa_supplicant_install_mlo_gtk()
1443 sm->mlo.links[link_id].gtk_wnm_sleep.gtk_len = gd->gtk_len; in wpa_supplicant_install_mlo_gtk()
1444 os_memcpy(sm->mlo.links[link_id].gtk_wnm_sleep.gtk, gd->gtk, in wpa_supplicant_install_mlo_gtk()
1445 sm->mlo.links[link_id].gtk_wnm_sleep.gtk_len); in wpa_supplicant_install_mlo_gtk()
1447 sm->mlo.links[link_id].gtk.gtk_len = gd->gtk_len; in wpa_supplicant_install_mlo_gtk()
1448 os_memcpy(sm->mlo.links[link_id].gtk.gtk, gd->gtk, in wpa_supplicant_install_mlo_gtk()
1449 sm->mlo.links[link_id].gtk.gtk_len); in wpa_supplicant_install_mlo_gtk()
1563 for_each_link(sm->mlo.valid_links, i) { in wpa_supplicant_pairwise_mlo_gtk()
1758 if ((sm->mlo.links[link_id].igtk.igtk_len == len && in wpa_supplicant_install_mlo_igtk()
1759 os_memcmp(sm->mlo.links[link_id].igtk.igtk, igtk->igtk, in wpa_supplicant_install_mlo_igtk()
1760 sm->mlo.links[link_id].igtk.igtk_len) == 0) || in wpa_supplicant_install_mlo_igtk()
1761 (sm->mlo.links[link_id].igtk_wnm_sleep.igtk_len == len && in wpa_supplicant_install_mlo_igtk()
1762 os_memcmp(sm->mlo.links[link_id].igtk_wnm_sleep.igtk, igtk->igtk, in wpa_supplicant_install_mlo_igtk()
1763 sm->mlo.links[link_id].igtk_wnm_sleep.igtk_len) == 0)) { in wpa_supplicant_install_mlo_igtk()
1792 sm->mlo.links[link_id].igtk_wnm_sleep.igtk_len = len; in wpa_supplicant_install_mlo_igtk()
1793 os_memcpy(sm->mlo.links[link_id].igtk_wnm_sleep.igtk, in wpa_supplicant_install_mlo_igtk()
1795 sm->mlo.links[link_id].igtk_wnm_sleep.igtk_len); in wpa_supplicant_install_mlo_igtk()
1797 sm->mlo.links[link_id].igtk.igtk_len = len; in wpa_supplicant_install_mlo_igtk()
1798 os_memcpy(sm->mlo.links[link_id].igtk.igtk, igtk->igtk, in wpa_supplicant_install_mlo_igtk()
1799 sm->mlo.links[link_id].igtk.igtk_len); in wpa_supplicant_install_mlo_igtk()
1815 if ((sm->mlo.links[link_id].bigtk.bigtk_len == len && in wpa_supplicant_install_mlo_bigtk()
1816 os_memcmp(sm->mlo.links[link_id].bigtk.bigtk, bigtk->bigtk, in wpa_supplicant_install_mlo_bigtk()
1817 sm->mlo.links[link_id].bigtk.bigtk_len) == 0) || in wpa_supplicant_install_mlo_bigtk()
1818 (sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk_len == len && in wpa_supplicant_install_mlo_bigtk()
1819 os_memcmp(sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk, in wpa_supplicant_install_mlo_bigtk()
1821 sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk_len) == in wpa_supplicant_install_mlo_bigtk()
1852 sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk_len = len; in wpa_supplicant_install_mlo_bigtk()
1853 os_memcpy(sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk, in wpa_supplicant_install_mlo_bigtk()
1855 sm->mlo.links[link_id].bigtk_wnm_sleep.bigtk_len); in wpa_supplicant_install_mlo_bigtk()
1857 sm->mlo.links[link_id].bigtk.bigtk_len = len; in wpa_supplicant_install_mlo_bigtk()
1858 os_memcpy(sm->mlo.links[link_id].bigtk.bigtk, bigtk->bigtk, in wpa_supplicant_install_mlo_bigtk()
1859 sm->mlo.links[link_id].bigtk.bigtk_len); in wpa_supplicant_install_mlo_bigtk()
1912 for_each_link(sm->mlo.valid_links, i) { in mlo_ieee80211w_set_keys()
2230 if (sm->mlo.valid_links) { in wpa_supplicant_send_4_of_4()
2355 if (!ether_addr_equal(sm->mlo.links[link_id].bssid, in wpa_supplicant_validate_link_kde()
2362 MAC2STR(sm->mlo.links[link_id].bssid)); in wpa_supplicant_validate_link_kde()
2402 sm->mlo.links[link_id].ap_rsne, in wpa_supplicant_validate_link_kde()
2403 sm->mlo.links[link_id].ap_rsne_len, in wpa_supplicant_validate_link_kde()
2409 sm->mlo.links[link_id].ap_rsne, in wpa_supplicant_validate_link_kde()
2410 sm->mlo.links[link_id].ap_rsne_len); in wpa_supplicant_validate_link_kde()
2416 if ((sm->mlo.links[link_id].ap_rsnxe && !rsnxe) || in wpa_supplicant_validate_link_kde()
2417 (!sm->mlo.links[link_id].ap_rsnxe && rsnxe) || in wpa_supplicant_validate_link_kde()
2418 (sm->mlo.links[link_id].ap_rsnxe && rsnxe && in wpa_supplicant_validate_link_kde()
2419 (sm->mlo.links[link_id].ap_rsnxe_len != rsnxe_len || in wpa_supplicant_validate_link_kde()
2420 os_memcmp(sm->mlo.links[link_id].ap_rsnxe, rsnxe, in wpa_supplicant_validate_link_kde()
2421 sm->mlo.links[link_id].ap_rsnxe_len) != 0))) { in wpa_supplicant_validate_link_kde()
2426 sm->mlo.links[link_id].ap_rsnxe, in wpa_supplicant_validate_link_kde()
2427 sm->mlo.links[link_id].ap_rsnxe_len); in wpa_supplicant_validate_link_kde()
2541 bool mlo = sm->mlo.valid_links; in wpa_supplicant_process_3_of_4() local
2547 " (ver=%d)%s", MAC2STR(sm->bssid), ver, mlo ? " (MLO)" : ""); in wpa_supplicant_process_3_of_4()
2576 if (mlo && !ie.valid_mlo_gtks) { in wpa_supplicant_process_3_of_4()
2581 if (mlo && in wpa_supplicant_process_3_of_4()
2593 if (mlo && !is_valid_ap_mld_mac_kde(sm, ie.mac_addr)) { in wpa_supplicant_process_3_of_4()
2598 for (i = 0; mlo && i < MAX_NUM_MLD_LINKS; i++) { in wpa_supplicant_process_3_of_4()
2599 if (!(sm->mlo.req_links & BIT(i))) in wpa_supplicant_process_3_of_4()
2606 if (!(sm->mlo.valid_links & BIT(i))) in wpa_supplicant_process_3_of_4()
2622 if (mlo && wpa_key_mgmt_ft(sm->key_mgmt) && in wpa_supplicant_process_3_of_4()
2627 if (!mlo && ie.gtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) { in wpa_supplicant_process_3_of_4()
2632 if (!mlo && ie.igtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) { in wpa_supplicant_process_3_of_4()
2638 if (!mlo && ie.igtk && in wpa_supplicant_process_3_of_4()
2649 if (!mlo && wpa_supplicant_validate_ie(sm, sm->bssid, &ie) < 0) in wpa_supplicant_process_3_of_4()
2748 if (mlo) { in wpa_supplicant_process_3_of_4()
2769 if ((mlo && mlo_ieee80211w_set_keys(sm, &ie) < 0) || in wpa_supplicant_process_3_of_4()
2770 (!mlo && ieee80211w_set_keys(sm, &ie) < 0)) { in wpa_supplicant_process_3_of_4()
2776 if (mlo || sm->group_cipher == WPA_CIPHER_GTK_NOT_USED || ie.gtk) in wpa_supplicant_process_3_of_4()
2780 if (mlo || ie.gtk) in wpa_supplicant_process_3_of_4()
2959 for_each_link(sm->mlo.valid_links, i) { in wpa_supplicant_process_mlo_1_of_2()
2976 "with " MACSTR " [GTK=%s]", MAC2STR(sm->mlo.ap_mld_addr), in wpa_supplicant_process_mlo_1_of_2()
3912 if (sm->mlo.valid_links) in wpa_sm_rx_eapol()
4177 os_free(sm->mlo.links[i].ap_rsne); in wpa_sm_deinit()
4178 os_free(sm->mlo.links[i].ap_rsnxe); in wpa_sm_deinit()
4222 os_memset(&sm->mlo.links[i].gtk, 0, in wpa_sm_clear_ptk()
4223 sizeof(sm->mlo.links[i].gtk)); in wpa_sm_clear_ptk()
4224 os_memset(&sm->mlo.links[i].gtk_wnm_sleep, 0, in wpa_sm_clear_ptk()
4225 sizeof(sm->mlo.links[i].gtk_wnm_sleep)); in wpa_sm_clear_ptk()
4226 os_memset(&sm->mlo.links[i].igtk, 0, in wpa_sm_clear_ptk()
4227 sizeof(sm->mlo.links[i].igtk)); in wpa_sm_clear_ptk()
4228 os_memset(&sm->mlo.links[i].igtk_wnm_sleep, 0, in wpa_sm_clear_ptk()
4229 sizeof(sm->mlo.links[i].igtk_wnm_sleep)); in wpa_sm_clear_ptk()
4230 os_memset(&sm->mlo.links[i].bigtk, 0, in wpa_sm_clear_ptk()
4231 sizeof(sm->mlo.links[i].bigtk)); in wpa_sm_clear_ptk()
4232 os_memset(&sm->mlo.links[i].bigtk_wnm_sleep, 0, in wpa_sm_clear_ptk()
4233 sizeof(sm->mlo.links[i].bigtk_wnm_sleep)); in wpa_sm_clear_ptk()
4508 int wpa_sm_set_mlo_params(struct wpa_sm *sm, const struct wpa_sm_mlo *mlo) in wpa_sm_set_mlo_params() argument
4515 os_memcpy(sm->mlo.ap_mld_addr, mlo->ap_mld_addr, ETH_ALEN); in wpa_sm_set_mlo_params()
4516 sm->mlo.assoc_link_id = mlo->assoc_link_id; in wpa_sm_set_mlo_params()
4517 sm->mlo.valid_links = mlo->valid_links; in wpa_sm_set_mlo_params()
4518 sm->mlo.req_links = mlo->req_links; in wpa_sm_set_mlo_params()
4524 if (sm->mlo.req_links & BIT(i)) { in wpa_sm_set_mlo_params()
4525 if (!mlo->links[i].ap_rsne || in wpa_sm_set_mlo_params()
4526 mlo->links[i].ap_rsne_len == 0) { in wpa_sm_set_mlo_params()
4530 i, MAC2STR(mlo->links[i].bssid)); in wpa_sm_set_mlo_params()
4534 os_memcpy(sm->mlo.links[i].addr, mlo->links[i].addr, in wpa_sm_set_mlo_params()
4536 os_memcpy(sm->mlo.links[i].bssid, mlo->links[i].bssid, in wpa_sm_set_mlo_params()
4540 ie = mlo->links[i].ap_rsne; in wpa_sm_set_mlo_params()
4541 len = mlo->links[i].ap_rsne_len; in wpa_sm_set_mlo_params()
4542 os_free(sm->mlo.links[i].ap_rsne); in wpa_sm_set_mlo_params()
4544 if (sm->mlo.links[i].ap_rsne) in wpa_sm_set_mlo_params()
4548 sm->mlo.links[i].ap_rsne = NULL; in wpa_sm_set_mlo_params()
4549 sm->mlo.links[i].ap_rsne_len = 0; in wpa_sm_set_mlo_params()
4553 sm->mlo.links[i].ap_rsne = os_memdup(ie, len); in wpa_sm_set_mlo_params()
4554 if (!sm->mlo.links[i].ap_rsne) { in wpa_sm_set_mlo_params()
4555 sm->mlo.links[i].ap_rsne_len = 0; in wpa_sm_set_mlo_params()
4558 sm->mlo.links[i].ap_rsne_len = len; in wpa_sm_set_mlo_params()
4561 ie = mlo->links[i].ap_rsnxe; in wpa_sm_set_mlo_params()
4562 len = mlo->links[i].ap_rsnxe_len; in wpa_sm_set_mlo_params()
4563 os_free(sm->mlo.links[i].ap_rsnxe); in wpa_sm_set_mlo_params()
4565 if (sm->mlo.links[i].ap_rsnxe) in wpa_sm_set_mlo_params()
4569 sm->mlo.links[i].ap_rsnxe = NULL; in wpa_sm_set_mlo_params()
4570 sm->mlo.links[i].ap_rsnxe_len = 0; in wpa_sm_set_mlo_params()
4574 sm->mlo.links[i].ap_rsnxe = os_memdup(ie, len); in wpa_sm_set_mlo_params()
4575 if (!sm->mlo.links[i].ap_rsnxe) { in wpa_sm_set_mlo_params()
4576 sm->mlo.links[i].ap_rsnxe_len = 0; in wpa_sm_set_mlo_params()
4579 sm->mlo.links[i].ap_rsnxe_len = len; in wpa_sm_set_mlo_params()
5418 return sm->mlo.valid_links ? sm->mlo.ap_mld_addr : sm->bssid; in wpa_sm_get_auth_addr()