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