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