u8 ies[sizeof(rnr_ie) + sizeof(ml_ie_mld_id) +
sizeof(mbssid_idx_ie)];
} bss;
- u8 ap_mld_addr[ETH_ALEN];
u16 missing_links;
u8 ret;
bool nontransmitted;
bss.bss.ie_len += sizeof(mbssid_idx_ie);
}
- ret = wpa_bss_parse_basic_ml_element(wpa_s, &bss.bss, ap_mld_addr,
+ ret = wpa_bss_parse_basic_ml_element(wpa_s, &bss.bss,
&missing_links, NULL,
&nontransmitted);
* wpa_bss_parse_basic_ml_element - Parse the Basic Multi-Link element
* @wpa_s: Pointer to wpa_supplicant data
* @bss: BSS table entry
- * @mld_addr: AP MLD address (or %NULL)
* @link_info: Array to store link information (or %NULL),
* should be initialized and #MAX_NUM_MLD_LINKS elements long
* @missing_links: Result bitmask of links that were not discovered (or %NULL)
*/
int wpa_bss_parse_basic_ml_element(struct wpa_supplicant *wpa_s,
struct wpa_bss *bss,
- u8 *ap_mld_addr,
u16 *missing_links,
struct wpa_ssid *ssid,
bool *nontransmitted)
if (ml_basic_common_info->len < sizeof(*ml_basic_common_info) + pos)
goto out;
- /* Get the MLD address and MLD link ID */
- if (ap_mld_addr)
- os_memcpy(ap_mld_addr, ml_basic_common_info->mld_addr,
- ETH_ALEN);
-
link_id = ml_basic_common_info->variable[0] & EHT_ML_LINK_ID_MSK;
bss->mld_link_id = link_id;
int wpa_bss_parse_basic_ml_element(struct wpa_supplicant *wpa_s,
struct wpa_bss *bss,
- u8 *ap_mld_addr,
u16 *missing_links,
struct wpa_ssid *ssid,
bool *nontransmitted);
{
u16 removed_links;
- if (wpa_bss_parse_basic_ml_element(wpa_s, bss, NULL, NULL, NULL, NULL))
+ if (wpa_bss_parse_basic_ml_element(wpa_s, bss, NULL, NULL, NULL))
return true;
if (!bss->valid_links)
(wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME)))
return 0;
- if (wpa_bss_parse_basic_ml_element(wpa_s, selected, NULL,
+ if (wpa_bss_parse_basic_ml_element(wpa_s, selected,
&missing_links, ssid,
&nontransmitted) ||
!missing_links)
{
u8 i;
+ os_memcpy(wpa_s->ap_mld_addr, bss->mld_addr, ETH_ALEN);
wpa_s->valid_links = 0;
wpa_s->mlo_assoc_link_id = bss->mld_link_id;
os_memset(¶ms, 0, sizeof(params));
if ((wpa_s->drv_flags2 & WPA_DRIVER_FLAGS2_MLO) &&
- !wpa_bss_parse_basic_ml_element(wpa_s, bss, wpa_s->ap_mld_addr,
- NULL, ssid, NULL) &&
+ !wpa_bss_parse_basic_ml_element(wpa_s, bss, NULL, ssid, NULL) &&
bss->valid_links) {
wpa_printf(MSG_DEBUG, "MLD: In authentication");
wpas_sme_set_mlo_links(wpa_s, bss, ssid);