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()
1631 struct rxtid *rxtid; in aggr_timeout() local
1635 rxtid = &aggr_conn->rx_tid[i]; in aggr_timeout()
1638 if (!rxtid->aggr || !rxtid->timer_mon) in aggr_timeout()
1644 rxtid->seq_next, in aggr_timeout()
1645 ((rxtid->seq_next + rxtid->hold_q_sz-1) & in aggr_timeout()
1653 rxtid = &aggr_conn->rx_tid[i]; in aggr_timeout()
1655 if (rxtid->aggr && rxtid->hold_q) { in aggr_timeout()
1656 spin_lock_bh(&rxtid->lock); in aggr_timeout()
1657 for (j = 0; j < rxtid->hold_q_sz; j++) { in aggr_timeout()
1658 if (rxtid->hold_q[j].skb) { in aggr_timeout()
1660 rxtid->timer_mon = true; in aggr_timeout()
1664 spin_unlock_bh(&rxtid->lock); in aggr_timeout()
1666 if (j >= rxtid->hold_q_sz) in aggr_timeout()
1667 rxtid->timer_mon = false; in aggr_timeout()
1678 struct rxtid *rxtid; in aggr_delete_tid_state() local
1684 rxtid = &aggr_conn->rx_tid[tid]; in aggr_delete_tid_state()
1687 if (rxtid->aggr) in aggr_delete_tid_state()
1690 rxtid->aggr = false; in aggr_delete_tid_state()
1691 rxtid->timer_mon = false; in aggr_delete_tid_state()
1692 rxtid->win_sz = 0; in aggr_delete_tid_state()
1693 rxtid->seq_next = 0; in aggr_delete_tid_state()
1694 rxtid->hold_q_sz = 0; in aggr_delete_tid_state()
1696 kfree(rxtid->hold_q); in aggr_delete_tid_state()
1697 rxtid->hold_q = NULL; in aggr_delete_tid_state()
1707 struct rxtid *rxtid; in aggr_recv_addba_req_evt() local
1728 rxtid = &aggr_conn->rx_tid[tid]; in aggr_recv_addba_req_evt()
1735 if (rxtid->aggr) in aggr_recv_addba_req_evt()
1738 rxtid->seq_next = seq_no; in aggr_recv_addba_req_evt()
1740 rxtid->hold_q = kzalloc(hold_q_size, GFP_KERNEL); in aggr_recv_addba_req_evt()
1741 if (!rxtid->hold_q) in aggr_recv_addba_req_evt()
1744 rxtid->win_sz = win_sz; in aggr_recv_addba_req_evt()
1745 rxtid->hold_q_sz = TID_WINDOW_SZ(win_sz); in aggr_recv_addba_req_evt()
1746 if (!skb_queue_empty(&rxtid->q)) in aggr_recv_addba_req_evt()
1749 rxtid->aggr = true; in aggr_recv_addba_req_evt()
1755 struct rxtid *rxtid; in aggr_conn_init() local
1768 rxtid = &aggr_conn->rx_tid[i]; in aggr_conn_init()
1769 rxtid->aggr = false; in aggr_conn_init()
1770 rxtid->timer_mon = false; in aggr_conn_init()
1771 skb_queue_head_init(&rxtid->q); in aggr_conn_init()
1772 spin_lock_init(&rxtid->lock); in aggr_conn_init()
1804 struct rxtid *rxtid; in aggr_recv_delba_req_evt() local
1824 rxtid = &aggr_conn->rx_tid[tid]; in aggr_recv_delba_req_evt()
1826 if (rxtid->aggr) in aggr_recv_delba_req_evt()