Lines Matching refs:elems

154 			    const struct ieee802_11_elems *elems,
159 const struct ieee80211_ht_operation *ht_oper = elems->ht_operation;
160 const struct ieee80211_vht_operation *vht_oper = elems->vht_operation;
161 const struct ieee80211_he_operation *he_oper = elems->he_operation;
162 const struct ieee80211_eht_operation *eht_oper = elems->eht_operation;
178 if (!ieee80211_chandef_s1g_oper(elems->s1g_oper, chandef)) {
195 if (!elems->he_6ghz_capa || !elems->he_cap) {
201 if (!eht_oper || !elems->eht_cap) {
219 if (!ht_oper || !elems->ht_cap_elem)
253 if (elems->he_cap && he_oper &&
272 } else if (!vht_oper || !elems->vht_cap_elem) {
300 !elems->he_operation || !elems->he_cap) {
308 !eht_oper || !elems->eht_cap)
620 struct ieee802_11_elems *elems;
628 elems = ieee802_11_parse_elems_full(&parse_params);
629 if (!elems)
633 elems, false, conn, &ap_chandef);
643 kfree(elems);
658 return elems;
742 (!ieee80211_verify_peer_he_mcs_support(sdata, (void *)elems->he_cap,
743 elems->he_operation) ||
745 elems->he_operation))) {
752 elems->eht_operation)) {
762 kfree(elems);
776 return elems;
778 kfree(elems);
783 struct ieee802_11_elems *elems,
799 if (elems->vht_cap_elem)
800 vht_cap_info = le32_to_cpu(elems->vht_cap_elem->vht_cap_info);
803 elems, true, &link->u.mgd.conn,
823 if (elems->ht_operation) {
824 ht_opmode = le16_to_cpu(elems->ht_operation->operation_mode);
1082 const u8 *elems,
1119 noffset = ieee80211_ie_split_ric(elems, elems_len,
1125 skb_put_data(skb, elems + offset, noffset - offset);
1131 const u8 *elems,
1153 noffset = ieee80211_ie_split(elems, elems_len,
1156 skb_put_data(skb, elems + offset, noffset - offset);
1162 const u8 *elems,
1187 noffset = ieee80211_ie_split(elems, elems_len,
1190 skb_put_data(skb, elems + offset, noffset - offset);
1354 * careful - need to know about all the present elems before
1503 extra_elems = assoc_data->link[link_id].elems;
2016 struct ieee802_11_elems *elems,
2041 res = ieee80211_parse_ch_switch_ie(sdata, elems, current_band,
4139 const struct ieee802_11_elems *elems)
4144 if (elems->ext_capab_len < 10)
4147 if (!(elems->ext_capab[9] & WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT))
4161 struct ieee802_11_elems *elems)
4163 bool twt = ieee80211_twt_req_supported(sdata, sband, link_sta, elems);
4213 struct ieee802_11_elems *elems;
4219 elems = ieee802_11_parse_elems_full(&parse_params);
4220 if (!elems)
4231 if (elems->ml_basic) {
4233 ieee80211_mle_get_bss_param_ch_cnt((const void *)elems->ml_basic);
4241 } else if (elems->parse_error & IEEE80211_PARSE_ERR_DUP_NEST_ML_BASIC ||
4242 !elems->prof ||
4243 !(elems->prof->control & prof_bss_param_ch_present)) {
4247 const u8 *ptr = elems->prof->variable +
4248 elems->prof->sta_info_len - 1;
4252 * otherwise elems->prof would have been set to NULL.
4257 ieee80211_mle_basic_sta_prof_bss_param_ch_cnt(elems->prof);
4267 if (!is_s1g && !elems->supp_rates) {
4274 elems->ext_capab && elems->ext_capab_len >= 5 &&
4275 (elems->ext_capab[4] & WLAN_EXT_CAPA5_TDLS_CH_SW_PROHIBITED);
4285 ((assoc_data->wmm && !elems->wmm_param) ||
4287 (!elems->ht_cap_elem || !elems->ht_operation)) ||
4289 (!elems->vht_cap_elem || !elems->vht_operation)))) {
4314 !elems->wmm_param && bss_elems->wmm_param) {
4315 elems->wmm_param = bss_elems->wmm_param;
4324 if (!elems->ht_cap_elem && bss_elems->ht_cap_elem &&
4326 elems->ht_cap_elem = bss_elems->ht_cap_elem;
4330 if (!elems->ht_operation && bss_elems->ht_operation &&
4332 elems->ht_operation = bss_elems->ht_operation;
4336 if (!elems->vht_cap_elem && bss_elems->vht_cap_elem &&
4338 elems->vht_cap_elem = bss_elems->vht_cap_elem;
4342 if (!elems->vht_operation && bss_elems->vht_operation &&
4344 elems->vht_operation = bss_elems->vht_operation;
4359 (!elems->wmm_param || !elems->ht_cap_elem || !elems->ht_operation)) {
4367 (!elems->vht_cap_elem || !elems->vht_operation)) {
4375 if (ieee80211_config_bw(link, elems,
4389 if (elems->ht_cap_elem && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
4391 elems->ht_cap_elem,
4394 if (elems->vht_cap_elem &&
4417 elems->vht_cap_elem,
4422 if (elems->he_operation &&
4424 elems->he_cap) {
4428 elems->he_cap,
4429 elems->he_cap_len,
4430 elems->he_6ghz_capa,
4433 he_6ghz_oper = ieee80211_he_6ghz_oper(elems->he_operation);
4458 if (elems->rsnx && elems->rsnx_len &&
4459 (elems->rsnx[0] & WLAN_RSNX_CAPA_PROTECTED_TWT) &&
4467 link_sta, elems);
4469 if (elems->eht_operation && elems->eht_cap &&
4472 elems->he_cap,
4473 elems->he_cap_len,
4474 elems->eht_cap,
4475 elems->eht_cap_len,
4494 le32_get_bits(elems->he_operation->he_oper_params,
4497 le32_get_bits(elems->he_operation->he_oper_params,
4500 !le32_get_bits(elems->he_operation->he_oper_params,
4507 le32_get_bits(elems->he_operation->he_oper_params,
4510 le32_get_bits(elems->he_operation->he_oper_params,
4513 bss_conf->uora_exists = !!elems->uora_element;
4514 if (elems->uora_element)
4515 bss_conf->uora_ocw_range = elems->uora_element[0];
4517 ieee80211_he_op_ie_to_bss_conf(&sdata->vif, elems->he_operation);
4518 ieee80211_he_spr_ie_to_bss_conf(&sdata->vif, elems->he_spr);
4542 if (elems->opmode_notif &&
4543 !(*elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF)) {
4546 nss = *elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_MASK;
4563 } else if (!ieee80211_sta_wmm_params(local, link, elems->wmm_param,
4564 elems->wmm_param_len,
4565 elems->mu_edca_param_set)) {
4578 if (elems->max_idle_period_ie) {
4580 le16_to_cpu(elems->max_idle_period_ie->max_idle_period);
4582 !!(elems->max_idle_period_ie->idle_options &
4596 kfree(elems);
5007 struct ieee802_11_elems *elems;
5014 elems = ieee80211_determine_chan_mode(sdata, conn, cbss, link_id,
5017 if (IS_ERR(elems)) {
5019 return PTR_ERR(elems);
5022 if (mlo && !elems->ml_basic) {
5025 kfree(elems);
5035 if (elems->pwr_constr_elem)
5036 bss_conf->pwr_reduction = *elems->pwr_constr_elem;
5039 ARRAY_SIZE(elems->tx_pwr_env));
5041 for (i = 0; i < elems->tx_pwr_env_num; i++) {
5042 if (elems->tx_pwr_env_len[i] > sizeof(bss_conf->tx_pwr_env[j]))
5046 memcpy(&bss_conf->tx_pwr_env[j], elems->tx_pwr_env[i],
5047 elems->tx_pwr_env_len[i]);
5053 kfree(elems);
5054 elems = NULL;
5123 struct ieee802_11_elems *elems,
5255 ieee80211_sta_set_max_amsdu_subframes(sta, elems->ext_capab,
5256 elems->ext_capab_len);
5258 sta->sta.wme = (elems->wmm_param || elems->s1g_capab) &&
5309 struct ieee802_11_elems *elems;
5369 elems = ieee802_11_parse_elems_full(&parse_params);
5370 if (!elems)
5373 if (elems->aid_resp)
5374 aid = le16_to_cpu(elems->aid_resp->aid);
5394 elems->timeout_int &&
5395 elems->timeout_int->type == WLAN_TIMEOUT_ASSOC_COMEBACK) {
5399 le32_to_cpu(elems->timeout_int->value));
5401 tu = le32_to_cpu(elems->timeout_int->value);
5432 if (!elems->ml_basic) {
5439 common = (void *)elems->ml_basic->variable;
5451 ieee80211_mle_get_eml_cap((const void *)elems->ml_basic);
5453 ieee80211_mle_get_eml_med_sync_delay((const void *)elems->ml_basic);
5455 ieee80211_mle_get_mld_capa_op((const void *)elems->ml_basic);
5460 if (!ieee80211_assoc_success(sdata, mgmt, elems,
5512 kfree(elems);
5779 struct ieee802_11_elems *elems)
5787 if (!ieee80211_vif_is_mld(&sdata->vif) || !elems->ml_reconf)
5793 for_each_mle_subelement(sub, (const u8 *)elems->ml_reconf,
5794 elems->ml_reconf_len) {
6035 struct ieee802_11_elems *elems,
6044 if (!elems->ttlm_num) {
6070 for (i = 0; i < elems->ttlm_num; i++) {
6074 res = ieee80211_parse_adv_t2l(sdata, elems->ttlm[i],
6138 struct ieee802_11_elems *elems;
6196 elems = ieee802_11_parse_elems_full(&parse_params);
6197 if (!elems)
6202 if (elems->dtim_period)
6203 link->u.mgd.dtim_period = elems->dtim_period;
6212 link->conf->sync_dtim_count = elems->dtim_count;
6215 if (elems->mbssid_config_ie)
6217 elems->mbssid_config_ie->profile_periodicity;
6221 if (elems->ext_capab_len >= 11 &&
6222 (elems->ext_capab[10] & WLAN_EXT_CAPA11_EMA_SUPPORT))
6231 kfree(elems);
6266 elems = ieee802_11_parse_elems_full(&parse_params);
6267 if (!elems)
6269 ncrc = elems->crc;
6272 ieee80211_check_tim(elems->tim, elems->tim_len, vif_cfg->aid)) {
6339 link->conf->sync_dtim_count = elems->dtim_count;
6352 elems, true);
6355 ieee80211_sta_wmm_params(local, link, elems->wmm_param,
6356 elems->wmm_param_len,
6357 elems->mu_edca_param_set))
6366 bss_conf->dtim_period = elems->dtim_period ?: 1;
6376 if (elems->erp_info) {
6378 erp_value = elems->erp_info[0];
6403 changed |= ieee80211_recalc_twt_req(sdata, sband, link, link_sta, elems);
6405 if (ieee80211_config_bw(link, elems, true, &changed)) {
6416 if (elems->opmode_notif)
6418 *elems->opmode_notif,
6422 elems->country_elem,
6423 elems->country_elem_len,
6424 elems->pwr_constr_elem,
6425 elems->cisco_dtpc_elem);
6427 ieee80211_ml_reconfiguration(sdata, elems);
6428 ieee80211_process_adv_ttlm(sdata, elems,
6433 kfree(elems);
6728 struct ieee802_11_elems *elems = NULL;
6731 BUILD_BUG_ON(ARRAY_SIZE(direction) != ARRAY_SIZE(elems->ttlm));
6739 elems = ieee802_11_parse_elems(mgmt->u.action.u.ttlm_req.variable,
6741 if (!elems) {
6746 for (i = 0; i < elems->ttlm_num; i++) {
6747 if (ieee80211_parse_neg_ttlm(sdata, elems->ttlm[i],
6750 elems->ttlm_num != 1)) {
6756 if (!elems->ttlm_num ||
6757 (elems->ttlm_num == 2 && direction[0] == direction[1])) {
6779 kfree(elems);
6876 struct ieee802_11_elems *elems;
6886 elems = ieee802_11_parse_elems(
6890 if (elems && !elems->parse_error)
6894 elems, false);
6895 kfree(elems);
6897 struct ieee802_11_elems *elems;
6910 elems = ieee802_11_parse_elems(
6914 if (elems && !elems->parse_error) {
6916 elems->ext_chansw_ie =
6922 elems, false);
6925 kfree(elems);
7988 /* copy and link elems for the STA profile */
7990 memcpy(assoc_data->ie_pos, req->links[link_id].elems,
7992 assoc_data->link[link_id].elems = assoc_data->ie_pos;