Lines Matching refs:elems
829 const u8 *elems, in ieee80211_add_before_ht_elems() argument
866 noffset = ieee80211_ie_split_ric(elems, elems_len, in ieee80211_add_before_ht_elems()
872 skb_put_data(skb, elems + offset, noffset - offset); in ieee80211_add_before_ht_elems()
878 const u8 *elems, in ieee80211_add_before_vht_elems() argument
900 noffset = ieee80211_ie_split(elems, elems_len, in ieee80211_add_before_vht_elems()
903 skb_put_data(skb, elems + offset, noffset - offset); in ieee80211_add_before_vht_elems()
909 const u8 *elems, in ieee80211_add_before_he_elems() argument
934 noffset = ieee80211_ie_split(elems, elems_len, in ieee80211_add_before_he_elems()
937 skb_put_data(skb, elems + offset, noffset - offset); in ieee80211_add_before_he_elems()
1257 extra_elems = assoc_data->link[link_id].elems; in ieee80211_assoc_add_ml_elem()
1770 struct ieee802_11_elems *elems, in ieee80211_sta_process_chanswitch() argument
1795 res = ieee80211_parse_ch_switch_ie(sdata, elems, current_band, in ieee80211_sta_process_chanswitch()
3872 const struct ieee802_11_elems *elems) in ieee80211_twt_req_supported() argument
3874 if (elems->ext_capab_len < 10) in ieee80211_twt_req_supported()
3877 if (!(elems->ext_capab[9] & WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT)) in ieee80211_twt_req_supported()
3886 struct ieee802_11_elems *elems) in ieee80211_recalc_twt_req() argument
3888 bool twt = ieee80211_twt_req_supported(link_sta, elems); in ieee80211_recalc_twt_req()
3937 struct ieee802_11_elems *elems; in ieee80211_assoc_config_link() local
3941 elems = ieee802_11_parse_elems_full(&parse_params); in ieee80211_assoc_config_link()
3942 if (!elems) in ieee80211_assoc_config_link()
3948 if (!is_s1g && !elems->supp_rates) { in ieee80211_assoc_config_link()
3955 elems->ext_capab && elems->ext_capab_len >= 5 && in ieee80211_assoc_config_link()
3956 (elems->ext_capab[4] & WLAN_EXT_CAPA5_TDLS_CH_SW_PROHIBITED); in ieee80211_assoc_config_link()
3966 ((assoc_data->wmm && !elems->wmm_param) || in ieee80211_assoc_config_link()
3968 (!elems->ht_cap_elem || !elems->ht_operation)) || in ieee80211_assoc_config_link()
3970 (!elems->vht_cap_elem || !elems->vht_operation)))) { in ieee80211_assoc_config_link()
3994 !elems->wmm_param && bss_elems->wmm_param) { in ieee80211_assoc_config_link()
3995 elems->wmm_param = bss_elems->wmm_param; in ieee80211_assoc_config_link()
4004 if (!elems->ht_cap_elem && bss_elems->ht_cap_elem && in ieee80211_assoc_config_link()
4006 elems->ht_cap_elem = bss_elems->ht_cap_elem; in ieee80211_assoc_config_link()
4010 if (!elems->ht_operation && bss_elems->ht_operation && in ieee80211_assoc_config_link()
4012 elems->ht_operation = bss_elems->ht_operation; in ieee80211_assoc_config_link()
4016 if (!elems->vht_cap_elem && bss_elems->vht_cap_elem && in ieee80211_assoc_config_link()
4018 elems->vht_cap_elem = bss_elems->vht_cap_elem; in ieee80211_assoc_config_link()
4022 if (!elems->vht_operation && bss_elems->vht_operation && in ieee80211_assoc_config_link()
4024 elems->vht_operation = bss_elems->vht_operation; in ieee80211_assoc_config_link()
4037 (!elems->wmm_param || !elems->ht_cap_elem || !elems->ht_operation)) { in ieee80211_assoc_config_link()
4045 (!elems->vht_cap_elem || !elems->vht_operation)) { in ieee80211_assoc_config_link()
4053 !elems->he_6ghz_capa) { in ieee80211_assoc_config_link()
4067 (!elems->he_cap || !elems->he_operation)) { in ieee80211_assoc_config_link()
4075 if (elems->ht_cap_elem && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HT)) in ieee80211_assoc_config_link()
4077 elems->ht_cap_elem, in ieee80211_assoc_config_link()
4080 if (elems->vht_cap_elem && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_VHT)) in ieee80211_assoc_config_link()
4082 elems->vht_cap_elem, in ieee80211_assoc_config_link()
4085 if (elems->he_operation && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HE) && in ieee80211_assoc_config_link()
4086 elems->he_cap) { in ieee80211_assoc_config_link()
4088 elems->he_cap, in ieee80211_assoc_config_link()
4089 elems->he_cap_len, in ieee80211_assoc_config_link()
4090 elems->he_6ghz_capa, in ieee80211_assoc_config_link()
4094 if (elems->rsnx && elems->rsnx_len && in ieee80211_assoc_config_link()
4095 (elems->rsnx[0] & WLAN_RSNX_CAPA_PROTECTED_TWT) && in ieee80211_assoc_config_link()
4102 *changed |= ieee80211_recalc_twt_req(link, link_sta, elems); in ieee80211_assoc_config_link()
4104 if (elems->eht_operation && elems->eht_cap && in ieee80211_assoc_config_link()
4107 elems->he_cap, in ieee80211_assoc_config_link()
4108 elems->he_cap_len, in ieee80211_assoc_config_link()
4109 elems->eht_cap, in ieee80211_assoc_config_link()
4110 elems->eht_cap_len, in ieee80211_assoc_config_link()
4129 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_config_link()
4132 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_config_link()
4135 !le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_config_link()
4142 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_config_link()
4145 le32_get_bits(elems->he_operation->he_oper_params, in ieee80211_assoc_config_link()
4148 bss_conf->uora_exists = !!elems->uora_element; in ieee80211_assoc_config_link()
4149 if (elems->uora_element) in ieee80211_assoc_config_link()
4150 bss_conf->uora_ocw_range = elems->uora_element[0]; in ieee80211_assoc_config_link()
4152 ieee80211_he_op_ie_to_bss_conf(&sdata->vif, elems->he_operation); in ieee80211_assoc_config_link()
4153 ieee80211_he_spr_ie_to_bss_conf(&sdata->vif, elems->he_spr); in ieee80211_assoc_config_link()
4177 if (elems->opmode_notif && in ieee80211_assoc_config_link()
4178 !(*elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF)) { in ieee80211_assoc_config_link()
4181 nss = *elems->opmode_notif & IEEE80211_OPMODE_NOTIF_RX_NSS_MASK; in ieee80211_assoc_config_link()
4198 } else if (!ieee80211_sta_wmm_params(local, link, elems->wmm_param, in ieee80211_assoc_config_link()
4199 elems->wmm_param_len, in ieee80211_assoc_config_link()
4200 elems->mu_edca_param_set)) { in ieee80211_assoc_config_link()
4213 if (elems->max_idle_period_ie) { in ieee80211_assoc_config_link()
4215 le16_to_cpu(elems->max_idle_period_ie->max_idle_period); in ieee80211_assoc_config_link()
4217 !!(elems->max_idle_period_ie->idle_options & in ieee80211_assoc_config_link()
4231 kfree(elems); in ieee80211_assoc_config_link()
4607 struct ieee802_11_elems *elems; in ieee80211_prep_channel() local
4618 elems = ieee802_11_parse_elems_full(&parse_params); in ieee80211_prep_channel()
4619 if (!elems) { in ieee80211_prep_channel()
4660 ht_oper = elems->ht_operation; in ieee80211_prep_channel()
4661 ht_cap = elems->ht_cap_elem; in ieee80211_prep_channel()
4670 vht_oper = elems->vht_operation; in ieee80211_prep_channel()
4681 if (!elems->vht_cap_elem) { in ieee80211_prep_channel()
4688 he_oper = elems->he_operation; in ieee80211_prep_channel()
4696 if (elems->pwr_constr_elem) in ieee80211_prep_channel()
4697 bss_conf->pwr_reduction = *elems->pwr_constr_elem; in ieee80211_prep_channel()
4700 ARRAY_SIZE(elems->tx_pwr_env)); in ieee80211_prep_channel()
4702 for (i = 0; i < elems->tx_pwr_env_num; i++) { in ieee80211_prep_channel()
4703 if (elems->tx_pwr_env_len[i] > in ieee80211_prep_channel()
4708 memcpy(&bss_conf->tx_pwr_env[j], elems->tx_pwr_env[i], in ieee80211_prep_channel()
4709 elems->tx_pwr_env_len[i]); in ieee80211_prep_channel()
4760 s1g_oper = elems->s1g_oper; in ieee80211_prep_channel()
4783 kfree(elems); in ieee80211_prep_channel()
4784 elems = NULL; in ieee80211_prep_channel()
4858 struct ieee802_11_elems *elems, in ieee80211_assoc_success() argument
4966 ieee80211_sta_set_max_amsdu_subframes(sta, elems->ext_capab, in ieee80211_assoc_success()
4967 elems->ext_capab_len); in ieee80211_assoc_success()
4969 sta->sta.wme = (elems->wmm_param || elems->s1g_capab) && in ieee80211_assoc_success()
5023 struct ieee802_11_elems *elems; in ieee80211_rx_mgmt_assoc_resp() local
5079 elems = ieee802_11_parse_elems_full(&parse_params); in ieee80211_rx_mgmt_assoc_resp()
5080 if (!elems) in ieee80211_rx_mgmt_assoc_resp()
5083 if (elems->aid_resp) in ieee80211_rx_mgmt_assoc_resp()
5084 aid = le16_to_cpu(elems->aid_resp->aid); in ieee80211_rx_mgmt_assoc_resp()
5104 elems->timeout_int && in ieee80211_rx_mgmt_assoc_resp()
5105 elems->timeout_int->type == WLAN_TIMEOUT_ASSOC_COMEBACK) { in ieee80211_rx_mgmt_assoc_resp()
5109 le32_to_cpu(elems->timeout_int->value)); in ieee80211_rx_mgmt_assoc_resp()
5111 tu = le32_to_cpu(elems->timeout_int->value); in ieee80211_rx_mgmt_assoc_resp()
5139 if (!elems->multi_link) { in ieee80211_rx_mgmt_assoc_resp()
5146 if (le16_get_bits(elems->multi_link->control, in ieee80211_rx_mgmt_assoc_resp()
5151 le16_to_cpu(elems->multi_link->control)); in ieee80211_rx_mgmt_assoc_resp()
5156 common = (void *)elems->multi_link->variable; in ieee80211_rx_mgmt_assoc_resp()
5171 if (!ieee80211_assoc_success(sdata, mgmt, elems, in ieee80211_rx_mgmt_assoc_resp()
5216 kfree(elems); in ieee80211_rx_mgmt_assoc_resp()
5432 struct ieee802_11_elems *elems; in ieee80211_rx_mgmt_beacon() local
5488 elems = ieee802_11_parse_elems_full(&parse_params); in ieee80211_rx_mgmt_beacon()
5489 if (!elems) in ieee80211_rx_mgmt_beacon()
5494 if (elems->dtim_period) in ieee80211_rx_mgmt_beacon()
5495 link->u.mgd.dtim_period = elems->dtim_period; in ieee80211_rx_mgmt_beacon()
5503 link->conf->sync_dtim_count = elems->dtim_count; in ieee80211_rx_mgmt_beacon()
5506 if (elems->mbssid_config_ie) in ieee80211_rx_mgmt_beacon()
5508 elems->mbssid_config_ie->profile_periodicity; in ieee80211_rx_mgmt_beacon()
5512 if (elems->ext_capab_len >= 11 && in ieee80211_rx_mgmt_beacon()
5513 (elems->ext_capab[10] & WLAN_EXT_CAPA11_EMA_SUPPORT)) in ieee80211_rx_mgmt_beacon()
5522 kfree(elems); in ieee80211_rx_mgmt_beacon()
5557 elems = ieee802_11_parse_elems_full(&parse_params); in ieee80211_rx_mgmt_beacon()
5558 if (!elems) in ieee80211_rx_mgmt_beacon()
5560 ncrc = elems->crc; in ieee80211_rx_mgmt_beacon()
5563 ieee80211_check_tim(elems->tim, elems->tim_len, vif_cfg->aid)) { in ieee80211_rx_mgmt_beacon()
5633 link->conf->sync_dtim_count = elems->dtim_count; in ieee80211_rx_mgmt_beacon()
5646 elems, true); in ieee80211_rx_mgmt_beacon()
5649 ieee80211_sta_wmm_params(local, link, elems->wmm_param, in ieee80211_rx_mgmt_beacon()
5650 elems->wmm_param_len, in ieee80211_rx_mgmt_beacon()
5651 elems->mu_edca_param_set)) in ieee80211_rx_mgmt_beacon()
5660 bss_conf->dtim_period = elems->dtim_period ?: 1; in ieee80211_rx_mgmt_beacon()
5672 if (elems->erp_info) { in ieee80211_rx_mgmt_beacon()
5674 erp_value = elems->erp_info[0]; in ieee80211_rx_mgmt_beacon()
5697 changed |= ieee80211_recalc_twt_req(link, link_sta, elems); in ieee80211_rx_mgmt_beacon()
5699 if (ieee80211_config_bw(link, elems->ht_cap_elem, in ieee80211_rx_mgmt_beacon()
5700 elems->vht_cap_elem, elems->ht_operation, in ieee80211_rx_mgmt_beacon()
5701 elems->vht_operation, elems->he_operation, in ieee80211_rx_mgmt_beacon()
5702 elems->eht_operation, in ieee80211_rx_mgmt_beacon()
5703 elems->s1g_oper, bssid, &changed)) { in ieee80211_rx_mgmt_beacon()
5718 if (sta && elems->opmode_notif) in ieee80211_rx_mgmt_beacon()
5720 *elems->opmode_notif, in ieee80211_rx_mgmt_beacon()
5725 elems->country_elem, in ieee80211_rx_mgmt_beacon()
5726 elems->country_elem_len, in ieee80211_rx_mgmt_beacon()
5727 elems->pwr_constr_elem, in ieee80211_rx_mgmt_beacon()
5728 elems->cisco_dtpc_elem); in ieee80211_rx_mgmt_beacon()
5732 kfree(elems); in ieee80211_rx_mgmt_beacon()
5801 struct ieee802_11_elems *elems; in ieee80211_sta_rx_queued_mgmt() local
5811 elems = ieee802_11_parse_elems( in ieee80211_sta_rx_queued_mgmt()
5815 if (elems && !elems->parse_error) in ieee80211_sta_rx_queued_mgmt()
5819 elems, false); in ieee80211_sta_rx_queued_mgmt()
5820 kfree(elems); in ieee80211_sta_rx_queued_mgmt()
5822 struct ieee802_11_elems *elems; in ieee80211_sta_rx_queued_mgmt() local
5835 elems = ieee802_11_parse_elems( in ieee80211_sta_rx_queued_mgmt()
5839 if (elems && !elems->parse_error) { in ieee80211_sta_rx_queued_mgmt()
5841 elems->ext_chansw_ie = in ieee80211_sta_rx_queued_mgmt()
5847 elems, false); in ieee80211_sta_rx_queued_mgmt()
5850 kfree(elems); in ieee80211_sta_rx_queued_mgmt()
6790 memcpy(assoc_data->ie_pos, req->links[link_id].elems, in ieee80211_setup_assoc_link()
6792 assoc_data->link[link_id].elems = assoc_data->ie_pos; in ieee80211_setup_assoc_link()