1 /* 2 * Copyright (c) 2019 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 422 /* EXTERNAL REFERENCE : struct uniform_reo_status_header status_header */ 423 424 425 /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER 426 427 Consumer: SW , DEBUG 428 429 Producer: REO 430 431 432 433 The value in this field is equal to value of the 434 'REO_CMD_Number' field the REO command 435 436 437 438 This field helps to correlate the statuses with the REO 439 commands. 440 441 442 443 <legal all> 444 */ 445 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000 446 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0 447 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff 448 449 /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME 450 451 Consumer: DEBUG 452 453 Producer: REO 454 455 456 457 The amount of time REO took to excecute the command. 458 Note that this time does not include the duration of the 459 command waiting in the command ring, before the execution 460 started. 461 462 463 464 In us. 465 466 467 468 <legal all> 469 */ 470 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000 471 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16 472 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000 473 474 /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS 475 476 Consumer: DEBUG 477 478 Producer: REO 479 480 481 482 Execution status of the command. 483 484 485 486 <enum 0 reo_successful_execution> Command has 487 successfully be executed 488 489 <enum 1 reo_blocked_execution> Command could not be 490 executed as the queue or cache was blocked 491 492 <enum 2 reo_failed_execution> Command has encountered 493 problems when executing, like the queue descriptor not being 494 valid. None of the status fields in the entire STATUS TLV 495 are valid. 496 497 <enum 3 reo_resource_blocked> Command is NOT executed 498 because one or more descriptors were blocked. This is SW 499 programming mistake. 500 501 None of the status fields in the entire STATUS TLV are 502 valid. 503 504 505 506 <legal 0-3> 507 */ 508 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000 509 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26 510 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000 511 512 /* Description REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A 513 514 <legal 0> 515 */ 516 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET 0x00000000 517 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB 28 518 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK 0xf0000000 519 520 /* Description REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP 521 522 Timestamp at the moment that this status report is 523 written. 524 525 526 527 <legal all> 528 */ 529 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET 0x00000004 530 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB 0 531 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK 0xffffffff 532 533 /* Description REO_GET_QUEUE_STATS_STATUS_2_SSN 534 535 Starting Sequence number of the session, this changes 536 whenever window moves. (can be filled by SW then maintained 537 by REO) 538 539 <legal all> 540 */ 541 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET 0x00000008 542 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB 0 543 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK 0x00000fff 544 545 /* Description REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX 546 547 Points to last forwarded packet 548 549 <legal all> 550 */ 551 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET 0x00000008 552 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB 12 553 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK 0x000ff000 554 555 /* Description REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2 556 557 <legal 0> 558 */ 559 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET 0x00000008 560 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB 20 561 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK 0xfff00000 562 563 /* Description REO_GET_QUEUE_STATS_STATUS_3_PN_31_0 564 565 566 <legal all> 567 */ 568 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET 0x0000000c 569 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB 0 570 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK 0xffffffff 571 572 /* Description REO_GET_QUEUE_STATS_STATUS_4_PN_63_32 573 574 Bits [63:32] of the PN number. 575 576 <legal all> 577 */ 578 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET 0x00000010 579 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB 0 580 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK 0xffffffff 581 582 /* Description REO_GET_QUEUE_STATS_STATUS_5_PN_95_64 583 584 Bits [95:64] of the PN number. 585 586 <legal all> 587 */ 588 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET 0x00000014 589 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB 0 590 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK 0xffffffff 591 592 /* Description REO_GET_QUEUE_STATS_STATUS_6_PN_127_96 593 594 Bits [127:96] of the PN number. 595 596 <legal all> 597 */ 598 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET 0x00000018 599 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB 0 600 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK 0xffffffff 601 602 /* Description REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP 603 604 Timestamp of arrival of the last MPDU for this queue 605 606 <legal all> 607 */ 608 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c 609 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB 0 610 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK 0xffffffff 611 612 /* Description REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP 613 614 Timestamp of forwarding an MPDU 615 616 617 618 If the queue is empty when a frame gets received, this 619 time shall be initialized to the 'enqueue' timestamp 620 621 622 623 Used for aging 624 625 <legal all> 626 */ 627 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020 628 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB 0 629 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK 0xffffffff 630 631 /* Description REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0 632 633 When a bit is set, the corresponding frame is currently 634 held in the re-order queue. 635 636 The bitmap is Fully managed by HW. 637 638 SW shall init this to 0, and then never ever change it 639 640 <legal all> 641 */ 642 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET 0x00000024 643 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB 0 644 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK 0xffffffff 645 646 /* Description REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32 647 648 See Rx_bitmap_31_0 description 649 650 <legal all> 651 */ 652 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET 0x00000028 653 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB 0 654 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK 0xffffffff 655 656 /* Description REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64 657 658 See Rx_bitmap_31_0 description 659 660 <legal all> 661 */ 662 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET 0x0000002c 663 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB 0 664 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK 0xffffffff 665 666 /* Description REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96 667 668 See Rx_bitmap_31_0 description 669 670 <legal all> 671 */ 672 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET 0x00000030 673 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB 0 674 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK 0xffffffff 675 676 /* Description REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128 677 678 See Rx_bitmap_31_0 description 679 680 <legal all> 681 */ 682 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET 0x00000034 683 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB 0 684 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK 0xffffffff 685 686 /* Description REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160 687 688 See Rx_bitmap_31_0 description 689 690 <legal all> 691 */ 692 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET 0x00000038 693 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB 0 694 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK 0xffffffff 695 696 /* Description REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192 697 698 See Rx_bitmap_31_0 description 699 700 <legal all> 701 */ 702 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET 0x0000003c 703 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB 0 704 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK 0xffffffff 705 706 /* Description REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224 707 708 See Rx_bitmap_31_0 description 709 710 <legal all> 711 */ 712 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET 0x00000040 713 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB 0 714 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK 0xffffffff 715 716 /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT 717 718 The number of MPDUs in the queue. 719 720 721 722 <legal all> 723 */ 724 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET 0x00000044 725 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB 0 726 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK 0x0000007f 727 728 /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT 729 730 The number of MSDUs in the queue. 731 732 <legal all> 733 */ 734 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET 0x00000044 735 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB 7 736 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK 0xffffff80 737 738 /* Description REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18 739 740 <legal 0> 741 */ 742 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET 0x00000048 743 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB 0 744 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK 0x0000000f 745 746 /* Description REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT 747 748 The number of times that REO started forwarding frames 749 even though there is a hole in the bitmap. Forwarding reason 750 is Timeout 751 752 753 754 The counter saturates and freezes at 0x3F 755 756 757 758 <legal all> 759 */ 760 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET 0x00000048 761 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB 4 762 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK 0x000003f0 763 764 /* Description REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT 765 766 The number of times that REO started forwarding frames 767 even though there is a hole in the bitmap. Forwarding reason 768 is reception of BAR frame. 769 770 771 772 The counter saturates and freezes at 0x3F 773 774 775 776 <legal all> 777 */ 778 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048 779 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB 10 780 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK 0x0000fc00 781 782 /* Description REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT 783 784 The number of duplicate frames that have been detected 785 786 <legal all> 787 */ 788 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET 0x00000048 789 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB 16 790 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK 0xffff0000 791 792 /* Description REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT 793 794 The number of frames that have been received in order 795 (without a hole that prevented them from being forwarded 796 immediately) 797 798 799 800 This corresponds to the Reorder opcodes: 801 802 'FWDCUR' and 'FWD BUF' 803 804 805 806 <legal all> 807 */ 808 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET 0x0000004c 809 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB 0 810 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK 0x00ffffff 811 812 /* Description REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT 813 814 The number of times a BAR frame is received. 815 816 817 818 This corresponds to the Reorder opcodes with 'DROP' 819 820 821 822 The counter saturates and freezes at 0xFF 823 824 <legal all> 825 */ 826 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET 0x0000004c 827 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB 24 828 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK 0xff000000 829 830 /* Description REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT 831 832 The total number of MPDU frames that have been processed 833 by REO. This includes the duplicates. 834 835 836 837 <legal all> 838 */ 839 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050 840 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0 841 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff 842 843 /* Description REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT 844 845 The total number of MSDU frames that have been processed 846 by REO. This includes the duplicates. 847 848 849 850 <legal all> 851 */ 852 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054 853 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0 854 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff 855 856 /* Description REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT 857 858 An approximation of the number of bytes received for 859 this queue. 860 861 862 863 In 64 byte units 864 865 <legal all> 866 */ 867 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058 868 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0 869 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff 870 871 /* Description REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT 872 873 The number of MPDUs received after the window had 874 already moved on. The 'late' sequence window is defined as 875 (Window SSN - 256) - (Window SSN - 1) 876 877 878 879 This corresponds with Out of order detection in 880 duplicate detect FSM 881 882 883 884 The counter saturates and freezes at 0xFFF 885 886 887 888 <legal all> 889 */ 890 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c 891 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB 0 892 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK 0x00000fff 893 894 /* Description REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K 895 896 The number of times the window moved more then 2K 897 898 899 900 The counter saturates and freezes at 0xF 901 902 903 904 (Note: field name can not start with number: previous 905 2k_window_jump) 906 907 908 909 <legal all> 910 */ 911 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET 0x0000005c 912 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB 12 913 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK 0x0000f000 914 915 /* Description REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT 916 917 The number of times a hole was created in the receive 918 bitmap. 919 920 921 922 This corresponds to the Reorder opcodes with 'QCUR' 923 924 925 926 <legal all> 927 */ 928 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET 0x0000005c 929 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB 16 930 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK 0xffff0000 931 932 /* Description REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A 933 934 <legal 0> 935 */ 936 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET 0x00000060 937 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB 0 938 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK 0x0fffffff 939 940 /* Description REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT 941 942 A count value that indicates the number of times the 943 producer of entries into this Ring has looped around the 944 ring. 945 946 At initialization time, this value is set to 0. On the 947 first loop, this value is set to 1. After the max value is 948 reached allowed by the number of bits for this field, the 949 count value continues with 0 again. 950 951 952 953 In case SW is the consumer of the ring entries, it can 954 use this field to figure out up to where the producer of 955 entries has created new entries. This eliminates the need to 956 check where the head pointer' of the ring is located once 957 the SW starts processing an interrupt indicating that new 958 entries have been put into this ring... 959 960 961 962 Also note that SW if it wants only needs to look at the 963 LSB bit of this count value. 964 965 <legal all> 966 */ 967 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET 0x00000060 968 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB 28 969 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK 0xf0000000 970 971 972 #endif // _REO_GET_QUEUE_STATS_STATUS_H_ 973