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 _RX_MPDU_END_H_ 24 #define _RX_MPDU_END_H_ 25 #if !defined(__ASSEMBLER__) 26 #endif 27 28 29 // ################ START SUMMARY ################# 30 // 31 // Dword Fields 32 // 0 rxpcu_mpdu_filter_in_category[1:0], sw_frame_group_id[8:2], reserved_0[15:9], phy_ppdu_id[31:16] 33 // 1 reserved_1a[10:0], unsup_ktype_short_frame[11], rx_in_tx_decrypt_byp[12], overflow_err[13], mpdu_length_err[14], tkip_mic_err[15], decrypt_err[16], unencrypted_frame_err[17], pn_fields_contain_valid_info[18], fcs_err[19], msdu_length_err[20], rxdma0_destination_ring[22:21], rxdma1_destination_ring[24:23], decrypt_status_code[27:25], rx_bitmap_not_updated[28], reserved_1b[31:29] 34 // 35 // ################ END SUMMARY ################# 36 37 #define NUM_OF_DWORDS_RX_MPDU_END 2 38 39 struct rx_mpdu_end { 40 uint32_t rxpcu_mpdu_filter_in_category : 2, //[1:0] 41 sw_frame_group_id : 7, //[8:2] 42 reserved_0 : 7, //[15:9] 43 phy_ppdu_id : 16; //[31:16] 44 uint32_t reserved_1a : 11, //[10:0] 45 unsup_ktype_short_frame : 1, //[11] 46 rx_in_tx_decrypt_byp : 1, //[12] 47 overflow_err : 1, //[13] 48 mpdu_length_err : 1, //[14] 49 tkip_mic_err : 1, //[15] 50 decrypt_err : 1, //[16] 51 unencrypted_frame_err : 1, //[17] 52 pn_fields_contain_valid_info : 1, //[18] 53 fcs_err : 1, //[19] 54 msdu_length_err : 1, //[20] 55 rxdma0_destination_ring : 2, //[22:21] 56 rxdma1_destination_ring : 2, //[24:23] 57 decrypt_status_code : 3, //[27:25] 58 rx_bitmap_not_updated : 1, //[28] 59 reserved_1b : 3; //[31:29] 60 }; 61 62 /* 63 64 rxpcu_mpdu_filter_in_category 65 66 Field indicates what the reason was that this MPDU frame 67 was allowed to come into the receive path by RXPCU 68 69 <enum 0 rxpcu_filter_pass> This MPDU passed the normal 70 frame filter programming of rxpcu 71 72 <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the 73 regular frame filter and would have been dropped, were it 74 not for the frame fitting into the 'monitor_client' 75 category. 76 77 <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 78 regular frame filter and also did not pass the 79 rxpcu_monitor_client filter. It would have been dropped 80 accept that it did pass the 'monitor_other' category. 81 82 <legal 0-2> 83 84 sw_frame_group_id 85 86 SW processes frames based on certain classifications. 87 This field indicates to what sw classification this MPDU is 88 mapped. 89 90 The classification is given in priority order 91 92 93 94 <enum 0 sw_frame_group_NDP_frame> 95 96 97 98 <enum 1 sw_frame_group_Multicast_data> 99 100 <enum 2 sw_frame_group_Unicast_data> 101 102 <enum 3 sw_frame_group_Null_data > This includes mpdus 103 of type Data Null as well as QoS Data Null 104 105 106 107 <enum 4 sw_frame_group_mgmt_0000 > 108 109 <enum 5 sw_frame_group_mgmt_0001 > 110 111 <enum 6 sw_frame_group_mgmt_0010 > 112 113 <enum 7 sw_frame_group_mgmt_0011 > 114 115 <enum 8 sw_frame_group_mgmt_0100 > 116 117 <enum 9 sw_frame_group_mgmt_0101 > 118 119 <enum 10 sw_frame_group_mgmt_0110 > 120 121 <enum 11 sw_frame_group_mgmt_0111 > 122 123 <enum 12 sw_frame_group_mgmt_1000 > 124 125 <enum 13 sw_frame_group_mgmt_1001 > 126 127 <enum 14 sw_frame_group_mgmt_1010 > 128 129 <enum 15 sw_frame_group_mgmt_1011 > 130 131 <enum 16 sw_frame_group_mgmt_1100 > 132 133 <enum 17 sw_frame_group_mgmt_1101 > 134 135 <enum 18 sw_frame_group_mgmt_1110 > 136 137 <enum 19 sw_frame_group_mgmt_1111 > 138 139 140 141 <enum 20 sw_frame_group_ctrl_0000 > 142 143 <enum 21 sw_frame_group_ctrl_0001 > 144 145 <enum 22 sw_frame_group_ctrl_0010 > 146 147 <enum 23 sw_frame_group_ctrl_0011 > 148 149 <enum 24 sw_frame_group_ctrl_0100 > 150 151 <enum 25 sw_frame_group_ctrl_0101 > 152 153 <enum 26 sw_frame_group_ctrl_0110 > 154 155 <enum 27 sw_frame_group_ctrl_0111 > 156 157 <enum 28 sw_frame_group_ctrl_1000 > 158 159 <enum 29 sw_frame_group_ctrl_1001 > 160 161 <enum 30 sw_frame_group_ctrl_1010 > 162 163 <enum 31 sw_frame_group_ctrl_1011 > 164 165 <enum 32 sw_frame_group_ctrl_1100 > 166 167 <enum 33 sw_frame_group_ctrl_1101 > 168 169 <enum 34 sw_frame_group_ctrl_1110 > 170 171 <enum 35 sw_frame_group_ctrl_1111 > 172 173 174 175 <enum 36 sw_frame_group_unsupported> This covers type 3 176 and protocol version != 0 177 178 179 180 181 182 183 <legal 0-37> 184 185 reserved_0 186 187 <legal 0> 188 189 phy_ppdu_id 190 191 A ppdu counter value that PHY increments for every PPDU 192 received. The counter value wraps around 193 194 <legal all> 195 196 reserved_1a 197 198 <legal 0> 199 200 unsup_ktype_short_frame 201 202 This bit will be '1' when WEP or TKIP or WAPI key type 203 is received for 11ah short frame. Crypto will bypass the 204 received packet without decryption to RxOLE after setting 205 this bit. 206 207 rx_in_tx_decrypt_byp 208 209 Indicates that RX packet is not decrypted as Crypto is 210 busy with TX packet processing. 211 212 overflow_err 213 214 RXPCU Receive FIFO ran out of space to receive the full 215 MPDU. Therefor this MPDU is terminated early and is thus 216 corrupted. 217 218 219 220 This MPDU will not be ACKed. 221 222 RXPCU might still be able to correctly receive the 223 following MPDUs in the PPDU if enough fifo space became 224 available in time 225 226 mpdu_length_err 227 228 Set by RXPCU if the expected MPDU length does not 229 correspond with the actually received number of bytes in the 230 MPDU. 231 232 tkip_mic_err 233 234 Set by RX CRYPTO when CRYPTO detected a TKIP MIC error 235 for this MPDU 236 237 decrypt_err 238 239 Set by RX CRYPTO when CRYPTO detected a decrypt error 240 for this MPDU or CRYPTO received an encrypted frame, but did 241 not get a valid corresponding key id in the peer entry. 242 243 unencrypted_frame_err 244 245 Set by RX CRYPTO when CRYPTO detected an unencrypted 246 frame while in the peer entry field 247 'All_frames_shall_be_encrypted' is set. 248 249 pn_fields_contain_valid_info 250 251 Set by RX CRYPTO to indicate that there is a valid PN 252 field present in this MPDU 253 254 fcs_err 255 256 Set by RXPCU when there is an FCS error detected for 257 this MPDU 258 259 NOTE that when this field is set, all other (error) 260 field settings should be ignored as modules could have made 261 wrong decisions based on the corrupted data. 262 263 msdu_length_err 264 265 Set by RXOLE when there is an msdu length error detected 266 in at least 1 of the MSDUs embedded within the MPDU 267 268 rxdma0_destination_ring 269 270 The ring to which RXDMA0 shall push the frame, assuming 271 no MPDU level errors are detected. In case of MPDU level 272 errors, RXDMA0 might change the RXDMA0 destination 273 274 275 276 <enum 0 rxdma_release_ring > RXDMA0 shall push the 277 frame to the Release ring. Effectively this means the frame 278 needs to be dropped. 279 280 281 282 <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to 283 the FW ring 284 285 286 287 <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to 288 the SW ring 289 290 291 292 <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame 293 to the REO entrance ring 294 295 296 297 <legal all> 298 299 rxdma1_destination_ring 300 301 The ring to which RXDMA1 shall push the frame, assuming 302 no MPDU level errors are detected. In case of MPDU level 303 errors, RXDMA1 might change the RXDMA destination 304 305 306 307 <enum 0 rxdma_release_ring > RXDMA1 shall push the 308 frame to the Release ring. Effectively this means the frame 309 needs to be dropped. 310 311 312 313 <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to 314 the FW ring 315 316 317 318 <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to 319 the SW ring 320 321 322 323 <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame 324 to the REO entrance ring 325 326 327 328 <legal all> 329 330 decrypt_status_code 331 332 Field provides insight into the decryption performed 333 334 335 336 <enum 0 decrypt_ok> Frame had protection enabled and 337 decrypted properly 338 339 <enum 1 decrypt_unprotected_frame > Frame is unprotected 340 and hence bypassed 341 342 <enum 2 decrypt_data_err > Frame has protection enabled 343 and could not be properly decrypted due to MIC/ICV mismatch 344 etc. 345 346 <enum 3 decrypt_key_invalid > Frame has protection 347 enabled but the key that was required to decrypt this frame 348 was not valid 349 350 <enum 4 decrypt_peer_entry_invalid > Frame has 351 protection enabled but the key that was required to decrypt 352 this frame was not valid 353 354 <enum 5 decrypt_other > Reserved for other indications 355 356 357 358 <legal 0 - 5> 359 360 rx_bitmap_not_updated 361 362 Frame is received, but RXPCU could not update the 363 receive bitmap due to (temporary) fifo contraints. 364 365 <legal all> 366 367 reserved_1b 368 369 <legal 0> 370 */ 371 372 373 /* Description RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY 374 375 Field indicates what the reason was that this MPDU frame 376 was allowed to come into the receive path by RXPCU 377 378 <enum 0 rxpcu_filter_pass> This MPDU passed the normal 379 frame filter programming of rxpcu 380 381 <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the 382 regular frame filter and would have been dropped, were it 383 not for the frame fitting into the 'monitor_client' 384 category. 385 386 <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 387 regular frame filter and also did not pass the 388 rxpcu_monitor_client filter. It would have been dropped 389 accept that it did pass the 'monitor_other' category. 390 391 <legal 0-2> 392 */ 393 #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x00000000 394 #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0 395 #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x00000003 396 397 /* Description RX_MPDU_END_0_SW_FRAME_GROUP_ID 398 399 SW processes frames based on certain classifications. 400 This field indicates to what sw classification this MPDU is 401 mapped. 402 403 The classification is given in priority order 404 405 406 407 <enum 0 sw_frame_group_NDP_frame> 408 409 410 411 <enum 1 sw_frame_group_Multicast_data> 412 413 <enum 2 sw_frame_group_Unicast_data> 414 415 <enum 3 sw_frame_group_Null_data > This includes mpdus 416 of type Data Null as well as QoS Data Null 417 418 419 420 <enum 4 sw_frame_group_mgmt_0000 > 421 422 <enum 5 sw_frame_group_mgmt_0001 > 423 424 <enum 6 sw_frame_group_mgmt_0010 > 425 426 <enum 7 sw_frame_group_mgmt_0011 > 427 428 <enum 8 sw_frame_group_mgmt_0100 > 429 430 <enum 9 sw_frame_group_mgmt_0101 > 431 432 <enum 10 sw_frame_group_mgmt_0110 > 433 434 <enum 11 sw_frame_group_mgmt_0111 > 435 436 <enum 12 sw_frame_group_mgmt_1000 > 437 438 <enum 13 sw_frame_group_mgmt_1001 > 439 440 <enum 14 sw_frame_group_mgmt_1010 > 441 442 <enum 15 sw_frame_group_mgmt_1011 > 443 444 <enum 16 sw_frame_group_mgmt_1100 > 445 446 <enum 17 sw_frame_group_mgmt_1101 > 447 448 <enum 18 sw_frame_group_mgmt_1110 > 449 450 <enum 19 sw_frame_group_mgmt_1111 > 451 452 453 454 <enum 20 sw_frame_group_ctrl_0000 > 455 456 <enum 21 sw_frame_group_ctrl_0001 > 457 458 <enum 22 sw_frame_group_ctrl_0010 > 459 460 <enum 23 sw_frame_group_ctrl_0011 > 461 462 <enum 24 sw_frame_group_ctrl_0100 > 463 464 <enum 25 sw_frame_group_ctrl_0101 > 465 466 <enum 26 sw_frame_group_ctrl_0110 > 467 468 <enum 27 sw_frame_group_ctrl_0111 > 469 470 <enum 28 sw_frame_group_ctrl_1000 > 471 472 <enum 29 sw_frame_group_ctrl_1001 > 473 474 <enum 30 sw_frame_group_ctrl_1010 > 475 476 <enum 31 sw_frame_group_ctrl_1011 > 477 478 <enum 32 sw_frame_group_ctrl_1100 > 479 480 <enum 33 sw_frame_group_ctrl_1101 > 481 482 <enum 34 sw_frame_group_ctrl_1110 > 483 484 <enum 35 sw_frame_group_ctrl_1111 > 485 486 487 488 <enum 36 sw_frame_group_unsupported> This covers type 3 489 and protocol version != 0 490 491 492 493 494 495 496 <legal 0-37> 497 */ 498 #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_OFFSET 0x00000000 499 #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_LSB 2 500 #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_MASK 0x000001fc 501 502 /* Description RX_MPDU_END_0_RESERVED_0 503 504 <legal 0> 505 */ 506 #define RX_MPDU_END_0_RESERVED_0_OFFSET 0x00000000 507 #define RX_MPDU_END_0_RESERVED_0_LSB 9 508 #define RX_MPDU_END_0_RESERVED_0_MASK 0x0000fe00 509 510 /* Description RX_MPDU_END_0_PHY_PPDU_ID 511 512 A ppdu counter value that PHY increments for every PPDU 513 received. The counter value wraps around 514 515 <legal all> 516 */ 517 #define RX_MPDU_END_0_PHY_PPDU_ID_OFFSET 0x00000000 518 #define RX_MPDU_END_0_PHY_PPDU_ID_LSB 16 519 #define RX_MPDU_END_0_PHY_PPDU_ID_MASK 0xffff0000 520 521 /* Description RX_MPDU_END_1_RESERVED_1A 522 523 <legal 0> 524 */ 525 #define RX_MPDU_END_1_RESERVED_1A_OFFSET 0x00000004 526 #define RX_MPDU_END_1_RESERVED_1A_LSB 0 527 #define RX_MPDU_END_1_RESERVED_1A_MASK 0x000007ff 528 529 /* Description RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME 530 531 This bit will be '1' when WEP or TKIP or WAPI key type 532 is received for 11ah short frame. Crypto will bypass the 533 received packet without decryption to RxOLE after setting 534 this bit. 535 */ 536 #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_OFFSET 0x00000004 537 #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_LSB 11 538 #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_MASK 0x00000800 539 540 /* Description RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP 541 542 Indicates that RX packet is not decrypted as Crypto is 543 busy with TX packet processing. 544 */ 545 #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_OFFSET 0x00000004 546 #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_LSB 12 547 #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_MASK 0x00001000 548 549 /* Description RX_MPDU_END_1_OVERFLOW_ERR 550 551 RXPCU Receive FIFO ran out of space to receive the full 552 MPDU. Therefor this MPDU is terminated early and is thus 553 corrupted. 554 555 556 557 This MPDU will not be ACKed. 558 559 RXPCU might still be able to correctly receive the 560 following MPDUs in the PPDU if enough fifo space became 561 available in time 562 */ 563 #define RX_MPDU_END_1_OVERFLOW_ERR_OFFSET 0x00000004 564 #define RX_MPDU_END_1_OVERFLOW_ERR_LSB 13 565 #define RX_MPDU_END_1_OVERFLOW_ERR_MASK 0x00002000 566 567 /* Description RX_MPDU_END_1_MPDU_LENGTH_ERR 568 569 Set by RXPCU if the expected MPDU length does not 570 correspond with the actually received number of bytes in the 571 MPDU. 572 */ 573 #define RX_MPDU_END_1_MPDU_LENGTH_ERR_OFFSET 0x00000004 574 #define RX_MPDU_END_1_MPDU_LENGTH_ERR_LSB 14 575 #define RX_MPDU_END_1_MPDU_LENGTH_ERR_MASK 0x00004000 576 577 /* Description RX_MPDU_END_1_TKIP_MIC_ERR 578 579 Set by RX CRYPTO when CRYPTO detected a TKIP MIC error 580 for this MPDU 581 */ 582 #define RX_MPDU_END_1_TKIP_MIC_ERR_OFFSET 0x00000004 583 #define RX_MPDU_END_1_TKIP_MIC_ERR_LSB 15 584 #define RX_MPDU_END_1_TKIP_MIC_ERR_MASK 0x00008000 585 586 /* Description RX_MPDU_END_1_DECRYPT_ERR 587 588 Set by RX CRYPTO when CRYPTO detected a decrypt error 589 for this MPDU or CRYPTO received an encrypted frame, but did 590 not get a valid corresponding key id in the peer entry. 591 */ 592 #define RX_MPDU_END_1_DECRYPT_ERR_OFFSET 0x00000004 593 #define RX_MPDU_END_1_DECRYPT_ERR_LSB 16 594 #define RX_MPDU_END_1_DECRYPT_ERR_MASK 0x00010000 595 596 /* Description RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR 597 598 Set by RX CRYPTO when CRYPTO detected an unencrypted 599 frame while in the peer entry field 600 'All_frames_shall_be_encrypted' is set. 601 */ 602 #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_OFFSET 0x00000004 603 #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_LSB 17 604 #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_MASK 0x00020000 605 606 /* Description RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO 607 608 Set by RX CRYPTO to indicate that there is a valid PN 609 field present in this MPDU 610 */ 611 #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000004 612 #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_LSB 18 613 #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00040000 614 615 /* Description RX_MPDU_END_1_FCS_ERR 616 617 Set by RXPCU when there is an FCS error detected for 618 this MPDU 619 620 NOTE that when this field is set, all other (error) 621 field settings should be ignored as modules could have made 622 wrong decisions based on the corrupted data. 623 */ 624 #define RX_MPDU_END_1_FCS_ERR_OFFSET 0x00000004 625 #define RX_MPDU_END_1_FCS_ERR_LSB 19 626 #define RX_MPDU_END_1_FCS_ERR_MASK 0x00080000 627 628 /* Description RX_MPDU_END_1_MSDU_LENGTH_ERR 629 630 Set by RXOLE when there is an msdu length error detected 631 in at least 1 of the MSDUs embedded within the MPDU 632 */ 633 #define RX_MPDU_END_1_MSDU_LENGTH_ERR_OFFSET 0x00000004 634 #define RX_MPDU_END_1_MSDU_LENGTH_ERR_LSB 20 635 #define RX_MPDU_END_1_MSDU_LENGTH_ERR_MASK 0x00100000 636 637 /* Description RX_MPDU_END_1_RXDMA0_DESTINATION_RING 638 639 The ring to which RXDMA0 shall push the frame, assuming 640 no MPDU level errors are detected. In case of MPDU level 641 errors, RXDMA0 might change the RXDMA0 destination 642 643 644 645 <enum 0 rxdma_release_ring > RXDMA0 shall push the 646 frame to the Release ring. Effectively this means the frame 647 needs to be dropped. 648 649 650 651 <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to 652 the FW ring 653 654 655 656 <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to 657 the SW ring 658 659 660 661 <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame 662 to the REO entrance ring 663 664 665 666 <legal all> 667 */ 668 #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_OFFSET 0x00000004 669 #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_LSB 21 670 #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_MASK 0x00600000 671 672 /* Description RX_MPDU_END_1_RXDMA1_DESTINATION_RING 673 674 The ring to which RXDMA1 shall push the frame, assuming 675 no MPDU level errors are detected. In case of MPDU level 676 errors, RXDMA1 might change the RXDMA destination 677 678 679 680 <enum 0 rxdma_release_ring > RXDMA1 shall push the 681 frame to the Release ring. Effectively this means the frame 682 needs to be dropped. 683 684 685 686 <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to 687 the FW ring 688 689 690 691 <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to 692 the SW ring 693 694 695 696 <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame 697 to the REO entrance ring 698 699 700 701 <legal all> 702 */ 703 #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_OFFSET 0x00000004 704 #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_LSB 23 705 #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_MASK 0x01800000 706 707 /* Description RX_MPDU_END_1_DECRYPT_STATUS_CODE 708 709 Field provides insight into the decryption performed 710 711 712 713 <enum 0 decrypt_ok> Frame had protection enabled and 714 decrypted properly 715 716 <enum 1 decrypt_unprotected_frame > Frame is unprotected 717 and hence bypassed 718 719 <enum 2 decrypt_data_err > Frame has protection enabled 720 and could not be properly decrypted due to MIC/ICV mismatch 721 etc. 722 723 <enum 3 decrypt_key_invalid > Frame has protection 724 enabled but the key that was required to decrypt this frame 725 was not valid 726 727 <enum 4 decrypt_peer_entry_invalid > Frame has 728 protection enabled but the key that was required to decrypt 729 this frame was not valid 730 731 <enum 5 decrypt_other > Reserved for other indications 732 733 734 735 <legal 0 - 5> 736 */ 737 #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_OFFSET 0x00000004 738 #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_LSB 25 739 #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_MASK 0x0e000000 740 741 /* Description RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED 742 743 Frame is received, but RXPCU could not update the 744 receive bitmap due to (temporary) fifo contraints. 745 746 <legal all> 747 */ 748 #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_OFFSET 0x00000004 749 #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_LSB 28 750 #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_MASK 0x10000000 751 752 /* Description RX_MPDU_END_1_RESERVED_1B 753 754 <legal 0> 755 */ 756 #define RX_MPDU_END_1_RESERVED_1B_OFFSET 0x00000004 757 #define RX_MPDU_END_1_RESERVED_1B_LSB 29 758 #define RX_MPDU_END_1_RESERVED_1B_MASK 0xe0000000 759 760 761 #endif // _RX_MPDU_END_H_ 762