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