diff options
author | Paul Stewart <pstew@chromium.org> | 2014-02-25 19:31:37 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-28 14:33:23 -0500 |
commit | 8acbea614a75bc2221a84f222dc32be0877861ce (patch) | |
tree | 8a1034aa9961cbe4209149779026030b4fe2b6c5 /drivers/net/wireless/mwifiex/main.h | |
parent | b6a8cf2cd8f1d17c850db0f591e3d349d417b40a (diff) |
mwifiex: Track BA sequence number reset
Some stations reset the sequence number for traffic-ids (TIDs)
as they initiate a block-ACK session. In order to detect such
behavior, mwifiex must note the starting sequence number given
during the ADDBA request. If the first received sequence number
after the ADDBA falls outside the receive window for this TID but
after the the ADDBA starting sequence number, we can assume that
this AP has reset its sequence number during the ADDBA. In this
case we must adjust the input window backward to incorporate this
received sequence number instead of ignoring it. Otherwise, we
could fail to successfully retrieve an arbitrarily large number
of downstream frames at the beginning of the block-ACK session.
Signed-off-by: Paul Stewart <pstew@chromium.org>
Acked-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/main.h')
-rw-r--r-- | drivers/net/wireless/mwifiex/main.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h index 407f8eada720..cb1148f0de69 100644 --- a/drivers/net/wireless/mwifiex/main.h +++ b/drivers/net/wireless/mwifiex/main.h | |||
@@ -575,6 +575,7 @@ struct mwifiex_rx_reorder_tbl { | |||
575 | struct list_head list; | 575 | struct list_head list; |
576 | int tid; | 576 | int tid; |
577 | u8 ta[ETH_ALEN]; | 577 | u8 ta[ETH_ALEN]; |
578 | int init_win; | ||
578 | int start_win; | 579 | int start_win; |
579 | int win_size; | 580 | int win_size; |
580 | void **rx_reorder_ptr; | 581 | void **rx_reorder_ptr; |