11n_rxreorder.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * Marvell Wireless LAN device driver: 802.11n RX Re-ordering
  3. *
  4. * Copyright (C) 2011, Marvell International Ltd.
  5. *
  6. * This software file (the "File") is distributed by Marvell International
  7. * Ltd. under the terms of the GNU General Public License Version 2, June 1991
  8. * (the "License"). You may use, redistribute and/or modify this File in
  9. * accordance with the terms and conditions of the License, a copy of which
  10. * is available by writing to the Free Software Foundation, Inc.,
  11. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
  12. * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
  13. *
  14. * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
  15. * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
  16. * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
  17. * this warranty disclaimer.
  18. */
  19. #ifndef _MWIFIEX_11N_RXREORDER_H_
  20. #define _MWIFIEX_11N_RXREORDER_H_
  21. #define MIN_FLUSH_TIMER_MS 50
  22. #define PKT_TYPE_BAR 0xE7
  23. #define MAX_TID_VALUE (2 << 11)
  24. #define TWOPOW11 (2 << 10)
  25. #define BLOCKACKPARAM_TID_POS 2
  26. #define BLOCKACKPARAM_AMSDU_SUPP_MASK 0x1
  27. #define BLOCKACKPARAM_WINSIZE_POS 6
  28. #define DELBA_TID_POS 12
  29. #define DELBA_INITIATOR_POS 11
  30. #define TYPE_DELBA_SENT 1
  31. #define TYPE_DELBA_RECEIVE 2
  32. #define IMMEDIATE_BLOCK_ACK 0x2
  33. #define ADDBA_RSP_STATUS_ACCEPT 0
  34. #define MWIFIEX_DEF_11N_RX_SEQ_NUM 0xffff
  35. static inline void mwifiex_reset_11n_rx_seq_num(struct mwifiex_private *priv)
  36. {
  37. memset(priv->rx_seq, 0xff, sizeof(priv->rx_seq));
  38. }
  39. int mwifiex_11n_rx_reorder_pkt(struct mwifiex_private *,
  40. u16 seqNum,
  41. u16 tid, u8 *ta,
  42. u8 pkttype, void *payload);
  43. void mwifiex_del_ba_tbl(struct mwifiex_private *priv, int Tid,
  44. u8 *PeerMACAddr, u8 type, int initiator);
  45. void mwifiex_11n_ba_stream_timeout(struct mwifiex_private *priv,
  46. struct host_cmd_ds_11n_batimeout *event);
  47. int mwifiex_ret_11n_addba_resp(struct mwifiex_private *priv,
  48. struct host_cmd_ds_command
  49. *resp);
  50. int mwifiex_cmd_11n_delba(struct host_cmd_ds_command *cmd,
  51. void *data_buf);
  52. int mwifiex_cmd_11n_addba_rsp_gen(struct mwifiex_private *priv,
  53. struct host_cmd_ds_command *cmd,
  54. struct host_cmd_ds_11n_addba_req
  55. *cmd_addba_req);
  56. int mwifiex_cmd_11n_addba_req(struct host_cmd_ds_command *cmd,
  57. void *data_buf);
  58. void mwifiex_11n_cleanup_reorder_tbl(struct mwifiex_private *priv);
  59. struct mwifiex_rx_reorder_tbl *mwifiex_11n_get_rxreorder_tbl(struct
  60. mwifiex_private
  61. *priv, int tid,
  62. u8 *ta);
  63. #endif /* _MWIFIEX_11N_RXREORDER_H_ */