45 pkt_to_send = (start_win > tbl->
start_win) ?
49 for (i = 0; i < pkt_to_send; ++
i) {
71 for (i = 0; i < tbl->
win_size - pkt_to_send; ++
i) {
119 for (j = 0; j <
xchg; ++
j) {
195 mwifiex_del_rx_reorder_entry(priv, tbl);
213 for (i = (rx_reorder_tbl_ptr->
win_size - 1); i >= 0; --i)
228 mwifiex_flush_data(
unsigned long context)
234 start_win = mwifiex_11n_find_last_seq_num(ctx->
ptr);
239 dev_dbg(ctx->
priv->adapter->dev,
"info: flush data %d\n", start_win);
240 mwifiex_11n_dispatch_pkt(ctx->
priv, ctx->
ptr,
241 (ctx->
ptr->start_win + start_win + 1) &
271 mwifiex_11n_dispatch_pkt(priv, tbl, seq_num);
282 INIT_LIST_HEAD(&new_node->
list);
287 if (mwifiex_queuing_ra_based(priv)) {
289 "info: AP/ADHOC:last_seq=%d start_win=%d\n",
294 last_seq = node->
rx_seq[tid];
297 last_seq = priv->
rx_seq[tid];
312 "%s: failed to alloc reorder_ptr\n", __func__);
346 memcpy(add_ba_req, data_buf,
sizeof(*add_ba_req));
376 add_ba_rsp->
ssn = cmd_addba_req->
ssn;
385 block_ack_param_set |= (priv->
add_ba_param.rx_win_size <<
393 mwifiex_11n_create_rx_reorder_tbl(priv, cmd_addba_req->
peer_mac_addr,
413 memcpy(del_ba, data_buf,
sizeof(*del_ba));
463 "RXREOR_FORCE_NO_DROP when HS is activated\n");
467 if (seq_num >= ((start_win +
TWOPOW11) &
471 }
else if ((seq_num < start_win) ||
472 (seq_num > (start_win +
TWOPOW11))) {
484 if (((end_win < start_win) &&
485 (seq_num < start_win) && (seq_num > end_win)) ||
486 ((end_win >
start_win) && ((seq_num > end_win) ||
489 if (((seq_num - win_size) + 1) >= 0)
490 start_win = (end_win -
win_size) + 1;
493 mwifiex_11n_dispatch_pkt(priv, tbl, start_win);
497 if (seq_num >= start_win)
512 mwifiex_11n_scan_and_dispatch(priv, tbl);
528 u8 cleanup_rx_reorder_tbl;
532 cleanup_rx_reorder_tbl = (
initiator) ?
true :
false;
534 cleanup_rx_reorder_tbl = (
initiator) ?
false :
true;
536 dev_dbg(priv->
adapter->dev,
"event: DELBA: %pM tid=%d initiator=%d\n",
537 peer_mac, tid, initiator);
539 if (cleanup_rx_reorder_tbl) {
544 "event: TID, TA not found in table\n");
547 mwifiex_del_rx_reorder_entry(priv, tbl);
552 "event: TID, RA not found in table\n");
585 win_size = (block_ack_param_set &
590 "cmd: ADDBA RSP: %pM tid=%d ssn=%d win_size=%d\n",
592 add_ba_rsp->
ssn, win_size);
600 mwifiex_del_rx_reorder_entry(priv, tbl);
639 mwifiex_del_rx_reorder_entry(priv, del_tbl_ptr);
645 mwifiex_reset_11n_rx_seq_num(priv);
658 for (i = 0; i < adapter->
priv_num; i++) {
659 priv = adapter->
priv[
i];