Searched refs:ifmgd (Results 1 - 9 of 9) sorted by relevance

/linux-4.4.14/net/mac80211/
H A Dmlme.c123 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_reset_conn_monitor() local
128 ifmgd->probe_send_count = 0; ieee80211_sta_reset_conn_monitor()
151 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_determine_chantype() local
247 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_determine_chantype()
256 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_determine_chantype()
269 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_determine_chantype()
343 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_config_bw() local
353 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT || !ht_oper) ieee80211_config_bw()
357 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) ieee80211_config_bw()
388 if (ifmgd->flags & IEEE80211_STA_DISABLE_80P80MHZ && ieee80211_config_bw()
391 if (ifmgd->flags & IEEE80211_STA_DISABLE_160MHZ && ieee80211_config_bw()
394 if (ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ && ieee80211_config_bw()
403 ifmgd->bssid, chandef.chan->center_freq, chandef.width, ieee80211_config_bw()
406 if (flags != (ifmgd->flags & (IEEE80211_STA_DISABLE_HT | ieee80211_config_bw()
414 ifmgd->bssid); ieee80211_config_bw()
450 ifmgd->bssid); ieee80211_config_bw()
624 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_send_assoc() local
625 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; ieee80211_send_assoc()
708 if (ifmgd->flags & IEEE80211_STA_ENABLE_RRM) ieee80211_send_assoc()
839 if (WARN_ON_ONCE((ifmgd->flags & IEEE80211_STA_DISABLE_HT) && ieee80211_send_assoc()
840 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT))) ieee80211_send_assoc()
841 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_send_assoc()
843 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) ieee80211_send_assoc()
877 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_send_assoc()
893 qos_info = ifmgd->uapsd_queues; ieee80211_send_assoc()
894 qos_info |= (ifmgd->uapsd_max_sp_len << ieee80211_send_assoc()
942 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_send_nullfunc() local
958 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) ieee80211_send_nullfunc()
1000 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_chswitch_work() local
1010 if (!ifmgd->associated) ieee80211_chswitch_work()
1038 &ifmgd->csa_connection_drop_work); ieee80211_chswitch_work()
1050 &ifmgd->csa_connection_drop_work); ieee80211_chswitch_work()
1055 ifmgd->associated->channel = sdata->csa_chandef.chan; ieee80211_chswitch_work()
1057 ifmgd->csa_waiting_bcn = true; ieee80211_chswitch_work()
1071 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_chswitch_post_beacon() local
1085 ifmgd->csa_waiting_bcn = false; ieee80211_chswitch_post_beacon()
1092 &ifmgd->csa_connection_drop_work); ieee80211_chswitch_post_beacon()
1102 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_chswitch_done() local
1109 &ifmgd->csa_connection_drop_work); ieee80211_chswitch_done()
1111 ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work); ieee80211_chswitch_done()
1131 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_process_chanswitch() local
1132 struct cfg80211_bss *cbss = ifmgd->associated; ieee80211_sta_process_chanswitch()
1155 ifmgd->flags, ieee80211_sta_process_chanswitch()
1156 ifmgd->associated->bssid, &csa_ie); ieee80211_sta_process_chanswitch()
1159 &ifmgd->csa_connection_drop_work); ieee80211_sta_process_chanswitch()
1167 ifmgd->associated->bssid, ieee80211_sta_process_chanswitch()
1172 &ifmgd->csa_connection_drop_work); ieee80211_sta_process_chanswitch()
1178 if (ifmgd->csa_ignored_same_chan) ieee80211_sta_process_chanswitch()
1182 ifmgd->associated->bssid); ieee80211_sta_process_chanswitch()
1183 ifmgd->csa_ignored_same_chan = true; ieee80211_sta_process_chanswitch()
1239 ifmgd->csa_ignored_same_chan = false; ieee80211_sta_process_chanswitch()
1257 ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work); ieee80211_sta_process_chanswitch()
1259 mod_timer(&ifmgd->chswitch_timer, ieee80211_sta_process_chanswitch()
1264 ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); ieee80211_sta_process_chanswitch()
1569 struct ieee80211_if_managed *ifmgd; ieee80211_dynamic_ps_enable_work() local
1577 ifmgd = &sdata->u.mgd; ieee80211_dynamic_ps_enable_work()
1611 !(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { ieee80211_dynamic_ps_enable_work()
1625 (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { ieee80211_dynamic_ps_enable_work()
1626 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; ieee80211_dynamic_ps_enable_work()
1662 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; __ieee80211_sta_handle_tspec_ac_params() local
1670 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; __ieee80211_sta_handle_tspec_ac_params()
1720 schedule_delayed_work(&ifmgd->tx_tspec_wk, __ieee80211_sta_handle_tspec_ac_params()
1753 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_wmm_params() local
1771 if (ifmgd->flags & IEEE80211_STA_UAPSD_ENABLED) ieee80211_sta_wmm_params()
1772 uapsd_queues = ifmgd->uapsd_queues; ieee80211_sta_wmm_params()
1775 if (count == ifmgd->wmm_last_param_set) ieee80211_sta_wmm_params()
1777 ifmgd->wmm_last_param_set = count; ieee80211_sta_wmm_params()
1850 ifmgd->tx_tspec[ac].downgraded); ieee80211_sta_wmm_params()
1852 if (!ifmgd->tx_tspec[ac].downgraded && ieee80211_sta_wmm_params()
2007 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_set_disassoc() local
2016 if (WARN_ON(!ifmgd->associated)) ieee80211_set_disassoc()
2021 ifmgd->associated = NULL; ieee80211_set_disassoc()
2052 ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, stype, ieee80211_set_disassoc()
2060 eth_zero_addr(ifmgd->bssid); ieee80211_set_disassoc()
2072 ifmgd->p2p_noa_index = -1; ieee80211_set_disassoc()
2077 memset(&ifmgd->ht_capa, 0, sizeof(ifmgd->ht_capa)); ieee80211_set_disassoc()
2078 memset(&ifmgd->ht_capa_mask, 0, sizeof(ifmgd->ht_capa_mask)); ieee80211_set_disassoc()
2079 memset(&ifmgd->vht_capa, 0, sizeof(ifmgd->vht_capa)); ieee80211_set_disassoc()
2080 memset(&ifmgd->vht_capa_mask, 0, sizeof(ifmgd->vht_capa_mask)); ieee80211_set_disassoc()
2110 ifmgd->have_beacon = false; ieee80211_set_disassoc()
2112 ifmgd->flags = 0; ieee80211_set_disassoc()
2117 ifmgd->csa_waiting_bcn = false; ieee80211_set_disassoc()
2118 ifmgd->csa_ignored_same_chan = false; ieee80211_set_disassoc()
2127 memset(ifmgd->tx_tspec, 0, sizeof(ifmgd->tx_tspec)); ieee80211_set_disassoc()
2128 cancel_delayed_work_sync(&ifmgd->tx_tspec_wk); ieee80211_set_disassoc()
2152 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_reset_ap_probe() local
2156 if (!(ifmgd->flags & IEEE80211_STA_CONNECTION_POLL)) ieee80211_reset_ap_probe()
2175 mod_timer(&ifmgd->conn_mon_timer, ieee80211_reset_ap_probe()
2186 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_tx_wmm_ac_notify() local
2189 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; ieee80211_sta_tx_wmm_ac_notify()
2201 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); ieee80211_sta_tx_wmm_ac_notify()
2213 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); ieee80211_sta_tx_wmm_ac_notify()
2241 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_probe_ap_send() local
2243 u8 *dst = ifmgd->associated->bssid; ieee80211_mgd_probe_ap_send()
2251 if (ifmgd->probe_send_count >= unicast_limit) ieee80211_mgd_probe_ap_send()
2261 ifmgd->probe_send_count++; ieee80211_mgd_probe_ap_send()
2264 ifmgd->nullfunc_failed = false; ieee80211_mgd_probe_ap_send()
2270 ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID); ieee80211_mgd_probe_ap_send()
2279 ifmgd->associated->channel, false); ieee80211_mgd_probe_ap_send()
2283 ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms); ieee80211_mgd_probe_ap_send()
2284 run_again(sdata, ifmgd->probe_timeout); ieee80211_mgd_probe_ap_send()
2290 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_probe_ap() local
2298 if (!ifmgd->associated) ieee80211_mgd_probe_ap()
2327 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) ieee80211_mgd_probe_ap()
2330 ifmgd->flags |= IEEE80211_STA_CONNECTION_POLL; ieee80211_mgd_probe_ap()
2341 ifmgd->probe_send_count = 0; ieee80211_mgd_probe_ap()
2351 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_ap_probereq_get() local
2362 if (ifmgd->associated) ieee80211_ap_probereq_get()
2363 cbss = ifmgd->associated; ieee80211_ap_probereq_get()
2364 else if (ifmgd->auth_data) ieee80211_ap_probereq_get()
2365 cbss = ifmgd->auth_data->bss; ieee80211_ap_probereq_get()
2366 else if (ifmgd->assoc_data) ieee80211_ap_probereq_get()
2367 cbss = ifmgd->assoc_data->bss; ieee80211_ap_probereq_get()
2409 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; __ieee80211_disconnect() local
2413 if (!ifmgd->associated) { __ieee80211_disconnect()
2423 ifmgd->csa_waiting_bcn = false; __ieee80211_disconnect()
2442 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_beacon_connection_loss_work() local
2444 if (ifmgd->associated) ieee80211_beacon_connection_loss_work()
2445 ifmgd->beacon_loss_count++; ieee80211_beacon_connection_loss_work()
2447 if (ifmgd->connection_loss) { ieee80211_beacon_connection_loss_work()
2449 ifmgd->bssid); ieee80211_beacon_connection_loss_work()
2576 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_auth() local
2590 if (!ifmgd->auth_data || ifmgd->auth_data->done) ieee80211_rx_mgmt_auth()
2593 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); ieee80211_rx_mgmt_auth()
2602 if (auth_alg != ifmgd->auth_data->algorithm || ieee80211_rx_mgmt_auth()
2603 auth_transaction != ifmgd->auth_data->expected_transaction) { ieee80211_rx_mgmt_auth()
2605 mgmt->sa, auth_alg, ifmgd->auth_data->algorithm, ieee80211_rx_mgmt_auth()
2607 ifmgd->auth_data->expected_transaction); ieee80211_rx_mgmt_auth()
2622 switch (ifmgd->auth_data->algorithm) { ieee80211_rx_mgmt_auth()
2629 if (ifmgd->auth_data->expected_transaction != 4) { ieee80211_rx_mgmt_auth()
2637 ifmgd->auth_data->algorithm); ieee80211_rx_mgmt_auth()
2644 ifmgd->auth_data->done = true; ieee80211_rx_mgmt_auth()
2645 ifmgd->auth_data->timeout = jiffies + IEEE80211_AUTH_WAIT_ASSOC; ieee80211_rx_mgmt_auth()
2646 ifmgd->auth_data->timeout_started = true; ieee80211_rx_mgmt_auth()
2647 run_again(sdata, ifmgd->auth_data->timeout); ieee80211_rx_mgmt_auth()
2649 if (ifmgd->auth_data->algorithm == WLAN_AUTH_SAE && ieee80211_rx_mgmt_auth()
2650 ifmgd->auth_data->expected_transaction != 2) { ieee80211_rx_mgmt_auth()
2739 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_deauth() local
2747 if (ifmgd->associated && ieee80211_rx_mgmt_deauth()
2748 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) { ieee80211_rx_mgmt_deauth()
2749 const u8 *bssid = ifmgd->associated->bssid; ieee80211_rx_mgmt_deauth()
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()
2782 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_disassoc() local
2790 if (!ifmgd->associated || ieee80211_rx_mgmt_disassoc()
2791 !ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) ieee80211_rx_mgmt_disassoc()
2859 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_assoc_success() local
2868 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; ieee80211_assoc_success()
2883 ifmgd->broken_ap = false; ieee80211_assoc_success()
2889 ifmgd->broken_ap = true; ieee80211_assoc_success()
2900 ifmgd->aid = aid; ieee80211_assoc_success()
2901 ifmgd->tdls_chan_switch_prohibited = ieee80211_assoc_success()
2913 (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && ieee80211_assoc_success()
2915 (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && ieee80211_assoc_success()
2943 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { ieee80211_assoc_success()
2949 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { ieee80211_assoc_success()
2955 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { ieee80211_assoc_success()
2961 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { ieee80211_assoc_success()
2972 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && ieee80211_assoc_success()
2980 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && ieee80211_assoc_success()
3003 if (elems.ht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) ieee80211_assoc_success()
3007 if (elems.vht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_assoc_success()
3035 if (ifmgd->flags & IEEE80211_STA_MFP_ENABLED) { ieee80211_assoc_success()
3045 if (!err && !(ifmgd->flags & IEEE80211_STA_CONTROL_PORT)) ieee80211_assoc_success()
3065 ifmgd->wmm_last_param_set = -1; ieee80211_assoc_success()
3067 if (ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { ieee80211_assoc_success()
3080 ifmgd->flags |= IEEE80211_STA_DISABLE_WMM; ieee80211_assoc_success()
3094 if (ifmgd->use_4addr) ieee80211_assoc_success()
3114 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_assoc_resp() local
3115 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; ieee80211_rx_mgmt_assoc_resp()
3236 struct ieee80211_if_managed *ifmgd; ieee80211_rx_mgmt_probe_resp() local
3241 ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_probe_resp()
3257 if (ifmgd->associated && ieee80211_rx_mgmt_probe_resp()
3258 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) ieee80211_rx_mgmt_probe_resp()
3290 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_rx_mgmt_beacon() local
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()
3334 ifmgd->dtim_period = tim_ie->dtim_period; ieee80211_rx_mgmt_beacon()
3336 ifmgd->have_beacon = true; 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()
3356 if (!ifmgd->associated || ieee80211_rx_mgmt_beacon()
3357 !ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) ieee80211_rx_mgmt_beacon()
3359 bssid = ifmgd->associated->bssid; ieee80211_rx_mgmt_beacon()
3362 if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) { ieee80211_rx_mgmt_beacon()
3363 ifmgd->flags &= ~IEEE80211_STA_RESET_SIGNAL_AVE; ieee80211_rx_mgmt_beacon()
3364 ewma_beacon_signal_init(&ifmgd->ave_beacon_signal); ieee80211_rx_mgmt_beacon()
3365 ifmgd->last_cqm_event_signal = 0; ieee80211_rx_mgmt_beacon()
3366 ifmgd->count_beacon_signal = 1; ieee80211_rx_mgmt_beacon()
3367 ifmgd->last_ave_beacon_signal = 0; ieee80211_rx_mgmt_beacon()
3369 ifmgd->count_beacon_signal++; ieee80211_rx_mgmt_beacon()
3372 ewma_beacon_signal_add(&ifmgd->ave_beacon_signal, -rx_status->signal); ieee80211_rx_mgmt_beacon()
3374 if (ifmgd->rssi_min_thold != ifmgd->rssi_max_thold && ieee80211_rx_mgmt_beacon()
3375 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { ieee80211_rx_mgmt_beacon()
3376 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); ieee80211_rx_mgmt_beacon()
3377 int last_sig = ifmgd->last_ave_beacon_signal; ieee80211_rx_mgmt_beacon()
3386 if (sig > ifmgd->rssi_max_thold && ieee80211_rx_mgmt_beacon()
3387 (last_sig <= ifmgd->rssi_min_thold || last_sig == 0)) { ieee80211_rx_mgmt_beacon()
3388 ifmgd->last_ave_beacon_signal = sig; ieee80211_rx_mgmt_beacon()
3391 } else if (sig < ifmgd->rssi_min_thold && ieee80211_rx_mgmt_beacon()
3392 (last_sig >= ifmgd->rssi_max_thold || ieee80211_rx_mgmt_beacon()
3394 ifmgd->last_ave_beacon_signal = sig; ieee80211_rx_mgmt_beacon()
3401 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT && ieee80211_rx_mgmt_beacon()
3403 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); ieee80211_rx_mgmt_beacon()
3404 int last_event = ifmgd->last_cqm_event_signal; ieee80211_rx_mgmt_beacon()
3410 ifmgd->last_cqm_event_signal = sig; ieee80211_rx_mgmt_beacon()
3417 ifmgd->last_cqm_event_signal = sig; ieee80211_rx_mgmt_beacon()
3425 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) { ieee80211_rx_mgmt_beacon()
3443 ieee80211_check_tim(elems.tim, elems.tim_len, ifmgd->aid)) { ieee80211_rx_mgmt_beacon()
3484 ifmgd->beacon_crc_valid = false; ieee80211_rx_mgmt_beacon()
3491 ifmgd->beacon_crc_valid = false; ieee80211_rx_mgmt_beacon()
3495 if (ifmgd->csa_waiting_bcn) ieee80211_rx_mgmt_beacon()
3518 if (ncrc == ifmgd->beacon_crc && ifmgd->beacon_crc_valid) ieee80211_rx_mgmt_beacon()
3520 ifmgd->beacon_crc = ncrc; ieee80211_rx_mgmt_beacon()
3521 ifmgd->beacon_crc_valid = true; ieee80211_rx_mgmt_beacon()
3529 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_WMM) && ieee80211_rx_mgmt_beacon()
3538 if (!ifmgd->have_beacon) { ieee80211_rx_mgmt_beacon()
3546 ifmgd->have_beacon = true; ieee80211_rx_mgmt_beacon()
3702 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_auth() local
3703 struct ieee80211_mgd_auth_data *auth_data = ifmgd->auth_data; ieee80211_auth()
3822 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_work() local
3826 if (ifmgd->status_received) { ieee80211_sta_work()
3827 __le16 fc = ifmgd->status_fc; ieee80211_sta_work()
3828 bool status_acked = ifmgd->status_acked; ieee80211_sta_work()
3830 ifmgd->status_received = false; ieee80211_sta_work()
3831 if (ifmgd->auth_data && ieee80211_is_auth(fc)) { ieee80211_sta_work()
3833 ifmgd->auth_data->timeout = ieee80211_sta_work()
3835 run_again(sdata, ifmgd->auth_data->timeout); ieee80211_sta_work()
3837 ifmgd->auth_data->timeout = jiffies - 1; ieee80211_sta_work()
3839 ifmgd->auth_data->timeout_started = true; ieee80211_sta_work()
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()
3854 if (ifmgd->auth_data && ifmgd->auth_data->timeout_started && ieee80211_sta_work()
3855 time_after(jiffies, ifmgd->auth_data->timeout)) { ieee80211_sta_work()
3856 if (ifmgd->auth_data->done) { ieee80211_sta_work()
3870 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); ieee80211_sta_work()
3877 } else if (ifmgd->auth_data && ifmgd->auth_data->timeout_started) ieee80211_sta_work()
3878 run_again(sdata, ifmgd->auth_data->timeout); 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()
3898 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL && ieee80211_sta_work()
3899 ifmgd->associated) { ieee80211_sta_work()
3903 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); ieee80211_sta_work()
3911 if (!ifmgd->probe_send_count) ieee80211_sta_work()
3913 else if (ifmgd->nullfunc_failed) { ieee80211_sta_work()
3914 if (ifmgd->probe_send_count < max_tries) { ieee80211_sta_work()
3917 bssid, ifmgd->probe_send_count, ieee80211_sta_work()
3928 } else if (time_is_after_jiffies(ifmgd->probe_timeout)) ieee80211_sta_work()
3929 run_again(sdata, ifmgd->probe_timeout); ieee80211_sta_work()
3936 } else if (ifmgd->probe_send_count < max_tries) { ieee80211_sta_work()
3940 ifmgd->probe_send_count, max_tries); ieee80211_sta_work()
3965 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_bcn_mon_timer() local
3967 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) ieee80211_sta_bcn_mon_timer()
3979 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_conn_mon_timer() local
3982 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) ieee80211_sta_conn_mon_timer()
3985 ieee80211_queue_work(&local->hw, &ifmgd->monitor_work); ieee80211_sta_conn_mon_timer()
4012 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_quiesce() local
4017 if (ifmgd->auth_data || ifmgd->assoc_data) { ieee80211_mgd_quiesce()
4018 const u8 *bssid = ifmgd->auth_data ? ieee80211_mgd_quiesce()
4019 ifmgd->auth_data->bss->bssid : ieee80211_mgd_quiesce()
4020 ifmgd->assoc_data->bss->bssid; ieee80211_mgd_quiesce()
4031 if (ifmgd->assoc_data) ieee80211_mgd_quiesce()
4033 if (ifmgd->auth_data) ieee80211_mgd_quiesce()
4056 if (ifmgd->associated && !sdata->local->wowlan) { ieee80211_mgd_quiesce()
4063 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); ieee80211_mgd_quiesce()
4072 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_sta_restart() local
4075 if (!ifmgd->associated) { ieee80211_sta_restart()
4084 ifmgd->associated->bssid, ieee80211_sta_restart()
4097 struct ieee80211_if_managed *ifmgd; ieee80211_sta_setup_sdata() local
4099 ifmgd = &sdata->u.mgd; ieee80211_sta_setup_sdata()
4100 INIT_WORK(&ifmgd->monitor_work, ieee80211_sta_monitor_work); ieee80211_sta_setup_sdata()
4101 INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work); ieee80211_sta_setup_sdata()
4102 INIT_WORK(&ifmgd->beacon_connection_loss_work, ieee80211_sta_setup_sdata()
4104 INIT_WORK(&ifmgd->csa_connection_drop_work, ieee80211_sta_setup_sdata()
4106 INIT_WORK(&ifmgd->request_smps_work, ieee80211_request_smps_mgd_work); ieee80211_sta_setup_sdata()
4107 INIT_DELAYED_WORK(&ifmgd->tdls_peer_del_work, ieee80211_sta_setup_sdata()
4109 setup_timer(&ifmgd->timer, ieee80211_sta_timer, ieee80211_sta_setup_sdata()
4111 setup_timer(&ifmgd->bcn_mon_timer, ieee80211_sta_bcn_mon_timer, ieee80211_sta_setup_sdata()
4113 setup_timer(&ifmgd->conn_mon_timer, ieee80211_sta_conn_mon_timer, ieee80211_sta_setup_sdata()
4115 setup_timer(&ifmgd->chswitch_timer, ieee80211_chswitch_timer, ieee80211_sta_setup_sdata()
4117 INIT_DELAYED_WORK(&ifmgd->tx_tspec_wk, ieee80211_sta_setup_sdata()
4120 ifmgd->flags = 0; ieee80211_sta_setup_sdata()
4121 ifmgd->powersave = sdata->wdev.ps; ieee80211_sta_setup_sdata()
4122 ifmgd->uapsd_queues = sdata->local->hw.uapsd_queues; ieee80211_sta_setup_sdata()
4123 ifmgd->uapsd_max_sp_len = sdata->local->hw.uapsd_max_sp_len; ieee80211_sta_setup_sdata()
4124 ifmgd->p2p_noa_index = -1; ieee80211_sta_setup_sdata()
4127 ifmgd->req_smps = IEEE80211_SMPS_AUTOMATIC; ieee80211_sta_setup_sdata()
4129 ifmgd->req_smps = IEEE80211_SMPS_OFF; ieee80211_sta_setup_sdata()
4132 spin_lock_init(&ifmgd->teardown_lock); ieee80211_sta_setup_sdata()
4133 ifmgd->teardown_skb = NULL; ieee80211_sta_setup_sdata()
4134 ifmgd->orig_teardown_skb = NULL; ieee80211_sta_setup_sdata()
4154 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_ht_vht_rx_chains() local
4160 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT) ieee80211_ht_vht_rx_chains()
4173 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) ieee80211_ht_vht_rx_chains()
4199 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_prep_channel() local
4211 ifmgd->flags &= ~(IEEE80211_STA_DISABLE_40MHZ | ieee80211_prep_channel()
4217 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && ieee80211_prep_channel()
4230 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_prep_channel()
4235 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && ieee80211_prep_channel()
4247 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_prep_channel()
4248 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_prep_channel()
4253 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_prep_channel()
4270 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_prep_channel()
4272 ifmgd->flags |= ieee80211_determine_chantype(sdata, sband, ieee80211_prep_channel()
4300 ifmgd->flags |= ieee80211_chandef_downgrade(&chandef); ieee80211_prep_channel()
4314 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_prep_connection() local
4323 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) ieee80211_prep_connection()
4397 memcpy(ifmgd->bssid, cbss->bssid, ETH_ALEN); ieee80211_prep_connection()
4447 WARN_ON_ONCE(!ether_addr_equal(ifmgd->bssid, cbss->bssid)); ieee80211_prep_connection()
4461 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_auth() local
4522 if ((ifmgd->auth_data && !ifmgd->auth_data->done) || ieee80211_mgd_auth()
4523 ifmgd->assoc_data) { ieee80211_mgd_auth()
4528 if (ifmgd->auth_data) ieee80211_mgd_auth()
4532 ifmgd->auth_data = auth_data; ieee80211_mgd_auth()
4534 if (ifmgd->associated) { ieee80211_mgd_auth()
4563 eth_zero_addr(ifmgd->bssid); ieee80211_mgd_auth()
4565 ifmgd->auth_data = NULL; ieee80211_mgd_auth()
4578 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_assoc() local
4602 if (ifmgd->associated) { ieee80211_mgd_assoc()
4614 if (ifmgd->auth_data && !ifmgd->auth_data->done) { ieee80211_mgd_assoc()
4619 if (ifmgd->assoc_data) { ieee80211_mgd_assoc()
4624 if (ifmgd->auth_data) { ieee80211_mgd_assoc()
4628 match = ether_addr_equal(ifmgd->bssid, req->bss->bssid); ieee80211_mgd_assoc()
4634 ifmgd->beacon_crc_valid = false; ieee80211_mgd_assoc()
4650 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_mgd_assoc()
4651 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_mgd_assoc()
4661 ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { ieee80211_mgd_assoc()
4662 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_mgd_assoc()
4664 !(ifmgd->flags & IEEE80211_STA_DISABLE_WMM)) ieee80211_mgd_assoc()
4672 ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { ieee80211_mgd_assoc()
4673 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_mgd_assoc()
4675 !(ifmgd->flags & IEEE80211_STA_DISABLE_WMM)) ieee80211_mgd_assoc()
4680 memcpy(&ifmgd->ht_capa, &req->ht_capa, sizeof(ifmgd->ht_capa)); ieee80211_mgd_assoc()
4681 memcpy(&ifmgd->ht_capa_mask, &req->ht_capa_mask, ieee80211_mgd_assoc()
4682 sizeof(ifmgd->ht_capa_mask)); ieee80211_mgd_assoc()
4684 memcpy(&ifmgd->vht_capa, &req->vht_capa, sizeof(ifmgd->vht_capa)); ieee80211_mgd_assoc()
4685 memcpy(&ifmgd->vht_capa_mask, &req->vht_capa_mask, ieee80211_mgd_assoc()
4686 sizeof(ifmgd->vht_capa_mask)); ieee80211_mgd_assoc()
4695 if (ifmgd->req_smps == IEEE80211_SMPS_AUTOMATIC) { ieee80211_mgd_assoc()
4696 if (ifmgd->powersave) ieee80211_mgd_assoc()
4701 sdata->smps_mode = ifmgd->req_smps; ieee80211_mgd_assoc()
4713 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_mgd_assoc()
4719 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_mgd_assoc()
4730 ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED; ieee80211_mgd_assoc()
4733 ifmgd->flags &= ~IEEE80211_STA_UAPSD_ENABLED; ieee80211_mgd_assoc()
4740 ifmgd->mfp = IEEE80211_MFP_REQUIRED; ieee80211_mgd_assoc()
4741 ifmgd->flags |= IEEE80211_STA_MFP_ENABLED; ieee80211_mgd_assoc()
4743 ifmgd->mfp = IEEE80211_MFP_DISABLED; ieee80211_mgd_assoc()
4744 ifmgd->flags &= ~IEEE80211_STA_MFP_ENABLED; ieee80211_mgd_assoc()
4748 ifmgd->flags |= IEEE80211_STA_ENABLE_RRM; ieee80211_mgd_assoc()
4750 ifmgd->flags &= ~IEEE80211_STA_ENABLE_RRM; ieee80211_mgd_assoc()
4753 ifmgd->flags |= IEEE80211_STA_CONTROL_PORT; ieee80211_mgd_assoc()
4755 ifmgd->flags &= ~IEEE80211_STA_CONTROL_PORT; ieee80211_mgd_assoc()
4764 ifmgd->assoc_data = assoc_data; ieee80211_mgd_assoc()
4765 ifmgd->dtim_period = 0; ieee80211_mgd_assoc()
4766 ifmgd->have_beacon = false; ieee80211_mgd_assoc()
4769 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { ieee80211_mgd_assoc()
4779 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ) && ieee80211_mgd_assoc()
4784 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && ieee80211_mgd_assoc()
4790 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ieee80211_mgd_assoc()
4791 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_mgd_assoc()
4795 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; ieee80211_mgd_assoc()
4811 ifmgd->bssid); ieee80211_mgd_assoc()
4824 ifmgd->dtim_period = tim->dtim_period; ieee80211_mgd_assoc()
4827 ifmgd->have_beacon = true; ieee80211_mgd_assoc()
4861 eth_zero_addr(ifmgd->bssid); ieee80211_mgd_assoc()
4863 ifmgd->assoc_data = NULL; ieee80211_mgd_assoc()
4872 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_deauth() local
4876 if (ifmgd->auth_data && ieee80211_mgd_deauth()
4877 ether_addr_equal(ifmgd->auth_data->bss->bssid, req->bssid)) { ieee80211_mgd_deauth()
4896 if (ifmgd->assoc_data && ieee80211_mgd_deauth()
4897 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { ieee80211_mgd_deauth()
4915 if (ifmgd->associated && ieee80211_mgd_deauth()
4916 ether_addr_equal(ifmgd->associated->bssid, req->bssid)) { ieee80211_mgd_deauth()
4936 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_disassoc() local
4946 if (ifmgd->associated != req->bss) ieee80211_mgd_disassoc()
4966 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_mgd_stop() local
4973 cancel_work_sync(&ifmgd->monitor_work); ieee80211_mgd_stop()
4974 cancel_work_sync(&ifmgd->beacon_connection_loss_work); ieee80211_mgd_stop()
4975 cancel_work_sync(&ifmgd->request_smps_work); ieee80211_mgd_stop()
4976 cancel_work_sync(&ifmgd->csa_connection_drop_work); ieee80211_mgd_stop()
4977 cancel_work_sync(&ifmgd->chswitch_work); ieee80211_mgd_stop()
4978 cancel_delayed_work_sync(&ifmgd->tdls_peer_del_work); ieee80211_mgd_stop()
4981 if (ifmgd->assoc_data) { ieee80211_mgd_stop()
4982 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; ieee80211_mgd_stop()
4986 if (ifmgd->auth_data) ieee80211_mgd_stop()
4988 spin_lock_bh(&ifmgd->teardown_lock); ieee80211_mgd_stop()
4989 if (ifmgd->teardown_skb) { ieee80211_mgd_stop()
4990 kfree_skb(ifmgd->teardown_skb); ieee80211_mgd_stop()
4991 ifmgd->teardown_skb = NULL; ieee80211_mgd_stop()
4992 ifmgd->orig_teardown_skb = NULL; ieee80211_mgd_stop()
4994 spin_unlock_bh(&ifmgd->teardown_lock); ieee80211_mgd_stop()
4995 del_timer_sync(&ifmgd->timer); ieee80211_mgd_stop()
H A Ddebugfs_netdev.c395 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_fmt_uapsd_queues() local
397 return snprintf(buf, buflen, "0x%x\n", ifmgd->uapsd_queues); ieee80211_if_fmt_uapsd_queues()
403 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_parse_uapsd_queues() local
414 ifmgd->uapsd_queues = val; ieee80211_if_parse_uapsd_queues()
423 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_fmt_uapsd_max_sp_len() local
425 return snprintf(buf, buflen, "0x%x\n", ifmgd->uapsd_max_sp_len); ieee80211_if_fmt_uapsd_max_sp_len()
431 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_parse_uapsd_max_sp_len() local
442 ifmgd->uapsd_max_sp_len = val; ieee80211_if_parse_uapsd_max_sp_len()
451 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_fmt_tdls_wider_bw() local
455 !ifmgd->tdls_wider_bw_prohibited; ieee80211_if_fmt_tdls_wider_bw()
463 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_if_parse_tdls_wider_bw() local
471 ifmgd->tdls_wider_bw_prohibited = !val; ieee80211_if_parse_tdls_wider_bw()
H A Dwme.c89 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_downgrade_queue() local
95 if (ifmgd->tx_tspec[ac].admitted_time && ieee80211_downgrade_queue()
96 skb->priority == ifmgd->tx_tspec[ac].up) ieee80211_downgrade_queue()
H A Doffchannel.c30 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_offchannel_ps_enable() local
37 del_timer_sync(&ifmgd->bcn_mon_timer); ieee80211_offchannel_ps_enable()
38 del_timer_sync(&ifmgd->conn_mon_timer); ieee80211_offchannel_ps_enable()
H A Dtdls.c44 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_tdls_add_ext_capab() local
48 !ifmgd->tdls_wider_bw_prohibited; ieee80211_tdls_add_ext_capab()
222 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_tdls_add_aid() local
227 put_unaligned_le16(ifmgd->aid, pos); ieee80211_tdls_add_aid()
542 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_tdls_add_setup_cfm_ies() local
551 ap_sta = sta_info_get(sdata, ifmgd->bssid); ieee80211_tdls_add_setup_cfm_ies()
1285 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; iee80211_tdls_recalc_ht_protection() local
1293 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) iee80211_tdls_recalc_ht_protection()
H A Dtx.c211 struct ieee80211_if_managed *ifmgd; ieee80211_tx_h_dynamic_ps() local
240 ifmgd = &tx->sdata->u.mgd; ieee80211_tx_h_dynamic_ps()
251 * Note: ifmgd->uapsd_queues access is racy here. If the value is ieee80211_tx_h_dynamic_ps()
255 if ((ifmgd->flags & IEEE80211_STA_UAPSD_ENABLED) && ieee80211_tx_h_dynamic_ps()
256 (ifmgd->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_VO) && ieee80211_tx_h_dynamic_ps()
265 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; ieee80211_tx_h_dynamic_ps()
271 if (!ifmgd->associated) ieee80211_tx_h_dynamic_ps()
3587 struct ieee80211_if_managed *ifmgd; ieee80211_pspoll_get() local
3596 ifmgd = &sdata->u.mgd; ieee80211_pspoll_get()
3609 pspoll->aid = cpu_to_le16(ifmgd->aid); ieee80211_pspoll_get()
3614 memcpy(pspoll->bssid, ifmgd->bssid, ETH_ALEN); ieee80211_pspoll_get()
3626 struct ieee80211_if_managed *ifmgd; ieee80211_nullfunc_get() local
3634 ifmgd = &sdata->u.mgd; ieee80211_nullfunc_get()
3649 memcpy(nullfunc->addr1, ifmgd->bssid, ETH_ALEN); ieee80211_nullfunc_get()
3651 memcpy(nullfunc->addr3, ifmgd->bssid, ETH_ALEN); ieee80211_nullfunc_get()
H A Dmain.c301 struct ieee80211_if_managed *ifmgd; ieee80211_ifa_changed() local
322 ifmgd = &sdata->u.mgd; ieee80211_ifa_changed()
337 if (ifmgd->associated) ieee80211_ifa_changed()
H A Dcfg.c3738 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_add_tx_ts() local
3747 if (ifmgd->tx_tspec[ac].admitted_time) ieee80211_add_tx_ts()
3751 ifmgd->tx_tspec[ac].admitted_time = 32 * admitted_time; ieee80211_add_tx_ts()
3752 ifmgd->tx_tspec[ac].tsid = tsid; ieee80211_add_tx_ts()
3753 ifmgd->tx_tspec[ac].up = up; ieee80211_add_tx_ts()
3763 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_del_tx_ts() local
3768 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; ieee80211_del_tx_ts()
H A Dutil.c2569 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; ieee80211_ave_rssi() local
2575 return -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); ieee80211_ave_rssi()

Completed in 244 milliseconds