rx_mpdu_start.h 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936
  1. /*
  2. * Copyright (c) 2021 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. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _RX_MPDU_START_H_
  21. #define _RX_MPDU_START_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "rx_mpdu_info.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0-22 struct rx_mpdu_info rx_mpdu_info_details;
  29. // 23 raw_mpdu[0], reserved_23[31:1]
  30. //
  31. // ################ END SUMMARY #################
  32. #define NUM_OF_DWORDS_RX_MPDU_START 24
  33. struct rx_mpdu_start {
  34. struct rx_mpdu_info rx_mpdu_info_details;
  35. uint32_t raw_mpdu : 1, //[0]
  36. reserved_23 : 31; //[31:1]
  37. };
  38. /*
  39. struct rx_mpdu_info rx_mpdu_info_details
  40. Structure containing all the MPDU header details that
  41. might be needed for other modules further down the received
  42. path
  43. raw_mpdu
  44. Set by OLE when it has not performed any .11 to .3
  45. header conversion on this MPDU.
  46. <legal all>
  47. reserved_23
  48. <legal 0>
  49. */
  50. /* EXTERNAL REFERENCE : struct rx_mpdu_info rx_mpdu_info_details */
  51. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY
  52. Field indicates what the reason was that this MPDU frame
  53. was allowed to come into the receive path by RXPCU
  54. <enum 0 rxpcu_filter_pass> This MPDU passed the normal
  55. frame filter programming of rxpcu
  56. <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
  57. regular frame filter and would have been dropped, were it
  58. not for the frame fitting into the 'monitor_client'
  59. category.
  60. <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
  61. regular frame filter and also did not pass the
  62. rxpcu_monitor_client filter. It would have been dropped
  63. accept that it did pass the 'monitor_other' category.
  64. Note: for ndp frame, if it was expected because the
  65. preceding NDPA was filter_pass, the setting
  66. rxpcu_filter_pass will be used. This setting will also be
  67. used for every ndp frame in case Promiscuous mode is
  68. enabled.
  69. In case promiscuous is not enabled, and an NDP is not
  70. preceded by a NPDA filter pass frame, the only other setting
  71. that could appear here for the NDP is rxpcu_monitor_other.
  72. (rxpcu has a configuration bit specifically for this
  73. scenario)
  74. Note: for
  75. <legal 0-2>
  76. */
  77. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x00000000
  78. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0
  79. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x00000003
  80. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID
  81. SW processes frames based on certain classifications.
  82. This field indicates to what sw classification this MPDU is
  83. mapped.
  84. The classification is given in priority order
  85. <enum 0 sw_frame_group_NDP_frame> Note: The
  86. corresponding Rxpcu_Mpdu_filter_in_category can be
  87. rxpcu_filter_pass or rxpcu_monitor_other
  88. <enum 1 sw_frame_group_Multicast_data>
  89. <enum 2 sw_frame_group_Unicast_data>
  90. <enum 3 sw_frame_group_Null_data > This includes mpdus
  91. of type Data Null as well as QoS Data Null
  92. <enum 4 sw_frame_group_mgmt_0000 >
  93. <enum 5 sw_frame_group_mgmt_0001 >
  94. <enum 6 sw_frame_group_mgmt_0010 >
  95. <enum 7 sw_frame_group_mgmt_0011 >
  96. <enum 8 sw_frame_group_mgmt_0100 >
  97. <enum 9 sw_frame_group_mgmt_0101 >
  98. <enum 10 sw_frame_group_mgmt_0110 >
  99. <enum 11 sw_frame_group_mgmt_0111 >
  100. <enum 12 sw_frame_group_mgmt_1000 >
  101. <enum 13 sw_frame_group_mgmt_1001 >
  102. <enum 14 sw_frame_group_mgmt_1010 >
  103. <enum 15 sw_frame_group_mgmt_1011 >
  104. <enum 16 sw_frame_group_mgmt_1100 >
  105. <enum 17 sw_frame_group_mgmt_1101 >
  106. <enum 18 sw_frame_group_mgmt_1110 >
  107. <enum 19 sw_frame_group_mgmt_1111 >
  108. <enum 20 sw_frame_group_ctrl_0000 >
  109. <enum 21 sw_frame_group_ctrl_0001 >
  110. <enum 22 sw_frame_group_ctrl_0010 >
  111. <enum 23 sw_frame_group_ctrl_0011 >
  112. <enum 24 sw_frame_group_ctrl_0100 >
  113. <enum 25 sw_frame_group_ctrl_0101 >
  114. <enum 26 sw_frame_group_ctrl_0110 >
  115. <enum 27 sw_frame_group_ctrl_0111 >
  116. <enum 28 sw_frame_group_ctrl_1000 >
  117. <enum 29 sw_frame_group_ctrl_1001 >
  118. <enum 30 sw_frame_group_ctrl_1010 >
  119. <enum 31 sw_frame_group_ctrl_1011 >
  120. <enum 32 sw_frame_group_ctrl_1100 >
  121. <enum 33 sw_frame_group_ctrl_1101 >
  122. <enum 34 sw_frame_group_ctrl_1110 >
  123. <enum 35 sw_frame_group_ctrl_1111 >
  124. <enum 36 sw_frame_group_unsupported> This covers type 3
  125. and protocol version != 0
  126. Note: The corresponding Rxpcu_Mpdu_filter_in_category
  127. can only be rxpcu_monitor_other
  128. Note: The corresponding Rxpcu_Mpdu_filter_in_category
  129. can be rxpcu_filter_pass
  130. <legal 0-37>
  131. */
  132. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_OFFSET 0x00000000
  133. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_LSB 2
  134. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_MASK 0x000001fc
  135. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_NDP_FRAME
  136. When set, the received frame was an NDP frame, and thus
  137. there will be no MPDU data.
  138. <legal all>
  139. */
  140. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_NDP_FRAME_OFFSET 0x00000000
  141. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_NDP_FRAME_LSB 9
  142. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_NDP_FRAME_MASK 0x00000200
  143. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR
  144. When set, a PHY error was received before MAC received
  145. any data, and thus there will be no MPDU data.
  146. <legal all>
  147. */
  148. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_OFFSET 0x00000000
  149. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_LSB 10
  150. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_MASK 0x00000400
  151. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER
  152. When set, a PHY error was received before MAC received
  153. the complete MPDU header which was needed for proper
  154. decoding
  155. <legal all>
  156. */
  157. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_OFFSET 0x00000000
  158. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_LSB 11
  159. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_MASK 0x00000800
  160. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR
  161. Set when RXPCU detected a version error in the Frame
  162. control field
  163. <legal all>
  164. */
  165. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_OFFSET 0x00000000
  166. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_LSB 12
  167. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_MASK 0x00001000
  168. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID
  169. When set, AST based lookup for this frame has found a
  170. valid result.
  171. Note that for NDP frame this will never be set
  172. <legal all>
  173. */
  174. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_OFFSET 0x00000000
  175. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_LSB 13
  176. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_MASK 0x00002000
  177. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RESERVED_0A
  178. <legal 0>
  179. */
  180. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RESERVED_0A_OFFSET 0x00000000
  181. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RESERVED_0A_LSB 14
  182. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RESERVED_0A_MASK 0x0000c000
  183. /* Description RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID
  184. A ppdu counter value that PHY increments for every PPDU
  185. received. The counter value wraps around
  186. <legal all>
  187. */
  188. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
  189. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_LSB 16
  190. #define RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_MASK 0xffff0000
  191. /* Description RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_AST_INDEX
  192. This field indicates the index of the AST entry
  193. corresponding to this MPDU. It is provided by the GSE module
  194. instantiated in RXPCU.
  195. A value of 0xFFFF indicates an invalid AST index,
  196. meaning that No AST entry was found or NO AST search was
  197. performed
  198. In case of ndp or phy_err, this field will be set to
  199. 0xFFFF
  200. <legal all>
  201. */
  202. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_AST_INDEX_OFFSET 0x00000004
  203. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_AST_INDEX_LSB 0
  204. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_AST_INDEX_MASK 0x0000ffff
  205. /* Description RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_SW_PEER_ID
  206. In case of ndp or phy_err or AST_based_lookup_valid ==
  207. 0, this field will be set to 0
  208. This field indicates a unique peer identifier. It is set
  209. equal to field 'sw_peer_id' from the AST entry
  210. <legal all>
  211. */
  212. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_SW_PEER_ID_OFFSET 0x00000004
  213. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_SW_PEER_ID_LSB 16
  214. #define RX_MPDU_START_1_RX_MPDU_INFO_DETAILS_SW_PEER_ID_MASK 0xffff0000
  215. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID
  216. When set, the field Mpdu_Frame_control_field has valid
  217. information
  218. <legal all>
  219. */
  220. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_OFFSET 0x00000008
  221. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_LSB 0
  222. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_MASK 0x00000001
  223. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID
  224. When set, the field Mpdu_duration_field has valid
  225. information
  226. <legal all>
  227. */
  228. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_OFFSET 0x00000008
  229. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_LSB 1
  230. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_MASK 0x00000002
  231. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID
  232. When set, the fields mac_addr_ad1_..... have valid
  233. information
  234. <legal all>
  235. */
  236. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_OFFSET 0x00000008
  237. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_LSB 2
  238. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_MASK 0x00000004
  239. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID
  240. When set, the fields mac_addr_ad2_..... have valid
  241. information
  242. <legal all>
  243. */
  244. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_OFFSET 0x00000008
  245. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_LSB 3
  246. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_MASK 0x00000008
  247. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID
  248. When set, the fields mac_addr_ad3_..... have valid
  249. information
  250. <legal all>
  251. */
  252. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_OFFSET 0x00000008
  253. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_LSB 4
  254. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_MASK 0x00000010
  255. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID
  256. When set, the fields mac_addr_ad4_..... have valid
  257. information
  258. <legal all>
  259. */
  260. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_OFFSET 0x00000008
  261. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_LSB 5
  262. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_MASK 0x00000020
  263. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID
  264. When set, the fields mpdu_sequence_control_field and
  265. mpdu_sequence_number have valid information as well as field
  266. For MPDUs without a sequence control field, this field
  267. will not be set.
  268. <legal all>
  269. */
  270. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_OFFSET 0x00000008
  271. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_LSB 6
  272. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_MASK 0x00000040
  273. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID
  274. When set, the field mpdu_qos_control_field has valid
  275. information
  276. For MPDUs without a QoS control field, this field will
  277. not be set.
  278. <legal all>
  279. */
  280. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
  281. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 7
  282. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x00000080
  283. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID
  284. When set, the field mpdu_HT_control_field has valid
  285. information
  286. For MPDUs without a HT control field, this field will
  287. not be set.
  288. <legal all>
  289. */
  290. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_OFFSET 0x00000008
  291. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_LSB 8
  292. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_MASK 0x00000100
  293. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID
  294. When set, the encryption related info fields, like IV
  295. and PN are valid
  296. For MPDUs that are not encrypted, this will not be set.
  297. <legal all>
  298. */
  299. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_OFFSET 0x00000008
  300. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_LSB 9
  301. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_MASK 0x00000200
  302. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER
  303. Field only valid when Mpdu_sequence_control_valid is set
  304. AND Fragment_flag is set
  305. The fragment number from the 802.11 header.
  306. <legal all>
  307. */
  308. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_OFFSET 0x00000008
  309. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_LSB 10
  310. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_MASK 0x00003c00
  311. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG
  312. The More Fragment bit setting from the MPDU header of
  313. the received frame
  314. <legal all>
  315. */
  316. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x00000008
  317. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB 14
  318. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
  319. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_RESERVED_2A
  320. <legal 0>
  321. */
  322. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008
  323. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_RESERVED_2A_LSB 15
  324. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_RESERVED_2A_MASK 0x00008000
  325. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FR_DS
  326. Field only valid when Mpdu_frame_control_valid is set
  327. Set if the from DS bit is set in the frame control.
  328. <legal all>
  329. */
  330. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FR_DS_OFFSET 0x00000008
  331. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FR_DS_LSB 16
  332. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_FR_DS_MASK 0x00010000
  333. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_TO_DS
  334. Field only valid when Mpdu_frame_control_valid is set
  335. Set if the to DS bit is set in the frame control.
  336. <legal all>
  337. */
  338. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_TO_DS_OFFSET 0x00000008
  339. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_TO_DS_LSB 17
  340. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_TO_DS_MASK 0x00020000
  341. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_ENCRYPTED
  342. Field only valid when Mpdu_frame_control_valid is set.
  343. Protected bit from the frame control.
  344. <legal all>
  345. */
  346. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_ENCRYPTED_OFFSET 0x00000008
  347. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_ENCRYPTED_LSB 18
  348. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_ENCRYPTED_MASK 0x00040000
  349. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_RETRY
  350. Field only valid when Mpdu_frame_control_valid is set.
  351. Retry bit from the frame control. Only valid when
  352. first_msdu is set.
  353. <legal all>
  354. */
  355. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_RETRY_OFFSET 0x00000008
  356. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_RETRY_LSB 19
  357. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_RETRY_MASK 0x00080000
  358. /* Description RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER
  359. Field only valid when Mpdu_sequence_control_valid is
  360. set.
  361. The sequence number from the 802.11 header.
  362. <legal all>
  363. */
  364. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_OFFSET 0x00000008
  365. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_LSB 20
  366. #define RX_MPDU_START_2_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_MASK 0xfff00000
  367. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_EPD_EN
  368. Field only valid when AST_based_lookup_valid == 1.
  369. In case of ndp or phy_err or AST_based_lookup_valid ==
  370. 0, this field will be set to 0
  371. If set to one use EPD instead of LPD
  372. <legal all>
  373. */
  374. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_EPD_EN_OFFSET 0x0000000c
  375. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_EPD_EN_LSB 0
  376. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_EPD_EN_MASK 0x00000001
  377. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED
  378. In case of ndp or phy_err or AST_based_lookup_valid ==
  379. 0, this field will be set to 0
  380. When set, all frames (data only ?) shall be encrypted.
  381. If not, RX CRYPTO shall set an error flag.
  382. <legal all>
  383. */
  384. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_OFFSET 0x0000000c
  385. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_LSB 1
  386. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_MASK 0x00000002
  387. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE
  388. In case of ndp or phy_err or AST_based_lookup_valid ==
  389. 0, this field will be set to 0
  390. Indicates type of decrypt cipher used (as defined in the
  391. peer entry)
  392. <enum 0 wep_40> WEP 40-bit
  393. <enum 1 wep_104> WEP 104-bit
  394. <enum 2 tkip_no_mic> TKIP without MIC
  395. <enum 3 wep_128> WEP 128-bit
  396. <enum 4 tkip_with_mic> TKIP with MIC
  397. <enum 5 wapi> WAPI
  398. <enum 6 aes_ccmp_128> AES CCMP 128
  399. <enum 7 no_cipher> No crypto
  400. <enum 8 aes_ccmp_256> AES CCMP 256
  401. <enum 9 aes_gcmp_128> AES CCMP 128
  402. <enum 10 aes_gcmp_256> AES CCMP 256
  403. <enum 11 wapi_gcm_sm4> WAPI GCM SM4
  404. <enum 12 wep_varied_width> WEP encryption. As for WEP
  405. per keyid the key bit width can vary, the key bit width for
  406. this MPDU will be indicated in field
  407. wep_key_width_for_variable key
  408. <legal 0-12>
  409. */
  410. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_OFFSET 0x0000000c
  411. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_LSB 2
  412. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_MASK 0x0000003c
  413. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY
  414. Field only valid when key_type is set to
  415. wep_varied_width.
  416. This field indicates the size of the wep key for this
  417. MPDU.
  418. <enum 0 wep_varied_width_40> WEP 40-bit
  419. <enum 1 wep_varied_width_104> WEP 104-bit
  420. <enum 2 wep_varied_width_128> WEP 128-bit
  421. <legal 0-2>
  422. */
  423. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_OFFSET 0x0000000c
  424. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_LSB 6
  425. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MASK 0x000000c0
  426. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_MESH_STA
  427. In case of ndp or phy_err or AST_based_lookup_valid ==
  428. 0, this field will be set to 0
  429. When set, this is a Mesh (11s) STA
  430. <legal all>
  431. */
  432. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_MESH_STA_OFFSET 0x0000000c
  433. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_MESH_STA_LSB 8
  434. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_MESH_STA_MASK 0x00000100
  435. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_HIT
  436. In case of ndp or phy_err or AST_based_lookup_valid ==
  437. 0, this field will be set to 0
  438. When set, the BSSID of the incoming frame matched one of
  439. the 8 BSSID register values
  440. <legal all>
  441. */
  442. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_HIT_OFFSET 0x0000000c
  443. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_HIT_LSB 9
  444. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_HIT_MASK 0x00000200
  445. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_NUMBER
  446. Field only valid when bssid_hit is set.
  447. This number indicates which one out of the 8 BSSID
  448. register values matched the incoming frame
  449. <legal all>
  450. */
  451. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_OFFSET 0x0000000c
  452. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_LSB 10
  453. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_MASK 0x00003c00
  454. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_TID
  455. Field only valid when mpdu_qos_control_valid is set
  456. The TID field in the QoS control field
  457. <legal all>
  458. */
  459. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_TID_OFFSET 0x0000000c
  460. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_TID_LSB 14
  461. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_TID_MASK 0x0003c000
  462. /* Description RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_RESERVED_3A
  463. <legal 0>
  464. */
  465. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000c
  466. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_RESERVED_3A_LSB 18
  467. #define RX_MPDU_START_3_RX_MPDU_INFO_DETAILS_RESERVED_3A_MASK 0xfffc0000
  468. /* Description RX_MPDU_START_4_RX_MPDU_INFO_DETAILS_PN_31_0
  469. WEP: IV = {key_id_octet, pn2, pn1, pn0}. Only pn[23:0]
  470. is valid.
  471. TKIP: IV = {pn5, pn4, pn3, pn2, key_id_octet, pn0,
  472. WEPSeed[1], pn1}. Only pn[47:0] is valid.
  473. AES-CCM: IV = {pn5, pn4, pn3, pn2, key_id_octet, 0x0,
  474. pn1, pn0}. Only pn[47:0] is valid.
  475. WAPI: IV = {key_id_octet, 0x0, pn15, pn14, pn13, pn12,
  476. pn11, pn10, pn9, pn8, pn7, pn6, pn5, pn4, pn3, pn2, pn1,
  477. pn0}. pn[127:0] are valid.
  478. */
  479. #define RX_MPDU_START_4_RX_MPDU_INFO_DETAILS_PN_31_0_OFFSET 0x00000010
  480. #define RX_MPDU_START_4_RX_MPDU_INFO_DETAILS_PN_31_0_LSB 0
  481. #define RX_MPDU_START_4_RX_MPDU_INFO_DETAILS_PN_31_0_MASK 0xffffffff
  482. /* Description RX_MPDU_START_5_RX_MPDU_INFO_DETAILS_PN_63_32
  483. Bits [63:32] of the PN number. See description for
  484. pn_31_0.
  485. */
  486. #define RX_MPDU_START_5_RX_MPDU_INFO_DETAILS_PN_63_32_OFFSET 0x00000014
  487. #define RX_MPDU_START_5_RX_MPDU_INFO_DETAILS_PN_63_32_LSB 0
  488. #define RX_MPDU_START_5_RX_MPDU_INFO_DETAILS_PN_63_32_MASK 0xffffffff
  489. /* Description RX_MPDU_START_6_RX_MPDU_INFO_DETAILS_PN_95_64
  490. Bits [95:64] of the PN number. See description for
  491. pn_31_0.
  492. */
  493. #define RX_MPDU_START_6_RX_MPDU_INFO_DETAILS_PN_95_64_OFFSET 0x00000018
  494. #define RX_MPDU_START_6_RX_MPDU_INFO_DETAILS_PN_95_64_LSB 0
  495. #define RX_MPDU_START_6_RX_MPDU_INFO_DETAILS_PN_95_64_MASK 0xffffffff
  496. /* Description RX_MPDU_START_7_RX_MPDU_INFO_DETAILS_PN_127_96
  497. Bits [127:96] of the PN number. See description for
  498. pn_31_0.
  499. */
  500. #define RX_MPDU_START_7_RX_MPDU_INFO_DETAILS_PN_127_96_OFFSET 0x0000001c
  501. #define RX_MPDU_START_7_RX_MPDU_INFO_DETAILS_PN_127_96_LSB 0
  502. #define RX_MPDU_START_7_RX_MPDU_INFO_DETAILS_PN_127_96_MASK 0xffffffff
  503. /* Description RX_MPDU_START_8_RX_MPDU_INFO_DETAILS_PEER_META_DATA
  504. In case of ndp or phy_err or AST_based_lookup_valid ==
  505. 0, this field will be set to 0
  506. Meta data that SW has programmed in the Peer table entry
  507. of the transmitting STA.
  508. <legal all>
  509. */
  510. #define RX_MPDU_START_8_RX_MPDU_INFO_DETAILS_PEER_META_DATA_OFFSET 0x00000020
  511. #define RX_MPDU_START_8_RX_MPDU_INFO_DETAILS_PEER_META_DATA_LSB 0
  512. #define RX_MPDU_START_8_RX_MPDU_INFO_DETAILS_PEER_META_DATA_MASK 0xffffffff
  513. /* EXTERNAL REFERENCE : struct rxpt_classify_info rxpt_classify_info_details */
  514. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION
  515. The ID of the REO exit ring where the MSDU frame shall
  516. push after (MPDU level) reordering has finished.
  517. <enum 0 reo_destination_tcl> Reo will push the frame
  518. into the REO2TCL ring
  519. <enum 1 reo_destination_sw1> Reo will push the frame
  520. into the REO2SW1 ring
  521. <enum 2 reo_destination_sw2> Reo will push the frame
  522. into the REO2SW1 ring
  523. <enum 3 reo_destination_sw3> Reo will push the frame
  524. into the REO2SW1 ring
  525. <enum 4 reo_destination_sw4> Reo will push the frame
  526. into the REO2SW1 ring
  527. <enum 5 reo_destination_release> Reo will push the frame
  528. into the REO_release ring
  529. <enum 6 reo_destination_fw> Reo will push the frame into
  530. the REO2FW ring
  531. <enum 7 reo_destination_7> REO remaps this
  532. <enum 8 reo_destination_8> REO remaps this <enum 9
  533. reo_destination_9> REO remaps this <enum 10
  534. reo_destination_10> REO remaps this
  535. <enum 11 reo_destination_11> REO remaps this
  536. <enum 12 reo_destination_12> REO remaps this <enum 13
  537. reo_destination_13> REO remaps this
  538. <enum 14 reo_destination_14> REO remaps this
  539. <enum 15 reo_destination_15> REO remaps this
  540. <enum 16 reo_destination_16> REO remaps this
  541. <enum 17 reo_destination_17> REO remaps this
  542. <enum 18 reo_destination_18> REO remaps this
  543. <enum 19 reo_destination_19> REO remaps this
  544. <enum 20 reo_destination_20> REO remaps this
  545. <enum 21 reo_destination_21> REO remaps this
  546. <enum 22 reo_destination_22> REO remaps this
  547. <enum 23 reo_destination_23> REO remaps this
  548. <enum 24 reo_destination_24> REO remaps this
  549. <enum 25 reo_destination_25> REO remaps this
  550. <enum 26 reo_destination_26> REO remaps this
  551. <enum 27 reo_destination_27> REO remaps this
  552. <enum 28 reo_destination_28> REO remaps this
  553. <enum 29 reo_destination_29> REO remaps this
  554. <enum 30 reo_destination_30> REO remaps this
  555. <enum 31 reo_destination_31> REO remaps this
  556. <legal all>
  557. */
  558. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x00000024
  559. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
  560. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
  561. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0A
  562. <legal 0>
  563. */
  564. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0A_OFFSET 0x00000024
  565. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0A_LSB 5
  566. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0A_MASK 0x00000060
  567. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY
  568. Field is used to enable classification based on the
  569. chosen Toeplitz hash from Common Parser (without reference
  570. to each hash type).
  571. <legal all>
  572. */
  573. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x00000024
  574. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7
  575. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x00000080
  576. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA
  577. Filter pass ucast data frame routing selection.
  578. 1'b0: source and destination rings are selected from the
  579. RxOLE register settings for the packet type
  580. 1'b1: source ring and destination ring is selected from
  581. the rxdma0_source_ring_selection and
  582. rxdma0_destination_ring_selection fields in this STRUCT
  583. <legal all>
  584. */
  585. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x00000024
  586. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_LSB 8
  587. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MASK 0x00000100
  588. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA
  589. Filter pass multicase data frame routing selection.
  590. 1'b0: source and destination rings are selected from the
  591. RxOLE register settings for the packet type
  592. 1'b1: source ring and destination ring is selected from
  593. the rxdma0_source_ring_selection and
  594. rxdma0_destination_ring_selection fields in this STRUCT
  595. <legal all>
  596. */
  597. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x00000024
  598. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_LSB 9
  599. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MASK 0x00000200
  600. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000
  601. Filter pass control bar frame routing selection.
  602. 1'b0: source and destination rings are selected from the
  603. RxOLE register settings for the packet type
  604. 1'b1: source ring and destination ring is selected from
  605. the rxdma0_source_ring_selection and
  606. rxdma0_destination_ring_selection fields in this STRUCT
  607. <legal all>
  608. */
  609. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_OFFSET 0x00000024
  610. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_LSB 10
  611. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MASK 0x00000400
  612. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION
  613. Field only valid when for the received frame type the
  614. corresponding pkt_selection_fp_... bit is set
  615. <enum 0 wbm2rxdma_buf_source_ring> The data buffer for
  616. this frame shall be sourced by wbm2rxdma buffer source ring
  617. <enum 1 fw2rxdma_buf_source_ring> The data buffer for
  618. this frame shall be sourced by fw2rxdma buffer source ring
  619. <enum 2 sw2rxdma_buf_source_ring> The data buffer for
  620. this frame shall be sourced by sw2rxdma buffer source ring
  621. <enum 3 no_buffer_ring> The frame shall not be written
  622. to any data buffer
  623. <legal all>
  624. */
  625. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000024
  626. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_LSB 11
  627. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MASK 0x00001800
  628. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION
  629. Field only valid when for the received frame type the
  630. corresponding pkt_selection_fp_... bit is set
  631. <enum 0 rxdma_release_ring > RXDMA0 shall push the
  632. frame to the Release ring. Effectively this means the frame
  633. needs to be dropped.
  634. <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
  635. the FW ring
  636. <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
  637. the SW ring
  638. <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
  639. to the REO entrance ring
  640. <legal all>
  641. */
  642. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000024
  643. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_LSB 13
  644. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x00006000
  645. /* Description RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B
  646. <legal 0>
  647. */
  648. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_OFFSET 0x00000024
  649. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_LSB 15
  650. #define RX_MPDU_START_9_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MASK 0xffff8000
  651. /* Description RX_MPDU_START_10_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0
  652. In case of ndp or phy_err or AST_based_lookup_valid ==
  653. 0, this field will be set to 0
  654. Address (lower 32 bits) of the REO queue descriptor.
  655. If no Peer entry lookup happened for this frame, the
  656. value wil be set to 0, and the frame shall never be pushed
  657. to REO entrance ring.
  658. <legal all>
  659. */
  660. #define RX_MPDU_START_10_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET 0x00000028
  661. #define RX_MPDU_START_10_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_LSB 0
  662. #define RX_MPDU_START_10_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_MASK 0xffffffff
  663. /* Description RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32
  664. In case of ndp or phy_err or AST_based_lookup_valid ==
  665. 0, this field will be set to 0
  666. Address (upper 8 bits) of the REO queue descriptor.
  667. If no Peer entry lookup happened for this frame, the
  668. value wil be set to 0, and the frame shall never be pushed
  669. to REO entrance ring.
  670. <legal all>
  671. */
  672. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET 0x0000002c
  673. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_LSB 0
  674. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_MASK 0x000000ff
  675. /* Description RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER
  676. In case of ndp or phy_err or AST_based_lookup_valid ==
  677. 0, this field will be set to 0
  678. Indicates the MPDU queue ID to which this MPDU link
  679. descriptor belongs
  680. Used for tracking and debugging
  681. <legal all>
  682. */
  683. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_OFFSET 0x0000002c
  684. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_LSB 8
  685. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_MASK 0x00ffff00
  686. /* Description RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING
  687. Indicates that a delimiter FCS error was found in
  688. between the Previous MPDU and this MPDU.
  689. Note that this is just a warning, and does not mean that
  690. this MPDU is corrupted in any way. If it is, there will be
  691. other errors indicated such as FCS or decrypt errors
  692. In case of ndp or phy_err, this field will indicate at
  693. least one of delimiters located after the last MPDU in the
  694. previous PPDU has been corrupted.
  695. */
  696. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_OFFSET 0x0000002c
  697. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_LSB 24
  698. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_MASK 0x01000000
  699. /* Description RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR
  700. Indicates that the first delimiter had a FCS failure.
  701. Only valid when first_mpdu and first_msdu are set.
  702. */
  703. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_OFFSET 0x0000002c
  704. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_LSB 25
  705. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_MASK 0x02000000
  706. /* Description RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RESERVED_11
  707. <legal 0>
  708. */
  709. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RESERVED_11_OFFSET 0x0000002c
  710. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RESERVED_11_LSB 26
  711. #define RX_MPDU_START_11_RX_MPDU_INFO_DETAILS_RESERVED_11_MASK 0xfc000000
  712. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET
  713. The key ID octet from the IV.
  714. In case of ndp or phy_err or AST_based_lookup_valid ==
  715. 0, this field will be set to 0
  716. <legal all>
  717. */
  718. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_OFFSET 0x00000030
  719. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_LSB 0
  720. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_MASK 0x000000ff
  721. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY
  722. In case of ndp or phy_err or AST_based_lookup_valid ==
  723. 0, this field will be set to 0
  724. Set if new RX_PEER_ENTRY TLV follows. If clear,
  725. RX_PEER_ENTRY doesn't follow so RX DECRYPTION module either
  726. uses old peer entry or not decrypt.
  727. <legal all>
  728. */
  729. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_OFFSET 0x00000030
  730. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_LSB 8
  731. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_MASK 0x00000100
  732. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED
  733. In case of ndp or phy_err or AST_based_lookup_valid ==
  734. 0, this field will be set to 0
  735. Set if decryption is needed.
  736. Note:
  737. When RXPCU sets bit 'ast_index_not_found' and/or
  738. ast_index_timeout', RXPCU will also ensure that this bit is
  739. NOT set
  740. CRYPTO for that reason only needs to evaluate this bit
  741. and non of the other ones.
  742. <legal all>
  743. */
  744. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_OFFSET 0x00000030
  745. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_LSB 9
  746. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_MASK 0x00000200
  747. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECAP_TYPE
  748. In case of ndp or phy_err or AST_based_lookup_valid ==
  749. 0, this field will be set to 0
  750. Used by the OLE during decapsulation.
  751. Indicates the decapsulation that HW will perform:
  752. <enum 0 RAW> No encapsulation
  753. <enum 1 Native_WiFi>
  754. <enum 2 Ethernet> Ethernet 2 (DIX) or 802.3 (uses
  755. SNAP/LLC)
  756. <enum 3 802_3> Indicate Ethernet
  757. <legal all>
  758. */
  759. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECAP_TYPE_OFFSET 0x00000030
  760. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECAP_TYPE_LSB 10
  761. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_DECAP_TYPE_MASK 0x00000c00
  762. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING
  763. In case of ndp or phy_err or AST_based_lookup_valid ==
  764. 0, this field will be set to 0
  765. Insert 4 byte of all zeros as VLAN tag if the rx payload
  766. does not have VLAN. Used during decapsulation.
  767. <legal all>
  768. */
  769. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_OFFSET 0x00000030
  770. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_LSB 12
  771. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_MASK 0x00001000
  772. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING
  773. In case of ndp or phy_err or AST_based_lookup_valid ==
  774. 0, this field will be set to 0
  775. Insert 4 byte of all zeros as double VLAN tag if the rx
  776. payload does not have VLAN. Used during
  777. <legal all>
  778. */
  779. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_OFFSET 0x00000030
  780. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_LSB 13
  781. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_MASK 0x00002000
  782. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP
  783. In case of ndp or phy_err or AST_based_lookup_valid ==
  784. 0, this field will be set to 0
  785. Strip the VLAN during decapsulation.  Used by the OLE.
  786. <legal all>
  787. */
  788. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_OFFSET 0x00000030
  789. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_LSB 14
  790. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_MASK 0x00004000
  791. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP
  792. In case of ndp or phy_err or AST_based_lookup_valid ==
  793. 0, this field will be set to 0
  794. Strip the double VLAN during decapsulation.  Used by
  795. the OLE.
  796. <legal all>
  797. */
  798. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_OFFSET 0x00000030
  799. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_LSB 15
  800. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_MASK 0x00008000
  801. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT
  802. The number of delimiters before this MPDU.
  803. Note that this number is cleared at PPDU start.
  804. If this MPDU is the first received MPDU in the PPDU and
  805. this MPDU gets filtered-in, this field will indicate the
  806. number of delimiters located after the last MPDU in the
  807. previous PPDU.
  808. If this MPDU is located after the first received MPDU in
  809. an PPDU, this field will indicate the number of delimiters
  810. located between the previous MPDU and this MPDU.
  811. In case of ndp or phy_err, this field will indicate the
  812. number of delimiters located after the last MPDU in the
  813. previous PPDU.
  814. <legal all>
  815. */
  816. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_OFFSET 0x00000030
  817. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_LSB 16
  818. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_MASK 0x0fff0000
  819. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_AMPDU_FLAG
  820. When set, received frame was part of an A-MPDU.
  821. <legal all>
  822. */
  823. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_OFFSET 0x00000030
  824. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_LSB 28
  825. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_MASK 0x10000000
  826. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_BAR_FRAME
  827. In case of ndp or phy_err or AST_based_lookup_valid ==
  828. 0, this field will be set to 0
  829. When set, received frame is a BAR frame
  830. <legal all>
  831. */
  832. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_BAR_FRAME_OFFSET 0x00000030
  833. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_BAR_FRAME_LSB 29
  834. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_BAR_FRAME_MASK 0x20000000
  835. /* Description RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RESERVED_12
  836. <legal 0>.
  837. */
  838. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RESERVED_12_OFFSET 0x00000030
  839. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RESERVED_12_LSB 30
  840. #define RX_MPDU_START_12_RX_MPDU_INFO_DETAILS_RESERVED_12_MASK 0xc0000000
  841. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MPDU_LENGTH
  842. In case of ndp or phy_err this field will be set to 0
  843. MPDU length before decapsulation.
  844. <legal all>
  845. */
  846. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_OFFSET 0x00000034
  847. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_LSB 0
  848. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_MASK 0x00003fff
  849. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FIRST_MPDU
  850. See definition in RX attention descriptor
  851. In case of ndp or phy_err, this field will be set. Note
  852. however that there will not actually be any data contents in
  853. the MPDU.
  854. <legal all>
  855. */
  856. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FIRST_MPDU_OFFSET 0x00000034
  857. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FIRST_MPDU_LSB 14
  858. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FIRST_MPDU_MASK 0x00004000
  859. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MCAST_BCAST
  860. In case of ndp or phy_err or Phy_err_during_mpdu_header
  861. this field will be set to 0
  862. See definition in RX attention descriptor
  863. <legal all>
  864. */
  865. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MCAST_BCAST_OFFSET 0x00000034
  866. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MCAST_BCAST_LSB 15
  867. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MCAST_BCAST_MASK 0x00008000
  868. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND
  869. In case of ndp or phy_err or Phy_err_during_mpdu_header
  870. this field will be set to 0
  871. See definition in RX attention descriptor
  872. <legal all>
  873. */
  874. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_OFFSET 0x00000034
  875. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_LSB 16
  876. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_MASK 0x00010000
  877. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT
  878. In case of ndp or phy_err or Phy_err_during_mpdu_header
  879. this field will be set to 0
  880. See definition in RX attention descriptor
  881. <legal all>
  882. */
  883. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_OFFSET 0x00000034
  884. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_LSB 17
  885. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_MASK 0x00020000
  886. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_POWER_MGMT
  887. In case of ndp or phy_err or Phy_err_during_mpdu_header
  888. this field will be set to 0
  889. See definition in RX attention descriptor
  890. <legal all>
  891. */
  892. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_POWER_MGMT_OFFSET 0x00000034
  893. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_POWER_MGMT_LSB 18
  894. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_POWER_MGMT_MASK 0x00040000
  895. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NON_QOS
  896. In case of ndp or phy_err or Phy_err_during_mpdu_header
  897. this field will be set to 1
  898. See definition in RX attention descriptor
  899. <legal all>
  900. */
  901. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NON_QOS_OFFSET 0x00000034
  902. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NON_QOS_LSB 19
  903. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NON_QOS_MASK 0x00080000
  904. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NULL_DATA
  905. In case of ndp or phy_err or Phy_err_during_mpdu_header
  906. this field will be set to 0
  907. See definition in RX attention descriptor
  908. <legal all>
  909. */
  910. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NULL_DATA_OFFSET 0x00000034
  911. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NULL_DATA_LSB 20
  912. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_NULL_DATA_MASK 0x00100000
  913. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MGMT_TYPE
  914. In case of ndp or phy_err or Phy_err_during_mpdu_header
  915. this field will be set to 0
  916. See definition in RX attention descriptor
  917. <legal all>
  918. */
  919. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MGMT_TYPE_OFFSET 0x00000034
  920. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MGMT_TYPE_LSB 21
  921. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MGMT_TYPE_MASK 0x00200000
  922. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_CTRL_TYPE
  923. In case of ndp or phy_err or Phy_err_during_mpdu_header
  924. this field will be set to 0
  925. See definition in RX attention descriptor
  926. <legal all>
  927. */
  928. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_CTRL_TYPE_OFFSET 0x00000034
  929. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_CTRL_TYPE_LSB 22
  930. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_CTRL_TYPE_MASK 0x00400000
  931. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MORE_DATA
  932. In case of ndp or phy_err or Phy_err_during_mpdu_header
  933. this field will be set to 0
  934. See definition in RX attention descriptor
  935. <legal all>
  936. */
  937. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MORE_DATA_OFFSET 0x00000034
  938. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MORE_DATA_LSB 23
  939. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_MORE_DATA_MASK 0x00800000
  940. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_EOSP
  941. In case of ndp or phy_err or Phy_err_during_mpdu_header
  942. this field will be set to 0
  943. See definition in RX attention descriptor
  944. <legal all>
  945. */
  946. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_EOSP_OFFSET 0x00000034
  947. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_EOSP_LSB 24
  948. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_EOSP_MASK 0x01000000
  949. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG
  950. In case of ndp or phy_err or Phy_err_during_mpdu_header
  951. this field will be set to 0
  952. See definition in RX attention descriptor
  953. <legal all>
  954. */
  955. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_OFFSET 0x00000034
  956. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_LSB 25
  957. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_MASK 0x02000000
  958. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ORDER
  959. In case of ndp or phy_err or Phy_err_during_mpdu_header
  960. this field will be set to 0
  961. See definition in RX attention descriptor
  962. <legal all>
  963. */
  964. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ORDER_OFFSET 0x00000034
  965. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ORDER_LSB 26
  966. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ORDER_MASK 0x04000000
  967. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER
  968. In case of ndp or phy_err or Phy_err_during_mpdu_header
  969. this field will be set to 0
  970. See definition in RX attention descriptor
  971. <legal all>
  972. */
  973. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_OFFSET 0x00000034
  974. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_LSB 27
  975. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_MASK 0x08000000
  976. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED
  977. In case of ndp or phy_err or Phy_err_during_mpdu_header
  978. this field will be set to 0
  979. See definition in RX attention descriptor
  980. <legal all>
  981. */
  982. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_OFFSET 0x00000034
  983. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_LSB 28
  984. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_MASK 0x10000000
  985. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_DIRECTED
  986. In case of ndp or phy_err or Phy_err_during_mpdu_header
  987. this field will be set to 0
  988. See definition in RX attention descriptor
  989. <legal all>
  990. */
  991. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_DIRECTED_OFFSET 0x00000034
  992. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_DIRECTED_LSB 29
  993. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_DIRECTED_MASK 0x20000000
  994. /* Description RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_RESERVED_13
  995. <legal 0>
  996. */
  997. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_RESERVED_13_OFFSET 0x00000034
  998. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_RESERVED_13_LSB 30
  999. #define RX_MPDU_START_13_RX_MPDU_INFO_DETAILS_RESERVED_13_MASK 0xc0000000
  1000. /* Description RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD
  1001. Field only valid when Mpdu_frame_control_valid is set
  1002. The frame control field of this received MPDU.
  1003. Field only valid when Ndp_frame and phy_err are NOT set
  1004. Bytes 0 + 1 of the received MPDU
  1005. <legal all>
  1006. */
  1007. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_OFFSET 0x00000038
  1008. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_LSB 0
  1009. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_MASK 0x0000ffff
  1010. /* Description RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD
  1011. Field only valid when Mpdu_duration_valid is set
  1012. The duration field of this received MPDU.
  1013. <legal all>
  1014. */
  1015. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_OFFSET 0x00000038
  1016. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_LSB 16
  1017. #define RX_MPDU_START_14_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_MASK 0xffff0000
  1018. /* Description RX_MPDU_START_15_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0
  1019. Field only valid when mac_addr_ad1_valid is set
  1020. The Least Significant 4 bytes of the Received Frames MAC
  1021. Address AD1
  1022. <legal all>
  1023. */
  1024. #define RX_MPDU_START_15_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_OFFSET 0x0000003c
  1025. #define RX_MPDU_START_15_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_LSB 0
  1026. #define RX_MPDU_START_15_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_MASK 0xffffffff
  1027. /* Description RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32
  1028. Field only valid when mac_addr_ad1_valid is set
  1029. The 2 most significant bytes of the Received Frames MAC
  1030. Address AD1
  1031. <legal all>
  1032. */
  1033. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_OFFSET 0x00000040
  1034. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_LSB 0
  1035. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_MASK 0x0000ffff
  1036. /* Description RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0
  1037. Field only valid when mac_addr_ad2_valid is set
  1038. The Least Significant 2 bytes of the Received Frames MAC
  1039. Address AD2
  1040. <legal all>
  1041. */
  1042. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_OFFSET 0x00000040
  1043. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_LSB 16
  1044. #define RX_MPDU_START_16_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_MASK 0xffff0000
  1045. /* Description RX_MPDU_START_17_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16
  1046. Field only valid when mac_addr_ad2_valid is set
  1047. The 4 most significant bytes of the Received Frames MAC
  1048. Address AD2
  1049. <legal all>
  1050. */
  1051. #define RX_MPDU_START_17_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_OFFSET 0x00000044
  1052. #define RX_MPDU_START_17_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_LSB 0
  1053. #define RX_MPDU_START_17_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_MASK 0xffffffff
  1054. /* Description RX_MPDU_START_18_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0
  1055. Field only valid when mac_addr_ad3_valid is set
  1056. The Least Significant 4 bytes of the Received Frames MAC
  1057. Address AD3
  1058. <legal all>
  1059. */
  1060. #define RX_MPDU_START_18_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_OFFSET 0x00000048
  1061. #define RX_MPDU_START_18_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_LSB 0
  1062. #define RX_MPDU_START_18_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_MASK 0xffffffff
  1063. /* Description RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32
  1064. Field only valid when mac_addr_ad3_valid is set
  1065. The 2 most significant bytes of the Received Frames MAC
  1066. Address AD3
  1067. <legal all>
  1068. */
  1069. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_OFFSET 0x0000004c
  1070. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_LSB 0
  1071. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_MASK 0x0000ffff
  1072. /* Description RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD
  1073. The sequence control field of the MPDU
  1074. <legal all>
  1075. */
  1076. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_OFFSET 0x0000004c
  1077. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_LSB 16
  1078. #define RX_MPDU_START_19_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_MASK 0xffff0000
  1079. /* Description RX_MPDU_START_20_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0
  1080. Field only valid when mac_addr_ad4_valid is set
  1081. The Least Significant 4 bytes of the Received Frames MAC
  1082. Address AD4
  1083. <legal all>
  1084. */
  1085. #define RX_MPDU_START_20_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_OFFSET 0x00000050
  1086. #define RX_MPDU_START_20_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_LSB 0
  1087. #define RX_MPDU_START_20_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_MASK 0xffffffff
  1088. /* Description RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32
  1089. Field only valid when mac_addr_ad4_valid is set
  1090. The 2 most significant bytes of the Received Frames MAC
  1091. Address AD4
  1092. <legal all>
  1093. */
  1094. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_OFFSET 0x00000054
  1095. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_LSB 0
  1096. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_MASK 0x0000ffff
  1097. /* Description RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD
  1098. Field only valid when mpdu_qos_control_valid is set
  1099. The sequence control field of the MPDU
  1100. <legal all>
  1101. */
  1102. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_OFFSET 0x00000054
  1103. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_LSB 16
  1104. #define RX_MPDU_START_21_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_MASK 0xffff0000
  1105. /* Description RX_MPDU_START_22_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD
  1106. Field only valid when mpdu_qos_control_valid is set
  1107. The HT control field of the MPDU
  1108. <legal all>
  1109. */
  1110. #define RX_MPDU_START_22_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_OFFSET 0x00000058
  1111. #define RX_MPDU_START_22_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_LSB 0
  1112. #define RX_MPDU_START_22_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_MASK 0xffffffff
  1113. /* Description RX_MPDU_START_23_RAW_MPDU
  1114. Set by OLE when it has not performed any .11 to .3
  1115. header conversion on this MPDU.
  1116. <legal all>
  1117. */
  1118. #define RX_MPDU_START_23_RAW_MPDU_OFFSET 0x0000005c
  1119. #define RX_MPDU_START_23_RAW_MPDU_LSB 0
  1120. #define RX_MPDU_START_23_RAW_MPDU_MASK 0x00000001
  1121. /* Description RX_MPDU_START_23_RESERVED_23
  1122. <legal 0>
  1123. */
  1124. #define RX_MPDU_START_23_RESERVED_23_OFFSET 0x0000005c
  1125. #define RX_MPDU_START_23_RESERVED_23_LSB 1
  1126. #define RX_MPDU_START_23_RESERVED_23_MASK 0xfffffffe
  1127. #endif // _RX_MPDU_START_H_