const struct ieee80211_aid_response_ie *aid_resp;
const struct ieee80211_eht_cap_elem *eht_cap;
const struct ieee80211_eht_operation *eht_operation;
+ const struct ieee80211_multi_link_elem *multi_link;
/* length of them, respectively */
u8 ext_capab_len;
* @bss: the BSS to parse this as, for multi-BSSID cases this can
* represent a non-transmitting BSS in which case the data
* for that non-transmitting BSS is returned
+ * @link_id: the link ID to parse elements for, if a STA profile
+ * is present in the multi-link element, or -1 to ignore
*/
struct ieee80211_elems_parse_params {
const u8 *start;
u64 filter;
u32 crc;
struct cfg80211_bss *bss;
+ int link_id;
};
struct ieee802_11_elems *
.filter = filter,
.crc = crc,
.bss = bss,
+ .link_id = -1,
};
return ieee802_11_parse_elems_full(¶ms);
if (ieee80211_eht_oper_size_ok(data, len))
elems->eht_operation = data;
break;
+ case WLAN_EID_EXT_EHT_MULTI_LINK:
+ if (ieee80211_mle_size_ok(data, len))
+ elems->multi_link = (void *)data;
+ break;
}
}
.start = nontransmitted_profile,
.len = nontransmitted_profile_len,
.action = params->action,
+ .link_id = params->link_id,
};
_ieee802_11_parse_elems_full(&sub, elems, NULL);