xref: /wlan-driver/fw-api/hw/wcn6450/v1/rx_ppdu_end_user_stats.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /*
3*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name #ifndef _RX_PPDU_END_USER_STATS_H_
23*5113495bSYour Name #define _RX_PPDU_END_USER_STATS_H_
24*5113495bSYour Name #if !defined(__ASSEMBLER__)
25*5113495bSYour Name #endif
26*5113495bSYour Name 
27*5113495bSYour Name #include "rx_rxpcu_classification_overview.h"
28*5113495bSYour Name 
29*5113495bSYour Name #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 23
30*5113495bSYour Name 
31*5113495bSYour Name struct rx_ppdu_end_user_stats {
32*5113495bSYour Name     struct            rx_rxpcu_classification_overview                       rxpcu_classification_details;
33*5113495bSYour Name              uint32_t sta_full_aid                    : 13,
34*5113495bSYour Name                       mcs                             :  4,
35*5113495bSYour Name                       nss                             :  3,
36*5113495bSYour Name                       ofdma_info_valid                :  1,
37*5113495bSYour Name                       dl_ofdma_ru_start_index         :  7,
38*5113495bSYour Name                       reserved_1a                     :  4;
39*5113495bSYour Name              uint32_t dl_ofdma_ru_width               :  7,
40*5113495bSYour Name                       reserved_2a                     :  1,
41*5113495bSYour Name                       user_receive_quality            :  8,
42*5113495bSYour Name                       mpdu_cnt_fcs_err                : 10,
43*5113495bSYour Name                       wbm2rxdma_buf_source_used       :  1,
44*5113495bSYour Name                       fw2rxdma_buf_source_used        :  1,
45*5113495bSYour Name                       sw2rxdma_buf_source_used        :  1,
46*5113495bSYour Name                       reserved_2b                     :  3;
47*5113495bSYour Name              uint32_t mpdu_cnt_fcs_ok                 :  9,
48*5113495bSYour Name                       frame_control_info_valid        :  1,
49*5113495bSYour Name                       qos_control_info_valid          :  1,
50*5113495bSYour Name                       ht_control_info_valid           :  1,
51*5113495bSYour Name                       data_sequence_control_info_valid:  1,
52*5113495bSYour Name                       ht_control_info_null_valid      :  1,
53*5113495bSYour Name                       reserved_3a                     :  2,
54*5113495bSYour Name                       rxdma2reo_ring_used             :  1,
55*5113495bSYour Name                       rxdma2fw_ring_used              :  1,
56*5113495bSYour Name                       rxdma2sw_ring_used              :  1,
57*5113495bSYour Name                       rxdma_release_ring_used         :  1,
58*5113495bSYour Name                       ht_control_field_pkt_type       :  4,
59*5113495bSYour Name                       reserved_3b                     :  8;
60*5113495bSYour Name              uint32_t ast_index                       : 16,
61*5113495bSYour Name                       frame_control_field             : 16;
62*5113495bSYour Name              uint32_t first_data_seq_ctrl             : 16,
63*5113495bSYour Name                       qos_control_field               : 16;
64*5113495bSYour Name              uint32_t ht_control_field                : 32;
65*5113495bSYour Name              uint32_t fcs_ok_bitmap_31_0              : 32;
66*5113495bSYour Name              uint32_t fcs_ok_bitmap_63_32             : 32;
67*5113495bSYour Name              uint32_t udp_msdu_count                  : 16,
68*5113495bSYour Name                       tcp_msdu_count                  : 16;
69*5113495bSYour Name              uint32_t other_msdu_count                : 16,
70*5113495bSYour Name                       tcp_ack_msdu_count              : 16;
71*5113495bSYour Name              uint32_t sw_response_reference_ptr       : 32;
72*5113495bSYour Name              uint32_t received_qos_data_tid_bitmap    : 16,
73*5113495bSYour Name                       received_qos_data_tid_eosp_bitmap: 16;
74*5113495bSYour Name              uint32_t qosctrl_15_8_tid0               :  8,
75*5113495bSYour Name                       qosctrl_15_8_tid1               :  8,
76*5113495bSYour Name                       qosctrl_15_8_tid2               :  8,
77*5113495bSYour Name                       qosctrl_15_8_tid3               :  8;
78*5113495bSYour Name              uint32_t qosctrl_15_8_tid4               :  8,
79*5113495bSYour Name                       qosctrl_15_8_tid5               :  8,
80*5113495bSYour Name                       qosctrl_15_8_tid6               :  8,
81*5113495bSYour Name                       qosctrl_15_8_tid7               :  8;
82*5113495bSYour Name              uint32_t qosctrl_15_8_tid8               :  8,
83*5113495bSYour Name                       qosctrl_15_8_tid9               :  8,
84*5113495bSYour Name                       qosctrl_15_8_tid10              :  8,
85*5113495bSYour Name                       qosctrl_15_8_tid11              :  8;
86*5113495bSYour Name              uint32_t qosctrl_15_8_tid12              :  8,
87*5113495bSYour Name                       qosctrl_15_8_tid13              :  8,
88*5113495bSYour Name                       qosctrl_15_8_tid14              :  8,
89*5113495bSYour Name                       qosctrl_15_8_tid15              :  8;
90*5113495bSYour Name              uint32_t mpdu_ok_byte_count              : 25,
91*5113495bSYour Name                       ampdu_delim_ok_count_6_0        :  7;
92*5113495bSYour Name              uint32_t ampdu_delim_err_count           : 25,
93*5113495bSYour Name                       ampdu_delim_ok_count_13_7       :  7;
94*5113495bSYour Name              uint32_t mpdu_err_byte_count             : 25,
95*5113495bSYour Name                       ampdu_delim_ok_count_20_14      :  7;
96*5113495bSYour Name              uint32_t non_consecutive_delimiter_err   : 16,
97*5113495bSYour Name                       reserved_20a                    : 16;
98*5113495bSYour Name              uint32_t ht_control_null_field           : 32;
99*5113495bSYour Name              uint32_t sw_response_reference_ptr_ext   : 32;
100*5113495bSYour Name };
101*5113495bSYour Name 
102*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x00000000
103*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
104*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x00000001
105*5113495bSYour Name 
106*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000
107*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
108*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002
109*5113495bSYour Name 
110*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000
111*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
112*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x00000004
113*5113495bSYour Name 
114*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000
115*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
116*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008
117*5113495bSYour Name 
118*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x00000000
119*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
120*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x00000010
121*5113495bSYour Name 
122*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000
123*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
124*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020
125*5113495bSYour Name 
126*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000
127*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
128*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x00000040
129*5113495bSYour Name 
130*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x00000000
131*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 7
132*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x0000ff80
133*5113495bSYour Name 
134*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
135*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16
136*5113495bSYour Name #define RX_PPDU_END_USER_STATS_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0xffff0000
137*5113495bSYour Name 
138*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_OFFSET                 0x00000004
139*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_LSB                    0
140*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_STA_FULL_AID_MASK                   0x00001fff
141*5113495bSYour Name 
142*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_MCS_OFFSET                          0x00000004
143*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_MCS_LSB                             13
144*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_MCS_MASK                            0x0001e000
145*5113495bSYour Name 
146*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_NSS_OFFSET                          0x00000004
147*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_NSS_LSB                             17
148*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_NSS_MASK                            0x000e0000
149*5113495bSYour Name 
150*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_OFFSET             0x00000004
151*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_LSB                20
152*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_OFDMA_INFO_VALID_MASK               0x00100000
153*5113495bSYour Name 
154*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_OFFSET      0x00000004
155*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_LSB         21
156*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_DL_OFDMA_RU_START_INDEX_MASK        0x0fe00000
157*5113495bSYour Name 
158*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_RESERVED_1A_OFFSET                  0x00000004
159*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_RESERVED_1A_LSB                     28
160*5113495bSYour Name #define RX_PPDU_END_USER_STATS_1_RESERVED_1A_MASK                    0xf0000000
161*5113495bSYour Name 
162*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_OFFSET            0x00000008
163*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_LSB               0
164*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_DL_OFDMA_RU_WIDTH_MASK              0x0000007f
165*5113495bSYour Name 
166*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2A_OFFSET                  0x00000008
167*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2A_LSB                     7
168*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2A_MASK                    0x00000080
169*5113495bSYour Name 
170*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_OFFSET         0x00000008
171*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_LSB            8
172*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_USER_RECEIVE_QUALITY_MASK           0x0000ff00
173*5113495bSYour Name 
174*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_OFFSET             0x00000008
175*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_LSB                16
176*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_MPDU_CNT_FCS_ERR_MASK               0x03ff0000
177*5113495bSYour Name 
178*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_OFFSET    0x00000008
179*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_LSB       26
180*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_WBM2RXDMA_BUF_SOURCE_USED_MASK      0x04000000
181*5113495bSYour Name 
182*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_OFFSET     0x00000008
183*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_LSB        27
184*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_FW2RXDMA_BUF_SOURCE_USED_MASK       0x08000000
185*5113495bSYour Name 
186*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_OFFSET     0x00000008
187*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_LSB        28
188*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_SW2RXDMA_BUF_SOURCE_USED_MASK       0x10000000
189*5113495bSYour Name 
190*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2B_OFFSET                  0x00000008
191*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2B_LSB                     29
192*5113495bSYour Name #define RX_PPDU_END_USER_STATS_2_RESERVED_2B_MASK                    0xe0000000
193*5113495bSYour Name 
194*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_OFFSET              0x0000000c
195*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_LSB                 0
196*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_MPDU_CNT_FCS_OK_MASK                0x000001ff
197*5113495bSYour Name 
198*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_OFFSET     0x0000000c
199*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_LSB        9
200*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_FRAME_CONTROL_INFO_VALID_MASK       0x00000200
201*5113495bSYour Name 
202*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_OFFSET       0x0000000c
203*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_LSB          10
204*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_QOS_CONTROL_INFO_VALID_MASK         0x00000400
205*5113495bSYour Name 
206*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_OFFSET        0x0000000c
207*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_LSB           11
208*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_VALID_MASK          0x00000800
209*5113495bSYour Name 
210*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET 0x0000000c
211*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB 12
212*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK 0x00001000
213*5113495bSYour Name 
214*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_OFFSET   0x0000000c
215*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_LSB      13
216*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_INFO_NULL_VALID_MASK     0x00002000
217*5113495bSYour Name 
218*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3A_OFFSET                  0x0000000c
219*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3A_LSB                     14
220*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3A_MASK                    0x0000c000
221*5113495bSYour Name 
222*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_OFFSET          0x0000000c
223*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_LSB             16
224*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2REO_RING_USED_MASK            0x00010000
225*5113495bSYour Name 
226*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_OFFSET           0x0000000c
227*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_LSB              17
228*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2FW_RING_USED_MASK             0x00020000
229*5113495bSYour Name 
230*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_OFFSET           0x0000000c
231*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_LSB              18
232*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA2SW_RING_USED_MASK             0x00040000
233*5113495bSYour Name 
234*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_OFFSET      0x0000000c
235*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_LSB         19
236*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RXDMA_RELEASE_RING_USED_MASK        0x00080000
237*5113495bSYour Name 
238*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_OFFSET    0x0000000c
239*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_LSB       20
240*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_HT_CONTROL_FIELD_PKT_TYPE_MASK      0x00f00000
241*5113495bSYour Name 
242*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3B_OFFSET                  0x0000000c
243*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3B_LSB                     24
244*5113495bSYour Name #define RX_PPDU_END_USER_STATS_3_RESERVED_3B_MASK                    0xff000000
245*5113495bSYour Name 
246*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_AST_INDEX_OFFSET                    0x00000010
247*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_AST_INDEX_LSB                       0
248*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_AST_INDEX_MASK                      0x0000ffff
249*5113495bSYour Name 
250*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_OFFSET          0x00000010
251*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_LSB             16
252*5113495bSYour Name #define RX_PPDU_END_USER_STATS_4_FRAME_CONTROL_FIELD_MASK            0xffff0000
253*5113495bSYour Name 
254*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_OFFSET          0x00000014
255*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_LSB             0
256*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_FIRST_DATA_SEQ_CTRL_MASK            0x0000ffff
257*5113495bSYour Name 
258*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_OFFSET            0x00000014
259*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_LSB               16
260*5113495bSYour Name #define RX_PPDU_END_USER_STATS_5_QOS_CONTROL_FIELD_MASK              0xffff0000
261*5113495bSYour Name 
262*5113495bSYour Name #define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_OFFSET             0x00000018
263*5113495bSYour Name #define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_LSB                0
264*5113495bSYour Name #define RX_PPDU_END_USER_STATS_6_HT_CONTROL_FIELD_MASK               0xffffffff
265*5113495bSYour Name 
266*5113495bSYour Name #define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_OFFSET           0x0000001c
267*5113495bSYour Name #define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_LSB              0
268*5113495bSYour Name #define RX_PPDU_END_USER_STATS_7_FCS_OK_BITMAP_31_0_MASK             0xffffffff
269*5113495bSYour Name 
270*5113495bSYour Name #define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_OFFSET          0x00000020
271*5113495bSYour Name #define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_LSB             0
272*5113495bSYour Name #define RX_PPDU_END_USER_STATS_8_FCS_OK_BITMAP_63_32_MASK            0xffffffff
273*5113495bSYour Name 
274*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_OFFSET               0x00000024
275*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_LSB                  0
276*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_UDP_MSDU_COUNT_MASK                 0x0000ffff
277*5113495bSYour Name 
278*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_OFFSET               0x00000024
279*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_LSB                  16
280*5113495bSYour Name #define RX_PPDU_END_USER_STATS_9_TCP_MSDU_COUNT_MASK                 0xffff0000
281*5113495bSYour Name 
282*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_OFFSET            0x00000028
283*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_LSB               0
284*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_OTHER_MSDU_COUNT_MASK              0x0000ffff
285*5113495bSYour Name 
286*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_OFFSET          0x00000028
287*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_LSB             16
288*5113495bSYour Name #define RX_PPDU_END_USER_STATS_10_TCP_ACK_MSDU_COUNT_MASK            0xffff0000
289*5113495bSYour Name 
290*5113495bSYour Name #define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_OFFSET   0x0000002c
291*5113495bSYour Name #define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_LSB      0
292*5113495bSYour Name #define RX_PPDU_END_USER_STATS_11_SW_RESPONSE_REFERENCE_PTR_MASK     0xffffffff
293*5113495bSYour Name 
294*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET 0x00000030
295*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_LSB   0
296*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_BITMAP_MASK  0x0000ffff
297*5113495bSYour Name 
298*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET 0x00000030
299*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB 16
300*5113495bSYour Name #define RX_PPDU_END_USER_STATS_12_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK 0xffff0000
301*5113495bSYour Name 
302*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_OFFSET           0x00000034
303*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_LSB              0
304*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID0_MASK             0x000000ff
305*5113495bSYour Name 
306*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_OFFSET           0x00000034
307*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_LSB              8
308*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID1_MASK             0x0000ff00
309*5113495bSYour Name 
310*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_OFFSET           0x00000034
311*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_LSB              16
312*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID2_MASK             0x00ff0000
313*5113495bSYour Name 
314*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_OFFSET           0x00000034
315*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_LSB              24
316*5113495bSYour Name #define RX_PPDU_END_USER_STATS_13_QOSCTRL_15_8_TID3_MASK             0xff000000
317*5113495bSYour Name 
318*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_OFFSET           0x00000038
319*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_LSB              0
320*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID4_MASK             0x000000ff
321*5113495bSYour Name 
322*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_OFFSET           0x00000038
323*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_LSB              8
324*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID5_MASK             0x0000ff00
325*5113495bSYour Name 
326*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_OFFSET           0x00000038
327*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_LSB              16
328*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID6_MASK             0x00ff0000
329*5113495bSYour Name 
330*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_OFFSET           0x00000038
331*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_LSB              24
332*5113495bSYour Name #define RX_PPDU_END_USER_STATS_14_QOSCTRL_15_8_TID7_MASK             0xff000000
333*5113495bSYour Name 
334*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_OFFSET           0x0000003c
335*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_LSB              0
336*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID8_MASK             0x000000ff
337*5113495bSYour Name 
338*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_OFFSET           0x0000003c
339*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_LSB              8
340*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID9_MASK             0x0000ff00
341*5113495bSYour Name 
342*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_OFFSET          0x0000003c
343*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_LSB             16
344*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID10_MASK            0x00ff0000
345*5113495bSYour Name 
346*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_OFFSET          0x0000003c
347*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_LSB             24
348*5113495bSYour Name #define RX_PPDU_END_USER_STATS_15_QOSCTRL_15_8_TID11_MASK            0xff000000
349*5113495bSYour Name 
350*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_OFFSET          0x00000040
351*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_LSB             0
352*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID12_MASK            0x000000ff
353*5113495bSYour Name 
354*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_OFFSET          0x00000040
355*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_LSB             8
356*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID13_MASK            0x0000ff00
357*5113495bSYour Name 
358*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_OFFSET          0x00000040
359*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_LSB             16
360*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID14_MASK            0x00ff0000
361*5113495bSYour Name 
362*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_OFFSET          0x00000040
363*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_LSB             24
364*5113495bSYour Name #define RX_PPDU_END_USER_STATS_16_QOSCTRL_15_8_TID15_MASK            0xff000000
365*5113495bSYour Name 
366*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_OFFSET          0x00000044
367*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_LSB             0
368*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_MPDU_OK_BYTE_COUNT_MASK            0x01ffffff
369*5113495bSYour Name 
370*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_OFFSET    0x00000044
371*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_LSB       25
372*5113495bSYour Name #define RX_PPDU_END_USER_STATS_17_AMPDU_DELIM_OK_COUNT_6_0_MASK      0xfe000000
373*5113495bSYour Name 
374*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_OFFSET       0x00000048
375*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_LSB          0
376*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_ERR_COUNT_MASK         0x01ffffff
377*5113495bSYour Name 
378*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_OFFSET   0x00000048
379*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_LSB      25
380*5113495bSYour Name #define RX_PPDU_END_USER_STATS_18_AMPDU_DELIM_OK_COUNT_13_7_MASK     0xfe000000
381*5113495bSYour Name 
382*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_OFFSET         0x0000004c
383*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_LSB            0
384*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_MPDU_ERR_BYTE_COUNT_MASK           0x01ffffff
385*5113495bSYour Name 
386*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_OFFSET  0x0000004c
387*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_LSB     25
388*5113495bSYour Name #define RX_PPDU_END_USER_STATS_19_AMPDU_DELIM_OK_COUNT_20_14_MASK    0xfe000000
389*5113495bSYour Name 
390*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET 0x00000050
391*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_LSB  0
392*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_NON_CONSECUTIVE_DELIMITER_ERR_MASK 0x0000ffff
393*5113495bSYour Name 
394*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_RESERVED_20A_OFFSET                0x00000050
395*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_RESERVED_20A_LSB                   16
396*5113495bSYour Name #define RX_PPDU_END_USER_STATS_20_RESERVED_20A_MASK                  0xffff0000
397*5113495bSYour Name 
398*5113495bSYour Name #define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_OFFSET       0x00000054
399*5113495bSYour Name #define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_LSB          0
400*5113495bSYour Name #define RX_PPDU_END_USER_STATS_21_HT_CONTROL_NULL_FIELD_MASK         0xffffffff
401*5113495bSYour Name 
402*5113495bSYour Name #define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET 0x00000058
403*5113495bSYour Name #define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_LSB  0
404*5113495bSYour Name #define RX_PPDU_END_USER_STATS_22_SW_RESPONSE_REFERENCE_PTR_EXT_MASK 0xffffffff
405*5113495bSYour Name 
406*5113495bSYour Name #endif
407