Lines Matching refs:sta
45 struct sta_info *sta, in ieee80211_handle_filtered_frame() argument
70 info->control.vif = &sta->sdata->vif; in ieee80211_handle_filtered_frame()
75 sta->deflink.status_stats.filtered++; in ieee80211_handle_filtered_frame()
108 set_sta_flag(sta, WLAN_STA_CLEAR_PS_FILT); in ieee80211_handle_filtered_frame()
109 ieee80211_clear_fast_xmit(sta); in ieee80211_handle_filtered_frame()
145 if (test_sta_flag(sta, WLAN_STA_PS_STA) && in ieee80211_handle_filtered_frame()
146 skb_queue_len(&sta->tx_filtered[ac]) < STA_MAX_TX_BUFFER) { in ieee80211_handle_filtered_frame()
147 skb_queue_tail(&sta->tx_filtered[ac], skb); in ieee80211_handle_filtered_frame()
148 sta_info_recalc_tim(sta); in ieee80211_handle_filtered_frame()
157 if (!test_sta_flag(sta, WLAN_STA_PS_STA) && in ieee80211_handle_filtered_frame()
165 ps_dbg_ratelimited(sta->sdata, in ieee80211_handle_filtered_frame()
167 skb_queue_len(&sta->tx_filtered[ac]), in ieee80211_handle_filtered_frame()
168 !!test_sta_flag(sta, WLAN_STA_PS_STA), jiffies); in ieee80211_handle_filtered_frame()
172 static void ieee80211_check_pending_bar(struct sta_info *sta, u8 *addr, u8 tid) in ieee80211_check_pending_bar() argument
176 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_check_pending_bar()
181 ieee80211_send_bar(&sta->sdata->vif, addr, tid, tid_tx->failed_bar_ssn); in ieee80211_check_pending_bar()
184 static void ieee80211_frame_acked(struct sta_info *sta, struct sk_buff *skb) in ieee80211_frame_acked() argument
187 struct ieee80211_local *local = sta->local; in ieee80211_frame_acked()
188 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_frame_acked()
195 ieee80211_check_pending_bar(sta, hdr->addr1, tid); in ieee80211_frame_acked()
232 static void ieee80211_set_bar_pending(struct sta_info *sta, u8 tid, u16 ssn) in ieee80211_set_bar_pending() argument
236 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_set_bar_pending()
711 struct sta_info *sta; in ieee80211_report_used_skb() local
715 sta = sta_info_get_by_addrs(local, hdr->addr1, hdr->addr2); in ieee80211_report_used_skb()
716 ieee80211_sta_update_pending_airtime(local, sta, in ieee80211_report_used_skb()
791 static void ieee80211_lost_packet(struct sta_info *sta, in ieee80211_lost_packet() argument
800 if (ieee80211_hw_check(&sta->local->hw, REPORTS_LOW_ACK)) in ieee80211_lost_packet()
808 sta->deflink.status_stats.lost_packets++; in ieee80211_lost_packet()
809 if (sta->sta.tdls) { in ieee80211_lost_packet()
821 if (sta->deflink.status_stats.lost_packets < pkt_thr || in ieee80211_lost_packet()
822 !time_after(jiffies, sta->deflink.status_stats.last_pkt_time + pkt_time)) in ieee80211_lost_packet()
825 cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, in ieee80211_lost_packet()
826 sta->deflink.status_stats.lost_packets, in ieee80211_lost_packet()
828 sta->deflink.status_stats.lost_packets = 0; in ieee80211_lost_packet()
929 struct sta_info *sta; in __ieee80211_tx_status() local
940 if (status->sta) { in __ieee80211_tx_status()
941 sta = container_of(status->sta, struct sta_info, sta); in __ieee80211_tx_status()
942 shift = ieee80211_vif_get_shift(&sta->sdata->vif); in __ieee80211_tx_status()
945 clear_sta_flag(sta, WLAN_STA_SP); in __ieee80211_tx_status()
952 if (ieee80211_vif_is_mesh(&sta->sdata->vif) && in __ieee80211_tx_status()
955 ieee80211_get_qos_ctl(hdr), sta, true, acked); in __ieee80211_tx_status()
960 sta->deflink.tx_stats.last_rate = in __ieee80211_tx_status()
972 ieee80211_send_bar(&sta->sdata->vif, hdr->addr1, in __ieee80211_tx_status()
997 ieee80211_set_bar_pending(sta, tid, ssn); in __ieee80211_tx_status()
1002 ieee80211_handle_filtered_frame(local, sta, skb); in __ieee80211_tx_status()
1006 sta->deflink.status_stats.msdu_failed[tid]++; in __ieee80211_tx_status()
1008 sta->deflink.status_stats.msdu_retries[tid] += in __ieee80211_tx_status()
1013 ieee80211_frame_acked(sta, skb); in __ieee80211_tx_status()
1092 struct sta_info *sta; in ieee80211_tx_status() local
1096 sta = sta_info_get_by_addrs(local, hdr->addr1, hdr->addr2); in ieee80211_tx_status()
1097 if (sta) in ieee80211_tx_status()
1098 status.sta = &sta->sta; in ieee80211_tx_status()
1110 struct ieee80211_sta *pubsta = status->sta; in ieee80211_tx_status_ext()
1112 struct sta_info *sta = NULL; in ieee80211_tx_status_ext() local
1118 sta = container_of(pubsta, struct sta_info, sta); in ieee80211_tx_status_ext()
1121 sta->deflink.tx_stats.last_rate_info = in ieee80211_tx_status_ext()
1130 ieee80211_sta_update_pending_airtime(local, sta, in ieee80211_tx_status_ext()
1148 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_tx_status_ext()
1151 sta->deflink.status_stats.retry_failed++; in ieee80211_tx_status_ext()
1152 sta->deflink.status_stats.retry_count += retry_count; in ieee80211_tx_status_ext()
1161 sta->deflink.status_stats.last_ack = jiffies; in ieee80211_tx_status_ext()
1163 if (sta->deflink.status_stats.lost_packets) in ieee80211_tx_status_ext()
1164 sta->deflink.status_stats.lost_packets = 0; in ieee80211_tx_status_ext()
1167 sta->deflink.status_stats.last_pkt_time = jiffies; in ieee80211_tx_status_ext()
1175 sta->deflink.status_stats.last_ack_signal = in ieee80211_tx_status_ext()
1177 sta->deflink.status_stats.ack_signal_filled = true; in ieee80211_tx_status_ext()
1178 ewma_avg_signal_add(&sta->deflink.status_stats.avg_ack_signal, in ieee80211_tx_status_ext()
1181 } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) { in ieee80211_tx_status_ext()
1187 ieee80211_handle_filtered_frame(local, sta, skb); in ieee80211_tx_status_ext()
1192 ieee80211_lost_packet(sta, info); in ieee80211_tx_status_ext()
1197 if (ieee80211_vif_is_mesh(&sta->sdata->vif)) in ieee80211_tx_status_ext()
1198 ieee80211s_update_metric(local, sta, status); in ieee80211_tx_status_ext()
1234 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_tx_rate_update() local
1237 .sta = pubsta, in ieee80211_tx_rate_update()
1243 sta->deflink.tx_stats.last_rate = info->status.rates[0]; in ieee80211_tx_rate_update()
1256 struct sta_info *sta; in ieee80211_tx_status_8023() local
1262 if (!ieee80211_lookup_ra_sta(sdata, skb, &sta) && !IS_ERR(sta)) in ieee80211_tx_status_8023()
1263 status.sta = &sta->sta; in ieee80211_tx_status_8023()
1273 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_report_low_ack() local
1274 cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, in ieee80211_report_low_ack()