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