reo_get_queue_stats_status.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. /*
  2. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _REO_GET_QUEUE_STATS_STATUS_H_
  21. #define _REO_GET_QUEUE_STATS_STATUS_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "uniform_reo_status_header.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0-1 struct uniform_reo_status_header status_header;
  29. // 2 ssn[11:0], current_index[19:12], reserved_2[31:20]
  30. // 3 pn_31_0[31:0]
  31. // 4 pn_63_32[31:0]
  32. // 5 pn_95_64[31:0]
  33. // 6 pn_127_96[31:0]
  34. // 7 last_rx_enqueue_timestamp[31:0]
  35. // 8 last_rx_dequeue_timestamp[31:0]
  36. // 9 rx_bitmap_31_0[31:0]
  37. // 10 rx_bitmap_63_32[31:0]
  38. // 11 rx_bitmap_95_64[31:0]
  39. // 12 rx_bitmap_127_96[31:0]
  40. // 13 rx_bitmap_159_128[31:0]
  41. // 14 rx_bitmap_191_160[31:0]
  42. // 15 rx_bitmap_223_192[31:0]
  43. // 16 rx_bitmap_255_224[31:0]
  44. // 17 current_mpdu_count[6:0], current_msdu_count[31:7]
  45. // 18 reserved_18[3:0], timeout_count[9:4], forward_due_to_bar_count[15:10], duplicate_count[31:16]
  46. // 19 frames_in_order_count[23:0], bar_received_count[31:24]
  47. // 20 mpdu_frames_processed_count[31:0]
  48. // 21 msdu_frames_processed_count[31:0]
  49. // 22 total_processed_byte_count[31:0]
  50. // 23 late_receive_mpdu_count[11:0], window_jump_2k[15:12], hole_count[31:16]
  51. // 24 reserved_24a[27:0], looping_count[31:28]
  52. //
  53. // ################ END SUMMARY #################
  54. #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 25
  55. struct reo_get_queue_stats_status {
  56. struct uniform_reo_status_header status_header;
  57. uint32_t ssn : 12, //[11:0]
  58. current_index : 8, //[19:12]
  59. reserved_2 : 12; //[31:20]
  60. uint32_t pn_31_0 : 32; //[31:0]
  61. uint32_t pn_63_32 : 32; //[31:0]
  62. uint32_t pn_95_64 : 32; //[31:0]
  63. uint32_t pn_127_96 : 32; //[31:0]
  64. uint32_t last_rx_enqueue_timestamp : 32; //[31:0]
  65. uint32_t last_rx_dequeue_timestamp : 32; //[31:0]
  66. uint32_t rx_bitmap_31_0 : 32; //[31:0]
  67. uint32_t rx_bitmap_63_32 : 32; //[31:0]
  68. uint32_t rx_bitmap_95_64 : 32; //[31:0]
  69. uint32_t rx_bitmap_127_96 : 32; //[31:0]
  70. uint32_t rx_bitmap_159_128 : 32; //[31:0]
  71. uint32_t rx_bitmap_191_160 : 32; //[31:0]
  72. uint32_t rx_bitmap_223_192 : 32; //[31:0]
  73. uint32_t rx_bitmap_255_224 : 32; //[31:0]
  74. uint32_t current_mpdu_count : 7, //[6:0]
  75. current_msdu_count : 25; //[31:7]
  76. uint32_t reserved_18 : 4, //[3:0]
  77. timeout_count : 6, //[9:4]
  78. forward_due_to_bar_count : 6, //[15:10]
  79. duplicate_count : 16; //[31:16]
  80. uint32_t frames_in_order_count : 24, //[23:0]
  81. bar_received_count : 8; //[31:24]
  82. uint32_t mpdu_frames_processed_count : 32; //[31:0]
  83. uint32_t msdu_frames_processed_count : 32; //[31:0]
  84. uint32_t total_processed_byte_count : 32; //[31:0]
  85. uint32_t late_receive_mpdu_count : 12, //[11:0]
  86. window_jump_2k : 4, //[15:12]
  87. hole_count : 16; //[31:16]
  88. uint32_t reserved_24a : 28, //[27:0]
  89. looping_count : 4; //[31:28]
  90. };
  91. /*
  92. struct uniform_reo_status_header status_header
  93. Consumer: SW
  94. Producer: REO
  95. Details that can link this status with the original
  96. command. It also contains info on how long REO took to
  97. execute this command.
  98. ssn
  99. Starting Sequence number of the session, this changes
  100. whenever window moves. (can be filled by SW then maintained
  101. by REO)
  102. <legal all>
  103. current_index
  104. Points to last forwarded packet
  105. <legal all>
  106. reserved_2
  107. <legal 0>
  108. pn_31_0
  109. <legal all>
  110. pn_63_32
  111. Bits [63:32] of the PN number.
  112. <legal all>
  113. pn_95_64
  114. Bits [95:64] of the PN number.
  115. <legal all>
  116. pn_127_96
  117. Bits [127:96] of the PN number.
  118. <legal all>
  119. last_rx_enqueue_timestamp
  120. Timestamp of arrival of the last MPDU for this queue
  121. <legal all>
  122. last_rx_dequeue_timestamp
  123. Timestamp of forwarding an MPDU
  124. If the queue is empty when a frame gets received, this
  125. time shall be initialized to the 'enqueue' timestamp
  126. Used for aging
  127. <legal all>
  128. rx_bitmap_31_0
  129. When a bit is set, the corresponding frame is currently
  130. held in the re-order queue.
  131. The bitmap is Fully managed by HW.
  132. SW shall init this to 0, and then never ever change it
  133. <legal all>
  134. rx_bitmap_63_32
  135. See Rx_bitmap_31_0 description
  136. <legal all>
  137. rx_bitmap_95_64
  138. See Rx_bitmap_31_0 description
  139. <legal all>
  140. rx_bitmap_127_96
  141. See Rx_bitmap_31_0 description
  142. <legal all>
  143. rx_bitmap_159_128
  144. See Rx_bitmap_31_0 description
  145. <legal all>
  146. rx_bitmap_191_160
  147. See Rx_bitmap_31_0 description
  148. <legal all>
  149. rx_bitmap_223_192
  150. See Rx_bitmap_31_0 description
  151. <legal all>
  152. rx_bitmap_255_224
  153. See Rx_bitmap_31_0 description
  154. <legal all>
  155. current_mpdu_count
  156. The number of MPDUs in the queue.
  157. <legal all>
  158. current_msdu_count
  159. The number of MSDUs in the queue.
  160. <legal all>
  161. reserved_18
  162. <legal 0>
  163. timeout_count
  164. The number of times that REO started forwarding frames
  165. even though there is a hole in the bitmap. Forwarding reason
  166. is Timeout
  167. The counter saturates and freezes at 0x3F
  168. <legal all>
  169. forward_due_to_bar_count
  170. The number of times that REO started forwarding frames
  171. even though there is a hole in the bitmap. Forwarding reason
  172. is reception of BAR frame.
  173. The counter saturates and freezes at 0x3F
  174. <legal all>
  175. duplicate_count
  176. The number of duplicate frames that have been detected
  177. <legal all>
  178. frames_in_order_count
  179. The number of frames that have been received in order
  180. (without a hole that prevented them from being forwarded
  181. immediately)
  182. This corresponds to the Reorder opcodes:
  183. 'FWDCUR' and 'FWD BUF'
  184. <legal all>
  185. bar_received_count
  186. The number of times a BAR frame is received.
  187. This corresponds to the Reorder opcodes with 'DROP'
  188. The counter saturates and freezes at 0xFF
  189. <legal all>
  190. mpdu_frames_processed_count
  191. The total number of MPDU frames that have been processed
  192. by REO. This includes the duplicates.
  193. <legal all>
  194. msdu_frames_processed_count
  195. The total number of MSDU frames that have been processed
  196. by REO. This includes the duplicates.
  197. <legal all>
  198. total_processed_byte_count
  199. An approximation of the number of bytes received for
  200. this queue.
  201. In 64 byte units
  202. <legal all>
  203. late_receive_mpdu_count
  204. The number of MPDUs received after the window had
  205. already moved on. The 'late' sequence window is defined as
  206. (Window SSN - 256) - (Window SSN - 1)
  207. This corresponds with Out of order detection in
  208. duplicate detect FSM
  209. The counter saturates and freezes at 0xFFF
  210. <legal all>
  211. window_jump_2k
  212. The number of times the window moved more then 2K
  213. The counter saturates and freezes at 0xF
  214. (Note: field name can not start with number: previous
  215. 2k_window_jump)
  216. <legal all>
  217. hole_count
  218. The number of times a hole was created in the receive
  219. bitmap.
  220. This corresponds to the Reorder opcodes with 'QCUR'
  221. <legal all>
  222. reserved_24a
  223. <legal 0>
  224. looping_count
  225. A count value that indicates the number of times the
  226. producer of entries into this Ring has looped around the
  227. ring.
  228. At initialization time, this value is set to 0. On the
  229. first loop, this value is set to 1. After the max value is
  230. reached allowed by the number of bits for this field, the
  231. count value continues with 0 again.
  232. In case SW is the consumer of the ring entries, it can
  233. use this field to figure out up to where the producer of
  234. entries has created new entries. This eliminates the need to
  235. check where the head pointer' of the ring is located once
  236. the SW starts processing an interrupt indicating that new
  237. entries have been put into this ring...
  238. Also note that SW if it wants only needs to look at the
  239. LSB bit of this count value.
  240. <legal all>
  241. */
  242. /* EXTERNAL REFERENCE : struct uniform_reo_status_header status_header */
  243. /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER
  244. Consumer: SW , DEBUG
  245. Producer: REO
  246. The value in this field is equal to value of the
  247. 'REO_CMD_Number' field the REO command
  248. This field helps to correlate the statuses with the REO
  249. commands.
  250. <legal all>
  251. */
  252. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000
  253. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
  254. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff
  255. /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME
  256. Consumer: DEBUG
  257. Producer: REO
  258. The amount of time REO took to excecute the command.
  259. Note that this time does not include the duration of the
  260. command waiting in the command ring, before the execution
  261. started.
  262. In us.
  263. <legal all>
  264. */
  265. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000
  266. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
  267. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000
  268. /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS
  269. Consumer: DEBUG
  270. Producer: REO
  271. Execution status of the command.
  272. <enum 0 reo_successful_execution> Command has
  273. successfully be executed
  274. <enum 1 reo_blocked_execution> Command could not be
  275. executed as the queue or cache was blocked
  276. <enum 2 reo_failed_execution> Command has encountered
  277. problems when executing, like the queue descriptor not being
  278. valid. None of the status fields in the entire STATUS TLV
  279. are valid.
  280. <enum 3 reo_resource_blocked> Command is NOT executed
  281. because one or more descriptors were blocked. This is SW
  282. programming mistake.
  283. None of the status fields in the entire STATUS TLV are
  284. valid.
  285. <legal 0-3>
  286. */
  287. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000
  288. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
  289. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000
  290. /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A
  291. <legal 0>
  292. */
  293. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET 0x00000000
  294. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB 28
  295. #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK 0xf0000000
  296. /* Description REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP
  297. Timestamp at the moment that this status report is
  298. written.
  299. <legal all>
  300. */
  301. #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET 0x00000004
  302. #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB 0
  303. #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK 0xffffffff
  304. /* Description REO_GET_QUEUE_STATS_STATUS_2_SSN
  305. Starting Sequence number of the session, this changes
  306. whenever window moves. (can be filled by SW then maintained
  307. by REO)
  308. <legal all>
  309. */
  310. #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET 0x00000008
  311. #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB 0
  312. #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK 0x00000fff
  313. /* Description REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX
  314. Points to last forwarded packet
  315. <legal all>
  316. */
  317. #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET 0x00000008
  318. #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB 12
  319. #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK 0x000ff000
  320. /* Description REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2
  321. <legal 0>
  322. */
  323. #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET 0x00000008
  324. #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB 20
  325. #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK 0xfff00000
  326. /* Description REO_GET_QUEUE_STATS_STATUS_3_PN_31_0
  327. <legal all>
  328. */
  329. #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET 0x0000000c
  330. #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB 0
  331. #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK 0xffffffff
  332. /* Description REO_GET_QUEUE_STATS_STATUS_4_PN_63_32
  333. Bits [63:32] of the PN number.
  334. <legal all>
  335. */
  336. #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET 0x00000010
  337. #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB 0
  338. #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK 0xffffffff
  339. /* Description REO_GET_QUEUE_STATS_STATUS_5_PN_95_64
  340. Bits [95:64] of the PN number.
  341. <legal all>
  342. */
  343. #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET 0x00000014
  344. #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB 0
  345. #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK 0xffffffff
  346. /* Description REO_GET_QUEUE_STATS_STATUS_6_PN_127_96
  347. Bits [127:96] of the PN number.
  348. <legal all>
  349. */
  350. #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET 0x00000018
  351. #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB 0
  352. #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK 0xffffffff
  353. /* Description REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP
  354. Timestamp of arrival of the last MPDU for this queue
  355. <legal all>
  356. */
  357. #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c
  358. #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB 0
  359. #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK 0xffffffff
  360. /* Description REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP
  361. Timestamp of forwarding an MPDU
  362. If the queue is empty when a frame gets received, this
  363. time shall be initialized to the 'enqueue' timestamp
  364. Used for aging
  365. <legal all>
  366. */
  367. #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020
  368. #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB 0
  369. #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK 0xffffffff
  370. /* Description REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0
  371. When a bit is set, the corresponding frame is currently
  372. held in the re-order queue.
  373. The bitmap is Fully managed by HW.
  374. SW shall init this to 0, and then never ever change it
  375. <legal all>
  376. */
  377. #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET 0x00000024
  378. #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB 0
  379. #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK 0xffffffff
  380. /* Description REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32
  381. See Rx_bitmap_31_0 description
  382. <legal all>
  383. */
  384. #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET 0x00000028
  385. #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB 0
  386. #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK 0xffffffff
  387. /* Description REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64
  388. See Rx_bitmap_31_0 description
  389. <legal all>
  390. */
  391. #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET 0x0000002c
  392. #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB 0
  393. #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK 0xffffffff
  394. /* Description REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96
  395. See Rx_bitmap_31_0 description
  396. <legal all>
  397. */
  398. #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET 0x00000030
  399. #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB 0
  400. #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK 0xffffffff
  401. /* Description REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128
  402. See Rx_bitmap_31_0 description
  403. <legal all>
  404. */
  405. #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET 0x00000034
  406. #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB 0
  407. #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK 0xffffffff
  408. /* Description REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160
  409. See Rx_bitmap_31_0 description
  410. <legal all>
  411. */
  412. #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET 0x00000038
  413. #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB 0
  414. #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK 0xffffffff
  415. /* Description REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192
  416. See Rx_bitmap_31_0 description
  417. <legal all>
  418. */
  419. #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET 0x0000003c
  420. #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB 0
  421. #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK 0xffffffff
  422. /* Description REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224
  423. See Rx_bitmap_31_0 description
  424. <legal all>
  425. */
  426. #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET 0x00000040
  427. #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB 0
  428. #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK 0xffffffff
  429. /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT
  430. The number of MPDUs in the queue.
  431. <legal all>
  432. */
  433. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET 0x00000044
  434. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB 0
  435. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK 0x0000007f
  436. /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT
  437. The number of MSDUs in the queue.
  438. <legal all>
  439. */
  440. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET 0x00000044
  441. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB 7
  442. #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK 0xffffff80
  443. /* Description REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18
  444. <legal 0>
  445. */
  446. #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET 0x00000048
  447. #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB 0
  448. #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK 0x0000000f
  449. /* Description REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT
  450. The number of times that REO started forwarding frames
  451. even though there is a hole in the bitmap. Forwarding reason
  452. is Timeout
  453. The counter saturates and freezes at 0x3F
  454. <legal all>
  455. */
  456. #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET 0x00000048
  457. #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB 4
  458. #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK 0x000003f0
  459. /* Description REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT
  460. The number of times that REO started forwarding frames
  461. even though there is a hole in the bitmap. Forwarding reason
  462. is reception of BAR frame.
  463. The counter saturates and freezes at 0x3F
  464. <legal all>
  465. */
  466. #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048
  467. #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB 10
  468. #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK 0x0000fc00
  469. /* Description REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT
  470. The number of duplicate frames that have been detected
  471. <legal all>
  472. */
  473. #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET 0x00000048
  474. #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB 16
  475. #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK 0xffff0000
  476. /* Description REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT
  477. The number of frames that have been received in order
  478. (without a hole that prevented them from being forwarded
  479. immediately)
  480. This corresponds to the Reorder opcodes:
  481. 'FWDCUR' and 'FWD BUF'
  482. <legal all>
  483. */
  484. #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET 0x0000004c
  485. #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB 0
  486. #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK 0x00ffffff
  487. /* Description REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT
  488. The number of times a BAR frame is received.
  489. This corresponds to the Reorder opcodes with 'DROP'
  490. The counter saturates and freezes at 0xFF
  491. <legal all>
  492. */
  493. #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET 0x0000004c
  494. #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB 24
  495. #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK 0xff000000
  496. /* Description REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT
  497. The total number of MPDU frames that have been processed
  498. by REO. This includes the duplicates.
  499. <legal all>
  500. */
  501. #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050
  502. #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0
  503. #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
  504. /* Description REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT
  505. The total number of MSDU frames that have been processed
  506. by REO. This includes the duplicates.
  507. <legal all>
  508. */
  509. #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054
  510. #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0
  511. #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
  512. /* Description REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT
  513. An approximation of the number of bytes received for
  514. this queue.
  515. In 64 byte units
  516. <legal all>
  517. */
  518. #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058
  519. #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0
  520. #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff
  521. /* Description REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT
  522. The number of MPDUs received after the window had
  523. already moved on. The 'late' sequence window is defined as
  524. (Window SSN - 256) - (Window SSN - 1)
  525. This corresponds with Out of order detection in
  526. duplicate detect FSM
  527. The counter saturates and freezes at 0xFFF
  528. <legal all>
  529. */
  530. #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c
  531. #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB 0
  532. #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK 0x00000fff
  533. /* Description REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K
  534. The number of times the window moved more then 2K
  535. The counter saturates and freezes at 0xF
  536. (Note: field name can not start with number: previous
  537. 2k_window_jump)
  538. <legal all>
  539. */
  540. #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET 0x0000005c
  541. #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB 12
  542. #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK 0x0000f000
  543. /* Description REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT
  544. The number of times a hole was created in the receive
  545. bitmap.
  546. This corresponds to the Reorder opcodes with 'QCUR'
  547. <legal all>
  548. */
  549. #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET 0x0000005c
  550. #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB 16
  551. #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK 0xffff0000
  552. /* Description REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A
  553. <legal 0>
  554. */
  555. #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET 0x00000060
  556. #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB 0
  557. #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK 0x0fffffff
  558. /* Description REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT
  559. A count value that indicates the number of times the
  560. producer of entries into this Ring has looped around the
  561. ring.
  562. At initialization time, this value is set to 0. On the
  563. first loop, this value is set to 1. After the max value is
  564. reached allowed by the number of bits for this field, the
  565. count value continues with 0 again.
  566. In case SW is the consumer of the ring entries, it can
  567. use this field to figure out up to where the producer of
  568. entries has created new entries. This eliminates the need to
  569. check where the head pointer' of the ring is located once
  570. the SW starts processing an interrupt indicating that new
  571. entries have been put into this ring...
  572. Also note that SW if it wants only needs to look at the
  573. LSB bit of this count value.
  574. <legal all>
  575. */
  576. #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET 0x00000060
  577. #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB 28
  578. #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK 0xf0000000
  579. #endif // _REO_GET_QUEUE_STATS_STATUS_H_