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