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()
755 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
756 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
817 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && assoc_data->ie_len) { in ieee80211_send_assoc()
822 assoc_data->ie, in ieee80211_send_assoc()
823 assoc_data->ie_len); in ieee80211_send_assoc()
831 if (assoc_data->ie_len) { in ieee80211_send_assoc()
860 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
861 assoc_data->ie_len, in ieee80211_send_assoc()
867 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
876 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
880 if (assoc_data->ie_len) { in ieee80211_send_assoc()
895 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
898 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
903 if (assoc_data->ie_len) { in ieee80211_send_assoc()
921 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
925 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
931 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
946 if (assoc_data->ie_len) { in ieee80211_send_assoc()
947 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
948 assoc_data->ie_len, in ieee80211_send_assoc()
950 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
954 if (assoc_data->wmm) { in ieee80211_send_assoc()
955 if (assoc_data->uapsd) { in ieee80211_send_assoc()
967 if (assoc_data->ie_len) { in ieee80211_send_assoc()
968 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
969 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
972 if (assoc_data->fils_kek_len && in ieee80211_send_assoc()
973 fils_encrypt_assoc_req(skb, assoc_data) < 0) { in ieee80211_send_assoc()
2629 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2630 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2794 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_destroy_assoc_data() local
2805 sta_info_destroy_addr(sdata, assoc_data->bss->bssid); in ieee80211_destroy_assoc_data()
2817 cfg80211_abandon_assoc(sdata->dev, assoc_data->bss); in ieee80211_destroy_assoc_data()
2820 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2821 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
3064 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
3065 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
3066 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3200 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
3227 mgmt->bssid, assoc_data->bss->bssid); in ieee80211_assoc_success()
3246 if ((assoc_data->wmm && !elems.wmm_param) || in ieee80211_assoc_success()
3266 assoc_data->bss->bssid); in ieee80211_assoc_success()
3267 if (assoc_data->wmm && in ieee80211_assoc_success()
3530 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3544 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3546 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3567 if (assoc_data->fils_kek_len && in ieee80211_rx_mgmt_assoc_resp()
3568 fils_decrypt_assoc_resp(sdata, (u8 *)mgmt, &len, assoc_data) < 0) in ieee80211_rx_mgmt_assoc_resp()
3573 mgmt->bssid, assoc_data->bss->bssid); in ieee80211_rx_mgmt_assoc_resp()
3584 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3585 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3587 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
3591 bss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3847 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
3848 ieee80211_rx_our_beacon(mgmt->bssid, ifmgd->assoc_data->bss)) { in ieee80211_rx_mgmt_beacon()
3852 ifmgd->assoc_data->bss->bssid); in ieee80211_rx_mgmt_beacon()
3859 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
3877 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
3878 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
3879 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4250 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
4255 assoc_data->tries++; in ieee80211_do_assoc()
4256 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
4258 assoc_data->bss->bssid); in ieee80211_do_assoc()
4264 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
4270 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
4275 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
4276 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4277 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4279 assoc_data->timeout = in ieee80211_do_assoc()
4282 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4283 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4329 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4333 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4335 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4337 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4339 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4369 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4370 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4371 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4373 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4384 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4385 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4504 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4507 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4518 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4923 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
5111 if (ifmgd->assoc_data) in ieee80211_mgd_auth()
5224 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
5231 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
5232 if (!assoc_data) in ieee80211_mgd_assoc()
5237 if (!ssidie || ssidie[1] > sizeof(assoc_data->ssid)) { in ieee80211_mgd_assoc()
5239 kfree(assoc_data); in ieee80211_mgd_assoc()
5242 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
5243 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
5266 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5283 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
5337 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
5338 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
5347 memcpy(assoc_data->fils_kek, req->fils_kek, in ieee80211_mgd_assoc()
5349 assoc_data->fils_kek_len = req->fils_kek_len; in ieee80211_mgd_assoc()
5353 memcpy(assoc_data->fils_nonces, req->fils_nonces, in ieee80211_mgd_assoc()
5356 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
5366 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
5367 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
5368 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
5373 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
5379 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
5392 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
5395 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
5400 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
5429 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5477 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
5478 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5479 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
5488 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5489 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5509 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5510 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5514 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
5534 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5536 kfree(assoc_data); in ieee80211_mgd_assoc()
5567 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5568 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5652 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5653 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()