rx_ppdu_end_user_stats.h 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031
  1. /*
  2. * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
  3. * SPDX-License-Identifier: ISC
  4. */
  5. #ifndef _RX_PPDU_END_USER_STATS_H_
  6. #define _RX_PPDU_END_USER_STATS_H_
  7. #if !defined(__ASSEMBLER__)
  8. #endif
  9. #include "rx_rxpcu_classification_overview.h"
  10. #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 30
  11. #define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS 15
  12. struct rx_ppdu_end_user_stats {
  13. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  14. struct rx_rxpcu_classification_overview rxpcu_classification_details;
  15. uint32_t sta_full_aid : 13,
  16. mcs : 4,
  17. nss : 3,
  18. expected_response_ack_or_ba : 1,
  19. reserved_1a : 11;
  20. uint32_t sw_peer_id : 16,
  21. mpdu_cnt_fcs_err : 11,
  22. sw2rxdma0_buf_source_used : 1,
  23. fw2rxdma_pmac0_buf_source_used : 1,
  24. sw2rxdma1_buf_source_used : 1,
  25. sw2rxdma_exception_buf_source_used : 1,
  26. fw2rxdma_pmac1_buf_source_used : 1;
  27. uint32_t mpdu_cnt_fcs_ok : 11,
  28. frame_control_info_valid : 1,
  29. qos_control_info_valid : 1,
  30. ht_control_info_valid : 1,
  31. data_sequence_control_info_valid : 1,
  32. ht_control_info_null_valid : 1,
  33. rxdma2fw_pmac1_ring_used : 1,
  34. rxdma2reo_ring_used : 1,
  35. rxdma2fw_pmac0_ring_used : 1,
  36. rxdma2sw_ring_used : 1,
  37. rxdma_release_ring_used : 1,
  38. ht_control_field_pkt_type : 4,
  39. rxdma2reo_remote0_ring_used : 1,
  40. rxdma2reo_remote1_ring_used : 1,
  41. rxdma2reo_remote2_ring_used : 1,
  42. rxdma2reo_remote3_ring_used : 1,
  43. reserved_3b : 3;
  44. uint32_t ast_index : 16,
  45. frame_control_field : 16;
  46. uint32_t first_data_seq_ctrl : 16,
  47. qos_control_field : 16;
  48. uint32_t ht_control_field : 32;
  49. uint32_t fcs_ok_bitmap_31_0 : 32;
  50. uint32_t fcs_ok_bitmap_63_32 : 32;
  51. uint32_t udp_msdu_count : 16,
  52. tcp_msdu_count : 16;
  53. uint32_t other_msdu_count : 16,
  54. tcp_ack_msdu_count : 16;
  55. uint32_t sw_response_reference_ptr : 32;
  56. uint32_t received_qos_data_tid_bitmap : 16,
  57. received_qos_data_tid_eosp_bitmap : 16;
  58. uint32_t qosctrl_15_8_tid0 : 8,
  59. qosctrl_15_8_tid1 : 8,
  60. qosctrl_15_8_tid2 : 8,
  61. qosctrl_15_8_tid3 : 8;
  62. uint32_t qosctrl_15_8_tid4 : 8,
  63. qosctrl_15_8_tid5 : 8,
  64. qosctrl_15_8_tid6 : 8,
  65. qosctrl_15_8_tid7 : 8;
  66. uint32_t qosctrl_15_8_tid8 : 8,
  67. qosctrl_15_8_tid9 : 8,
  68. qosctrl_15_8_tid10 : 8,
  69. qosctrl_15_8_tid11 : 8;
  70. uint32_t qosctrl_15_8_tid12 : 8,
  71. qosctrl_15_8_tid13 : 8,
  72. qosctrl_15_8_tid14 : 8,
  73. qosctrl_15_8_tid15 : 8;
  74. uint32_t mpdu_ok_byte_count : 25,
  75. ampdu_delim_ok_count_6_0 : 7;
  76. uint32_t ampdu_delim_err_count : 25,
  77. ampdu_delim_ok_count_13_7 : 7;
  78. uint32_t mpdu_err_byte_count : 25,
  79. ampdu_delim_ok_count_20_14 : 7;
  80. uint32_t non_consecutive_delimiter_err : 16,
  81. retried_msdu_count : 16;
  82. uint32_t ht_control_null_field : 32;
  83. uint32_t sw_response_reference_ptr_ext : 32;
  84. uint32_t corrupted_due_to_fifo_delay : 1,
  85. frame_control_info_null_valid : 1,
  86. frame_control_field_null : 16,
  87. retried_mpdu_count : 11,
  88. reserved_23a : 3;
  89. uint32_t rxpcu_mpdu_filter_in_category : 2,
  90. sw_frame_group_id : 7,
  91. reserved_24a : 4,
  92. frame_control_info_mgmt_ctrl_valid : 1,
  93. mac_addr_ad2_valid : 1,
  94. mcast_bcast : 1,
  95. frame_control_field_mgmt_ctrl : 16;
  96. uint32_t user_ppdu_len : 24,
  97. reserved_25a : 8;
  98. uint32_t mac_addr_ad2_31_0 : 32;
  99. uint32_t mac_addr_ad2_47_32 : 16,
  100. amsdu_msdu_count : 16;
  101. uint32_t non_amsdu_msdu_count : 16,
  102. ucast_msdu_count : 16;
  103. uint32_t bcast_msdu_count : 16,
  104. mcast_bcast_msdu_count : 16;
  105. #else
  106. struct rx_rxpcu_classification_overview rxpcu_classification_details;
  107. uint32_t reserved_1a : 11,
  108. expected_response_ack_or_ba : 1,
  109. nss : 3,
  110. mcs : 4,
  111. sta_full_aid : 13;
  112. uint32_t fw2rxdma_pmac1_buf_source_used : 1,
  113. sw2rxdma_exception_buf_source_used : 1,
  114. sw2rxdma1_buf_source_used : 1,
  115. fw2rxdma_pmac0_buf_source_used : 1,
  116. sw2rxdma0_buf_source_used : 1,
  117. mpdu_cnt_fcs_err : 11,
  118. sw_peer_id : 16;
  119. uint32_t reserved_3b : 3,
  120. rxdma2reo_remote3_ring_used : 1,
  121. rxdma2reo_remote2_ring_used : 1,
  122. rxdma2reo_remote1_ring_used : 1,
  123. rxdma2reo_remote0_ring_used : 1,
  124. ht_control_field_pkt_type : 4,
  125. rxdma_release_ring_used : 1,
  126. rxdma2sw_ring_used : 1,
  127. rxdma2fw_pmac0_ring_used : 1,
  128. rxdma2reo_ring_used : 1,
  129. rxdma2fw_pmac1_ring_used : 1,
  130. ht_control_info_null_valid : 1,
  131. data_sequence_control_info_valid : 1,
  132. ht_control_info_valid : 1,
  133. qos_control_info_valid : 1,
  134. frame_control_info_valid : 1,
  135. mpdu_cnt_fcs_ok : 11;
  136. uint32_t frame_control_field : 16,
  137. ast_index : 16;
  138. uint32_t qos_control_field : 16,
  139. first_data_seq_ctrl : 16;
  140. uint32_t ht_control_field : 32;
  141. uint32_t fcs_ok_bitmap_31_0 : 32;
  142. uint32_t fcs_ok_bitmap_63_32 : 32;
  143. uint32_t tcp_msdu_count : 16,
  144. udp_msdu_count : 16;
  145. uint32_t tcp_ack_msdu_count : 16,
  146. other_msdu_count : 16;
  147. uint32_t sw_response_reference_ptr : 32;
  148. uint32_t received_qos_data_tid_eosp_bitmap : 16,
  149. received_qos_data_tid_bitmap : 16;
  150. uint32_t qosctrl_15_8_tid3 : 8,
  151. qosctrl_15_8_tid2 : 8,
  152. qosctrl_15_8_tid1 : 8,
  153. qosctrl_15_8_tid0 : 8;
  154. uint32_t qosctrl_15_8_tid7 : 8,
  155. qosctrl_15_8_tid6 : 8,
  156. qosctrl_15_8_tid5 : 8,
  157. qosctrl_15_8_tid4 : 8;
  158. uint32_t qosctrl_15_8_tid11 : 8,
  159. qosctrl_15_8_tid10 : 8,
  160. qosctrl_15_8_tid9 : 8,
  161. qosctrl_15_8_tid8 : 8;
  162. uint32_t qosctrl_15_8_tid15 : 8,
  163. qosctrl_15_8_tid14 : 8,
  164. qosctrl_15_8_tid13 : 8,
  165. qosctrl_15_8_tid12 : 8;
  166. uint32_t ampdu_delim_ok_count_6_0 : 7,
  167. mpdu_ok_byte_count : 25;
  168. uint32_t ampdu_delim_ok_count_13_7 : 7,
  169. ampdu_delim_err_count : 25;
  170. uint32_t ampdu_delim_ok_count_20_14 : 7,
  171. mpdu_err_byte_count : 25;
  172. uint32_t retried_msdu_count : 16,
  173. non_consecutive_delimiter_err : 16;
  174. uint32_t ht_control_null_field : 32;
  175. uint32_t sw_response_reference_ptr_ext : 32;
  176. uint32_t reserved_23a : 3,
  177. retried_mpdu_count : 11,
  178. frame_control_field_null : 16,
  179. frame_control_info_null_valid : 1,
  180. corrupted_due_to_fifo_delay : 1;
  181. uint32_t frame_control_field_mgmt_ctrl : 16,
  182. mcast_bcast : 1,
  183. mac_addr_ad2_valid : 1,
  184. frame_control_info_mgmt_ctrl_valid : 1,
  185. reserved_24a : 4,
  186. sw_frame_group_id : 7,
  187. rxpcu_mpdu_filter_in_category : 2;
  188. uint32_t reserved_25a : 8,
  189. user_ppdu_len : 24;
  190. uint32_t mac_addr_ad2_31_0 : 32;
  191. uint32_t amsdu_msdu_count : 16,
  192. mac_addr_ad2_47_32 : 16;
  193. uint32_t ucast_msdu_count : 16,
  194. non_amsdu_msdu_count : 16;
  195. uint32_t mcast_bcast_msdu_count : 16,
  196. bcast_msdu_count : 16;
  197. #endif
  198. };
  199. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
  200. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
  201. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0
  202. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x0000000000000001
  203. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
  204. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
  205. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
  206. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
  207. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
  208. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
  209. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
  210. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
  211. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
  212. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
  213. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
  214. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
  215. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
  216. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
  217. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
  218. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
  219. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
  220. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
  221. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
  222. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
  223. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
  224. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
  225. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
  226. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
  227. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
  228. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
  229. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
  230. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
  231. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
  232. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
  233. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
  234. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
  235. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x0000000000000000
  236. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 9
  237. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB 15
  238. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x000000000000fe00
  239. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000
  240. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16
  241. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB 31
  242. #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0x00000000ffff0000
  243. #define RX_PPDU_END_USER_STATS_STA_FULL_AID_OFFSET 0x0000000000000000
  244. #define RX_PPDU_END_USER_STATS_STA_FULL_AID_LSB 32
  245. #define RX_PPDU_END_USER_STATS_STA_FULL_AID_MSB 44
  246. #define RX_PPDU_END_USER_STATS_STA_FULL_AID_MASK 0x00001fff00000000
  247. #define RX_PPDU_END_USER_STATS_MCS_OFFSET 0x0000000000000000
  248. #define RX_PPDU_END_USER_STATS_MCS_LSB 45
  249. #define RX_PPDU_END_USER_STATS_MCS_MSB 48
  250. #define RX_PPDU_END_USER_STATS_MCS_MASK 0x0001e00000000000
  251. #define RX_PPDU_END_USER_STATS_NSS_OFFSET 0x0000000000000000
  252. #define RX_PPDU_END_USER_STATS_NSS_LSB 49
  253. #define RX_PPDU_END_USER_STATS_NSS_MSB 51
  254. #define RX_PPDU_END_USER_STATS_NSS_MASK 0x000e000000000000
  255. #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_OFFSET 0x0000000000000000
  256. #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_LSB 52
  257. #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MSB 52
  258. #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MASK 0x0010000000000000
  259. #define RX_PPDU_END_USER_STATS_RESERVED_1A_OFFSET 0x0000000000000000
  260. #define RX_PPDU_END_USER_STATS_RESERVED_1A_LSB 53
  261. #define RX_PPDU_END_USER_STATS_RESERVED_1A_MSB 63
  262. #define RX_PPDU_END_USER_STATS_RESERVED_1A_MASK 0xffe0000000000000
  263. #define RX_PPDU_END_USER_STATS_SW_PEER_ID_OFFSET 0x0000000000000008
  264. #define RX_PPDU_END_USER_STATS_SW_PEER_ID_LSB 0
  265. #define RX_PPDU_END_USER_STATS_SW_PEER_ID_MSB 15
  266. #define RX_PPDU_END_USER_STATS_SW_PEER_ID_MASK 0x000000000000ffff
  267. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_OFFSET 0x0000000000000008
  268. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_LSB 16
  269. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MSB 26
  270. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MASK 0x0000000007ff0000
  271. #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_OFFSET 0x0000000000000008
  272. #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_LSB 27
  273. #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MSB 27
  274. #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MASK 0x0000000008000000
  275. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_OFFSET 0x0000000000000008
  276. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_LSB 28
  277. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MSB 28
  278. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MASK 0x0000000010000000
  279. #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_OFFSET 0x0000000000000008
  280. #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_LSB 29
  281. #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MSB 29
  282. #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MASK 0x0000000020000000
  283. #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_OFFSET 0x0000000000000008
  284. #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_LSB 30
  285. #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MSB 30
  286. #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MASK 0x0000000040000000
  287. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_OFFSET 0x0000000000000008
  288. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_LSB 31
  289. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MSB 31
  290. #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MASK 0x0000000080000000
  291. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_OFFSET 0x0000000000000008
  292. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_LSB 32
  293. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MSB 42
  294. #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MASK 0x000007ff00000000
  295. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
  296. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_LSB 43
  297. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MSB 43
  298. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MASK 0x0000080000000000
  299. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
  300. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_LSB 44
  301. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MSB 44
  302. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MASK 0x0000100000000000
  303. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
  304. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_LSB 45
  305. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MSB 45
  306. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MASK 0x0000200000000000
  307. #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET 0x0000000000000008
  308. #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB 46
  309. #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MSB 46
  310. #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK 0x0000400000000000
  311. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000000000008
  312. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_LSB 47
  313. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MSB 47
  314. #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MASK 0x0000800000000000
  315. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_OFFSET 0x0000000000000008
  316. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_LSB 48
  317. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MSB 48
  318. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MASK 0x0001000000000000
  319. #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_OFFSET 0x0000000000000008
  320. #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_LSB 49
  321. #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MSB 49
  322. #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MASK 0x0002000000000000
  323. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_OFFSET 0x0000000000000008
  324. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_LSB 50
  325. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MSB 50
  326. #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MASK 0x0004000000000000
  327. #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_OFFSET 0x0000000000000008
  328. #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_LSB 51
  329. #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MSB 51
  330. #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MASK 0x0008000000000000
  331. #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_OFFSET 0x0000000000000008
  332. #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_LSB 52
  333. #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MSB 52
  334. #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MASK 0x0010000000000000
  335. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_OFFSET 0x0000000000000008
  336. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_LSB 53
  337. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MSB 56
  338. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MASK 0x01e0000000000000
  339. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_OFFSET 0x0000000000000008
  340. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_LSB 57
  341. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MSB 57
  342. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MASK 0x0200000000000000
  343. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_OFFSET 0x0000000000000008
  344. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_LSB 58
  345. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MSB 58
  346. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MASK 0x0400000000000000
  347. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE2_RING_USED_OFFSET 0x0000000000000008
  348. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE2_RING_USED_LSB 59
  349. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE2_RING_USED_MSB 59
  350. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE2_RING_USED_MASK 0x0800000000000000
  351. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE3_RING_USED_OFFSET 0x0000000000000008
  352. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE3_RING_USED_LSB 60
  353. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE3_RING_USED_MSB 60
  354. #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE3_RING_USED_MASK 0x1000000000000000
  355. #define RX_PPDU_END_USER_STATS_RESERVED_3B_OFFSET 0x0000000000000008
  356. #define RX_PPDU_END_USER_STATS_RESERVED_3B_LSB 61
  357. #define RX_PPDU_END_USER_STATS_RESERVED_3B_MSB 63
  358. #define RX_PPDU_END_USER_STATS_RESERVED_3B_MASK 0xe000000000000000
  359. #define RX_PPDU_END_USER_STATS_AST_INDEX_OFFSET 0x0000000000000010
  360. #define RX_PPDU_END_USER_STATS_AST_INDEX_LSB 0
  361. #define RX_PPDU_END_USER_STATS_AST_INDEX_MSB 15
  362. #define RX_PPDU_END_USER_STATS_AST_INDEX_MASK 0x000000000000ffff
  363. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_OFFSET 0x0000000000000010
  364. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_LSB 16
  365. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MSB 31
  366. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MASK 0x00000000ffff0000
  367. #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_OFFSET 0x0000000000000010
  368. #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_LSB 32
  369. #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MSB 47
  370. #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MASK 0x0000ffff00000000
  371. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_OFFSET 0x0000000000000010
  372. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_LSB 48
  373. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MSB 63
  374. #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MASK 0xffff000000000000
  375. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_OFFSET 0x0000000000000018
  376. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_LSB 0
  377. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MSB 31
  378. #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MASK 0x00000000ffffffff
  379. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_OFFSET 0x0000000000000018
  380. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_LSB 32
  381. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MSB 63
  382. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MASK 0xffffffff00000000
  383. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_OFFSET 0x0000000000000020
  384. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_LSB 0
  385. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MSB 31
  386. #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MASK 0x00000000ffffffff
  387. #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_OFFSET 0x0000000000000020
  388. #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_LSB 32
  389. #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MSB 47
  390. #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MASK 0x0000ffff00000000
  391. #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_OFFSET 0x0000000000000020
  392. #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_LSB 48
  393. #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MSB 63
  394. #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MASK 0xffff000000000000
  395. #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_OFFSET 0x0000000000000028
  396. #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_LSB 0
  397. #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MSB 15
  398. #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MASK 0x000000000000ffff
  399. #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_OFFSET 0x0000000000000028
  400. #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_LSB 16
  401. #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MSB 31
  402. #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MASK 0x00000000ffff0000
  403. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET 0x0000000000000028
  404. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_LSB 32
  405. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MSB 63
  406. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MASK 0xffffffff00000000
  407. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET 0x0000000000000030
  408. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_LSB 0
  409. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MSB 15
  410. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MASK 0x000000000000ffff
  411. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET 0x0000000000000030
  412. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB 16
  413. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MSB 31
  414. #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK 0x00000000ffff0000
  415. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_OFFSET 0x0000000000000030
  416. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_LSB 32
  417. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MSB 39
  418. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MASK 0x000000ff00000000
  419. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_OFFSET 0x0000000000000030
  420. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_LSB 40
  421. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MSB 47
  422. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MASK 0x0000ff0000000000
  423. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_OFFSET 0x0000000000000030
  424. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_LSB 48
  425. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MSB 55
  426. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MASK 0x00ff000000000000
  427. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_OFFSET 0x0000000000000030
  428. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_LSB 56
  429. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MSB 63
  430. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MASK 0xff00000000000000
  431. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_OFFSET 0x0000000000000038
  432. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_LSB 0
  433. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MSB 7
  434. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MASK 0x00000000000000ff
  435. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_OFFSET 0x0000000000000038
  436. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_LSB 8
  437. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MSB 15
  438. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MASK 0x000000000000ff00
  439. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_OFFSET 0x0000000000000038
  440. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_LSB 16
  441. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MSB 23
  442. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MASK 0x0000000000ff0000
  443. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_OFFSET 0x0000000000000038
  444. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_LSB 24
  445. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MSB 31
  446. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MASK 0x00000000ff000000
  447. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_OFFSET 0x0000000000000038
  448. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_LSB 32
  449. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MSB 39
  450. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MASK 0x000000ff00000000
  451. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_OFFSET 0x0000000000000038
  452. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_LSB 40
  453. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MSB 47
  454. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MASK 0x0000ff0000000000
  455. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_OFFSET 0x0000000000000038
  456. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_LSB 48
  457. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MSB 55
  458. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MASK 0x00ff000000000000
  459. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_OFFSET 0x0000000000000038
  460. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_LSB 56
  461. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MSB 63
  462. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MASK 0xff00000000000000
  463. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_OFFSET 0x0000000000000040
  464. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_LSB 0
  465. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MSB 7
  466. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MASK 0x00000000000000ff
  467. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_OFFSET 0x0000000000000040
  468. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_LSB 8
  469. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MSB 15
  470. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MASK 0x000000000000ff00
  471. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_OFFSET 0x0000000000000040
  472. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_LSB 16
  473. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MSB 23
  474. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MASK 0x0000000000ff0000
  475. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_OFFSET 0x0000000000000040
  476. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_LSB 24
  477. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MSB 31
  478. #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MASK 0x00000000ff000000
  479. #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_OFFSET 0x0000000000000040
  480. #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_LSB 32
  481. #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MSB 56
  482. #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MASK 0x01ffffff00000000
  483. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_OFFSET 0x0000000000000040
  484. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_LSB 57
  485. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MSB 63
  486. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MASK 0xfe00000000000000
  487. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_OFFSET 0x0000000000000048
  488. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_LSB 0
  489. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MSB 24
  490. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MASK 0x0000000001ffffff
  491. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_OFFSET 0x0000000000000048
  492. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_LSB 25
  493. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MSB 31
  494. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MASK 0x00000000fe000000
  495. #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_OFFSET 0x0000000000000048
  496. #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_LSB 32
  497. #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MSB 56
  498. #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MASK 0x01ffffff00000000
  499. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_OFFSET 0x0000000000000048
  500. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_LSB 57
  501. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MSB 63
  502. #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MASK 0xfe00000000000000
  503. #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET 0x0000000000000050
  504. #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_LSB 0
  505. #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MSB 15
  506. #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MASK 0x000000000000ffff
  507. #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_OFFSET 0x0000000000000050
  508. #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_LSB 16
  509. #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MSB 31
  510. #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MASK 0x00000000ffff0000
  511. #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_OFFSET 0x0000000000000050
  512. #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_LSB 32
  513. #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MSB 63
  514. #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MASK 0xffffffff00000000
  515. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET 0x0000000000000058
  516. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_LSB 0
  517. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MSB 31
  518. #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MASK 0x00000000ffffffff
  519. #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET 0x0000000000000058
  520. #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_LSB 32
  521. #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MSB 32
  522. #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MASK 0x0000000100000000
  523. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000000000058
  524. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_LSB 33
  525. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MSB 33
  526. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MASK 0x0000000200000000
  527. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_OFFSET 0x0000000000000058
  528. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_LSB 34
  529. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MSB 49
  530. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MASK 0x0003fffc00000000
  531. #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_OFFSET 0x0000000000000058
  532. #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_LSB 50
  533. #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MSB 60
  534. #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MASK 0x1ffc000000000000
  535. #define RX_PPDU_END_USER_STATS_RESERVED_23A_OFFSET 0x0000000000000058
  536. #define RX_PPDU_END_USER_STATS_RESERVED_23A_LSB 61
  537. #define RX_PPDU_END_USER_STATS_RESERVED_23A_MSB 63
  538. #define RX_PPDU_END_USER_STATS_RESERVED_23A_MASK 0xe000000000000000
  539. #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x0000000000000060
  540. #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0
  541. #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB 1
  542. #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x0000000000000003
  543. #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_OFFSET 0x0000000000000060
  544. #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_LSB 2
  545. #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MSB 8
  546. #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MASK 0x00000000000001fc
  547. #define RX_PPDU_END_USER_STATS_RESERVED_24A_OFFSET 0x0000000000000060
  548. #define RX_PPDU_END_USER_STATS_RESERVED_24A_LSB 9
  549. #define RX_PPDU_END_USER_STATS_RESERVED_24A_MSB 12
  550. #define RX_PPDU_END_USER_STATS_RESERVED_24A_MASK 0x0000000000001e00
  551. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_OFFSET 0x0000000000000060
  552. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_LSB 13
  553. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MSB 13
  554. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MASK 0x0000000000002000
  555. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_OFFSET 0x0000000000000060
  556. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_LSB 14
  557. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MSB 14
  558. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MASK 0x0000000000004000
  559. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_OFFSET 0x0000000000000060
  560. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_LSB 15
  561. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSB 15
  562. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MASK 0x0000000000008000
  563. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_OFFSET 0x0000000000000060
  564. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_LSB 16
  565. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MSB 31
  566. #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MASK 0x00000000ffff0000
  567. #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_OFFSET 0x0000000000000060
  568. #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_LSB 32
  569. #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MSB 55
  570. #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MASK 0x00ffffff00000000
  571. #define RX_PPDU_END_USER_STATS_RESERVED_25A_OFFSET 0x0000000000000060
  572. #define RX_PPDU_END_USER_STATS_RESERVED_25A_LSB 56
  573. #define RX_PPDU_END_USER_STATS_RESERVED_25A_MSB 63
  574. #define RX_PPDU_END_USER_STATS_RESERVED_25A_MASK 0xff00000000000000
  575. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_OFFSET 0x0000000000000068
  576. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_LSB 0
  577. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MSB 31
  578. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MASK 0x00000000ffffffff
  579. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_OFFSET 0x0000000000000068
  580. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_LSB 32
  581. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MSB 47
  582. #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MASK 0x0000ffff00000000
  583. #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_OFFSET 0x0000000000000068
  584. #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_LSB 48
  585. #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MSB 63
  586. #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MASK 0xffff000000000000
  587. #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_OFFSET 0x0000000000000070
  588. #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_LSB 0
  589. #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MSB 15
  590. #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MASK 0x000000000000ffff
  591. #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_OFFSET 0x0000000000000070
  592. #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_LSB 16
  593. #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MSB 31
  594. #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MASK 0x00000000ffff0000
  595. #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_OFFSET 0x0000000000000070
  596. #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_LSB 32
  597. #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MSB 47
  598. #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MASK 0x0000ffff00000000
  599. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_OFFSET 0x0000000000000070
  600. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_LSB 48
  601. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MSB 63
  602. #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MASK 0xffff000000000000
  603. #endif