Lines Matching +full:a +full:- +full:bit
1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
3 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
27 #define RX_MPDU_START_INFO0_FLOW_ID_TOEPLITZ BIT(7)
28 #define RX_MPDU_START_INFO0_PKT_SEL_FP_UCAST_DATA BIT(8)
29 #define RX_MPDU_START_INFO0_PKT_SEL_FP_MCAST_DATA BIT(9)
30 #define RX_MPDU_START_INFO0_PKT_SEL_FP_CTRL_BAR BIT(10)
33 #define RX_MPDU_START_INFO0_MCAST_ECHO_DROP_EN BIT(17)
34 #define RX_MPDU_START_INFO0_WDS_LEARN_DETECT_EN BIT(18)
35 #define RX_MPDU_START_INFO0_INTRA_BSS_CHECK_EN BIT(19)
36 #define RX_MPDU_START_INFO0_USE_PPE BIT(20)
37 #define RX_MPDU_START_INFO0_PPE_ROUTING_EN BIT(21)
41 #define RX_MPDU_START_INFO1_PRE_DELIM_ERR_WARN BIT(24)
42 #define RX_MPDU_START_INFO1_FIRST_DELIM_ERR BIT(25)
44 #define RX_MPDU_START_INFO2_EPD_EN BIT(0)
45 #define RX_MPDU_START_INFO2_ALL_FRAME_ENCPD BIT(1)
49 #define RX_MPDU_START_INFO2_BSSID_HIT BIT(10)
55 #define RX_MPDU_START_INFO3_NDP_FRAME BIT(9)
56 #define RX_MPDU_START_INFO3_PHY_ERR BIT(10)
57 #define RX_MPDU_START_INFO3_PHY_ERR_MPDU_HDR BIT(11)
58 #define RX_MPDU_START_INFO3_PROTO_VER_ERR BIT(12)
59 #define RX_MPDU_START_INFO3_AST_LOOKUP_VALID BIT(13)
60 #define RX_MPDU_START_INFO3_RANGING BIT(14)
62 #define RX_MPDU_START_INFO4_MPDU_FCTRL_VALID BIT(0)
63 #define RX_MPDU_START_INFO4_MPDU_DUR_VALID BIT(1)
64 #define RX_MPDU_START_INFO4_MAC_ADDR1_VALID BIT(2)
65 #define RX_MPDU_START_INFO4_MAC_ADDR2_VALID BIT(3)
66 #define RX_MPDU_START_INFO4_MAC_ADDR3_VALID BIT(4)
67 #define RX_MPDU_START_INFO4_MAC_ADDR4_VALID BIT(5)
68 #define RX_MPDU_START_INFO4_MPDU_SEQ_CTRL_VALID BIT(6)
69 #define RX_MPDU_START_INFO4_MPDU_QOS_CTRL_VALID BIT(7)
70 #define RX_MPDU_START_INFO4_MPDU_HT_CTRL_VALID BIT(8)
71 #define RX_MPDU_START_INFO4_ENCRYPT_INFO_VALID BIT(9)
73 #define RX_MPDU_START_INFO4_MORE_FRAG_FLAG BIT(14)
74 #define RX_MPDU_START_INFO4_FROM_DS BIT(16)
75 #define RX_MPDU_START_INFO4_TO_DS BIT(17)
76 #define RX_MPDU_START_INFO4_ENCRYPTED BIT(18)
77 #define RX_MPDU_START_INFO4_MPDU_RETRY BIT(19)
81 #define RX_MPDU_START_INFO5_NEW_PEER_ENTRY BIT(8)
82 #define RX_MPDU_START_INFO5_DECRYPT_NEEDED BIT(9)
84 #define RX_MPDU_START_INFO5_VLAN_TAG_C_PADDING BIT(12)
85 #define RX_MPDU_START_INFO5_VLAN_TAG_S_PADDING BIT(13)
86 #define RX_MPDU_START_INFO5_STRIP_VLAN_TAG_C BIT(14)
87 #define RX_MPDU_START_INFO5_STRIP_VLAN_TAG_S BIT(15)
89 #define RX_MPDU_START_INFO5_AMPDU_FLAG BIT(28)
90 #define RX_MPDU_START_INFO5_BAR_FRAME BIT(29)
91 #define RX_MPDU_START_INFO5_RAW_MPDU BIT(30)
94 #define RX_MPDU_START_INFO6_FIRST_MPDU BIT(14)
95 #define RX_MPDU_START_INFO6_MCAST_BCAST BIT(15)
96 #define RX_MPDU_START_INFO6_AST_IDX_NOT_FOUND BIT(16)
97 #define RX_MPDU_START_INFO6_AST_IDX_TIMEOUT BIT(17)
98 #define RX_MPDU_START_INFO6_POWER_MGMT BIT(18)
99 #define RX_MPDU_START_INFO6_NON_QOS BIT(19)
100 #define RX_MPDU_START_INFO6_NULL_DATA BIT(20)
101 #define RX_MPDU_START_INFO6_MGMT_TYPE BIT(21)
102 #define RX_MPDU_START_INFO6_CTRL_TYPE BIT(22)
103 #define RX_MPDU_START_INFO6_MORE_DATA BIT(23)
104 #define RX_MPDU_START_INFO6_EOSP BIT(24)
105 #define RX_MPDU_START_INFO6_FRAGMENT BIT(25)
106 #define RX_MPDU_START_INFO6_ORDER BIT(26)
107 #define RX_MPDU_START_INFO6_UAPSD_TRIGGER BIT(27)
108 #define RX_MPDU_START_INFO6_ENCRYPT_REQUIRED BIT(28)
109 #define RX_MPDU_START_INFO6_DIRECTED BIT(29)
110 #define RX_MPDU_START_INFO6_AMSDU_PRESENT BIT(30)
114 #define RX_MPDU_START_INFO7_PRIORITY_VALID BIT(17)
117 #define RX_MPDU_START_INFO8_AUTH_TO_SEND_WDS BIT(0)
160 * is 2'b00, Rx OLE uses a REO destination indicati'n of {1'b1,
164 * 's not 2'b00, Rx OLE uses a REO destination indication of
187 * pkt_selection_fp_... bit is set
191 * pkt_selection_fp_... bit is set
202 * field in address search failure cache-only entry should
206 * If set, intra-BSS routing detection is enabled
210 * and use a programmed value corresponding to the REO2PPE
220 * Global enable/disable bit for routing to PPE, used to disable
222 * This is set by SW for peers which are being handled by a
224 * buffer management for WiFi-to-PPE routing.
227 * by a different subsystem, completely disabling WiFi-to-PPE
241 * Indicates that a delimiter FCS error was found in between the
242 * previous MPDU and this MPDU. Note that this is just a warning,
248 * Indicates that the first delimiter had a FCS failure.
310 * When set, a PHY error was received before MAC received any
314 * When set, a PHY error was received before MAC received the
318 * Set when RXPCU detected a version error in the Frame control
322 * When set, AST based lookup for this frame has found a valid
326 * When set, a ranging NDPA or a ranging NDP was received.
329 * A ppdu counter value that PHY increments for every PPDU
337 * A value of 0xFFFF indicates an invalid AST index, meaning
343 * This field indicates a unique peer identifier. It is set
359 * For MPDUs without a sequence control field, this field will
365 * information, For MPDUs without a QoS,HT control field, this field
381 * The More Fragment bit setting from the MPDU header of the
387 * Set if the from DS bit is set in the frame control.
392 * Set if the to DS bit is set in the frame control.
397 * Protected bit from the frame control.
401 * Retry bit from the frame control. Only valid when first_msdu is set
417 * When RXPCU sets bit 'ast_index_not_found or ast_index_timeout',
418 * RXPCU will also ensure that this bit is NOT set. CRYPTO for that
419 * reason only needs to evaluate this bit and non of the other ones
437 * received MPDU in the PPDU and this MPDU gets filtered-in,
446 * Received frame was part of an A-MPDU.
449 * Received frame is a BAR frame
459 * and last_mpdu are set in the MSDU then this is a not an
460 * A-MPDU frame but a stand alone MPDU. Interior MPDU in an
461 * A-MPDU shall have both first_mpdu and last_mpdu bits set to
462 * 0. The PPDU start status will only be valid when this bit
467 * address 1 bit 0 is set indicating mcast/bcast and the BSSID
480 * Power management bit set in the 802.11 header. Only set
484 * Set if packet is not a non-QoS data frame. Only set when
492 * Set if packet is a management packet. Only set when
496 * Set if packet is a control packet. Only set when first_msdu
500 * Set if more bit in frame control is set. Only set when
504 * Set if the EOSP (end of service period) bit in the QoS
512 * Set if the order bit in the frame control is set. Only
516 * U-APSD trigger frame
524 * MPDU is a directed packet which means that the RA matched
527 * 'no_ack' bit is the address search entry cleared.
539 * address valid bit is set
547 * RXOLE uses this to determine intra-BSS routing.
550 * Opaque service code between PPE and Wi-Fi
566 * data frames to multi-link addresses during decapsulation to eth/nwifi
569 * Multi-link receiver address1,2. Only valid when corresponding
570 * valid bit is set
573 * If not set, RXDMA shall perform error-routing for WDS packets
617 #define RX_MSDU_END_INFO2_CCND_TRUNCATE BIT(14)
618 #define RX_MSDU_END_INFO2_CCND_CCE_DIS BIT(15)
622 #define RX_MSDU_END_INFO3_DA_OFFSET_VALID BIT(12)
623 #define RX_MSDU_END_INFO3_SA_OFFSET_VALID BIT(13)
626 #define RX_MSDU_END_INFO4_LRO_ELIGIBLE BIT(9)
628 #define RX_MSDU_END_INFO5_SA_IDX_TIMEOUT BIT(0)
629 #define RX_MSDU_END_INFO5_DA_IDX_TIMEOUT BIT(1)
630 #define RX_MSDU_END_INFO5_SA_IS_VALID BIT(7)
631 #define RX_MSDU_END_INFO5_DA_IS_VALID BIT(8)
632 #define RX_MSDU_END_INFO5_DA_IS_MCBC BIT(9)
634 #define RX_MSDU_END_INFO5_FIRST_MSDU BIT(12)
635 #define RX_MSDU_END_INFO5_LAST_MSDU BIT(13)
636 #define RX_MSDU_END_INFO5_IP_CHKSUM_FAIL_COPY BIT(15)
638 #define RX_MSDU_END_QCN9274_INFO5_TO_DS BIT(2)
640 #define RX_MSDU_END_QCN9274_INFO5_FROM_DS BIT(14)
642 #define RX_MSDU_END_INFO6_MSDU_DROP BIT(0)
645 #define RX_MSDU_END_INFO6_USE_PPE BIT(26)
647 #define RX_MSDU_END_INFO6_VLAN_CTAG_STRIPPED BIT(29)
648 #define RX_MSDU_END_INFO6_VLAN_STAG_STRIPPED BIT(30)
649 #define RX_MSDU_END_INFO6_FRAGMENT_FLAG BIT(31)
652 #define RX_MSDU_END_INFO7_FLOW_AGGR_CONTN BIT(8)
653 #define RX_MSDU_END_INFO7_FISA_TIMEOUT BIT(9)
655 #define RX_MSDU_END_QCN9274_INFO7_TCPUDP_CSUM_FAIL_CPY BIT(10)
656 #define RX_MSDU_END_QCN9274_INFO7_MSDU_LIMIT_ERROR BIT(11)
657 #define RX_MSDU_END_QCN9274_INFO7_FLOW_IDX_TIMEOUT BIT(12)
658 #define RX_MSDU_END_QCN9274_INFO7_FLOW_IDX_INVALID BIT(13)
659 #define RX_MSDU_END_QCN9274_INFO7_CCE_MATCH BIT(14)
660 #define RX_MSDU_END_QCN9274_INFO7_AMSDU_PARSER_ERR BIT(15)
665 #define RX_MSDU_END_INFO9_PRIORITY_VALID BIT(15)
666 #define RX_MSDU_END_INFO9_INRA_BSS BIT(16)
668 #define RX_MSDU_END_INFO9_MCAST_ECHO BIT(19)
669 #define RX_MSDU_END_INFO9_WDS_LEARN_EVENT BIT(20)
670 #define RX_MSDU_END_INFO9_WDS_ROAM_EVENT BIT(21)
671 #define RX_MSDU_END_INFO9_WDS_KEEP_ALIVE_EVENT BIT(22)
674 #define RX_MSDU_END_INFO10_STBC BIT(14)
675 #define RX_MSDU_END_INFO10_IPSEC_ESP BIT(15)
677 #define RX_MSDU_END_INFO10_IPSEC_AH BIT(23)
682 #define RX_MSDU_END_INFO11_IPV4 BIT(10)
683 #define RX_MSDU_END_INFO11_IPV6 BIT(11)
684 #define RX_MSDU_END_INFO11_TCP BIT(12)
685 #define RX_MSDU_END_INFO11_UDP BIT(13)
686 #define RX_MSDU_END_INFO11_IP_FRAG BIT(14)
687 #define RX_MSDU_END_INFO11_TCP_ONLY_ACK BIT(15)
688 #define RX_MSDU_END_INFO11_DA_IS_BCAST_MCAST BIT(16)
690 #define RX_MSDU_END_INFO11_IP_FIXED_HDR_VALID BIT(19)
691 #define RX_MSDU_END_INFO11_IP_EXTN_HDR_VALID BIT(20)
692 #define RX_MSDU_END_INFO11_IP_TCP_UDP_HDR_VALID BIT(21)
693 #define RX_MSDU_END_INFO11_MESH_CTRL_PRESENT BIT(22)
694 #define RX_MSDU_END_INFO11_LDPC BIT(23)
705 #define RX_MSDU_END_QCN9274_INFO12_MIMO_DONE_COPY BIT(31)
707 #define RX_MSDU_END_INFO13_FIRST_MPDU BIT(0)
708 #define RX_MSDU_END_INFO13_MCAST_BCAST BIT(2)
709 #define RX_MSDU_END_INFO13_AST_IDX_NOT_FOUND BIT(3)
710 #define RX_MSDU_END_INFO13_AST_IDX_TIMEDOUT BIT(4)
711 #define RX_MSDU_END_INFO13_POWER_MGMT BIT(5)
712 #define RX_MSDU_END_INFO13_NON_QOS BIT(6)
713 #define RX_MSDU_END_INFO13_NULL_DATA BIT(7)
714 #define RX_MSDU_END_INFO13_MGMT_TYPE BIT(8)
715 #define RX_MSDU_END_INFO13_CTRL_TYPE BIT(9)
716 #define RX_MSDU_END_INFO13_MORE_DATA BIT(10)
717 #define RX_MSDU_END_INFO13_EOSP BIT(11)
718 #define RX_MSDU_END_INFO13_A_MSDU_ERROR BIT(12)
719 #define RX_MSDU_END_INFO13_ORDER BIT(14)
720 #define RX_MSDU_END_INFO13_OVERFLOW_ERR BIT(16)
721 #define RX_MSDU_END_INFO13_MSDU_LEN_ERR BIT(17)
722 #define RX_MSDU_END_INFO13_TCP_UDP_CKSUM_FAIL BIT(18)
723 #define RX_MSDU_END_INFO13_IP_CKSUM_FAIL BIT(19)
724 #define RX_MSDU_END_INFO13_SA_IDX_INVALID BIT(20)
725 #define RX_MSDU_END_INFO13_DA_IDX_INVALID BIT(21)
726 #define RX_MSDU_END_INFO13_AMSDU_ADDR_MISMATCH BIT(22)
727 #define RX_MSDU_END_INFO13_RX_IN_TX_DECRYPT_BYP BIT(23)
728 #define RX_MSDU_END_INFO13_ENCRYPT_REQUIRED BIT(24)
729 #define RX_MSDU_END_INFO13_DIRECTED BIT(25)
730 #define RX_MSDU_END_INFO13_BUFFER_FRAGMENT BIT(26)
731 #define RX_MSDU_END_INFO13_MPDU_LEN_ERR BIT(27)
732 #define RX_MSDU_END_INFO13_TKIP_MIC_ERR BIT(28)
733 #define RX_MSDU_END_INFO13_DECRYPT_ERR BIT(29)
734 #define RX_MSDU_END_INFO13_UNDECRYPT_FRAME_ERR BIT(30)
735 #define RX_MSDU_END_INFO13_FCS_ERR BIT(31)
737 #define RX_MSDU_END_QCN9274_INFO13_WIFI_PARSER_ERR BIT(15)
740 #define RX_MSDU_END_INFO14_RX_BITMAP_NOT_UPDED BIT(13)
741 #define RX_MSDU_END_INFO14_MSDU_DONE BIT(31)
790 #define RX_MSDU_END_WCN7850_INFO2_KEY_ID BIT(7, 0)
792 #define RX_MSDU_END_WCN7850_INFO5_MSDU_LIMIT_ERR BIT(2)
793 #define RX_MSDU_END_WCN7850_INFO5_IDX_TIMEOUT BIT(3)
794 #define RX_MSDU_END_WCN7850_INFO5_IDX_INVALID BIT(4)
795 #define RX_MSDU_END_WCN7850_INFO5_WIFI_PARSE_ERR BIT(5)
796 #define RX_MSDU_END_WCN7850_INFO5_AMSDU_PARSER_ERR BIT(6)
797 #define RX_MSDU_END_WCN7850_INFO5_TCPUDP_CSUM_FAIL_CPY BIT(14)
801 #define RX_MSDU_END_WCN7850_INFO13_FRAGMENT_FLAG BIT(13)
802 #define RX_MSDU_END_WCN7850_INFO13_CCE_MATCH BIT(15)
860 * A ppdu counter value that PHY increments for every PPDU
870 * A-MPDU delimiter or the preamble length field for non-A-MPDU
891 * 32 bit CRC computed out of IP v6 extension headers.
901 * of a dynamic A-MSDU when DA is compressed.
905 * of a dynamic A-MSDU when SA is compressed.
908 * The 16-bit type value indicating the type of L3 later
941 * Set if the to DS bit is set in the frame control.
947 * Indicates that OLE found a valid SA entry.
950 * Indicates that OLE found a valid DA entry.
954 * was a Multicast of Broadcast address.
958 * always start of a Dword boundary.
961 * Indicates the first MSDU of A-MSDU. If both first_msdu and
962 * last_msdu are set in the MSDU then this is a non-aggregated MSDU
963 * frame: normal MPDU. Interior MSDU in an A-MSDU shall have both
967 * Indicates the last MSDU of the A-MSDU. MPDU end status is only
971 * Set if the from DS bit is set in the frame control.
982 * Based on a register configuration in RXOLE, this field will
1002 * and use a programmed value corresponding to the REO2PPE
1006 * When set, this is a Mesh (11s) STA.
1009 * Set by RXOLE if it stripped 4-bytes of C-VLAN Tag from the
1013 * Set by RXOLE if it stripped 4-bytes of S-VLAN Tag from the
1018 * set when either the more_frag bit is set in the frame control
1029 * The value of the computed TCP/UDP checksum. A mode bit
1051 * decapsulated but will be DMA'ed in RAW format as a single MSDU.
1061 * Indicates that this status has a corresponding MSDU that
1067 * A-MSDU could not be properly de-agregated.
1077 * Opaque service code between PPE and Wi-Fi
1083 * This packet needs intra-BSS routing by SW as the 'vdev_id'
1089 * to support intra-BSS routing with multi-chip multi-link
1094 * If set, this packet is a multicast echo, i.e. the DA is
1111 * than the current timestamp by more than a threshold programmed
1117 * This field is still valid for MPDU frames without A-MSDU.
1127 * Depending upon mode bit, this field either indicates the
1137 * Depending upon mode bit, this field either indicates the
1146 * Indicates the MSDU number within a MPDU. This value is
1169 * Indicates that either the IP More frag bit is set or IP frag
1170 * number is non-zero. If set indicates that this is a fragmented
1174 * Set if only the TCP Ack bit is set in the TCP flags and if
1182 * 0 - Toeplitz hash of 2-tuple (IP source address, IP
1184 * 1 - Toeplitz hash of 4-tuple (IP source address,
1187 * 2 - Toeplitz of flow_id
1188 * 3 - Zero is used
1191 * Fixed 20-byte IPv4 header or 40-byte IPv6 header parsed
1200 * Fixed 20-byte TCP (excluding TCP options) or 8-byte UDP
1209 * For IPv4, this is the 8 bit protocol field set). For IPv6 this
1210 * is the 8 bit next_header field.
1214 * 2 bytes of C-VLAN Tag Control Information from WHO_L2_LLC
1217 * 2 bytes of S-VLAN Tag Control Information from WHO_L2_LLC
1250 * Bitmap, with each bit indicating if the related spatial
1255 * 0 - spatial stream not used for this reception
1256 * 1 - spatial stream used for this reception
1262 * are all valid. This bit is in the last 64-bit of the descriptor
1266 * Toeplitz hash of 5-tuple
1268 * destination port, L4 protocol} in case of non-IPSec.
1270 * In case of IPSec - Toeplitz hash of 4-tuple
1289 * IPv4/IPv6 - Either, Toeplitz hash computed over 2-tuple
1291 * hash computed over 4-tuple IPv4 or IPv6 src/dest addresses
1294 * is the one used for hash-based REO routing (see use_flow_id_toeplitz_clfy
1302 * and last_mpdu are set in the MSDU then this is a not an
1303 * A-MPDU frame but a stand alone MPDU. Interior MPDU in an
1304 * A-MPDU shall have both first_mpdu and last_mpdu bits set to
1305 * 0. The PPDU start status will only be valid when this bit
1310 * address 1 bit 0 is set indicating mcast/bcast and the BSSID
1323 * Power management bit set in the 802.11 header. Only set
1327 * Set if packet is not a non-QoS data frame. Only set when
1335 * Set if packet is a management packet. Only set when
1339 * Set if packet is a control packet. Only set when first_msdu
1343 * Set if more bit in frame control is set. Only set when
1347 * Set if the EOSP (end of service period) bit in the QoS
1351 * Set if number of MSDUs in A-MSDU is above a threshold or if the
1356 * Set if the order bit in the frame control is set. Only
1392 * Indicates that an A-MSDU with 'from DS = 0' had an SA mismatching
1393 * TA or an A-MDU with 'to DS = 0' had a DA mismatching RA
1405 * MPDU is a directed packet which means that the RA matched
1408 * 'no_ack' bit is the address search entry cleared.
1416 * Indicates that the MPDU was pre-maturely terminated
1417 * resulting in a truncated MPDU. Don't trust the MPDU length
1448 * valid. This bit must be in the last octet of the