rx_mpdu_end.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. /*
  2. * Copyright (c) 2019 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. //
  19. // DO NOT EDIT! This file is automatically generated
  20. // These definitions are tied to a particular hardware layout
  21. #ifndef _RX_MPDU_END_H_
  22. #define _RX_MPDU_END_H_
  23. #if !defined(__ASSEMBLER__)
  24. #endif
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0 rxpcu_mpdu_filter_in_category[1:0], sw_frame_group_id[8:2], reserved_0[15:9], phy_ppdu_id[31:16]
  29. // 1 reserved_1a[10:0], unsup_ktype_short_frame[11], rx_in_tx_decrypt_byp[12], overflow_err[13], mpdu_length_err[14], tkip_mic_err[15], decrypt_err[16], unencrypted_frame_err[17], pn_fields_contain_valid_info[18], fcs_err[19], msdu_length_err[20], rxdma0_destination_ring[22:21], rxdma1_destination_ring[24:23], decrypt_status_code[27:25], rx_bitmap_not_updated[28], reserved_1b[31:29]
  30. //
  31. // ################ END SUMMARY #################
  32. #define NUM_OF_DWORDS_RX_MPDU_END 2
  33. struct rx_mpdu_end {
  34. uint32_t rxpcu_mpdu_filter_in_category : 2, //[1:0]
  35. sw_frame_group_id : 7, //[8:2]
  36. reserved_0 : 7, //[15:9]
  37. phy_ppdu_id : 16; //[31:16]
  38. uint32_t reserved_1a : 11, //[10:0]
  39. unsup_ktype_short_frame : 1, //[11]
  40. rx_in_tx_decrypt_byp : 1, //[12]
  41. overflow_err : 1, //[13]
  42. mpdu_length_err : 1, //[14]
  43. tkip_mic_err : 1, //[15]
  44. decrypt_err : 1, //[16]
  45. unencrypted_frame_err : 1, //[17]
  46. pn_fields_contain_valid_info : 1, //[18]
  47. fcs_err : 1, //[19]
  48. msdu_length_err : 1, //[20]
  49. rxdma0_destination_ring : 2, //[22:21]
  50. rxdma1_destination_ring : 2, //[24:23]
  51. decrypt_status_code : 3, //[27:25]
  52. rx_bitmap_not_updated : 1, //[28]
  53. reserved_1b : 3; //[31:29]
  54. };
  55. /*
  56. rxpcu_mpdu_filter_in_category
  57. Field indicates what the reason was that this MPDU frame
  58. was allowed to come into the receive path by RXPCU
  59. <enum 0 rxpcu_filter_pass> This MPDU passed the normal
  60. frame filter programming of rxpcu
  61. <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
  62. regular frame filter and would have been dropped, were it
  63. not for the frame fitting into the 'monitor_client'
  64. category.
  65. <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
  66. regular frame filter and also did not pass the
  67. rxpcu_monitor_client filter. It would have been dropped
  68. accept that it did pass the 'monitor_other' category.
  69. <legal 0-2>
  70. sw_frame_group_id
  71. SW processes frames based on certain classifications.
  72. This field indicates to what sw classification this MPDU is
  73. mapped.
  74. The classification is given in priority order
  75. <enum 0 sw_frame_group_NDP_frame>
  76. <enum 1 sw_frame_group_Multicast_data>
  77. <enum 2 sw_frame_group_Unicast_data>
  78. <enum 3 sw_frame_group_Null_data > This includes mpdus
  79. of type Data Null as well as QoS Data Null
  80. <enum 4 sw_frame_group_mgmt_0000 >
  81. <enum 5 sw_frame_group_mgmt_0001 >
  82. <enum 6 sw_frame_group_mgmt_0010 >
  83. <enum 7 sw_frame_group_mgmt_0011 >
  84. <enum 8 sw_frame_group_mgmt_0100 >
  85. <enum 9 sw_frame_group_mgmt_0101 >
  86. <enum 10 sw_frame_group_mgmt_0110 >
  87. <enum 11 sw_frame_group_mgmt_0111 >
  88. <enum 12 sw_frame_group_mgmt_1000 >
  89. <enum 13 sw_frame_group_mgmt_1001 >
  90. <enum 14 sw_frame_group_mgmt_1010 >
  91. <enum 15 sw_frame_group_mgmt_1011 >
  92. <enum 16 sw_frame_group_mgmt_1100 >
  93. <enum 17 sw_frame_group_mgmt_1101 >
  94. <enum 18 sw_frame_group_mgmt_1110 >
  95. <enum 19 sw_frame_group_mgmt_1111 >
  96. <enum 20 sw_frame_group_ctrl_0000 >
  97. <enum 21 sw_frame_group_ctrl_0001 >
  98. <enum 22 sw_frame_group_ctrl_0010 >
  99. <enum 23 sw_frame_group_ctrl_0011 >
  100. <enum 24 sw_frame_group_ctrl_0100 >
  101. <enum 25 sw_frame_group_ctrl_0101 >
  102. <enum 26 sw_frame_group_ctrl_0110 >
  103. <enum 27 sw_frame_group_ctrl_0111 >
  104. <enum 28 sw_frame_group_ctrl_1000 >
  105. <enum 29 sw_frame_group_ctrl_1001 >
  106. <enum 30 sw_frame_group_ctrl_1010 >
  107. <enum 31 sw_frame_group_ctrl_1011 >
  108. <enum 32 sw_frame_group_ctrl_1100 >
  109. <enum 33 sw_frame_group_ctrl_1101 >
  110. <enum 34 sw_frame_group_ctrl_1110 >
  111. <enum 35 sw_frame_group_ctrl_1111 >
  112. <enum 36 sw_frame_group_unsupported> This covers type 3
  113. and protocol version != 0
  114. <legal 0-37>
  115. reserved_0
  116. <legal 0>
  117. phy_ppdu_id
  118. A ppdu counter value that PHY increments for every PPDU
  119. received. The counter value wraps around
  120. <legal all>
  121. reserved_1a
  122. <legal 0>
  123. unsup_ktype_short_frame
  124. This bit will be '1' when WEP or TKIP or WAPI key type
  125. is received for 11ah short frame. Crypto will bypass the
  126. received packet without decryption to RxOLE after setting
  127. this bit.
  128. rx_in_tx_decrypt_byp
  129. Indicates that RX packet is not decrypted as Crypto is
  130. busy with TX packet processing.
  131. overflow_err
  132. RXPCU Receive FIFO ran out of space to receive the full
  133. MPDU. Therefor this MPDU is terminated early and is thus
  134. corrupted.
  135. This MPDU will not be ACKed.
  136. RXPCU might still be able to correctly receive the
  137. following MPDUs in the PPDU if enough fifo space became
  138. available in time
  139. mpdu_length_err
  140. Set by RXPCU if the expected MPDU length does not
  141. correspond with the actually received number of bytes in the
  142. MPDU.
  143. tkip_mic_err
  144. Set by RX CRYPTO when CRYPTO detected a TKIP MIC error
  145. for this MPDU
  146. decrypt_err
  147. Set by RX CRYPTO when CRYPTO detected a decrypt error
  148. for this MPDU or CRYPTO received an encrypted frame, but did
  149. not get a valid corresponding key id in the peer entry.
  150. unencrypted_frame_err
  151. Set by RX CRYPTO when CRYPTO detected an unencrypted
  152. frame while in the peer entry field
  153. 'All_frames_shall_be_encrypted' is set.
  154. pn_fields_contain_valid_info
  155. Set by RX CRYPTO to indicate that there is a valid PN
  156. field present in this MPDU
  157. fcs_err
  158. Set by RXPCU when there is an FCS error detected for
  159. this MPDU
  160. NOTE that when this field is set, all other (error)
  161. field settings should be ignored as modules could have made
  162. wrong decisions based on the corrupted data.
  163. msdu_length_err
  164. Set by RXOLE when there is an msdu length error detected
  165. in at least 1 of the MSDUs embedded within the MPDU
  166. rxdma0_destination_ring
  167. The ring to which RXDMA0 shall push the frame, assuming
  168. no MPDU level errors are detected. In case of MPDU level
  169. errors, RXDMA0 might change the RXDMA0 destination
  170. <enum 0 rxdma_release_ring > RXDMA0 shall push the
  171. frame to the Release ring. Effectively this means the frame
  172. needs to be dropped.
  173. <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
  174. the FW ring
  175. <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
  176. the SW ring
  177. <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
  178. to the REO entrance ring
  179. <legal all>
  180. rxdma1_destination_ring
  181. The ring to which RXDMA1 shall push the frame, assuming
  182. no MPDU level errors are detected. In case of MPDU level
  183. errors, RXDMA1 might change the RXDMA destination
  184. <enum 0 rxdma_release_ring > RXDMA1 shall push the
  185. frame to the Release ring. Effectively this means the frame
  186. needs to be dropped.
  187. <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to
  188. the FW ring
  189. <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to
  190. the SW ring
  191. <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame
  192. to the REO entrance ring
  193. <legal all>
  194. decrypt_status_code
  195. Field provides insight into the decryption performed
  196. <enum 0 decrypt_ok> Frame had protection enabled and
  197. decrypted properly
  198. <enum 1 decrypt_unprotected_frame > Frame is unprotected
  199. and hence bypassed
  200. <enum 2 decrypt_data_err > Frame has protection enabled
  201. and could not be properly decrypted due to MIC/ICV mismatch
  202. etc.
  203. <enum 3 decrypt_key_invalid > Frame has protection
  204. enabled but the key that was required to decrypt this frame
  205. was not valid
  206. <enum 4 decrypt_peer_entry_invalid > Frame has
  207. protection enabled but the key that was required to decrypt
  208. this frame was not valid
  209. <enum 5 decrypt_other > Reserved for other indications
  210. <legal 0 - 5>
  211. rx_bitmap_not_updated
  212. Frame is received, but RXPCU could not update the
  213. receive bitmap due to (temporary) fifo contraints.
  214. <legal all>
  215. reserved_1b
  216. <legal 0>
  217. */
  218. /* Description RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY
  219. Field indicates what the reason was that this MPDU frame
  220. was allowed to come into the receive path by RXPCU
  221. <enum 0 rxpcu_filter_pass> This MPDU passed the normal
  222. frame filter programming of rxpcu
  223. <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
  224. regular frame filter and would have been dropped, were it
  225. not for the frame fitting into the 'monitor_client'
  226. category.
  227. <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
  228. regular frame filter and also did not pass the
  229. rxpcu_monitor_client filter. It would have been dropped
  230. accept that it did pass the 'monitor_other' category.
  231. <legal 0-2>
  232. */
  233. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x00000000
  234. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0
  235. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x00000003
  236. /* Description RX_MPDU_END_0_SW_FRAME_GROUP_ID
  237. SW processes frames based on certain classifications.
  238. This field indicates to what sw classification this MPDU is
  239. mapped.
  240. The classification is given in priority order
  241. <enum 0 sw_frame_group_NDP_frame>
  242. <enum 1 sw_frame_group_Multicast_data>
  243. <enum 2 sw_frame_group_Unicast_data>
  244. <enum 3 sw_frame_group_Null_data > This includes mpdus
  245. of type Data Null as well as QoS Data Null
  246. <enum 4 sw_frame_group_mgmt_0000 >
  247. <enum 5 sw_frame_group_mgmt_0001 >
  248. <enum 6 sw_frame_group_mgmt_0010 >
  249. <enum 7 sw_frame_group_mgmt_0011 >
  250. <enum 8 sw_frame_group_mgmt_0100 >
  251. <enum 9 sw_frame_group_mgmt_0101 >
  252. <enum 10 sw_frame_group_mgmt_0110 >
  253. <enum 11 sw_frame_group_mgmt_0111 >
  254. <enum 12 sw_frame_group_mgmt_1000 >
  255. <enum 13 sw_frame_group_mgmt_1001 >
  256. <enum 14 sw_frame_group_mgmt_1010 >
  257. <enum 15 sw_frame_group_mgmt_1011 >
  258. <enum 16 sw_frame_group_mgmt_1100 >
  259. <enum 17 sw_frame_group_mgmt_1101 >
  260. <enum 18 sw_frame_group_mgmt_1110 >
  261. <enum 19 sw_frame_group_mgmt_1111 >
  262. <enum 20 sw_frame_group_ctrl_0000 >
  263. <enum 21 sw_frame_group_ctrl_0001 >
  264. <enum 22 sw_frame_group_ctrl_0010 >
  265. <enum 23 sw_frame_group_ctrl_0011 >
  266. <enum 24 sw_frame_group_ctrl_0100 >
  267. <enum 25 sw_frame_group_ctrl_0101 >
  268. <enum 26 sw_frame_group_ctrl_0110 >
  269. <enum 27 sw_frame_group_ctrl_0111 >
  270. <enum 28 sw_frame_group_ctrl_1000 >
  271. <enum 29 sw_frame_group_ctrl_1001 >
  272. <enum 30 sw_frame_group_ctrl_1010 >
  273. <enum 31 sw_frame_group_ctrl_1011 >
  274. <enum 32 sw_frame_group_ctrl_1100 >
  275. <enum 33 sw_frame_group_ctrl_1101 >
  276. <enum 34 sw_frame_group_ctrl_1110 >
  277. <enum 35 sw_frame_group_ctrl_1111 >
  278. <enum 36 sw_frame_group_unsupported> This covers type 3
  279. and protocol version != 0
  280. <legal 0-37>
  281. */
  282. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_OFFSET 0x00000000
  283. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_LSB 2
  284. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_MASK 0x000001fc
  285. /* Description RX_MPDU_END_0_RESERVED_0
  286. <legal 0>
  287. */
  288. #define RX_MPDU_END_0_RESERVED_0_OFFSET 0x00000000
  289. #define RX_MPDU_END_0_RESERVED_0_LSB 9
  290. #define RX_MPDU_END_0_RESERVED_0_MASK 0x0000fe00
  291. /* Description RX_MPDU_END_0_PHY_PPDU_ID
  292. A ppdu counter value that PHY increments for every PPDU
  293. received. The counter value wraps around
  294. <legal all>
  295. */
  296. #define RX_MPDU_END_0_PHY_PPDU_ID_OFFSET 0x00000000
  297. #define RX_MPDU_END_0_PHY_PPDU_ID_LSB 16
  298. #define RX_MPDU_END_0_PHY_PPDU_ID_MASK 0xffff0000
  299. /* Description RX_MPDU_END_1_RESERVED_1A
  300. <legal 0>
  301. */
  302. #define RX_MPDU_END_1_RESERVED_1A_OFFSET 0x00000004
  303. #define RX_MPDU_END_1_RESERVED_1A_LSB 0
  304. #define RX_MPDU_END_1_RESERVED_1A_MASK 0x000007ff
  305. /* Description RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME
  306. This bit will be '1' when WEP or TKIP or WAPI key type
  307. is received for 11ah short frame. Crypto will bypass the
  308. received packet without decryption to RxOLE after setting
  309. this bit.
  310. */
  311. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_OFFSET 0x00000004
  312. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_LSB 11
  313. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_MASK 0x00000800
  314. /* Description RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP
  315. Indicates that RX packet is not decrypted as Crypto is
  316. busy with TX packet processing.
  317. */
  318. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_OFFSET 0x00000004
  319. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_LSB 12
  320. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_MASK 0x00001000
  321. /* Description RX_MPDU_END_1_OVERFLOW_ERR
  322. RXPCU Receive FIFO ran out of space to receive the full
  323. MPDU. Therefor this MPDU is terminated early and is thus
  324. corrupted.
  325. This MPDU will not be ACKed.
  326. RXPCU might still be able to correctly receive the
  327. following MPDUs in the PPDU if enough fifo space became
  328. available in time
  329. */
  330. #define RX_MPDU_END_1_OVERFLOW_ERR_OFFSET 0x00000004
  331. #define RX_MPDU_END_1_OVERFLOW_ERR_LSB 13
  332. #define RX_MPDU_END_1_OVERFLOW_ERR_MASK 0x00002000
  333. /* Description RX_MPDU_END_1_MPDU_LENGTH_ERR
  334. Set by RXPCU if the expected MPDU length does not
  335. correspond with the actually received number of bytes in the
  336. MPDU.
  337. */
  338. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_OFFSET 0x00000004
  339. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_LSB 14
  340. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_MASK 0x00004000
  341. /* Description RX_MPDU_END_1_TKIP_MIC_ERR
  342. Set by RX CRYPTO when CRYPTO detected a TKIP MIC error
  343. for this MPDU
  344. */
  345. #define RX_MPDU_END_1_TKIP_MIC_ERR_OFFSET 0x00000004
  346. #define RX_MPDU_END_1_TKIP_MIC_ERR_LSB 15
  347. #define RX_MPDU_END_1_TKIP_MIC_ERR_MASK 0x00008000
  348. /* Description RX_MPDU_END_1_DECRYPT_ERR
  349. Set by RX CRYPTO when CRYPTO detected a decrypt error
  350. for this MPDU or CRYPTO received an encrypted frame, but did
  351. not get a valid corresponding key id in the peer entry.
  352. */
  353. #define RX_MPDU_END_1_DECRYPT_ERR_OFFSET 0x00000004
  354. #define RX_MPDU_END_1_DECRYPT_ERR_LSB 16
  355. #define RX_MPDU_END_1_DECRYPT_ERR_MASK 0x00010000
  356. /* Description RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR
  357. Set by RX CRYPTO when CRYPTO detected an unencrypted
  358. frame while in the peer entry field
  359. 'All_frames_shall_be_encrypted' is set.
  360. */
  361. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_OFFSET 0x00000004
  362. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_LSB 17
  363. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_MASK 0x00020000
  364. /* Description RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO
  365. Set by RX CRYPTO to indicate that there is a valid PN
  366. field present in this MPDU
  367. */
  368. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000004
  369. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_LSB 18
  370. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00040000
  371. /* Description RX_MPDU_END_1_FCS_ERR
  372. Set by RXPCU when there is an FCS error detected for
  373. this MPDU
  374. NOTE that when this field is set, all other (error)
  375. field settings should be ignored as modules could have made
  376. wrong decisions based on the corrupted data.
  377. */
  378. #define RX_MPDU_END_1_FCS_ERR_OFFSET 0x00000004
  379. #define RX_MPDU_END_1_FCS_ERR_LSB 19
  380. #define RX_MPDU_END_1_FCS_ERR_MASK 0x00080000
  381. /* Description RX_MPDU_END_1_MSDU_LENGTH_ERR
  382. Set by RXOLE when there is an msdu length error detected
  383. in at least 1 of the MSDUs embedded within the MPDU
  384. */
  385. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_OFFSET 0x00000004
  386. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_LSB 20
  387. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_MASK 0x00100000
  388. /* Description RX_MPDU_END_1_RXDMA0_DESTINATION_RING
  389. The ring to which RXDMA0 shall push the frame, assuming
  390. no MPDU level errors are detected. In case of MPDU level
  391. errors, RXDMA0 might change the RXDMA0 destination
  392. <enum 0 rxdma_release_ring > RXDMA0 shall push the
  393. frame to the Release ring. Effectively this means the frame
  394. needs to be dropped.
  395. <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
  396. the FW ring
  397. <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
  398. the SW ring
  399. <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
  400. to the REO entrance ring
  401. <legal all>
  402. */
  403. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_OFFSET 0x00000004
  404. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_LSB 21
  405. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_MASK 0x00600000
  406. /* Description RX_MPDU_END_1_RXDMA1_DESTINATION_RING
  407. The ring to which RXDMA1 shall push the frame, assuming
  408. no MPDU level errors are detected. In case of MPDU level
  409. errors, RXDMA1 might change the RXDMA destination
  410. <enum 0 rxdma_release_ring > RXDMA1 shall push the
  411. frame to the Release ring. Effectively this means the frame
  412. needs to be dropped.
  413. <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to
  414. the FW ring
  415. <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to
  416. the SW ring
  417. <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame
  418. to the REO entrance ring
  419. <legal all>
  420. */
  421. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_OFFSET 0x00000004
  422. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_LSB 23
  423. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_MASK 0x01800000
  424. /* Description RX_MPDU_END_1_DECRYPT_STATUS_CODE
  425. Field provides insight into the decryption performed
  426. <enum 0 decrypt_ok> Frame had protection enabled and
  427. decrypted properly
  428. <enum 1 decrypt_unprotected_frame > Frame is unprotected
  429. and hence bypassed
  430. <enum 2 decrypt_data_err > Frame has protection enabled
  431. and could not be properly decrypted due to MIC/ICV mismatch
  432. etc.
  433. <enum 3 decrypt_key_invalid > Frame has protection
  434. enabled but the key that was required to decrypt this frame
  435. was not valid
  436. <enum 4 decrypt_peer_entry_invalid > Frame has
  437. protection enabled but the key that was required to decrypt
  438. this frame was not valid
  439. <enum 5 decrypt_other > Reserved for other indications
  440. <legal 0 - 5>
  441. */
  442. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_OFFSET 0x00000004
  443. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_LSB 25
  444. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_MASK 0x0e000000
  445. /* Description RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED
  446. Frame is received, but RXPCU could not update the
  447. receive bitmap due to (temporary) fifo contraints.
  448. <legal all>
  449. */
  450. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_OFFSET 0x00000004
  451. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_LSB 28
  452. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_MASK 0x10000000
  453. /* Description RX_MPDU_END_1_RESERVED_1B
  454. <legal 0>
  455. */
  456. #define RX_MPDU_END_1_RESERVED_1B_OFFSET 0x00000004
  457. #define RX_MPDU_END_1_RESERVED_1B_LSB 29
  458. #define RX_MPDU_END_1_RESERVED_1B_MASK 0xe0000000
  459. #endif // _RX_MPDU_END_H_