Lines Matching refs:elems

917 				  struct ieee802_11_elems *elems,
932 if (len >= sizeof(*elems->mu_edca_param_set))
933 elems->mu_edca_param_set = data;
937 elems->he_cap = data;
938 elems->he_cap_len = len;
943 if (len >= sizeof(*elems->he_operation) &&
945 elems->he_operation = data;
949 elems->uora_element = data;
953 elems->max_channel_switch_time = data;
956 if (len >= sizeof(*elems->mbssid_config_ie))
957 elems->mbssid_config_ie = data;
960 if (len >= sizeof(*elems->he_spr) &&
962 elems->he_spr = data;
965 if (len >= sizeof(*elems->he_6ghz_capa))
966 elems->he_6ghz_capa = data;
969 if (ieee80211_eht_capa_size_ok(elems->he_cap,
972 elems->eht_cap = data;
973 elems->eht_cap_len = len;
978 elems->eht_operation = data;
991 elems->ml_basic_elem = (void *)elem;
992 elems->ml_basic = data;
993 elems->ml_basic_len = len;
996 elems->ml_reconf_elem = (void *)elem;
997 elems->ml_reconf = data;
998 elems->ml_reconf_len = len;
1013 struct ieee802_11_elems *elems,
1081 elems->parse_error = true;
1098 elems->lnk_id = (void *)(pos - 2);
1105 elems->ch_sw_timing = (void *)pos;
1108 elems->ext_capab = pos;
1109 elems->ext_capab_len = elen;
1112 elems->ssid = pos;
1113 elems->ssid_len = elen;
1116 elems->supp_rates = pos;
1117 elems->supp_rates_len = elen;
1121 elems->ds_params = pos;
1127 elems->tim = (void *)pos;
1128 elems->tim_len = elen;
1143 elems->wmm_info = pos;
1144 elems->wmm_info_len = elen;
1146 elems->wmm_param = pos;
1147 elems->wmm_param_len = elen;
1153 elems->rsn = pos;
1154 elems->rsn_len = elen;
1158 elems->erp_info = pos;
1163 elems->ext_supp_rates = pos;
1164 elems->ext_supp_rates_len = elen;
1168 elems->ht_cap_elem = (void *)pos;
1174 elems->ht_operation = (void *)pos;
1180 elems->vht_cap_elem = (void *)pos;
1186 elems->vht_operation = (void *)pos;
1195 elems->opmode_notif = pos;
1203 elems->mesh_id = pos;
1204 elems->mesh_id_len = elen;
1208 elems->mesh_config = (void *)pos;
1213 elems->peering = pos;
1214 elems->peering_len = elen;
1218 elems->awake_window = (void *)pos;
1221 elems->preq = pos;
1222 elems->preq_len = elen;
1225 elems->prep = pos;
1226 elems->prep_len = elen;
1229 elems->perr = pos;
1230 elems->perr_len = elen;
1234 elems->rann = (void *)pos;
1243 elems->ch_switch_ie = (void *)pos;
1250 elems->ext_chansw_ie = (void *)pos;
1257 elems->sec_chan_offs = (void *)pos;
1261 sizeof(*elems->mesh_chansw_params_ie)) {
1265 elems->mesh_chansw_params_ie = (void *)pos;
1269 elen < sizeof(*elems->wide_bw_chansw_ie)) {
1273 elems->wide_bw_chansw_ie = (void *)pos;
1288 if (ie[1] >= sizeof(*elems->wide_bw_chansw_ie))
1289 elems->wide_bw_chansw_ie =
1296 elems->country_elem = pos;
1297 elems->country_elem_len = elen;
1304 elems->pwr_constr_elem = pos;
1329 elems->cisco_dtpc_elem = pos;
1336 elems->addba_ext_ie = (void *)pos;
1340 elems->timeout_int = (void *)pos;
1345 if (elen >= sizeof(*elems->max_idle_period_ie))
1346 elems->max_idle_period_ie = (void *)pos;
1349 elems->rsnx = pos;
1350 elems->rsnx_len = elen;
1357 if (elems->tx_pwr_env_num >= ARRAY_SIZE(elems->tx_pwr_env))
1360 elems->tx_pwr_env[elems->tx_pwr_env_num] = (void *)pos;
1361 elems->tx_pwr_env_len[elems->tx_pwr_env_num] = elen;
1362 elems->tx_pwr_env_num++;
1367 elem, elems, params);
1370 if (elen >= sizeof(*elems->s1g_capab))
1371 elems->s1g_capab = (void *)pos;
1376 if (elen == sizeof(*elems->s1g_oper))
1377 elems->s1g_oper = (void *)pos;
1382 if (elen == sizeof(*elems->s1g_bcn_compat))
1383 elems->s1g_bcn_compat = (void *)pos;
1389 elems->aid_resp = (void *)pos;
1398 elems->parse_error = true;
1404 elems->parse_error = true;
1410 struct ieee802_11_elems *elems,
1468 elems->bssid_index_len = index[1];
1469 elems->bssid_index = (void *)&index[2];
1478 static void ieee80211_mle_get_sta_prof(struct ieee802_11_elems *elems,
1481 const struct ieee80211_multi_link_elem *ml = elems->ml_basic;
1482 ssize_t ml_len = elems->ml_basic_len;
1517 elems->scratch_pos,
1518 elems->scratch +
1519 elems->scratch_len -
1520 elems->scratch_pos,
1526 elems->prof = (void *)elems->scratch_pos;
1527 elems->sta_prof_len = sta_prof_len;
1528 elems->scratch_pos += sta_prof_len;
1534 static void ieee80211_mle_parse_link(struct ieee802_11_elems *elems,
1543 ssize_t ml_len = elems->ml_basic_len;
1550 ml_len = cfg80211_defragment_element(elems->ml_basic_elem,
1551 elems->ie_start,
1552 elems->total_len,
1553 elems->scratch_pos,
1554 elems->scratch +
1555 elems->scratch_len -
1556 elems->scratch_pos,
1562 elems->ml_basic = (const void *)elems->scratch_pos;
1563 elems->ml_basic_len = ml_len;
1565 ieee80211_mle_get_sta_prof(elems, params->link_id);
1566 prof = elems->prof;
1572 if (elems->sta_prof_len < sizeof(*prof) + prof->sta_info_len - 1 + 4) {
1573 elems->prof = NULL;
1574 elems->sta_prof_len = 0;
1585 end = (const u8 *)prof + elems->sta_prof_len;
1590 _ieee802_11_parse_elems_full(&sub, elems, non_inherit);
1596 struct ieee802_11_elems *elems;
1602 elems = kzalloc(sizeof(*elems) + scratch_len, GFP_ATOMIC);
1603 if (!elems)
1605 elems->ie_start = params->start;
1606 elems->total_len = params->len;
1607 elems->scratch_len = scratch_len;
1608 elems->scratch_pos = elems->scratch;
1610 nontransmitted_profile = elems->scratch_pos;
1613 elems, params->bss,
1615 elems->scratch_pos += nontransmitted_profile_len;
1616 elems->scratch_len -= nontransmitted_profile_len;
1621 elems->crc = _ieee802_11_parse_elems_full(params, elems, non_inherit);
1632 _ieee802_11_parse_elems_full(&sub, elems, NULL);
1635 ieee80211_mle_parse_link(elems, params);
1637 if (elems->tim && !elems->parse_error) {
1638 const struct ieee80211_tim_ie *tim_ie = elems->tim;
1640 elems->dtim_period = tim_ie->dtim_period;
1641 elems->dtim_count = tim_ie->dtim_count;
1645 if (elems->bssid_index &&
1646 elems->bssid_index_len >=
1648 elems->dtim_period = elems->bssid_index->dtim_period;
1650 if (elems->bssid_index &&
1651 elems->bssid_index_len >=
1653 elems->dtim_count = elems->bssid_index->dtim_count;
1655 return elems;
2262 struct ieee802_11_elems *elems,
2279 for (i = 0; i < elems->supp_rates_len +
2280 elems->ext_supp_rates_len; i++) {
2284 if (i < elems->supp_rates_len)
2285 rate = elems->supp_rates[i];
2286 else if (elems->ext_supp_rates)
2287 rate = elems->ext_supp_rates
2288 [i - elems->supp_rates_len];