Lines Matching refs:tid_agg_rx
802 struct tid_ampdu_rx *tid_agg_rx, in ieee80211_release_reorder_frame() argument
806 struct sk_buff_head *skb_list = &tid_agg_rx->reorder_buf[index]; in ieee80211_release_reorder_frame()
810 lockdep_assert_held(&tid_agg_rx->reorder_lock); in ieee80211_release_reorder_frame()
821 tid_agg_rx->stored_mpdu_num--; in ieee80211_release_reorder_frame()
829 tid_agg_rx->head_seq_num = ieee80211_sn_inc(tid_agg_rx->head_seq_num); in ieee80211_release_reorder_frame()
833 struct tid_ampdu_rx *tid_agg_rx, in ieee80211_release_reorder_frames() argument
839 lockdep_assert_held(&tid_agg_rx->reorder_lock); in ieee80211_release_reorder_frames()
841 while (ieee80211_sn_less(tid_agg_rx->head_seq_num, head_seq_num)) { in ieee80211_release_reorder_frames()
842 index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size; in ieee80211_release_reorder_frames()
843 ieee80211_release_reorder_frame(sdata, tid_agg_rx, index, in ieee80211_release_reorder_frames()
860 struct tid_ampdu_rx *tid_agg_rx, in ieee80211_sta_reorder_release() argument
865 lockdep_assert_held(&tid_agg_rx->reorder_lock); in ieee80211_sta_reorder_release()
868 index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size; in ieee80211_sta_reorder_release()
869 if (!ieee80211_rx_reorder_ready(&tid_agg_rx->reorder_buf[index]) && in ieee80211_sta_reorder_release()
870 tid_agg_rx->stored_mpdu_num) { in ieee80211_sta_reorder_release()
876 for (j = (index + 1) % tid_agg_rx->buf_size; j != index; in ieee80211_sta_reorder_release()
877 j = (j + 1) % tid_agg_rx->buf_size) { in ieee80211_sta_reorder_release()
879 &tid_agg_rx->reorder_buf[j])) { in ieee80211_sta_reorder_release()
884 !time_after(jiffies, tid_agg_rx->reorder_time[j] + in ieee80211_sta_reorder_release()
889 for (i = (index + 1) % tid_agg_rx->buf_size; i != j; in ieee80211_sta_reorder_release()
890 i = (i + 1) % tid_agg_rx->buf_size) in ieee80211_sta_reorder_release()
891 __skb_queue_purge(&tid_agg_rx->reorder_buf[i]); in ieee80211_sta_reorder_release()
895 ieee80211_release_reorder_frame(sdata, tid_agg_rx, j, in ieee80211_sta_reorder_release()
901 tid_agg_rx->head_seq_num = in ieee80211_sta_reorder_release()
902 (tid_agg_rx->head_seq_num + in ieee80211_sta_reorder_release()
907 &tid_agg_rx->reorder_buf[index])) { in ieee80211_sta_reorder_release()
908 ieee80211_release_reorder_frame(sdata, tid_agg_rx, index, in ieee80211_sta_reorder_release()
910 index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size; in ieee80211_sta_reorder_release()
913 if (tid_agg_rx->stored_mpdu_num) { in ieee80211_sta_reorder_release()
914 j = index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size; in ieee80211_sta_reorder_release()
916 for (; j != (index - 1) % tid_agg_rx->buf_size; in ieee80211_sta_reorder_release()
917 j = (j + 1) % tid_agg_rx->buf_size) { in ieee80211_sta_reorder_release()
919 &tid_agg_rx->reorder_buf[j])) in ieee80211_sta_reorder_release()
925 if (!tid_agg_rx->removed) in ieee80211_sta_reorder_release()
926 mod_timer(&tid_agg_rx->reorder_timer, in ieee80211_sta_reorder_release()
927 tid_agg_rx->reorder_time[j] + 1 + in ieee80211_sta_reorder_release()
930 del_timer(&tid_agg_rx->reorder_timer); in ieee80211_sta_reorder_release()
940 struct tid_ampdu_rx *tid_agg_rx, in ieee80211_sta_manage_reorder_buf() argument
952 spin_lock(&tid_agg_rx->reorder_lock); in ieee80211_sta_manage_reorder_buf()
958 if (unlikely(tid_agg_rx->auto_seq)) { in ieee80211_sta_manage_reorder_buf()
959 tid_agg_rx->auto_seq = false; in ieee80211_sta_manage_reorder_buf()
960 tid_agg_rx->ssn = mpdu_seq_num; in ieee80211_sta_manage_reorder_buf()
961 tid_agg_rx->head_seq_num = mpdu_seq_num; in ieee80211_sta_manage_reorder_buf()
964 buf_size = tid_agg_rx->buf_size; in ieee80211_sta_manage_reorder_buf()
965 head_seq_num = tid_agg_rx->head_seq_num; in ieee80211_sta_manage_reorder_buf()
981 ieee80211_release_reorder_frames(sdata, tid_agg_rx, in ieee80211_sta_manage_reorder_buf()
987 index = mpdu_seq_num % tid_agg_rx->buf_size; in ieee80211_sta_manage_reorder_buf()
990 if (ieee80211_rx_reorder_ready(&tid_agg_rx->reorder_buf[index])) { in ieee80211_sta_manage_reorder_buf()
1001 if (mpdu_seq_num == tid_agg_rx->head_seq_num && in ieee80211_sta_manage_reorder_buf()
1002 tid_agg_rx->stored_mpdu_num == 0) { in ieee80211_sta_manage_reorder_buf()
1004 tid_agg_rx->head_seq_num = in ieee80211_sta_manage_reorder_buf()
1005 ieee80211_sn_inc(tid_agg_rx->head_seq_num); in ieee80211_sta_manage_reorder_buf()
1011 __skb_queue_tail(&tid_agg_rx->reorder_buf[index], skb); in ieee80211_sta_manage_reorder_buf()
1013 tid_agg_rx->reorder_time[index] = jiffies; in ieee80211_sta_manage_reorder_buf()
1014 tid_agg_rx->stored_mpdu_num++; in ieee80211_sta_manage_reorder_buf()
1015 ieee80211_sta_reorder_release(sdata, tid_agg_rx, frames); in ieee80211_sta_manage_reorder_buf()
1019 spin_unlock(&tid_agg_rx->reorder_lock); in ieee80211_sta_manage_reorder_buf()
1034 struct tid_ampdu_rx *tid_agg_rx; in ieee80211_rx_reorder_ampdu() local
1054 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_reorder_ampdu()
1055 if (!tid_agg_rx) in ieee80211_rx_reorder_ampdu()
1070 if (tid_agg_rx->timeout) in ieee80211_rx_reorder_ampdu()
1071 tid_agg_rx->last_rx = jiffies; in ieee80211_rx_reorder_ampdu()
1089 if (ieee80211_sta_manage_reorder_buf(rx->sdata, tid_agg_rx, skb, in ieee80211_rx_reorder_ampdu()
2475 struct tid_ampdu_rx *tid_agg_rx; in ieee80211_rx_h_ctrl() local
2499 tid_agg_rx = rcu_dereference(rx->sta->ampdu_mlme.tid_rx[tid]); in ieee80211_rx_h_ctrl()
2500 if (!tid_agg_rx) in ieee80211_rx_h_ctrl()
2509 if (tid_agg_rx->timeout) in ieee80211_rx_h_ctrl()
2510 mod_timer(&tid_agg_rx->session_timer, in ieee80211_rx_h_ctrl()
2511 TU_TO_EXP_TIME(tid_agg_rx->timeout)); in ieee80211_rx_h_ctrl()
2513 spin_lock(&tid_agg_rx->reorder_lock); in ieee80211_rx_h_ctrl()
2515 ieee80211_release_reorder_frames(rx->sdata, tid_agg_rx, in ieee80211_rx_h_ctrl()
2517 spin_unlock(&tid_agg_rx->reorder_lock); in ieee80211_rx_h_ctrl()
3274 struct tid_ampdu_rx *tid_agg_rx; in ieee80211_release_reorder_timeout() local
3276 tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]); in ieee80211_release_reorder_timeout()
3277 if (!tid_agg_rx) in ieee80211_release_reorder_timeout()
3282 spin_lock(&tid_agg_rx->reorder_lock); in ieee80211_release_reorder_timeout()
3283 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); in ieee80211_release_reorder_timeout()
3284 spin_unlock(&tid_agg_rx->reorder_lock); in ieee80211_release_reorder_timeout()