Lines Matching refs:assoc_data
625 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_send_assoc() local
651 if (assoc_data->supp_rates_len) { in ieee80211_send_assoc()
659 assoc_data->supp_rates, in ieee80211_send_assoc()
660 assoc_data->supp_rates_len, in ieee80211_send_assoc()
680 2 + assoc_data->ssid_len + /* SSID */ in ieee80211_send_assoc()
686 assoc_data->ie_len + /* extra IEs */ in ieee80211_send_assoc()
701 if (assoc_data->capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_send_assoc()
704 if ((assoc_data->capability & WLAN_CAPABILITY_SPECTRUM_MGMT) && in ieee80211_send_assoc()
713 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
715 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
717 if (!is_zero_ether_addr(assoc_data->prev_bssid)) { in ieee80211_send_assoc()
724 memcpy(mgmt->u.reassoc_req.current_ap, assoc_data->prev_bssid, in ieee80211_send_assoc()
736 pos = skb_put(skb, 2 + assoc_data->ssid_len); in ieee80211_send_assoc()
738 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
739 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
799 if (assoc_data->ie_len) { in ieee80211_send_assoc()
827 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
828 assoc_data->ie_len, in ieee80211_send_assoc()
835 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
844 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
848 if (assoc_data->ie_len) { in ieee80211_send_assoc()
869 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
873 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
879 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
882 if (assoc_data->ie_len) { in ieee80211_send_assoc()
883 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
884 assoc_data->ie_len, in ieee80211_send_assoc()
887 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
891 if (assoc_data->wmm) { in ieee80211_send_assoc()
892 if (assoc_data->uapsd) { in ieee80211_send_assoc()
904 if (assoc_data->ie_len) { in ieee80211_send_assoc()
905 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
907 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
2366 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2367 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2522 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_destroy_assoc_data() local
2533 sta_info_destroy_addr(sdata, assoc_data->bss->bssid); in ieee80211_destroy_assoc_data()
2544 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2545 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
2762 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
2763 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
2764 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
2868 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
2912 if ((assoc_data->wmm && !elems.wmm_param) || in ieee80211_assoc_success()
2931 if (assoc_data->wmm && in ieee80211_assoc_success()
3115 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3129 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3131 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3164 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3165 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3167 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
3171 bss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3326 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
3327 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_beacon()
3337 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
3350 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
3351 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
3352 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
3768 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
3773 assoc_data->tries++; in ieee80211_do_assoc()
3774 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
3776 assoc_data->bss->bssid); in ieee80211_do_assoc()
3782 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
3788 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
3793 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
3794 assoc_data->timeout_started = true; in ieee80211_do_assoc()
3795 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
3797 assoc_data->timeout = in ieee80211_do_assoc()
3800 assoc_data->timeout_started = true; in ieee80211_do_assoc()
3801 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
3840 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
3844 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
3846 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
3848 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
3850 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
3880 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
3881 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
3882 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
3884 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
3895 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
3896 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4017 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4020 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4031 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4323 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
4523 ifmgd->assoc_data) { in ieee80211_mgd_auth()
4580 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
4587 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
4588 if (!assoc_data) in ieee80211_mgd_assoc()
4595 kfree(assoc_data); in ieee80211_mgd_assoc()
4598 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
4599 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
4619 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
4636 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
4689 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
4690 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
4693 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
4703 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
4704 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
4705 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
4710 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
4716 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
4729 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
4732 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
4737 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
4764 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
4812 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
4813 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4814 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
4828 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
4829 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4838 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
4839 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
4843 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
4863 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
4865 kfree(assoc_data); in ieee80211_mgd_assoc()
4896 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
4897 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
4981 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
4982 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()