xref: /wlan-driver/fw-api/hw/qca6290/v1/reo_get_queue_stats_status.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 // $ATH_LICENSE_HW_HDR_C$
20 //
21 // DO NOT EDIT!  This file is automatically generated
22 //               These definitions are tied to a particular hardware layout
23 
24 
25 #ifndef _REO_GET_QUEUE_STATS_STATUS_H_
26 #define _REO_GET_QUEUE_STATS_STATUS_H_
27 #if !defined(__ASSEMBLER__)
28 #endif
29 
30 #include "uniform_reo_status_header.h"
31 
32 // ################ START SUMMARY #################
33 //
34 //	Dword	Fields
35 //	0-1	struct uniform_reo_status_header status_header;
36 //	2	ssn[11:0], current_index[19:12], reserved_2[31:20]
37 //	3	pn_31_0[31:0]
38 //	4	pn_63_32[31:0]
39 //	5	pn_95_64[31:0]
40 //	6	pn_127_96[31:0]
41 //	7	last_rx_enqueue_timestamp[31:0]
42 //	8	last_rx_dequeue_timestamp[31:0]
43 //	9	rx_bitmap_31_0[31:0]
44 //	10	rx_bitmap_63_32[31:0]
45 //	11	rx_bitmap_95_64[31:0]
46 //	12	rx_bitmap_127_96[31:0]
47 //	13	rx_bitmap_159_128[31:0]
48 //	14	rx_bitmap_191_160[31:0]
49 //	15	rx_bitmap_223_192[31:0]
50 //	16	rx_bitmap_255_224[31:0]
51 //	17	current_mpdu_count[6:0], current_msdu_count[31:7]
52 //	18	reserved_18[3:0], timeout_count[9:4], forward_due_to_bar_count[15:10], duplicate_count[31:16]
53 //	19	frames_in_order_count[23:0], bar_received_count[31:24]
54 //	20	mpdu_frames_processed_count[31:0]
55 //	21	msdu_frames_processed_count[31:0]
56 //	22	total_processed_byte_count[31:0]
57 //	23	late_receive_mpdu_count[11:0], window_jump_2k[15:12], hole_count[31:16]
58 //	24	reserved_24a[27:0], looping_count[31:28]
59 //
60 // ################ END SUMMARY #################
61 
62 #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 25
63 
64 struct reo_get_queue_stats_status {
65     struct            uniform_reo_status_header                       status_header;
66              uint32_t ssn                             : 12, //[11:0]
67                       current_index                   :  8, //[19:12]
68                       reserved_2                      : 12; //[31:20]
69              uint32_t pn_31_0                         : 32; //[31:0]
70              uint32_t pn_63_32                        : 32; //[31:0]
71              uint32_t pn_95_64                        : 32; //[31:0]
72              uint32_t pn_127_96                       : 32; //[31:0]
73              uint32_t last_rx_enqueue_timestamp       : 32; //[31:0]
74              uint32_t last_rx_dequeue_timestamp       : 32; //[31:0]
75              uint32_t rx_bitmap_31_0                  : 32; //[31:0]
76              uint32_t rx_bitmap_63_32                 : 32; //[31:0]
77              uint32_t rx_bitmap_95_64                 : 32; //[31:0]
78              uint32_t rx_bitmap_127_96                : 32; //[31:0]
79              uint32_t rx_bitmap_159_128               : 32; //[31:0]
80              uint32_t rx_bitmap_191_160               : 32; //[31:0]
81              uint32_t rx_bitmap_223_192               : 32; //[31:0]
82              uint32_t rx_bitmap_255_224               : 32; //[31:0]
83              uint32_t current_mpdu_count              :  7, //[6:0]
84                       current_msdu_count              : 25; //[31:7]
85              uint32_t reserved_18                     :  4, //[3:0]
86                       timeout_count                   :  6, //[9:4]
87                       forward_due_to_bar_count        :  6, //[15:10]
88                       duplicate_count                 : 16; //[31:16]
89              uint32_t frames_in_order_count           : 24, //[23:0]
90                       bar_received_count              :  8; //[31:24]
91              uint32_t mpdu_frames_processed_count     : 32; //[31:0]
92              uint32_t msdu_frames_processed_count     : 32; //[31:0]
93              uint32_t total_processed_byte_count      : 32; //[31:0]
94              uint32_t late_receive_mpdu_count         : 12, //[11:0]
95                       window_jump_2k                  :  4, //[15:12]
96                       hole_count                      : 16; //[31:16]
97              uint32_t reserved_24a                    : 28, //[27:0]
98                       looping_count                   :  4; //[31:28]
99 };
100 
101 /*
102 
103 struct uniform_reo_status_header status_header
104 
105 			Consumer: SW
106 
107 			Producer: REO
108 
109 
110 
111 			Details that can link this status with the original
112 			command. It also contains info on how long REO took to
113 			execute this command.
114 
115 ssn
116 
117 			Starting Sequence number of the session, this changes
118 			whenever window moves. (can be filled by SW then maintained
119 			by REO)
120 
121 			<legal all>
122 
123 current_index
124 
125 			Points to last forwarded packet
126 
127 			<legal all>
128 
129 reserved_2
130 
131 			<legal 0>
132 
133 pn_31_0
134 
135 
136 			<legal all>
137 
138 pn_63_32
139 
140 			Bits [63:32] of the PN number.
141 
142 			<legal all>
143 
144 pn_95_64
145 
146 			Bits [95:64] of the PN number.
147 
148 			<legal all>
149 
150 pn_127_96
151 
152 			Bits [127:96] of the PN number.
153 
154 			<legal all>
155 
156 last_rx_enqueue_timestamp
157 
158 			Timestamp of arrival of the last MPDU for this queue
159 
160 			<legal all>
161 
162 last_rx_dequeue_timestamp
163 
164 			Timestamp of forwarding an MPDU
165 
166 
167 
168 			If the queue is empty when a frame gets received, this
169 			time shall be initialized to the 'enqueue' timestamp
170 
171 
172 
173 			Used for aging
174 
175 			<legal all>
176 
177 rx_bitmap_31_0
178 
179 			When a bit is set, the corresponding frame is currently
180 			held in the re-order queue.
181 
182 			The bitmap  is Fully managed by HW.
183 
184 			SW shall init this to 0, and then never ever change it
185 
186 			<legal all>
187 
188 rx_bitmap_63_32
189 
190 			See Rx_bitmap_31_0 description
191 
192 			<legal all>
193 
194 rx_bitmap_95_64
195 
196 			See Rx_bitmap_31_0 description
197 
198 			<legal all>
199 
200 rx_bitmap_127_96
201 
202 			See Rx_bitmap_31_0 description
203 
204 			<legal all>
205 
206 rx_bitmap_159_128
207 
208 			See Rx_bitmap_31_0 description
209 
210 			<legal all>
211 
212 rx_bitmap_191_160
213 
214 			See Rx_bitmap_31_0 description
215 
216 			<legal all>
217 
218 rx_bitmap_223_192
219 
220 			See Rx_bitmap_31_0 description
221 
222 			<legal all>
223 
224 rx_bitmap_255_224
225 
226 			See Rx_bitmap_31_0 description
227 
228 			<legal all>
229 
230 current_mpdu_count
231 
232 			The number of MPDUs in the queue.
233 
234 
235 
236 			<legal all>
237 
238 current_msdu_count
239 
240 			The number of MSDUs in the queue.
241 
242 			<legal all>
243 
244 reserved_18
245 
246 			<legal 0>
247 
248 timeout_count
249 
250 			The number of times that REO started forwarding frames
251 			even though there is a hole in the bitmap. Forwarding reason
252 			is Timeout
253 
254 
255 
256 			The counter saturates and freezes at 0x3F
257 
258 
259 
260 			<legal all>
261 
262 forward_due_to_bar_count
263 
264 			The number of times that REO started forwarding frames
265 			even though there is a hole in the bitmap. Forwarding reason
266 			is reception of BAR frame.
267 
268 
269 
270 			The counter saturates and freezes at 0x3F
271 
272 
273 
274 			<legal all>
275 
276 duplicate_count
277 
278 			The number of duplicate frames that have been detected
279 
280 			<legal all>
281 
282 frames_in_order_count
283 
284 			The number of frames that have been received in order
285 			(without a hole that prevented them from being forwarded
286 			immediately)
287 
288 
289 
290 			This corresponds to the Reorder opcodes:
291 
292 			'FWDCUR' and 'FWD BUF'
293 
294 
295 
296 			<legal all>
297 
298 bar_received_count
299 
300 			The number of times a BAR frame is received.
301 
302 
303 
304 			This corresponds to the Reorder opcodes with 'DROP'
305 
306 
307 
308 			The counter saturates and freezes at 0xFF
309 
310 			<legal all>
311 
312 mpdu_frames_processed_count
313 
314 			The total number of MPDU frames that have been processed
315 			by REO. This includes the duplicates.
316 
317 
318 
319 			<legal all>
320 
321 msdu_frames_processed_count
322 
323 			The total number of MSDU frames that have been processed
324 			by REO. This includes the duplicates.
325 
326 
327 
328 			<legal all>
329 
330 total_processed_byte_count
331 
332 			An approximation of the number of bytes received for
333 			this queue.
334 
335 
336 
337 			In 64 byte units
338 
339 			<legal all>
340 
341 late_receive_mpdu_count
342 
343 			The number of MPDUs received after the window had
344 			already moved on. The 'late' sequence window is defined as
345 			(Window SSN - 256) - (Window SSN - 1)
346 
347 
348 
349 			This corresponds with Out of order detection in
350 			duplicate detect FSM
351 
352 
353 
354 			The counter saturates and freezes at 0xFFF
355 
356 
357 
358 			<legal all>
359 
360 window_jump_2k
361 
362 			The number of times the window moved more then 2K
363 
364 
365 
366 			The counter saturates and freezes at 0xF
367 
368 
369 
370 			(Note: field name can not start with number: previous
371 			2k_window_jump)
372 
373 
374 
375 			<legal all>
376 
377 hole_count
378 
379 			The number of times a hole was created in the receive
380 			bitmap.
381 
382 
383 
384 			This corresponds to the Reorder opcodes with 'QCUR'
385 
386 
387 
388 			<legal all>
389 
390 reserved_24a
391 
392 			<legal 0>
393 
394 looping_count
395 
396 			A count value that indicates the number of times the
397 			producer of entries into this Ring has looped around the
398 			ring.
399 
400 			At initialization time, this value is set to 0. On the
401 			first loop, this value is set to 1. After the max value is
402 			reached allowed by the number of bits for this field, the
403 			count value continues with 0 again.
404 
405 
406 
407 			In case SW is the consumer of the ring entries, it can
408 			use this field to figure out up to where the producer of
409 			entries has created new entries. This eliminates the need to
410 			check where the head pointer' of the ring is located once
411 			the SW starts processing an interrupt indicating that new
412 			entries have been put into this ring...
413 
414 
415 
416 			Also note that SW if it wants only needs to look at the
417 			LSB bit of this count value.
418 
419 			<legal all>
420 */
421 
422 #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_OFFSET 0x00000000
423 #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_LSB 28
424 #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_MASK 0xffffffff
425 #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_OFFSET 0x00000004
426 #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_LSB 28
427 #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_MASK 0xffffffff
428 
429 /* Description		REO_GET_QUEUE_STATS_STATUS_2_SSN
430 
431 			Starting Sequence number of the session, this changes
432 			whenever window moves. (can be filled by SW then maintained
433 			by REO)
434 
435 			<legal all>
436 */
437 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET                      0x00000008
438 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB                         0
439 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK                        0x00000fff
440 
441 /* Description		REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX
442 
443 			Points to last forwarded packet
444 
445 			<legal all>
446 */
447 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET            0x00000008
448 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB               12
449 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK              0x000ff000
450 
451 /* Description		REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2
452 
453 			<legal 0>
454 */
455 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET               0x00000008
456 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB                  20
457 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK                 0xfff00000
458 
459 /* Description		REO_GET_QUEUE_STATS_STATUS_3_PN_31_0
460 
461 
462 			<legal all>
463 */
464 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET                  0x0000000c
465 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB                     0
466 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK                    0xffffffff
467 
468 /* Description		REO_GET_QUEUE_STATS_STATUS_4_PN_63_32
469 
470 			Bits [63:32] of the PN number.
471 
472 			<legal all>
473 */
474 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET                 0x00000010
475 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB                    0
476 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK                   0xffffffff
477 
478 /* Description		REO_GET_QUEUE_STATS_STATUS_5_PN_95_64
479 
480 			Bits [95:64] of the PN number.
481 
482 			<legal all>
483 */
484 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET                 0x00000014
485 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB                    0
486 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK                   0xffffffff
487 
488 /* Description		REO_GET_QUEUE_STATS_STATUS_6_PN_127_96
489 
490 			Bits [127:96] of the PN number.
491 
492 			<legal all>
493 */
494 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET                0x00000018
495 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB                   0
496 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK                  0xffffffff
497 
498 /* Description		REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP
499 
500 			Timestamp of arrival of the last MPDU for this queue
501 
502 			<legal all>
503 */
504 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c
505 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB   0
506 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK  0xffffffff
507 
508 /* Description		REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP
509 
510 			Timestamp of forwarding an MPDU
511 
512 
513 
514 			If the queue is empty when a frame gets received, this
515 			time shall be initialized to the 'enqueue' timestamp
516 
517 
518 
519 			Used for aging
520 
521 			<legal all>
522 */
523 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020
524 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB   0
525 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK  0xffffffff
526 
527 /* Description		REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0
528 
529 			When a bit is set, the corresponding frame is currently
530 			held in the re-order queue.
531 
532 			The bitmap  is Fully managed by HW.
533 
534 			SW shall init this to 0, and then never ever change it
535 
536 			<legal all>
537 */
538 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET           0x00000024
539 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB              0
540 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK             0xffffffff
541 
542 /* Description		REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32
543 
544 			See Rx_bitmap_31_0 description
545 
546 			<legal all>
547 */
548 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET         0x00000028
549 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB            0
550 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK           0xffffffff
551 
552 /* Description		REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64
553 
554 			See Rx_bitmap_31_0 description
555 
556 			<legal all>
557 */
558 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET         0x0000002c
559 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB            0
560 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK           0xffffffff
561 
562 /* Description		REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96
563 
564 			See Rx_bitmap_31_0 description
565 
566 			<legal all>
567 */
568 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET        0x00000030
569 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB           0
570 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK          0xffffffff
571 
572 /* Description		REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128
573 
574 			See Rx_bitmap_31_0 description
575 
576 			<legal all>
577 */
578 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET       0x00000034
579 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB          0
580 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK         0xffffffff
581 
582 /* Description		REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160
583 
584 			See Rx_bitmap_31_0 description
585 
586 			<legal all>
587 */
588 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET       0x00000038
589 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB          0
590 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK         0xffffffff
591 
592 /* Description		REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192
593 
594 			See Rx_bitmap_31_0 description
595 
596 			<legal all>
597 */
598 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET       0x0000003c
599 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB          0
600 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK         0xffffffff
601 
602 /* Description		REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224
603 
604 			See Rx_bitmap_31_0 description
605 
606 			<legal all>
607 */
608 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET       0x00000040
609 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB          0
610 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK         0xffffffff
611 
612 /* Description		REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT
613 
614 			The number of MPDUs in the queue.
615 
616 
617 
618 			<legal all>
619 */
620 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET      0x00000044
621 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB         0
622 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK        0x0000007f
623 
624 /* Description		REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT
625 
626 			The number of MSDUs in the queue.
627 
628 			<legal all>
629 */
630 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET      0x00000044
631 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB         7
632 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK        0xffffff80
633 
634 /* Description		REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18
635 
636 			<legal 0>
637 */
638 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET             0x00000048
639 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB                0
640 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK               0x0000000f
641 
642 /* Description		REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT
643 
644 			The number of times that REO started forwarding frames
645 			even though there is a hole in the bitmap. Forwarding reason
646 			is Timeout
647 
648 
649 
650 			The counter saturates and freezes at 0x3F
651 
652 
653 
654 			<legal all>
655 */
656 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET           0x00000048
657 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB              4
658 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK             0x000003f0
659 
660 /* Description		REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT
661 
662 			The number of times that REO started forwarding frames
663 			even though there is a hole in the bitmap. Forwarding reason
664 			is reception of BAR frame.
665 
666 
667 
668 			The counter saturates and freezes at 0x3F
669 
670 
671 
672 			<legal all>
673 */
674 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048
675 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB   10
676 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK  0x0000fc00
677 
678 /* Description		REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT
679 
680 			The number of duplicate frames that have been detected
681 
682 			<legal all>
683 */
684 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET         0x00000048
685 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB            16
686 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK           0xffff0000
687 
688 /* Description		REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT
689 
690 			The number of frames that have been received in order
691 			(without a hole that prevented them from being forwarded
692 			immediately)
693 
694 
695 
696 			This corresponds to the Reorder opcodes:
697 
698 			'FWDCUR' and 'FWD BUF'
699 
700 
701 
702 			<legal all>
703 */
704 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET   0x0000004c
705 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB      0
706 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK     0x00ffffff
707 
708 /* Description		REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT
709 
710 			The number of times a BAR frame is received.
711 
712 
713 
714 			This corresponds to the Reorder opcodes with 'DROP'
715 
716 
717 
718 			The counter saturates and freezes at 0xFF
719 
720 			<legal all>
721 */
722 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET      0x0000004c
723 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB         24
724 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK        0xff000000
725 
726 /* Description		REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT
727 
728 			The total number of MPDU frames that have been processed
729 			by REO. This includes the duplicates.
730 
731 
732 
733 			<legal all>
734 */
735 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050
736 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0
737 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
738 
739 /* Description		REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT
740 
741 			The total number of MSDU frames that have been processed
742 			by REO. This includes the duplicates.
743 
744 
745 
746 			<legal all>
747 */
748 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054
749 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0
750 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
751 
752 /* Description		REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT
753 
754 			An approximation of the number of bytes received for
755 			this queue.
756 
757 
758 
759 			In 64 byte units
760 
761 			<legal all>
762 */
763 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058
764 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0
765 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff
766 
767 /* Description		REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT
768 
769 			The number of MPDUs received after the window had
770 			already moved on. The 'late' sequence window is defined as
771 			(Window SSN - 256) - (Window SSN - 1)
772 
773 
774 
775 			This corresponds with Out of order detection in
776 			duplicate detect FSM
777 
778 
779 
780 			The counter saturates and freezes at 0xFFF
781 
782 
783 
784 			<legal all>
785 */
786 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c
787 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB    0
788 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK   0x00000fff
789 
790 /* Description		REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K
791 
792 			The number of times the window moved more then 2K
793 
794 
795 
796 			The counter saturates and freezes at 0xF
797 
798 
799 
800 			(Note: field name can not start with number: previous
801 			2k_window_jump)
802 
803 
804 
805 			<legal all>
806 */
807 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET          0x0000005c
808 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB             12
809 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK            0x0000f000
810 
811 /* Description		REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT
812 
813 			The number of times a hole was created in the receive
814 			bitmap.
815 
816 
817 
818 			This corresponds to the Reorder opcodes with 'QCUR'
819 
820 
821 
822 			<legal all>
823 */
824 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET              0x0000005c
825 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB                 16
826 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK                0xffff0000
827 
828 /* Description		REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A
829 
830 			<legal 0>
831 */
832 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET            0x00000060
833 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB               0
834 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK              0x0fffffff
835 
836 /* Description		REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT
837 
838 			A count value that indicates the number of times the
839 			producer of entries into this Ring has looped around the
840 			ring.
841 
842 			At initialization time, this value is set to 0. On the
843 			first loop, this value is set to 1. After the max value is
844 			reached allowed by the number of bits for this field, the
845 			count value continues with 0 again.
846 
847 
848 
849 			In case SW is the consumer of the ring entries, it can
850 			use this field to figure out up to where the producer of
851 			entries has created new entries. This eliminates the need to
852 			check where the head pointer' of the ring is located once
853 			the SW starts processing an interrupt indicating that new
854 			entries have been put into this ring...
855 
856 
857 
858 			Also note that SW if it wants only needs to look at the
859 			LSB bit of this count value.
860 
861 			<legal all>
862 */
863 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET           0x00000060
864 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB              28
865 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK             0xf0000000
866 
867 
868 #endif // _REO_GET_QUEUE_STATS_STATUS_H_
869