Lines Matching refs:assoc_data

600 	struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data;  in ieee80211_send_assoc()  local
626 if (assoc_data->supp_rates_len) { in ieee80211_send_assoc()
634 assoc_data->supp_rates, in ieee80211_send_assoc()
635 assoc_data->supp_rates_len, in ieee80211_send_assoc()
655 2 + assoc_data->ssid_len + /* SSID */ in ieee80211_send_assoc()
661 assoc_data->ie_len + /* extra IEs */ in ieee80211_send_assoc()
678 if (assoc_data->capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_send_assoc()
681 if ((assoc_data->capability & WLAN_CAPABILITY_SPECTRUM_MGMT) && in ieee80211_send_assoc()
690 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
692 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
694 if (!is_zero_ether_addr(assoc_data->prev_bssid)) { in ieee80211_send_assoc()
701 memcpy(mgmt->u.reassoc_req.current_ap, assoc_data->prev_bssid, in ieee80211_send_assoc()
713 pos = skb_put(skb, 2 + assoc_data->ssid_len); in ieee80211_send_assoc()
715 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
716 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
776 if (assoc_data->ie_len) { in ieee80211_send_assoc()
804 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
805 assoc_data->ie_len, in ieee80211_send_assoc()
812 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
821 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
825 if (assoc_data->ie_len) { in ieee80211_send_assoc()
846 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
850 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
856 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
859 if (assoc_data->ie_len) { in ieee80211_send_assoc()
860 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
861 assoc_data->ie_len, in ieee80211_send_assoc()
864 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
868 if (assoc_data->wmm) { in ieee80211_send_assoc()
869 if (assoc_data->uapsd) { in ieee80211_send_assoc()
881 if (assoc_data->ie_len) { in ieee80211_send_assoc()
882 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
884 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
2339 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2340 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()
2815 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2816 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
2832 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
2876 if ((assoc_data->wmm && !elems.wmm_param) || in ieee80211_assoc_success()
2895 if (assoc_data->wmm && in ieee80211_assoc_success()
3069 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3083 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3085 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3118 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3119 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3121 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
3125 bss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3290 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
3291 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_beacon()
3301 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
3314 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
3315 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
3316 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
3763 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
3768 assoc_data->tries++; in ieee80211_do_assoc()
3769 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
3771 assoc_data->bss->bssid); in ieee80211_do_assoc()
3777 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
3783 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
3788 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
3789 assoc_data->timeout_started = true; in ieee80211_do_assoc()
3790 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
3792 assoc_data->timeout = in ieee80211_do_assoc()
3795 assoc_data->timeout_started = true; in ieee80211_do_assoc()
3796 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
3836 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
3840 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
3842 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
3844 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
3846 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
3876 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
3877 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
3878 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
3880 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
3891 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
3892 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4016 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4019 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4030 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4321 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
4528 ifmgd->assoc_data) { in ieee80211_mgd_auth()
4620 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
4626 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
4627 if (!assoc_data) in ieee80211_mgd_assoc()
4634 kfree(assoc_data); in ieee80211_mgd_assoc()
4637 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
4638 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
4658 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
4675 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
4677 if (assoc_data->wmm) { in ieee80211_mgd_assoc()
4705 assoc_data->wmm = false; in ieee80211_mgd_assoc()
4769 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
4770 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
4773 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
4783 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
4784 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
4785 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
4790 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
4796 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
4809 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
4812 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
4817 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
4844 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
4863 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
4864 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4865 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
4879 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
4880 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4889 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
4890 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4894 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
4914 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
4916 kfree(assoc_data); in ieee80211_mgd_assoc()
4947 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
4948 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5032 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5033 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()