Lines Matching refs:assoc_data
671 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_send_assoc() local
689 if (assoc_data->ie_len) in ieee80211_send_assoc()
691 assoc_data->ie, in ieee80211_send_assoc()
692 assoc_data->ie_len); in ieee80211_send_assoc()
707 if (assoc_data->supp_rates_len) { in ieee80211_send_assoc()
715 assoc_data->supp_rates, in ieee80211_send_assoc()
716 assoc_data->supp_rates_len, in ieee80211_send_assoc()
735 2 + assoc_data->ssid_len + /* SSID */ in ieee80211_send_assoc()
745 assoc_data->ie_len + /* extra IEs */ in ieee80211_send_assoc()
746 (assoc_data->fils_kek_len ? 16 /* AES-SIV */ : 0) + in ieee80211_send_assoc()
762 if (assoc_data->capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_send_assoc()
765 if ((assoc_data->capability & WLAN_CAPABILITY_SPECTRUM_MGMT) && in ieee80211_send_assoc()
773 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
775 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
780 if (!is_zero_ether_addr(assoc_data->prev_bssid)) { in ieee80211_send_assoc()
786 memcpy(mgmt->u.reassoc_req.current_ap, assoc_data->prev_bssid, in ieee80211_send_assoc()
799 pos = skb_put(skb, 2 + assoc_data->ssid_len); in ieee80211_send_assoc()
802 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
803 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
876 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && assoc_data->ie_len && in ieee80211_send_assoc()
881 if (assoc_data->ie_len) { in ieee80211_send_assoc()
910 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
911 assoc_data->ie_len, in ieee80211_send_assoc()
917 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
927 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
931 if (assoc_data->ie_len) { in ieee80211_send_assoc()
946 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
949 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
954 if (assoc_data->ie_len) { in ieee80211_send_assoc()
972 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
976 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
983 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
998 if (assoc_data->ie_len) { in ieee80211_send_assoc()
999 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
1000 assoc_data->ie_len, in ieee80211_send_assoc()
1002 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
1006 if (assoc_data->wmm) { in ieee80211_send_assoc()
1007 if (assoc_data->uapsd) { in ieee80211_send_assoc()
1027 if (assoc_data->ie_len) { in ieee80211_send_assoc()
1028 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
1029 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
1032 if (assoc_data->fils_kek_len && in ieee80211_send_assoc()
1033 fils_encrypt_assoc_req(skb, assoc_data) < 0) { in ieee80211_send_assoc()
2644 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2645 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2838 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_destroy_assoc_data() local
2849 sta_info_destroy_addr(sdata, assoc_data->bss->bssid); in ieee80211_destroy_assoc_data()
2861 cfg80211_abandon_assoc(sdata->dev, assoc_data->bss); in ieee80211_destroy_assoc_data()
2864 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2865 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
3121 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
3122 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
3123 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3276 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
3294 mgmt->bssid, assoc_data->bss->bssid); in ieee80211_assoc_success()
3332 ((assoc_data->wmm && !elems->wmm_param) || in ieee80211_assoc_success()
3352 assoc_data->bss->bssid); in ieee80211_assoc_success()
3353 if (assoc_data->wmm && in ieee80211_assoc_success()
3641 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3656 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3659 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3662 cbss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3696 if (assoc_data->fils_kek_len && in ieee80211_rx_mgmt_assoc_resp()
3697 fils_decrypt_assoc_resp(sdata, (u8 *)mgmt, &len, assoc_data) < 0) in ieee80211_rx_mgmt_assoc_resp()
3701 mgmt->bssid, assoc_data->bss->bssid); in ieee80211_rx_mgmt_assoc_resp()
3712 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3713 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3715 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
4005 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
4006 ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->bss)) { in ieee80211_rx_mgmt_beacon()
4010 ifmgd->assoc_data->bss->bssid); in ieee80211_rx_mgmt_beacon()
4017 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
4039 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
4040 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
4041 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4445 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
4450 assoc_data->tries++; in ieee80211_do_assoc()
4451 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
4453 assoc_data->bss->bssid); in ieee80211_do_assoc()
4459 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
4465 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
4470 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
4471 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4472 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4474 assoc_data->timeout = in ieee80211_do_assoc()
4477 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4478 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4524 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4528 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4530 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4532 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4534 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4564 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4565 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4566 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4568 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4579 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4580 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4721 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4724 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4735 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
5178 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
5381 if (ifmgd->assoc_data) in ieee80211_mgd_auth()
5497 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
5505 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
5506 if (!assoc_data) in ieee80211_mgd_assoc()
5511 if (!ssidie || ssidie[1] > sizeof(assoc_data->ssid)) { in ieee80211_mgd_assoc()
5513 kfree(assoc_data); in ieee80211_mgd_assoc()
5516 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
5517 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
5518 memcpy(bss_conf->ssid, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_mgd_assoc()
5519 bss_conf->ssid_len = assoc_data->ssid_len; in ieee80211_mgd_assoc()
5543 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5560 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
5606 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
5607 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
5616 memcpy(assoc_data->fils_kek, req->fils_kek, in ieee80211_mgd_assoc()
5618 assoc_data->fils_kek_len = req->fils_kek_len; in ieee80211_mgd_assoc()
5622 memcpy(assoc_data->fils_nonces, req->fils_nonces, in ieee80211_mgd_assoc()
5625 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
5626 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
5627 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
5628 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
5633 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
5639 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
5653 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
5656 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
5661 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
5691 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5752 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
5753 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5754 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
5763 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5764 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5788 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5789 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5793 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
5813 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5815 kfree(assoc_data); in ieee80211_mgd_assoc()
5849 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5850 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5935 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5936 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()