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