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