Lines Matching refs:assoc_data

642 	struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data;  in ieee80211_send_assoc()  local
667 if (assoc_data->supp_rates_len) { in ieee80211_send_assoc()
675 assoc_data->supp_rates, in ieee80211_send_assoc()
676 assoc_data->supp_rates_len, in ieee80211_send_assoc()
693 2 + assoc_data->ssid_len + /* SSID */ in ieee80211_send_assoc()
702 assoc_data->ie_len + /* extra IEs */ in ieee80211_send_assoc()
703 (assoc_data->fils_kek_len ? 16 /* AES-SIV */ : 0) + in ieee80211_send_assoc()
718 if (assoc_data->capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_send_assoc()
721 if ((assoc_data->capability & WLAN_CAPABILITY_SPECTRUM_MGMT) && in ieee80211_send_assoc()
729 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
731 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
733 if (!is_zero_ether_addr(assoc_data->prev_bssid)) { in ieee80211_send_assoc()
740 memcpy(mgmt->u.reassoc_req.current_ap, assoc_data->prev_bssid, in ieee80211_send_assoc()
752 pos = skb_put(skb, 2 + assoc_data->ssid_len); in ieee80211_send_assoc()
754 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
755 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
815 if (assoc_data->ie_len) { in ieee80211_send_assoc()
844 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
845 assoc_data->ie_len, in ieee80211_send_assoc()
851 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
860 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
864 if (assoc_data->ie_len) { in ieee80211_send_assoc()
879 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
882 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
887 if (assoc_data->ie_len) { in ieee80211_send_assoc()
905 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
909 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
915 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
921 if (assoc_data->ie_len) { in ieee80211_send_assoc()
922 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
923 assoc_data->ie_len, in ieee80211_send_assoc()
925 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
929 if (assoc_data->wmm) { in ieee80211_send_assoc()
930 if (assoc_data->uapsd) { in ieee80211_send_assoc()
942 if (assoc_data->ie_len) { in ieee80211_send_assoc()
943 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
944 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
947 if (assoc_data->fils_kek_len && in ieee80211_send_assoc()
948 fils_encrypt_assoc_req(skb, assoc_data) < 0) { in ieee80211_send_assoc()
2543 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2544 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2707 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_destroy_assoc_data() local
2718 sta_info_destroy_addr(sdata, assoc_data->bss->bssid); in ieee80211_destroy_assoc_data()
2730 cfg80211_abandon_assoc(sdata->dev, assoc_data->bss); in ieee80211_destroy_assoc_data()
2733 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2734 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
2954 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
2955 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
2956 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3059 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
3104 if ((assoc_data->wmm && !elems.wmm_param) || in ieee80211_assoc_success()
3123 if (assoc_data->wmm && in ieee80211_assoc_success()
3386 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3400 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3402 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3423 if (assoc_data->fils_kek_len && in ieee80211_rx_mgmt_assoc_resp()
3424 fils_decrypt_assoc_resp(sdata, (u8 *)mgmt, &len, assoc_data) < 0) in ieee80211_rx_mgmt_assoc_resp()
3439 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3440 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3442 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
3446 bss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3697 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
3698 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_beacon()
3708 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
3721 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
3722 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
3723 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4093 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
4098 assoc_data->tries++; in ieee80211_do_assoc()
4099 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
4101 assoc_data->bss->bssid); in ieee80211_do_assoc()
4107 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
4113 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
4118 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
4119 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4120 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4122 assoc_data->timeout = in ieee80211_do_assoc()
4125 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4126 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4172 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4176 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4178 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4180 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4182 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4212 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4213 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4214 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4216 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4227 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4228 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4347 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4350 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4361 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4730 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
4952 ifmgd->assoc_data) { in ieee80211_mgd_auth()
5012 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
5019 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
5020 if (!assoc_data) in ieee80211_mgd_assoc()
5027 kfree(assoc_data); in ieee80211_mgd_assoc()
5030 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
5031 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
5054 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5071 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
5125 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
5126 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
5135 memcpy(assoc_data->fils_kek, req->fils_kek, in ieee80211_mgd_assoc()
5137 assoc_data->fils_kek_len = req->fils_kek_len; in ieee80211_mgd_assoc()
5141 memcpy(assoc_data->fils_nonces, req->fils_nonces, in ieee80211_mgd_assoc()
5144 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
5154 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
5155 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
5156 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
5161 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
5167 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
5180 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
5183 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
5188 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
5217 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5265 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
5266 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5267 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
5281 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5282 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5291 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5292 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5296 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
5316 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5318 kfree(assoc_data); in ieee80211_mgd_assoc()
5349 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5350 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5434 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5435 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()