Lines Matching defs:elem

176 bool cfg80211_is_element_inherited(const struct element *elem,
182 if (elem->id == WLAN_EID_MULTIPLE_BSSID)
185 if (elem->id == WLAN_EID_EXTENSION && elem->datalen > 1 &&
186 elem->data[0] == WLAN_EID_EXT_EHT_MULTI_LINK)
207 if (elem->id == WLAN_EID_EXTENSION) {
212 id = elem->data[0];
218 id = elem->id;
230 static size_t cfg80211_copy_elem_with_frags(const struct element *elem,
234 if (WARN_ON((u8 *)elem < ie || elem->data > ie + ie_len ||
235 elem->data + elem->datalen > ie + ie_len))
238 if (elem->datalen + 2 > buf + buf_len - *pos)
241 memcpy(*pos, elem, elem->datalen + 2);
242 *pos += elem->datalen + 2;
245 if (elem->datalen != 255)
248 ie_len = ie + ie_len - elem->data - elem->datalen;
249 ie = (const u8 *)elem->data + elem->datalen;
251 for_each_element(elem, ie, ie_len) {
252 if (elem->id != WLAN_EID_FRAGMENT)
255 if (elem->datalen + 2 > buf + buf_len - *pos)
258 memcpy(*pos, elem, elem->datalen + 2);
259 *pos += elem->datalen + 2;
261 if (elem->datalen != 255)
519 const struct element **elem, u32 *s_ssid)
522 *elem = cfg80211_find_elem(WLAN_EID_SSID, ies->data, ies->len);
523 if (!*elem || (*elem)->datalen > IEEE80211_MAX_SSID_LEN)
526 *s_ssid = ~crc32_le(~0, (*elem)->data, (*elem)->datalen);
1347 const struct element *elem;
1349 for_each_element_id(elem, eid, ies, len) {
1350 if (elem->datalen >= match_offset + match_len &&
1351 !memcmp(elem->data + match_offset, match, match_len))
1352 return elem;
1363 const struct element *elem;
1370 elem = cfg80211_find_elem_match(WLAN_EID_VENDOR_SPECIFIC, ies, len,
1373 if (!elem || elem->datalen < 4)
1376 return elem;
2393 const struct element *elem, *sub;
2418 for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID,
2420 if (elem->datalen < 4)
2422 if (elem->data[0] < 1 || (int)elem->data[0] > 8)
2424 for_each_element(sub, elem->data + 1, elem->datalen - 1) {
2444 elem,
2456 mbssid_index_ie[2] >= (1 << elem->data[0])) {
2469 data.max_bssid_indicator = elem->data[0];
2500 ssize_t cfg80211_defragment_element(const struct element *elem, const u8 *ies,
2508 if (!elem)
2511 /* elem might be invalid after the memmove */
2512 next = (void *)(elem->data + elem->datalen);
2513 elem_datalen = elem->datalen;
2515 if (elem->id == WLAN_EID_EXTENSION) {
2516 copied = elem->datalen - 1;
2522 memmove(data, elem->data + 1, copied);
2525 copied = elem->datalen;
2531 memmove(data, elem->data, copied);
2539 for (elem = next;
2540 elem->data < ies + ieslen &&
2541 elem->data + elem->datalen <= ies + ieslen;
2542 elem = next) {
2543 /* elem might be invalid after the memmove */
2544 next = (void *)(elem->data + elem->datalen);
2546 if (elem->id != frag_id)
2549 elem_datalen = elem->datalen;
2555 memmove(data + copied, elem->data, elem_datalen);
2582 const struct element *elem;
2593 for_each_element(elem, mle->data + mle->datalen,
2595 if (elem->id != WLAN_EID_FRAGMENT)
2598 buf_len += elem->datalen;
2619 for_each_element_id(elem, IEEE80211_MLE_SUBELEM_PER_STA_PROFILE,
2621 res->sta_prof[idx] = (void *)elem->data;
2622 res->sta_prof_len[idx] = elem->datalen;
2628 if (!for_each_element_completed(elem, ie, ielen))
2637 elem = (void *)res->sta_prof[idx] - 2;
2644 buf_len = ielen + ie - (u8 *)elem;
2647 cfg80211_defragment_element(elem,
2648 (u8 *)elem, buf_len,
2748 const struct element *elem;
2772 elem = cfg80211_find_elem(WLAN_EID_SUPPORTED_REGULATORY_CLASSES,
2774 if (elem && elem->datalen >= 1) {
2775 ap_info.op_class = elem->data[0];
2797 if (cfg80211_calc_short_ssid(ies, &elem, &short_ssid))
2840 const struct element *elem,
2860 if (!ieee80211_mle_type_ok(elem->data + 1,
2862 elem->datalen - 1))
2865 ml_elem = (void *)(elem->data + 1);
2875 reporter_link_id = ieee80211_mle_get_link_id(elem->data + 1);
2876 bss_change_count = ieee80211_mle_get_bss_param_ch_cnt(elem->data + 1);
2884 mld_id = ieee80211_mle_get_mld_id(elem->data + 1);
2887 mle = cfg80211_defrag_mle(elem, tx_data->ie, tx_data->ielen, gfp);
3062 const struct element *elem;
3070 for_each_element_extid(elem, WLAN_EID_EXT_EHT_MULTI_LINK,
3073 elem, gfp);
3160 const struct element *elem;
3167 elem = cfg80211_find_elem(WLAN_EID_S1G_BCN_COMPAT, ie, ielen);
3168 if (!elem)
3170 if (elem->datalen < sizeof(*compat))
3172 compat = (void *)elem->data;