Lines Matching refs:tbl

98 					 struct mwifiex_rx_reorder_tbl *tbl,
108 pkt_to_send = (start_win > tbl->start_win) ?
109 min((start_win - tbl->start_win), tbl->win_size) :
110 tbl->win_size;
113 if (tbl->rx_reorder_ptr[i]) {
114 skb = tbl->rx_reorder_ptr[i];
116 tbl->rx_reorder_ptr[i] = NULL;
124 for (i = 0; i < tbl->win_size - pkt_to_send; ++i) {
125 tbl->rx_reorder_ptr[i] = tbl->rx_reorder_ptr[pkt_to_send + i];
126 tbl->rx_reorder_ptr[pkt_to_send + i] = NULL;
129 tbl->start_win = start_win;
146 struct mwifiex_rx_reorder_tbl *tbl)
155 for (i = 0; i < tbl->win_size; ++i) {
156 if (!tbl->rx_reorder_ptr[i])
158 skb = tbl->rx_reorder_ptr[i];
160 tbl->rx_reorder_ptr[i] = NULL;
168 xchg = tbl->win_size - i;
170 tbl->rx_reorder_ptr[j] = tbl->rx_reorder_ptr[i + j];
171 tbl->rx_reorder_ptr[i + j] = NULL;
174 tbl->start_win = (tbl->start_win + i) & (MAX_TID_VALUE - 1);
190 struct mwifiex_rx_reorder_tbl *tbl)
194 if (!tbl)
206 start_win = (tbl->start_win + tbl->win_size) & (MAX_TID_VALUE - 1);
207 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win);
209 del_timer_sync(&tbl->timer_context.timer);
210 tbl->timer_context.timer_is_set = false;
213 list_del(&tbl->list);
216 kfree(tbl->rx_reorder_ptr);
217 kfree(tbl);
232 struct mwifiex_rx_reorder_tbl *tbl;
235 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list) {
236 if (!memcmp(tbl->ta, ta, ETH_ALEN) && tbl->tid == tid) {
238 return tbl;
251 struct mwifiex_rx_reorder_tbl *tbl, *tmp;
257 list_for_each_entry_safe(tbl, tmp, &priv->rx_reorder_tbl_ptr, list) {
258 if (!memcmp(tbl->ta, ta, ETH_ALEN)) {
260 mwifiex_del_rx_reorder_entry(priv, tbl);
333 struct mwifiex_rx_reorder_tbl *tbl, *new_node;
341 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta);
342 if (tbl) {
343 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, seq_num);
346 /* if !tbl then create one */
410 mwifiex_11n_rxreorder_timer_restart(struct mwifiex_rx_reorder_tbl *tbl)
414 if (tbl->win_size >= MWIFIEX_BA_WIN_SIZE_32)
419 mod_timer(&tbl->timer_context.timer,
420 jiffies + msecs_to_jiffies(min_flush_time * tbl->win_size));
422 tbl->timer_context.timer_is_set = true;
551 struct mwifiex_rx_reorder_tbl *tbl;
557 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta);
558 if (!tbl) {
564 if ((pkt_type == PKT_TYPE_AMSDU) && !tbl->amsdu) {
569 start_win = tbl->start_win;
571 win_size = tbl->win_size;
573 if (tbl->flags & RXREOR_INIT_WINDOW_SHIFT) {
575 tbl->flags &= ~RXREOR_INIT_WINDOW_SHIFT;
578 if (tbl->flags & RXREOR_FORCE_NO_DROP) {
581 tbl->flags &= ~RXREOR_FORCE_NO_DROP;
583 seq_num >= tbl->init_win) {
586 start_win, seq_num, tbl->init_win);
587 tbl->start_win = start_win = seq_num;
624 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win);
633 if (tbl->rx_reorder_ptr[pkt_index]) {
638 tbl->rx_reorder_ptr[pkt_index] = payload;
645 mwifiex_11n_scan_and_dispatch(priv, tbl);
648 if (!tbl->timer_context.timer_is_set ||
649 prev_start_win != tbl->start_win)
650 mwifiex_11n_rxreorder_timer_restart(tbl);
663 struct mwifiex_rx_reorder_tbl *tbl;
678 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid,
680 if (!tbl) {
685 mwifiex_del_rx_reorder_entry(priv, tbl);
717 struct mwifiex_rx_reorder_tbl *tbl;
732 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid,
734 if (tbl)
735 mwifiex_del_rx_reorder_entry(priv, tbl);
743 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid,
745 if (tbl) {
749 tbl->amsdu = true;
751 tbl->amsdu = false;
808 struct mwifiex_rx_reorder_tbl *tbl;
817 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list)
818 tbl->flags = flags;