Lines Matching refs:elems
1288 struct ieee802_11_elems *elems, in ieee80211_sta_process_chanswitch() argument
1312 res = ieee80211_parse_ch_switch_ie(sdata, elems, current_band, in ieee80211_sta_process_chanswitch()
3244 const struct ieee802_11_elems *elems) in ieee80211_twt_req_supported() argument
3246 if (elems->ext_capab_len < 10) in ieee80211_twt_req_supported()
3249 if (!(elems->ext_capab[9] & WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT)) in ieee80211_twt_req_supported()
3258 struct ieee802_11_elems *elems) in ieee80211_recalc_twt_req() argument
3260 bool twt = ieee80211_twt_req_supported(sta, elems); in ieee80211_recalc_twt_req()
3289 struct ieee802_11_elems *elems) in ieee80211_assoc_success() argument
3315 elems = ieee802_11_parse_elems(pos, len - (pos - (u8 *)mgmt), false, in ieee80211_assoc_success()
3318 if (!elems) in ieee80211_assoc_success()
3321 if (elems->aid_resp) in ieee80211_assoc_success()
3322 aid = le16_to_cpu(elems->aid_resp->aid); in ieee80211_assoc_success()
3339 if (!is_s1g && !elems->supp_rates) { in ieee80211_assoc_success()
3347 elems->ext_capab && elems->ext_capab_len >= 5 && in ieee80211_assoc_success()
3348 (elems->ext_capab[4] & WLAN_EXT_CAPA5_TDLS_CH_SW_PROHIBITED); in ieee80211_assoc_success()
3358 ((assoc_data->wmm && !elems->wmm_param) || in ieee80211_assoc_success()
3360 (!elems->ht_cap_elem || !elems->ht_operation)) || in ieee80211_assoc_success()
3362 (!elems->vht_cap_elem || !elems->vht_operation)))) { in ieee80211_assoc_success()
3386 !elems->wmm_param && bss_elems->wmm_param) { in ieee80211_assoc_success()
3387 elems->wmm_param = bss_elems->wmm_param; in ieee80211_assoc_success()
3396 if (!elems->ht_cap_elem && bss_elems->ht_cap_elem && in ieee80211_assoc_success()
3398 elems->ht_cap_elem = bss_elems->ht_cap_elem; in ieee80211_assoc_success()
3402 if (!elems->ht_operation && bss_elems->ht_operation && in ieee80211_assoc_success()
3404 elems->ht_operation = bss_elems->ht_operation; in ieee80211_assoc_success()
3408 if (!elems->vht_cap_elem && bss_elems->vht_cap_elem && in ieee80211_assoc_success()
3410 elems->vht_cap_elem = bss_elems->vht_cap_elem; in ieee80211_assoc_success()
3414 if (!elems->vht_operation && bss_elems->vht_operation && in ieee80211_assoc_success()
3416 elems->vht_operation = bss_elems->vht_operation; in ieee80211_assoc_success()
3429 (!elems->wmm_param || !elems->ht_cap_elem || !elems->ht_operation)) { in ieee80211_assoc_success()
3437 (!elems->vht_cap_elem || !elems->vht_operation)) { in ieee80211_assoc_success()
3445 !elems->he_6ghz_capa) { in ieee80211_assoc_success()
3472 (!elems->he_cap || !elems->he_operation)) { in ieee80211_assoc_success()
3481 if (elems->ht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) in ieee80211_assoc_success()
3483 elems->ht_cap_elem, sta); in ieee80211_assoc_success()
3485 if (elems->vht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_assoc_success()
3487 elems->vht_cap_elem, sta); in ieee80211_assoc_success()
3489 if (elems->he_operation && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3490 elems->he_cap) { in ieee80211_assoc_success()
3492 elems->he_cap, in ieee80211_assoc_success()
3493 elems->he_cap_len, in ieee80211_assoc_success()
3494 elems->he_6ghz_capa, in ieee80211_assoc_success()
3498 if (elems->rsnx && elems->rsnx_len && in ieee80211_assoc_success()
3499 (elems->rsnx[0] & WLAN_RSNX_CAPA_PROTECTED_TWT) && in ieee80211_assoc_success()
3506 changed |= ieee80211_recalc_twt_req(sdata, sta, elems); in ieee80211_assoc_success()
3518 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_success()
3521 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_success()
3524 !le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_success()
3531 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_success()
3534 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_success()
3537 bss_conf->uora_exists = !!elems->uora_element; in ieee80211_assoc_success()
3538 if (elems->uora_element) in ieee80211_assoc_success()
3539 bss_conf->uora_ocw_range = elems->uora_element[0]; in ieee80211_assoc_success()
3541 ieee80211_he_op_ie_to_bss_conf(&sdata->vif, elems->he_operation); in ieee80211_assoc_success()
3542 ieee80211_he_spr_ie_to_bss_conf(&sdata->vif, elems->he_spr); in ieee80211_assoc_success()
3566 if (elems->opmode_notif && in ieee80211_assoc_success()
3567 !(*elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF)) { in ieee80211_assoc_success()
3570 nss = *elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_MASK; in ieee80211_assoc_success()
3585 sta->sta.wme = (elems->wmm_param || elems->s1g_capab) && in ieee80211_assoc_success()
3617 } else if (!ieee80211_sta_wmm_params(local, sdata, elems->wmm_param, in ieee80211_assoc_success()
3618 elems->wmm_param_len, in ieee80211_assoc_success()
3619 elems->mu_edca_param_set)) { in ieee80211_assoc_success()
3633 if (elems->max_idle_period_ie) { in ieee80211_assoc_success()
3635 le16_to_cpu(elems->max_idle_period_ie->max_idle_period); in ieee80211_assoc_success()
3637 !!(elems->max_idle_period_ie->idle_options & in ieee80211_assoc_success()
3666 kfree(elems); in ieee80211_assoc_success()
3678 struct ieee802_11_elems *elems; in ieee80211_rx_mgmt_assoc_resp() local
3735 elems = ieee802_11_parse_elems(pos, len - (pos - (u8 *)mgmt), false, in ieee80211_rx_mgmt_assoc_resp()
3737 if (!elems) in ieee80211_rx_mgmt_assoc_resp()
3741 elems->timeout_int && in ieee80211_rx_mgmt_assoc_resp()
3742 elems->timeout_int->type == WLAN_TIMEOUT_ASSOC_COMEBACK) { in ieee80211_rx_mgmt_assoc_resp()
3744 tu = le32_to_cpu(elems->timeout_int->value); in ieee80211_rx_mgmt_assoc_resp()
3764 if (!ieee80211_assoc_success(sdata, cbss, mgmt, len, elems)) { in ieee80211_rx_mgmt_assoc_resp()
3794 kfree(elems); in ieee80211_rx_mgmt_assoc_resp()
3999 struct ieee802_11_elems *elems; in ieee80211_rx_mgmt_beacon() local
4045 elems = ieee802_11_parse_elems(variable, len - baselen, false, in ieee80211_rx_mgmt_beacon()
4048 if (!elems) in ieee80211_rx_mgmt_beacon()
4053 if (elems->dtim_period) in ieee80211_rx_mgmt_beacon()
4054 ifmgd->dtim_period = elems->dtim_period; in ieee80211_rx_mgmt_beacon()
4062 sdata->vif.bss_conf.sync_dtim_count = elems->dtim_count; in ieee80211_rx_mgmt_beacon()
4065 if (elems->mbssid_config_ie) in ieee80211_rx_mgmt_beacon()
4067 elems->mbssid_config_ie->profile_periodicity; in ieee80211_rx_mgmt_beacon()
4071 if (elems->ext_capab_len >= 11 && in ieee80211_rx_mgmt_beacon()
4072 (elems->ext_capab[10] & WLAN_EXT_CAPA11_EMA_SUPPORT)) in ieee80211_rx_mgmt_beacon()
4081 kfree(elems); in ieee80211_rx_mgmt_beacon()
4113 elems = ieee802_11_parse_elems_crc(variable, len - baselen, in ieee80211_rx_mgmt_beacon()
4116 if (!elems) in ieee80211_rx_mgmt_beacon()
4118 ncrc = elems->crc; in ieee80211_rx_mgmt_beacon()
4121 ieee80211_check_tim(elems->tim, elems->tim_len, bss_conf->aid)) { in ieee80211_rx_mgmt_beacon()
4191 sdata->vif.bss_conf.sync_dtim_count = elems->dtim_count; in ieee80211_rx_mgmt_beacon()
4204 elems, true); in ieee80211_rx_mgmt_beacon()
4207 ieee80211_sta_wmm_params(local, sdata, elems->wmm_param, in ieee80211_rx_mgmt_beacon()
4208 elems->wmm_param_len, in ieee80211_rx_mgmt_beacon()
4209 elems->mu_edca_param_set)) in ieee80211_rx_mgmt_beacon()
4218 bss_conf->dtim_period = elems->dtim_period ?: 1; in ieee80211_rx_mgmt_beacon()
4230 if (elems->erp_info) { in ieee80211_rx_mgmt_beacon()
4232 erp_value = elems->erp_info[0]; in ieee80211_rx_mgmt_beacon()
4245 changed |= ieee80211_recalc_twt_req(sdata, sta, elems); in ieee80211_rx_mgmt_beacon()
4247 if (ieee80211_config_bw(sdata, sta, elems->ht_cap_elem, in ieee80211_rx_mgmt_beacon()
4248 elems->vht_cap_elem, elems->ht_operation, in ieee80211_rx_mgmt_beacon()
4249 elems->vht_operation, elems->he_operation, in ieee80211_rx_mgmt_beacon()
4250 elems->s1g_oper, bssid, &changed)) { in ieee80211_rx_mgmt_beacon()
4265 if (sta && elems->opmode_notif) in ieee80211_rx_mgmt_beacon()
4266 ieee80211_vht_handle_opmode(sdata, sta, *elems->opmode_notif, in ieee80211_rx_mgmt_beacon()
4271 elems->country_elem, in ieee80211_rx_mgmt_beacon()
4272 elems->country_elem_len, in ieee80211_rx_mgmt_beacon()
4273 elems->pwr_constr_elem, in ieee80211_rx_mgmt_beacon()
4274 elems->cisco_dtpc_elem); in ieee80211_rx_mgmt_beacon()
4278 kfree(elems); in ieee80211_rx_mgmt_beacon()
4338 struct ieee802_11_elems *elems; in ieee80211_sta_rx_queued_mgmt() local
4348 elems = ieee802_11_parse_elems( in ieee80211_sta_rx_queued_mgmt()
4352 if (elems && !elems->parse_error) in ieee80211_sta_rx_queued_mgmt()
4356 elems, false); in ieee80211_sta_rx_queued_mgmt()
4357 kfree(elems); in ieee80211_sta_rx_queued_mgmt()
4359 struct ieee802_11_elems *elems; in ieee80211_sta_rx_queued_mgmt() local
4372 elems = ieee802_11_parse_elems( in ieee80211_sta_rx_queued_mgmt()
4376 if (elems && !elems->parse_error) { in ieee80211_sta_rx_queued_mgmt()
4378 elems->ext_chansw_ie = in ieee80211_sta_rx_queued_mgmt()
4384 elems, false); in ieee80211_sta_rx_queued_mgmt()
4387 kfree(elems); in ieee80211_sta_rx_queued_mgmt()
5022 struct ieee802_11_elems *elems; in ieee80211_prep_channel() local
5031 elems = ieee802_11_parse_elems(ies->data, ies->len, false, in ieee80211_prep_channel()
5033 if (!elems) { in ieee80211_prep_channel()
5061 ht_oper = elems->ht_operation; in ieee80211_prep_channel()
5062 ht_cap = elems->ht_cap_elem; in ieee80211_prep_channel()
5071 vht_oper = elems->vht_operation; in ieee80211_prep_channel()
5081 if (!elems->vht_cap_elem) { in ieee80211_prep_channel()
5088 he_oper = elems->he_operation; in ieee80211_prep_channel()
5096 if (elems->pwr_constr_elem) in ieee80211_prep_channel()
5097 bss_conf->pwr_reduction = *elems->pwr_constr_elem; in ieee80211_prep_channel()
5100 ARRAY_SIZE(elems->tx_pwr_env)); in ieee80211_prep_channel()
5102 for (i = 0; i < elems->tx_pwr_env_num; i++) { in ieee80211_prep_channel()
5103 if (elems->tx_pwr_env_len[i] > in ieee80211_prep_channel()
5108 memcpy(&bss_conf->tx_pwr_env[j], elems->tx_pwr_env[i], in ieee80211_prep_channel()
5109 elems->tx_pwr_env_len[i]); in ieee80211_prep_channel()
5133 s1g_oper = elems->s1g_oper; in ieee80211_prep_channel()
5151 kfree(elems); in ieee80211_prep_channel()
5152 elems = NULL; in ieee80211_prep_channel()