Lines Matching refs:assoc_data
703 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_send_assoc() local
718 if (assoc_data->ie_len) in ieee80211_send_assoc()
720 assoc_data->ie, in ieee80211_send_assoc()
721 assoc_data->ie_len); in ieee80211_send_assoc()
736 if (assoc_data->supp_rates_len) { in ieee80211_send_assoc()
744 assoc_data->supp_rates, in ieee80211_send_assoc()
745 assoc_data->supp_rates_len, in ieee80211_send_assoc()
762 2 + assoc_data->ssid_len + /* SSID */ in ieee80211_send_assoc()
772 assoc_data->ie_len + /* extra IEs */ in ieee80211_send_assoc()
773 (assoc_data->fils_kek_len ? 16 /* AES-SIV */ : 0) + in ieee80211_send_assoc()
788 if (assoc_data->capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_send_assoc()
791 if ((assoc_data->capability & WLAN_CAPABILITY_SPECTRUM_MGMT) && in ieee80211_send_assoc()
799 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
801 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); in ieee80211_send_assoc()
806 if (!is_zero_ether_addr(assoc_data->prev_bssid)) { in ieee80211_send_assoc()
812 memcpy(mgmt->u.reassoc_req.current_ap, assoc_data->prev_bssid, in ieee80211_send_assoc()
823 pos = skb_put(skb, 2 + assoc_data->ssid_len); in ieee80211_send_assoc()
826 *pos++ = assoc_data->ssid_len; in ieee80211_send_assoc()
827 memcpy(pos, assoc_data->ssid, assoc_data->ssid_len); in ieee80211_send_assoc()
900 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && assoc_data->ie_len && in ieee80211_send_assoc()
905 if (assoc_data->ie_len) { in ieee80211_send_assoc()
934 noffset = ieee80211_ie_split_ric(assoc_data->ie, in ieee80211_send_assoc()
935 assoc_data->ie_len, in ieee80211_send_assoc()
941 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
951 ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, in ieee80211_send_assoc()
955 if (assoc_data->ie_len) { in ieee80211_send_assoc()
970 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
973 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
978 if (assoc_data->ie_len) { in ieee80211_send_assoc()
996 noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, in ieee80211_send_assoc()
1000 memcpy(pos, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
1007 &assoc_data->ap_vht_cap); in ieee80211_send_assoc()
1022 if (assoc_data->ie_len) { in ieee80211_send_assoc()
1023 noffset = ieee80211_ie_split_vendor(assoc_data->ie, in ieee80211_send_assoc()
1024 assoc_data->ie_len, in ieee80211_send_assoc()
1026 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
1030 if (assoc_data->wmm) { in ieee80211_send_assoc()
1031 if (assoc_data->uapsd) { in ieee80211_send_assoc()
1048 if (assoc_data->ie_len) { in ieee80211_send_assoc()
1049 noffset = assoc_data->ie_len; in ieee80211_send_assoc()
1050 skb_put_data(skb, assoc_data->ie + offset, noffset - offset); in ieee80211_send_assoc()
1053 if (assoc_data->fils_kek_len && in ieee80211_send_assoc()
1054 fils_encrypt_assoc_req(skb, assoc_data) < 0) { in ieee80211_send_assoc()
2702 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2703 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2867 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_destroy_assoc_data() local
2878 sta_info_destroy_addr(sdata, assoc_data->bss->bssid); in ieee80211_destroy_assoc_data()
2890 cfg80211_abandon_assoc(sdata->dev, assoc_data->bss); in ieee80211_destroy_assoc_data()
2893 kfree(assoc_data); in ieee80211_destroy_assoc_data()
2894 sdata->u.mgd.assoc_data = NULL; in ieee80211_destroy_assoc_data()
3149 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
3150 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
3151 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3285 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success() local
3341 ((assoc_data->wmm && !elems->wmm_param) || in ieee80211_assoc_success()
3361 assoc_data->bss->bssid); in ieee80211_assoc_success()
3362 if (assoc_data->wmm && in ieee80211_assoc_success()
3662 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp() local
3676 if (!assoc_data) in ieee80211_rx_mgmt_assoc_resp()
3679 if (!ether_addr_equal(assoc_data->bss->bssid, mgmt->bssid)) in ieee80211_rx_mgmt_assoc_resp()
3682 cbss = assoc_data->bss; in ieee80211_rx_mgmt_assoc_resp()
3707 if (assoc_data->fils_kek_len && in ieee80211_rx_mgmt_assoc_resp()
3708 fils_decrypt_assoc_resp(sdata, (u8 *)mgmt, &len, assoc_data) < 0) in ieee80211_rx_mgmt_assoc_resp()
3723 assoc_data->timeout = jiffies + msecs_to_jiffies(ms); in ieee80211_rx_mgmt_assoc_resp()
3724 assoc_data->timeout_started = true; in ieee80211_rx_mgmt_assoc_resp()
3726 run_again(sdata, assoc_data->timeout); in ieee80211_rx_mgmt_assoc_resp()
4012 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
4013 ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->bss)) { in ieee80211_rx_mgmt_beacon()
4017 ifmgd->assoc_data->bss->bssid); in ieee80211_rx_mgmt_beacon()
4024 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
4046 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
4047 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
4048 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4453 struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; in ieee80211_do_assoc() local
4458 assoc_data->tries++; in ieee80211_do_assoc()
4459 if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) { in ieee80211_do_assoc()
4461 assoc_data->bss->bssid); in ieee80211_do_assoc()
4467 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
4473 assoc_data->bss->bssid, assoc_data->tries, in ieee80211_do_assoc()
4478 assoc_data->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; in ieee80211_do_assoc()
4479 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4480 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4482 assoc_data->timeout = in ieee80211_do_assoc()
4485 assoc_data->timeout_started = true; in ieee80211_do_assoc()
4486 run_again(sdata, assoc_data->timeout); in ieee80211_do_assoc()
4532 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4536 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4538 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4540 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4542 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4572 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4573 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4574 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4576 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4587 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4588 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4729 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4732 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4743 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
5182 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
5385 if (ifmgd->assoc_data) in ieee80211_mgd_auth()
5500 struct ieee80211_mgd_assoc_data *assoc_data; in ieee80211_mgd_assoc() local
5507 assoc_data = kzalloc(sizeof(*assoc_data) + req->ie_len, GFP_KERNEL); in ieee80211_mgd_assoc()
5508 if (!assoc_data) in ieee80211_mgd_assoc()
5513 if (!ssidie || ssidie[1] > sizeof(assoc_data->ssid)) { in ieee80211_mgd_assoc()
5515 kfree(assoc_data); in ieee80211_mgd_assoc()
5518 memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]); in ieee80211_mgd_assoc()
5519 assoc_data->ssid_len = ssidie[1]; in ieee80211_mgd_assoc()
5542 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5559 assoc_data->wmm = bss->wmm_used && in ieee80211_mgd_assoc()
5605 memcpy(assoc_data->ie, req->ie, req->ie_len); in ieee80211_mgd_assoc()
5606 assoc_data->ie_len = req->ie_len; in ieee80211_mgd_assoc()
5615 memcpy(assoc_data->fils_kek, req->fils_kek, in ieee80211_mgd_assoc()
5617 assoc_data->fils_kek_len = req->fils_kek_len; in ieee80211_mgd_assoc()
5621 memcpy(assoc_data->fils_nonces, req->fils_nonces, in ieee80211_mgd_assoc()
5624 assoc_data->bss = req->bss; in ieee80211_mgd_assoc()
5634 assoc_data->capability = req->bss->capability; in ieee80211_mgd_assoc()
5635 assoc_data->supp_rates = bss->supp_rates; in ieee80211_mgd_assoc()
5636 assoc_data->supp_rates_len = bss->supp_rates_len; in ieee80211_mgd_assoc()
5641 assoc_data->ap_ht_param = in ieee80211_mgd_assoc()
5647 memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, in ieee80211_mgd_assoc()
5661 assoc_data->uapsd = true; in ieee80211_mgd_assoc()
5664 assoc_data->uapsd = false; in ieee80211_mgd_assoc()
5669 memcpy(assoc_data->prev_bssid, req->prev_bssid, ETH_ALEN); in ieee80211_mgd_assoc()
5699 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5748 assoc_data->timeout = TU_TO_EXP_TIME(req->bss->beacon_interval); in ieee80211_mgd_assoc()
5749 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5750 assoc_data->need_beacon = true; in ieee80211_mgd_assoc()
5759 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5760 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5784 assoc_data->timeout = jiffies; in ieee80211_mgd_assoc()
5785 assoc_data->timeout_started = true; in ieee80211_mgd_assoc()
5789 run_again(sdata, assoc_data->timeout); in ieee80211_mgd_assoc()
5809 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5811 kfree(assoc_data); in ieee80211_mgd_assoc()
5842 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5843 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5927 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5928 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()