Lines Matching refs:sta

768 	if (!rx->sta || sta_plink_state(rx->sta) != NL80211_PLINK_ESTAB) {  in ieee80211_rx_mesh_check()
1033 struct sta_info *sta = rx->sta; in ieee80211_rx_reorder_ampdu() local
1047 if (!sta) in ieee80211_rx_reorder_ampdu()
1054 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_reorder_ampdu()
1116 if (!rx->sta) in ieee80211_rx_h_check_dup()
1120 rx->sta->last_seq_ctrl[rx->seqno_idx] == hdr->seq_ctrl)) { in ieee80211_rx_h_check_dup()
1122 rx->sta->rx_stats.num_duplicates++; in ieee80211_rx_h_check_dup()
1125 rx->sta->last_seq_ctrl[rx->seqno_idx] = hdr->seq_ctrl; in ieee80211_rx_h_check_dup()
1153 (!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_ASSOC)))) { in ieee80211_rx_h_check()
1159 if (rx->sta && rx->sdata->vif.type == NL80211_IFTYPE_STATION && in ieee80211_rx_h_check()
1220 static void sta_ps_start(struct sta_info *sta) in sta_ps_start() argument
1222 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_ps_start()
1227 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || in sta_ps_start()
1228 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) in sta_ps_start()
1234 set_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_start()
1236 drv_sta_notify(local, sdata, STA_NOTIFY_SLEEP, &sta->sta); in sta_ps_start()
1238 sta->sta.addr, sta->sta.aid); in sta_ps_start()
1240 ieee80211_clear_fast_xmit(sta); in sta_ps_start()
1242 if (!sta->sta.txq[0]) in sta_ps_start()
1245 for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) { in sta_ps_start()
1246 struct txq_info *txqi = to_txq_info(sta->sta.txq[tid]); in sta_ps_start()
1249 set_bit(tid, &sta->txq_buffered_tids); in sta_ps_start()
1251 clear_bit(tid, &sta->txq_buffered_tids); in sta_ps_start()
1255 static void sta_ps_end(struct sta_info *sta) in sta_ps_end() argument
1257 ps_dbg(sta->sdata, "STA %pM aid %d exits power save mode\n", in sta_ps_end()
1258 sta->sta.addr, sta->sta.aid); in sta_ps_end()
1260 if (test_sta_flag(sta, WLAN_STA_PS_DRIVER)) { in sta_ps_end()
1267 clear_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_end()
1268 ps_dbg(sta->sdata, "STA %pM aid %d driver-ps-blocked\n", in sta_ps_end()
1269 sta->sta.addr, sta->sta.aid); in sta_ps_end()
1273 set_sta_flag(sta, WLAN_STA_PS_DELIVER); in sta_ps_end()
1274 clear_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_end()
1275 ieee80211_sta_ps_deliver_wakeup(sta); in sta_ps_end()
1280 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_sta_ps_transition() local
1283 WARN_ON(!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS)); in ieee80211_sta_ps_transition()
1286 in_ps = test_sta_flag(sta, WLAN_STA_PS_STA); in ieee80211_sta_ps_transition()
1291 sta_ps_start(sta); in ieee80211_sta_ps_transition()
1293 sta_ps_end(sta); in ieee80211_sta_ps_transition()
1307 if (!rx->sta) in ieee80211_rx_h_uapsd_and_pspoll()
1327 if (!test_sta_flag(rx->sta, WLAN_STA_PS_STA)) in ieee80211_rx_h_uapsd_and_pspoll()
1331 if (!test_sta_flag(rx->sta, WLAN_STA_SP)) { in ieee80211_rx_h_uapsd_and_pspoll()
1332 if (!test_sta_flag(rx->sta, WLAN_STA_PS_DRIVER)) in ieee80211_rx_h_uapsd_and_pspoll()
1333 ieee80211_sta_ps_deliver_poll_response(rx->sta); in ieee80211_rx_h_uapsd_and_pspoll()
1335 set_sta_flag(rx->sta, WLAN_STA_PSPOLL); in ieee80211_rx_h_uapsd_and_pspoll()
1358 if (!(rx->sta->sta.uapsd_queues & BIT(ac))) in ieee80211_rx_h_uapsd_and_pspoll()
1362 if (test_sta_flag(rx->sta, WLAN_STA_SP)) in ieee80211_rx_h_uapsd_and_pspoll()
1365 if (!test_sta_flag(rx->sta, WLAN_STA_PS_DRIVER)) in ieee80211_rx_h_uapsd_and_pspoll()
1366 ieee80211_sta_ps_deliver_uapsd(rx->sta); in ieee80211_rx_h_uapsd_and_pspoll()
1368 set_sta_flag(rx->sta, WLAN_STA_UAPSD); in ieee80211_rx_h_uapsd_and_pspoll()
1377 struct sta_info *sta = rx->sta; in ieee80211_rx_h_sta_process() local
1383 if (!sta) in ieee80211_rx_h_sta_process()
1398 test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { in ieee80211_rx_h_sta_process()
1399 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1402 sta->rx_stats.last_rate_idx = in ieee80211_rx_h_sta_process()
1404 sta->rx_stats.last_rate_flag = in ieee80211_rx_h_sta_process()
1406 sta->rx_stats.last_rate_vht_flag = in ieee80211_rx_h_sta_process()
1408 sta->rx_stats.last_rate_vht_nss = in ieee80211_rx_h_sta_process()
1413 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1419 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1421 sta->rx_stats.last_rate_idx = status->rate_idx; in ieee80211_rx_h_sta_process()
1422 sta->rx_stats.last_rate_flag = status->flag; in ieee80211_rx_h_sta_process()
1423 sta->rx_stats.last_rate_vht_flag = status->vht_flag; in ieee80211_rx_h_sta_process()
1424 sta->rx_stats.last_rate_vht_nss = status->vht_nss; in ieee80211_rx_h_sta_process()
1431 sta->rx_stats.fragments++; in ieee80211_rx_h_sta_process()
1432 sta->rx_stats.bytes += rx->skb->len; in ieee80211_rx_h_sta_process()
1434 sta->rx_stats.last_signal = status->signal; in ieee80211_rx_h_sta_process()
1435 ewma_signal_add(&sta->rx_stats.avg_signal, -status->signal); in ieee80211_rx_h_sta_process()
1439 sta->rx_stats.chains = status->chains; in ieee80211_rx_h_sta_process()
1446 sta->rx_stats.chain_signal_last[i] = signal; in ieee80211_rx_h_sta_process()
1447 ewma_signal_add(&sta->rx_stats.chain_signal_avg[i], in ieee80211_rx_h_sta_process()
1456 if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) && in ieee80211_rx_h_sta_process()
1467 if (test_sta_flag(sta, WLAN_STA_PS_STA)) { in ieee80211_rx_h_sta_process()
1469 sta_ps_end(sta); in ieee80211_rx_h_sta_process()
1472 sta_ps_start(sta); in ieee80211_rx_h_sta_process()
1478 ieee80211_mps_rx_h_sta_process(sta, hdr); in ieee80211_rx_h_sta_process()
1497 !rx->sdata->u.vlan.sta))) { in ieee80211_rx_h_sta_process()
1498 if (!test_and_set_sta_flag(sta, WLAN_STA_4ADDR_EVENT)) in ieee80211_rx_h_sta_process()
1500 rx->sdata->dev, sta->sta.addr, in ieee80211_rx_h_sta_process()
1508 sta->rx_stats.packets++; in ieee80211_rx_h_sta_process()
1561 if (rx->sta) { in ieee80211_rx_h_decrypt()
1562 int keyid = rx->sta->ptk_idx; in ieee80211_rx_h_decrypt()
1564 if (ieee80211_has_protected(fc) && rx->sta->cipher_scheme) { in ieee80211_rx_h_decrypt()
1565 cs = rx->sta->cipher_scheme; in ieee80211_rx_h_decrypt()
1570 sta_ptk = rcu_dereference(rx->sta->ptk[keyid]); in ieee80211_rx_h_decrypt()
1593 if (rx->sta) in ieee80211_rx_h_decrypt()
1594 rx->key = rcu_dereference(rx->sta->gtk[mmie_keyidx]); in ieee80211_rx_h_decrypt()
1613 if (rx->sta) { in ieee80211_rx_h_decrypt()
1615 key = rcu_dereference(rx->sta->gtk[i]); in ieee80211_rx_h_decrypt()
1666 if (is_multicast_ether_addr(hdr->addr1) && rx->sta) in ieee80211_rx_h_decrypt()
1667 rx->key = rcu_dereference(rx->sta->gtk[keyidx]); in ieee80211_rx_h_decrypt()
1947 if (rx->sta) in ieee80211_rx_h_defragment()
1948 rx->sta->rx_stats.packets++; in ieee80211_rx_h_defragment()
1954 if (unlikely(!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_AUTHORIZED))) in ieee80211_802_1x_port_control()
1994 if (rx->sta && test_sta_flag(rx->sta, WLAN_STA_MFP)) { in ieee80211_drop_unencrypted_mgmt()
2038 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta) in __ieee80211_data_to_8023()
2051 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata->u.vlan.sta) in __ieee80211_data_to_8023()
2112 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { in ieee80211_deliver_skb()
2208 !rx->sdata->u.vlan.sta) in ieee80211_rx_h_amsdu()
2213 rx->sdata->u.vlan.sta) || in ieee80211_rx_h_amsdu()
2397 if (rx->sta) { in ieee80211_rx_h_data()
2403 rx->sta->rx_stats.msdu[rx->seqno_idx]++; in ieee80211_rx_h_data()
2412 if (rx->sta && in ieee80211_rx_h_data()
2413 !test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT)) in ieee80211_rx_h_data()
2415 rx->sdata->dev, rx->sta->sta.addr, GFP_ATOMIC); in ieee80211_rx_h_data()
2439 if (rx->sta) in ieee80211_rx_h_data()
2440 rx->sta->rx_stats.packets++; in ieee80211_rx_h_data()
2490 if (!rx->sta) in ieee80211_rx_h_ctrl()
2499 tid_agg_rx = rcu_dereference(rx->sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_h_ctrl()
2506 event.u.ba.sta = &rx->sta->sta; in ieee80211_rx_h_ctrl()
2632 if (!rx->sta && mgmt->u.action.category != WLAN_CATEGORY_PUBLIC && in ieee80211_rx_h_action()
2640 if (!rx->sta->sta.ht_cap.ht_supported) in ieee80211_rx_h_action()
2675 if (rx->sta->sta.smps_mode == smps_mode) in ieee80211_rx_h_action()
2677 rx->sta->sta.smps_mode = smps_mode; in ieee80211_rx_h_action()
2681 rate_control_rate_update(local, sband, rx->sta, in ieee80211_rx_h_action()
2691 if (!(rx->sta->sta.ht_cap.cap & in ieee80211_rx_h_action()
2698 max_bw = ieee80211_sta_cap_rx_bw(rx->sta); in ieee80211_rx_h_action()
2701 rx->sta->cur_max_bandwidth = max_bw; in ieee80211_rx_h_action()
2702 new_bw = ieee80211_sta_cur_vht_bw(rx->sta); in ieee80211_rx_h_action()
2704 if (rx->sta->sta.bandwidth == new_bw) in ieee80211_rx_h_action()
2707 rx->sta->sta.bandwidth = new_bw; in ieee80211_rx_h_action()
2710 rate_control_rate_update(local, sband, rx->sta, in ieee80211_rx_h_action()
2724 if (!rx->sta) in ieee80211_rx_h_action()
2757 ieee80211_vht_handle_opmode(rx->sdata, rx->sta, in ieee80211_rx_h_action()
2900 if (rx->sta) in ieee80211_rx_h_action()
2901 rx->sta->rx_stats.packets++; in ieee80211_rx_h_action()
2909 if (rx->sta) in ieee80211_rx_h_action()
2910 rx->sta->rx_stats.packets++; in ieee80211_rx_h_action()
2936 if (rx->sta) in ieee80211_rx_h_userspace_mgmt()
2937 rx->sta->rx_stats.packets++; in ieee80211_rx_h_userspace_mgmt()
3055 if (rx->sta) in ieee80211_rx_h_mgmt()
3056 rx->sta->rx_stats.packets++; in ieee80211_rx_h_mgmt()
3137 if (rx->sta) in ieee80211_rx_handlers_result()
3138 rx->sta->rx_stats.dropped++; in ieee80211_rx_handlers_result()
3157 if (rx->sta) in ieee80211_rx_handlers_result()
3158 rx->sta->rx_stats.dropped++; in ieee80211_rx_handlers_result()
3262 void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid) in ieee80211_release_reorder_timeout() argument
3266 .sta = sta, in ieee80211_release_reorder_timeout()
3267 .sdata = sta->sdata, in ieee80211_release_reorder_timeout()
3268 .local = sta->local, in ieee80211_release_reorder_timeout()
3276 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_release_reorder_timeout()
3283 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); in ieee80211_release_reorder_timeout()
3290 .u.ba.sta = &sta->sta, in ieee80211_release_reorder_timeout()
3329 if (!rx->sta) { in ieee80211_accept_frame()
3349 if (!rx->sta) { in ieee80211_accept_frame()
3459 struct sta_info *sta, *prev_sta; in __ieee80211_rx_handle_packet() local
3502 for_each_sta_info(local, tbl, hdr->addr2, sta, tmp) { in __ieee80211_rx_handle_packet()
3504 prev_sta = sta; in __ieee80211_rx_handle_packet()
3508 rx.sta = prev_sta; in __ieee80211_rx_handle_packet()
3512 prev_sta = sta; in __ieee80211_rx_handle_packet()
3516 rx.sta = prev_sta; in __ieee80211_rx_handle_packet()
3546 rx.sta = sta_info_get_bss(prev, hdr->addr2); in __ieee80211_rx_handle_packet()
3554 rx.sta = sta_info_get_bss(prev, hdr->addr2); in __ieee80211_rx_handle_packet()