• Home
  • Raw
  • Download

Lines Matching refs:sta

849 	if (!rx->sta || sta_plink_state(rx->sta) != NL80211_PLINK_ESTAB) {  in ieee80211_rx_mesh_check()
1144 struct sta_info *sta = rx->sta; in ieee80211_rx_reorder_ampdu() local
1158 if (!sta) in ieee80211_rx_reorder_ampdu()
1165 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_reorder_ampdu()
1168 !test_bit(tid, rx->sta->ampdu_mlme.agg_session_valid) && in ieee80211_rx_reorder_ampdu()
1169 !test_and_set_bit(tid, rx->sta->ampdu_mlme.unexpected_agg)) in ieee80211_rx_reorder_ampdu()
1170 ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid, in ieee80211_rx_reorder_ampdu()
1237 if (!rx->sta) in ieee80211_rx_h_check_dup()
1241 rx->sta->last_seq_ctrl[rx->seqno_idx] == hdr->seq_ctrl)) { in ieee80211_rx_h_check_dup()
1243 rx->sta->rx_stats.num_duplicates++; in ieee80211_rx_h_check_dup()
1246 rx->sta->last_seq_ctrl[rx->seqno_idx] = hdr->seq_ctrl; in ieee80211_rx_h_check_dup()
1274 (!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_ASSOC)))) { in ieee80211_rx_h_check()
1280 if (rx->sta && rx->sdata->vif.type == NL80211_IFTYPE_STATION && in ieee80211_rx_h_check()
1341 static void sta_ps_start(struct sta_info *sta) in sta_ps_start() argument
1343 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_ps_start()
1348 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || in sta_ps_start()
1349 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) in sta_ps_start()
1355 set_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_start()
1357 drv_sta_notify(local, sdata, STA_NOTIFY_SLEEP, &sta->sta); in sta_ps_start()
1359 sta->sta.addr, sta->sta.aid); in sta_ps_start()
1361 ieee80211_clear_fast_xmit(sta); in sta_ps_start()
1363 if (!sta->sta.txq[0]) in sta_ps_start()
1366 for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) { in sta_ps_start()
1367 if (txq_has_queue(sta->sta.txq[tid])) in sta_ps_start()
1368 set_bit(tid, &sta->txq_buffered_tids); in sta_ps_start()
1370 clear_bit(tid, &sta->txq_buffered_tids); in sta_ps_start()
1374 static void sta_ps_end(struct sta_info *sta) in sta_ps_end() argument
1376 ps_dbg(sta->sdata, "STA %pM aid %d exits power save mode\n", in sta_ps_end()
1377 sta->sta.addr, sta->sta.aid); in sta_ps_end()
1379 if (test_sta_flag(sta, WLAN_STA_PS_DRIVER)) { in sta_ps_end()
1386 clear_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_end()
1387 ps_dbg(sta->sdata, "STA %pM aid %d driver-ps-blocked\n", in sta_ps_end()
1388 sta->sta.addr, sta->sta.aid); in sta_ps_end()
1392 set_sta_flag(sta, WLAN_STA_PS_DELIVER); in sta_ps_end()
1393 clear_sta_flag(sta, WLAN_STA_PS_STA); in sta_ps_end()
1394 ieee80211_sta_ps_deliver_wakeup(sta); in sta_ps_end()
1399 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_sta_ps_transition() local
1402 WARN_ON(!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS)); in ieee80211_sta_ps_transition()
1405 in_ps = test_sta_flag(sta, WLAN_STA_PS_STA); in ieee80211_sta_ps_transition()
1410 sta_ps_start(sta); in ieee80211_sta_ps_transition()
1412 sta_ps_end(sta); in ieee80211_sta_ps_transition()
1420 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_sta_pspoll() local
1422 if (test_sta_flag(sta, WLAN_STA_SP)) in ieee80211_sta_pspoll()
1425 if (!test_sta_flag(sta, WLAN_STA_PS_DRIVER)) in ieee80211_sta_pspoll()
1426 ieee80211_sta_ps_deliver_poll_response(sta); in ieee80211_sta_pspoll()
1428 set_sta_flag(sta, WLAN_STA_PSPOLL); in ieee80211_sta_pspoll()
1434 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_sta_uapsd_trigger() local
1444 if (!(sta->sta.uapsd_queues & BIT(ac))) in ieee80211_sta_uapsd_trigger()
1448 if (test_sta_flag(sta, WLAN_STA_SP)) in ieee80211_sta_uapsd_trigger()
1451 if (!test_sta_flag(sta, WLAN_STA_PS_DRIVER)) in ieee80211_sta_uapsd_trigger()
1452 ieee80211_sta_ps_deliver_uapsd(sta); in ieee80211_sta_uapsd_trigger()
1454 set_sta_flag(sta, WLAN_STA_UAPSD); in ieee80211_sta_uapsd_trigger()
1465 if (!rx->sta) in ieee80211_rx_h_uapsd_and_pspoll()
1485 if (!test_sta_flag(rx->sta, WLAN_STA_PS_STA)) in ieee80211_rx_h_uapsd_and_pspoll()
1489 ieee80211_sta_pspoll(&rx->sta->sta); in ieee80211_rx_h_uapsd_and_pspoll()
1505 ieee80211_sta_uapsd_trigger(&rx->sta->sta, tid); in ieee80211_rx_h_uapsd_and_pspoll()
1514 struct sta_info *sta = rx->sta; in ieee80211_rx_h_sta_process() local
1520 if (!sta) in ieee80211_rx_h_sta_process()
1535 test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { in ieee80211_rx_h_sta_process()
1536 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1539 sta->rx_stats.last_rate = in ieee80211_rx_h_sta_process()
1543 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1549 sta->rx_stats.last_rx = jiffies; in ieee80211_rx_h_sta_process()
1551 sta->rx_stats.last_rate = sta_stats_encode_rate(status); in ieee80211_rx_h_sta_process()
1557 sta->rx_stats.fragments++; in ieee80211_rx_h_sta_process()
1559 u64_stats_update_begin(&rx->sta->rx_stats.syncp); in ieee80211_rx_h_sta_process()
1560 sta->rx_stats.bytes += rx->skb->len; in ieee80211_rx_h_sta_process()
1561 u64_stats_update_end(&rx->sta->rx_stats.syncp); in ieee80211_rx_h_sta_process()
1564 sta->rx_stats.last_signal = status->signal; in ieee80211_rx_h_sta_process()
1565 ewma_signal_add(&sta->rx_stats_avg.signal, -status->signal); in ieee80211_rx_h_sta_process()
1569 sta->rx_stats.chains = status->chains; in ieee80211_rx_h_sta_process()
1576 sta->rx_stats.chain_signal_last[i] = signal; in ieee80211_rx_h_sta_process()
1577 ewma_signal_add(&sta->rx_stats_avg.chain_signal[i], in ieee80211_rx_h_sta_process()
1586 if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) && in ieee80211_rx_h_sta_process()
1601 if (test_sta_flag(sta, WLAN_STA_PS_STA)) { in ieee80211_rx_h_sta_process()
1603 sta_ps_end(sta); in ieee80211_rx_h_sta_process()
1606 sta_ps_start(sta); in ieee80211_rx_h_sta_process()
1612 ieee80211_mps_rx_h_sta_process(sta, hdr); in ieee80211_rx_h_sta_process()
1631 !rx->sdata->u.vlan.sta))) { in ieee80211_rx_h_sta_process()
1632 if (!test_and_set_sta_flag(sta, WLAN_STA_4ADDR_EVENT)) in ieee80211_rx_h_sta_process()
1634 rx->sdata->dev, sta->sta.addr, in ieee80211_rx_h_sta_process()
1642 sta->rx_stats.packets++; in ieee80211_rx_h_sta_process()
1695 if (rx->sta) { in ieee80211_rx_h_decrypt()
1696 int keyid = rx->sta->ptk_idx; in ieee80211_rx_h_decrypt()
1698 if (ieee80211_has_protected(fc) && rx->sta->cipher_scheme) { in ieee80211_rx_h_decrypt()
1699 cs = rx->sta->cipher_scheme; in ieee80211_rx_h_decrypt()
1704 sta_ptk = rcu_dereference(rx->sta->ptk[keyid]); in ieee80211_rx_h_decrypt()
1727 if (rx->sta) { in ieee80211_rx_h_decrypt()
1729 test_sta_flag(rx->sta, WLAN_STA_MFP)) in ieee80211_rx_h_decrypt()
1732 rx->key = rcu_dereference(rx->sta->gtk[mmie_keyidx]); in ieee80211_rx_h_decrypt()
1752 if (rx->sta) { in ieee80211_rx_h_decrypt()
1754 key = rcu_dereference(rx->sta->gtk[i]); in ieee80211_rx_h_decrypt()
1805 if (is_multicast_ether_addr(hdr->addr1) && rx->sta) in ieee80211_rx_h_decrypt()
1806 rx->key = rcu_dereference(rx->sta->gtk[keyidx]); in ieee80211_rx_h_decrypt()
2086 if (rx->sta) in ieee80211_rx_h_defragment()
2087 rx->sta->rx_stats.packets++; in ieee80211_rx_h_defragment()
2093 if (unlikely(!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_AUTHORIZED))) in ieee80211_802_1x_port_control()
2133 if (rx->sta && test_sta_flag(rx->sta, WLAN_STA_MFP)) { in ieee80211_drop_unencrypted_mgmt()
2177 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta) in __ieee80211_data_to_8023()
2190 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata->u.vlan.sta) in __ieee80211_data_to_8023()
2248 if (rx->sta) { in ieee80211_deliver_skb()
2254 u64_stats_update_begin(&rx->sta->rx_stats.syncp); in ieee80211_deliver_skb()
2255 rx->sta->rx_stats.msdu[rx->seqno_idx]++; in ieee80211_deliver_skb()
2256 u64_stats_update_end(&rx->sta->rx_stats.syncp); in ieee80211_deliver_skb()
2262 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { in ieee80211_deliver_skb()
2361 if (!rx->sdata->u.vlan.sta) in ieee80211_rx_h_amsdu()
2379 if (!rx->sta || in ieee80211_rx_h_amsdu()
2380 !test_sta_flag(rx->sta, WLAN_STA_TDLS_PEER)) in ieee80211_rx_h_amsdu()
2583 if (rx->sta && in ieee80211_rx_h_data()
2584 !test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT)) in ieee80211_rx_h_data()
2586 rx->sdata->dev, rx->sta->sta.addr, GFP_ATOMIC); in ieee80211_rx_h_data()
2610 if (rx->sta) in ieee80211_rx_h_data()
2611 rx->sta->rx_stats.packets++; in ieee80211_rx_h_data()
2661 if (!rx->sta) in ieee80211_rx_h_ctrl()
2670 if (!test_bit(tid, rx->sta->ampdu_mlme.agg_session_valid) && in ieee80211_rx_h_ctrl()
2671 !test_and_set_bit(tid, rx->sta->ampdu_mlme.unexpected_agg)) in ieee80211_rx_h_ctrl()
2672 ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid, in ieee80211_rx_h_ctrl()
2676 tid_agg_rx = rcu_dereference(rx->sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_h_ctrl()
2683 event.u.ba.sta = &rx->sta->sta; in ieee80211_rx_h_ctrl()
2809 if (!rx->sta && mgmt->u.action.category != WLAN_CATEGORY_PUBLIC && in ieee80211_rx_h_action()
2817 if (!rx->sta->sta.ht_cap.ht_supported) in ieee80211_rx_h_action()
2852 if (rx->sta->sta.smps_mode == smps_mode) in ieee80211_rx_h_action()
2854 rx->sta->sta.smps_mode = smps_mode; in ieee80211_rx_h_action()
2858 rate_control_rate_update(local, sband, rx->sta, in ieee80211_rx_h_action()
2868 if (!(rx->sta->sta.ht_cap.cap & in ieee80211_rx_h_action()
2875 max_bw = ieee80211_sta_cap_rx_bw(rx->sta); in ieee80211_rx_h_action()
2878 rx->sta->cur_max_bandwidth = max_bw; in ieee80211_rx_h_action()
2879 new_bw = ieee80211_sta_cur_vht_bw(rx->sta); in ieee80211_rx_h_action()
2881 if (rx->sta->sta.bandwidth == new_bw) in ieee80211_rx_h_action()
2884 rx->sta->sta.bandwidth = new_bw; in ieee80211_rx_h_action()
2887 rate_control_rate_update(local, sband, rx->sta, in ieee80211_rx_h_action()
2901 if (!rx->sta) in ieee80211_rx_h_action()
3075 if (rx->sta) in ieee80211_rx_h_action()
3076 rx->sta->rx_stats.packets++; in ieee80211_rx_h_action()
3084 if (rx->sta) in ieee80211_rx_h_action()
3085 rx->sta->rx_stats.packets++; in ieee80211_rx_h_action()
3111 if (rx->sta) in ieee80211_rx_h_userspace_mgmt()
3112 rx->sta->rx_stats.packets++; in ieee80211_rx_h_userspace_mgmt()
3230 if (rx->sta) in ieee80211_rx_h_mgmt()
3231 rx->sta->rx_stats.packets++; in ieee80211_rx_h_mgmt()
3312 if (rx->sta) in ieee80211_rx_handlers_result()
3313 rx->sta->rx_stats.dropped++; in ieee80211_rx_handlers_result()
3332 if (rx->sta) in ieee80211_rx_handlers_result()
3333 rx->sta->rx_stats.dropped++; in ieee80211_rx_handlers_result()
3437 void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid) in ieee80211_release_reorder_timeout() argument
3441 .sta = sta, in ieee80211_release_reorder_timeout()
3442 .sdata = sta->sdata, in ieee80211_release_reorder_timeout()
3443 .local = sta->local, in ieee80211_release_reorder_timeout()
3451 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_release_reorder_timeout()
3458 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); in ieee80211_release_reorder_timeout()
3465 .u.ba.sta = &sta->sta, in ieee80211_release_reorder_timeout()
3477 struct sta_info *sta; in ieee80211_mark_rx_ba_filtered_frames() local
3492 sta = container_of(pubsta, struct sta_info, sta); in ieee80211_mark_rx_ba_filtered_frames()
3494 rx.sta = sta; in ieee80211_mark_rx_ba_filtered_frames()
3495 rx.sdata = sta->sdata; in ieee80211_mark_rx_ba_filtered_frames()
3496 rx.local = sta->local; in ieee80211_mark_rx_ba_filtered_frames()
3499 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_mark_rx_ba_filtered_frames()
3511 ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, in ieee80211_mark_rx_ba_filtered_frames()
3516 ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, ssn, in ieee80211_mark_rx_ba_filtered_frames()
3540 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); in ieee80211_mark_rx_ba_filtered_frames()
3583 if (!rx->sta) { in ieee80211_accept_frame()
3603 if (!rx->sta) { in ieee80211_accept_frame()
3691 void ieee80211_check_fast_rx(struct sta_info *sta) in ieee80211_check_fast_rx() argument
3693 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_check_fast_rx()
3729 if (sta->sta.tdls) { in ieee80211_check_fast_rx()
3755 !sdata->u.vlan.sta); in ieee80211_check_fast_rx()
3761 if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in ieee80211_check_fast_rx()
3765 key = rcu_dereference(sta->ptk[sta->ptk_idx]); in ieee80211_check_fast_rx()
3800 spin_lock_bh(&sta->lock); in ieee80211_check_fast_rx()
3801 old = rcu_dereference_protected(sta->fast_rx, true); in ieee80211_check_fast_rx()
3802 rcu_assign_pointer(sta->fast_rx, new); in ieee80211_check_fast_rx()
3803 spin_unlock_bh(&sta->lock); in ieee80211_check_fast_rx()
3809 void ieee80211_clear_fast_rx(struct sta_info *sta) in ieee80211_clear_fast_rx() argument
3813 spin_lock_bh(&sta->lock); in ieee80211_clear_fast_rx()
3814 old = rcu_dereference_protected(sta->fast_rx, true); in ieee80211_clear_fast_rx()
3815 RCU_INIT_POINTER(sta->fast_rx, NULL); in ieee80211_clear_fast_rx()
3816 spin_unlock_bh(&sta->lock); in ieee80211_clear_fast_rx()
3825 struct sta_info *sta; in __ieee80211_check_fast_rx_iface() local
3829 list_for_each_entry_rcu(sta, &local->sta_list, list) { in __ieee80211_check_fast_rx_iface()
3830 if (sdata != sta->sdata && in __ieee80211_check_fast_rx_iface()
3831 (!sta->sdata->bss || sta->sdata->bss != sdata->bss)) in __ieee80211_check_fast_rx_iface()
3833 ieee80211_check_fast_rx(sta); in __ieee80211_check_fast_rx_iface()
3852 struct sta_info *sta = rx->sta; in ieee80211_invoke_fast_rx() local
3863 struct ieee80211_sta_rx_stats *stats = &sta->rx_stats; in ieee80211_invoke_fast_rx()
3866 stats = this_cpu_ptr(sta->pcpu_rx_stats); in ieee80211_invoke_fast_rx()
3957 ewma_signal_add(&sta->rx_stats_avg.signal, in ieee80211_invoke_fast_rx()
3973 ewma_signal_add(&sta->rx_stats_avg.chain_signal[i], in ieee80211_invoke_fast_rx()
4068 if (consume && rx->sta) { in ieee80211_prepare_and_rx_handle()
4071 fast_rx = rcu_dereference(rx->sta->fast_rx); in ieee80211_prepare_and_rx_handle()
4147 struct sta_info *sta, *prev_sta; in __ieee80211_rx_handle_packet() local
4150 rx.sta = container_of(pubsta, struct sta_info, sta); in __ieee80211_rx_handle_packet()
4151 rx.sdata = rx.sta->sdata; in __ieee80211_rx_handle_packet()
4159 for_each_sta_info(local, hdr->addr2, sta, tmp) { in __ieee80211_rx_handle_packet()
4161 prev_sta = sta; in __ieee80211_rx_handle_packet()
4165 rx.sta = prev_sta; in __ieee80211_rx_handle_packet()
4169 prev_sta = sta; in __ieee80211_rx_handle_packet()
4173 rx.sta = prev_sta; in __ieee80211_rx_handle_packet()
4203 rx.sta = sta_info_get_bss(prev, hdr->addr2); in __ieee80211_rx_handle_packet()
4211 rx.sta = sta_info_get_bss(prev, hdr->addr2); in __ieee80211_rx_handle_packet()