Lines Matching refs:rxtid
996 struct rxtid *rxtid, struct sk_buff *skb) in aggr_slice_amsdu() argument
1033 skb_queue_tail(&rxtid->q, new_skb); in aggr_slice_amsdu()
1055 struct rxtid *rxtid; in aggr_deque_frms() local
1060 rxtid = &agg_conn->rx_tid[tid]; in aggr_deque_frms()
1063 spin_lock_bh(&rxtid->lock); in aggr_deque_frms()
1064 idx = AGGR_WIN_IDX(rxtid->seq_next, rxtid->hold_q_sz); in aggr_deque_frms()
1079 seq_end = seq_no ? seq_no : rxtid->seq_next; in aggr_deque_frms()
1080 idx_end = AGGR_WIN_IDX(seq_end, rxtid->hold_q_sz); in aggr_deque_frms()
1083 node = &rxtid->hold_q[idx]; in aggr_deque_frms()
1089 aggr_slice_amsdu(agg_conn->aggr_info, rxtid, in aggr_deque_frms()
1092 skb_queue_tail(&rxtid->q, node->skb); in aggr_deque_frms()
1098 rxtid->seq_next = ATH6KL_NEXT_SEQ_NO(rxtid->seq_next); in aggr_deque_frms()
1099 idx = AGGR_WIN_IDX(rxtid->seq_next, rxtid->hold_q_sz); in aggr_deque_frms()
1102 spin_unlock_bh(&rxtid->lock); in aggr_deque_frms()
1104 stats->num_delivered += skb_queue_len(&rxtid->q); in aggr_deque_frms()
1106 while ((skb = skb_dequeue(&rxtid->q))) in aggr_deque_frms()
1114 struct rxtid *rxtid; in aggr_process_recv_frm() local
1122 rxtid = &agg_conn->rx_tid[tid]; in aggr_process_recv_frm()
1127 if (!rxtid->aggr) { in aggr_process_recv_frm()
1129 aggr_slice_amsdu(agg_conn->aggr_info, rxtid, frame); in aggr_process_recv_frm()
1132 while ((skb = skb_dequeue(&rxtid->q))) in aggr_process_recv_frm()
1140 st = rxtid->seq_next; in aggr_process_recv_frm()
1142 end = (st + rxtid->hold_q_sz-1) & ATH6KL_MAX_SEQ_NO; in aggr_process_recv_frm()
1146 extended_end = (end + rxtid->hold_q_sz - 1) & in aggr_process_recv_frm()
1154 spin_lock_bh(&rxtid->lock); in aggr_process_recv_frm()
1155 if (cur >= rxtid->hold_q_sz - 1) in aggr_process_recv_frm()
1156 rxtid->seq_next = cur - (rxtid->hold_q_sz - 1); in aggr_process_recv_frm()
1158 rxtid->seq_next = ATH6KL_MAX_SEQ_NO - in aggr_process_recv_frm()
1159 (rxtid->hold_q_sz - 2 - cur); in aggr_process_recv_frm()
1160 spin_unlock_bh(&rxtid->lock); in aggr_process_recv_frm()
1166 if (cur >= rxtid->hold_q_sz - 1) in aggr_process_recv_frm()
1167 st = cur - (rxtid->hold_q_sz - 1); in aggr_process_recv_frm()
1170 (rxtid->hold_q_sz - 2 - cur); in aggr_process_recv_frm()
1178 idx = AGGR_WIN_IDX(seq_no, rxtid->hold_q_sz); in aggr_process_recv_frm()
1180 node = &rxtid->hold_q[idx]; in aggr_process_recv_frm()
1182 spin_lock_bh(&rxtid->lock); in aggr_process_recv_frm()
1209 spin_unlock_bh(&rxtid->lock); in aggr_process_recv_frm()
1216 spin_lock_bh(&rxtid->lock); in aggr_process_recv_frm()
1217 for (idx = 0; idx < rxtid->hold_q_sz; idx++) { in aggr_process_recv_frm()
1218 if (rxtid->hold_q[idx].skb) { in aggr_process_recv_frm()
1228 rxtid->timer_mon = true; in aggr_process_recv_frm()
1232 spin_unlock_bh(&rxtid->lock); in aggr_process_recv_frm()
1632 struct rxtid *rxtid; in aggr_timeout() local
1636 rxtid = &aggr_conn->rx_tid[i]; in aggr_timeout()
1639 if (!rxtid->aggr || !rxtid->timer_mon) in aggr_timeout()
1645 rxtid->seq_next, in aggr_timeout()
1646 ((rxtid->seq_next + rxtid->hold_q_sz-1) & in aggr_timeout()
1654 rxtid = &aggr_conn->rx_tid[i]; in aggr_timeout()
1656 if (rxtid->aggr && rxtid->hold_q) { in aggr_timeout()
1657 spin_lock_bh(&rxtid->lock); in aggr_timeout()
1658 for (j = 0; j < rxtid->hold_q_sz; j++) { in aggr_timeout()
1659 if (rxtid->hold_q[j].skb) { in aggr_timeout()
1661 rxtid->timer_mon = true; in aggr_timeout()
1665 spin_unlock_bh(&rxtid->lock); in aggr_timeout()
1667 if (j >= rxtid->hold_q_sz) in aggr_timeout()
1668 rxtid->timer_mon = false; in aggr_timeout()
1679 struct rxtid *rxtid; in aggr_delete_tid_state() local
1685 rxtid = &aggr_conn->rx_tid[tid]; in aggr_delete_tid_state()
1688 if (rxtid->aggr) in aggr_delete_tid_state()
1691 rxtid->aggr = false; in aggr_delete_tid_state()
1692 rxtid->timer_mon = false; in aggr_delete_tid_state()
1693 rxtid->win_sz = 0; in aggr_delete_tid_state()
1694 rxtid->seq_next = 0; in aggr_delete_tid_state()
1695 rxtid->hold_q_sz = 0; in aggr_delete_tid_state()
1697 kfree(rxtid->hold_q); in aggr_delete_tid_state()
1698 rxtid->hold_q = NULL; in aggr_delete_tid_state()
1708 struct rxtid *rxtid; in aggr_recv_addba_req_evt() local
1729 rxtid = &aggr_conn->rx_tid[tid]; in aggr_recv_addba_req_evt()
1736 if (rxtid->aggr) in aggr_recv_addba_req_evt()
1739 rxtid->seq_next = seq_no; in aggr_recv_addba_req_evt()
1741 rxtid->hold_q = kzalloc(hold_q_size, GFP_KERNEL); in aggr_recv_addba_req_evt()
1742 if (!rxtid->hold_q) in aggr_recv_addba_req_evt()
1745 rxtid->win_sz = win_sz; in aggr_recv_addba_req_evt()
1746 rxtid->hold_q_sz = TID_WINDOW_SZ(win_sz); in aggr_recv_addba_req_evt()
1747 if (!skb_queue_empty(&rxtid->q)) in aggr_recv_addba_req_evt()
1750 rxtid->aggr = true; in aggr_recv_addba_req_evt()
1756 struct rxtid *rxtid; in aggr_conn_init() local
1769 rxtid = &aggr_conn->rx_tid[i]; in aggr_conn_init()
1770 rxtid->aggr = false; in aggr_conn_init()
1771 rxtid->timer_mon = false; in aggr_conn_init()
1772 skb_queue_head_init(&rxtid->q); in aggr_conn_init()
1773 spin_lock_init(&rxtid->lock); in aggr_conn_init()
1805 struct rxtid *rxtid; in aggr_recv_delba_req_evt() local
1825 rxtid = &aggr_conn->rx_tid[tid]; in aggr_recv_delba_req_evt()
1827 if (rxtid->aggr) in aggr_recv_delba_req_evt()