tx_fes_status_start_ppdu.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. /*
  2. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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. #ifndef _TX_FES_STATUS_START_PPDU_H_
  17. #define _TX_FES_STATUS_START_PPDU_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #define NUM_OF_DWORDS_TX_FES_STATUS_START_PPDU 4
  21. #define NUM_OF_QWORDS_TX_FES_STATUS_START_PPDU 2
  22. struct tx_fes_status_start_ppdu {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t ppdu_timestamp_lower_32 : 32; // [31:0]
  25. uint32_t ppdu_timestamp_upper_32 : 32; // [31:0]
  26. uint32_t subband_mask : 16, // [15:0]
  27. ndp_frame : 2, // [17:16]
  28. reserved_2b : 2, // [19:18]
  29. coex_based_tx_bw : 3, // [22:20]
  30. coex_based_ant_mask : 8, // [30:23]
  31. reserved_2c : 1; // [31:31]
  32. uint32_t coex_based_tx_pwr_shared_ant : 8, // [7:0]
  33. coex_based_tx_pwr_ant : 8, // [15:8]
  34. concurrent_bt_tx : 1, // [16:16]
  35. concurrent_wlan_tx : 1, // [17:17]
  36. concurrent_wan_tx : 1, // [18:18]
  37. concurrent_wan_rx : 1, // [19:19]
  38. coex_pwr_reduction_bt : 1, // [20:20]
  39. coex_pwr_reduction_wlan : 1, // [21:21]
  40. coex_pwr_reduction_wan : 1, // [22:22]
  41. coex_result_alt_based : 1, // [23:23]
  42. request_packet_bw : 3, // [26:24]
  43. response_type : 5; // [31:27]
  44. #else
  45. uint32_t ppdu_timestamp_lower_32 : 32; // [31:0]
  46. uint32_t ppdu_timestamp_upper_32 : 32; // [31:0]
  47. uint32_t reserved_2c : 1, // [31:31]
  48. coex_based_ant_mask : 8, // [30:23]
  49. coex_based_tx_bw : 3, // [22:20]
  50. reserved_2b : 2, // [19:18]
  51. ndp_frame : 2, // [17:16]
  52. subband_mask : 16; // [15:0]
  53. uint32_t response_type : 5, // [31:27]
  54. request_packet_bw : 3, // [26:24]
  55. coex_result_alt_based : 1, // [23:23]
  56. coex_pwr_reduction_wan : 1, // [22:22]
  57. coex_pwr_reduction_wlan : 1, // [21:21]
  58. coex_pwr_reduction_bt : 1, // [20:20]
  59. concurrent_wan_rx : 1, // [19:19]
  60. concurrent_wan_tx : 1, // [18:18]
  61. concurrent_wlan_tx : 1, // [17:17]
  62. concurrent_bt_tx : 1, // [16:16]
  63. coex_based_tx_pwr_ant : 8, // [15:8]
  64. coex_based_tx_pwr_shared_ant : 8; // [7:0]
  65. #endif
  66. };
  67. /* Description PPDU_TIMESTAMP_LOWER_32
  68. Global timer value at start of Protection transmission
  69. */
  70. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000
  71. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_LSB 0
  72. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MSB 31
  73. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff
  74. /* Description PPDU_TIMESTAMP_UPPER_32
  75. Global timer value at start of Protection transmission
  76. */
  77. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000
  78. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_LSB 32
  79. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MSB 63
  80. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000
  81. /* Description SUBBAND_MASK
  82. This mask indicates which 20 Mhz channels are actively used
  83. in the BW or puncture pattern selected for transmit.
  84. Bit 0: primary 20 Mhz
  85. Bit 1: secondary 20 MHz
  86. Etc.
  87. <legal all>
  88. */
  89. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_OFFSET 0x0000000000000008
  90. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_LSB 0
  91. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MSB 15
  92. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MASK 0x000000000000ffff
  93. /* Description NDP_FRAME
  94. Bit copied from the TX_FES_SETUP TLV
  95. <enum 0 no_ndp>No NDP transmission
  96. <enum 1 beamforming_ndp>Beamforming NDP
  97. <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
  98. <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
  99. */
  100. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_OFFSET 0x0000000000000008
  101. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_LSB 16
  102. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MSB 17
  103. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MASK 0x0000000000030000
  104. /* Description RESERVED_2B
  105. <legal 0>
  106. */
  107. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_OFFSET 0x0000000000000008
  108. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_LSB 18
  109. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MSB 19
  110. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MASK 0x00000000000c0000
  111. /* Description COEX_BASED_TX_BW
  112. Field valid for regular PPDU frame transmission
  113. This is the transmit bandwidth value
  114. that is granted by Coex.
  115. <enum 0 20_mhz>20 Mhz BW
  116. <enum 1 40_mhz>40 Mhz BW
  117. <enum 2 80_mhz>80 Mhz BW
  118. <enum 3 160_mhz>160 Mhz BW
  119. <enum 4 320_mhz>320 Mhz BW
  120. <enum 5 240_mhz>240 Mhz BW
  121. */
  122. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_OFFSET 0x0000000000000008
  123. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_LSB 20
  124. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MSB 22
  125. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MASK 0x0000000000700000
  126. /* Description COEX_BASED_ANT_MASK
  127. Field valid for regular PPDU or Response frame transmission
  128. The antennas allowed to be used for this transmission.
  129. (Coex is allowed to reduce the number of antennas to be
  130. used, but not the number of SS)
  131. <legal all>
  132. */
  133. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008
  134. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_LSB 23
  135. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MSB 30
  136. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MASK 0x000000007f800000
  137. /* Description RESERVED_2C
  138. <legal 0>
  139. */
  140. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_OFFSET 0x0000000000000008
  141. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_LSB 31
  142. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MSB 31
  143. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MASK 0x0000000080000000
  144. /* Description COEX_BASED_TX_PWR_SHARED_ANT
  145. Field valid for regular PPDU or Response frame transmission
  146. Granted tx power for the shared antenna.
  147. Transmit Power in s6.2 format.
  148. In units of 0.25 dBm
  149. <legal all>
  150. */
  151. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008
  152. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_LSB 32
  153. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MSB 39
  154. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000
  155. /* Description COEX_BASED_TX_PWR_ANT
  156. Field valid for regular PPDU or Response frame transmission
  157. Granted tx power for the unshared antenna
  158. Transmit Power in s6.2 format.
  159. In units of 0.25 dBm
  160. <legal all>
  161. */
  162. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_OFFSET 0x0000000000000008
  163. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_LSB 40
  164. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MSB 47
  165. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MASK 0x0000ff0000000000
  166. /* Description CONCURRENT_BT_TX
  167. Indicate the current TX is concurrent with a BT transmission.
  168. This bit is to be copied over into the FES status info.
  169. <legal all>
  170. */
  171. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_OFFSET 0x0000000000000008
  172. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_LSB 48
  173. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MSB 48
  174. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MASK 0x0001000000000000
  175. /* Description CONCURRENT_WLAN_TX
  176. Field valid for regular PPDU or Response frame transmission
  177. Indicate the current TX is concurrent with other WLAN transmission.
  178. This bit is to be copied over into FES status info.
  179. <legal all>
  180. */
  181. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008
  182. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_LSB 49
  183. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MSB 49
  184. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MASK 0x0002000000000000
  185. /* Description CONCURRENT_WAN_TX
  186. Field valid for regular PPDU or Response frame transmission
  187. Indicate the current TX is concurrent with WAN transmission.
  188. This bit is to be copied over into FES status info.
  189. <legal all>
  190. */
  191. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008
  192. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_LSB 50
  193. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MSB 50
  194. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MASK 0x0004000000000000
  195. /* Description CONCURRENT_WAN_RX
  196. Field valid for regular PPDU or Response frame transmission
  197. Indicate the current TX is concurrent with WAN reception.
  198. This bit is to be copied over into FES status info.
  199. <legal all>
  200. */
  201. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008
  202. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_LSB 51
  203. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MSB 51
  204. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MASK 0x0008000000000000
  205. /* Description COEX_PWR_REDUCTION_BT
  206. Field valid for regular or response frame transmission.
  207. When set, transmit power is reduced due to BT coex reason
  208. <legal all>
  209. */
  210. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008
  211. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_LSB 52
  212. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MSB 52
  213. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000
  214. /* Description COEX_PWR_REDUCTION_WLAN
  215. Field valid for regular or response frame transmission.
  216. When set, transmit power is reduced due to wlan coex reason
  217. <legal all>
  218. */
  219. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008
  220. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_LSB 53
  221. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MSB 53
  222. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000
  223. /* Description COEX_PWR_REDUCTION_WAN
  224. Field valid for regular or response frame transmission.
  225. When set, transmit power is reduced due to wan coex reason
  226. <legal all>
  227. */
  228. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008
  229. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_LSB 54
  230. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MSB 54
  231. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000
  232. /* Description COEX_RESULT_ALT_BASED
  233. Field valid for regular PPDU or Response frame transmission
  234. When set, the resulting Coex transmit parameters are based
  235. alternate transmit settings in the TX_RATE_SETTING STRUCT
  236. of the original selected BW
  237. When not set, the resulting Coex parameters are based on
  238. the default transmit settings in the TX_RATE_SETTING STRUCT
  239. <legal all>
  240. */
  241. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008
  242. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_LSB 55
  243. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MSB 55
  244. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MASK 0x0080000000000000
  245. /* Description REQUEST_PACKET_BW
  246. The requested transmit BW to PDG
  247. Note that Coex can have changed the actual allowed transmit
  248. bandwidth.
  249. <enum 0 20_mhz>20 Mhz BW
  250. <enum 1 40_mhz>40 Mhz BW
  251. <enum 2 80_mhz>80 Mhz BW
  252. <enum 3 160_mhz>160 Mhz BW
  253. <enum 4 320_mhz>320 Mhz BW
  254. <enum 5 240_mhz>240 Mhz BW
  255. */
  256. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_OFFSET 0x0000000000000008
  257. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_LSB 56
  258. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MSB 58
  259. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MASK 0x0700000000000000
  260. /* Description RESPONSE_TYPE
  261. PPDU transmission Response type expected
  262. <enum 0 no_response_expected>After transmission of this
  263. frame, no response in SIFS time is expected
  264. When TXPCU sees this setting, it shall not generated the
  265. EXPECTED_RESPONSE TLV.
  266. RXPCU should never see this setting
  267. <enum 1 ack_expected>An ACK frame is expected as response
  268. RXPCU is just expecting any response. It is TXPCU who checks
  269. that the right response was received.
  270. <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
  271. PDG DOES NOT use the size info to calculated response duration.
  272. The length of the response will have to be programmed by
  273. SW in the per-BW 'Expected_ppdu_resp_length' field.
  274. For TXPCU only the fact that it is a BA is important. Actual
  275. received BA size is not important
  276. RXPCU is just expecting any response. It is TXPCU who checks
  277. that the right response was received.
  278. <enum 3 ba_256_expected>BA with 256 bitmap is expected.
  279. PDG DOES NOT use the size info to calculated response duration.
  280. The length of the response will have to be programmed by
  281. SW in the per-BW 'Expected_ppdu_resp_length' field.
  282. For TXPCU only the fact that it is a BA is important. Actual
  283. received BA size is not important
  284. RXPCU is just expecting any response. It is TXPCU who checks
  285. that the right response was received.
  286. <enum 4 actionnoack_expected>SW sets this after sending
  287. NDP or BR-Poll.
  288. As PDG has no idea on how long the reception is going to
  289. be, the reception time of the response will have to be
  290. programmed by SW in the 'Extend_duration_value_bw...' field
  291. RXPCU is just expecting any response. It is TXPCU who checks
  292. that the right response was received.
  293. <enum 5 ack_ba_expected>PDG uses the size info and assumes
  294. single BA format with ACK and 64 bitmap embedded.
  295. If SW expects more bitmaps in case of multi-TID, is shall
  296. program the 'Extend_duration_value_bw...' field for additional
  297. duration time.
  298. For TXPCU only the fact that an ACK and/or BA is received
  299. is important. Reception of only ACK or BA is also considered
  300. a success.
  301. SW also typically sets this when sending VHT single MPDU.
  302. Some chip vendors might send BA rather than ACK in response
  303. to VHT single MPDU but still we want to accept BA as well.
  304. RXPCU is just expecting any response. It is TXPCU who checks
  305. that the right response was received.
  306. <enum 6 cts_expected>SW sets this after queuing RTS frame
  307. as standalone packet and sending it.
  308. RXPCU is just expecting any response. It is TXPCU who checks
  309. that the right response was received.
  310. <enum 7 ack_data_expected>SW sets this after sending PS-Poll.
  311. For TXPCU either ACK and/or data reception is considered
  312. success.
  313. PDG basis it's response duration calculation on an ACK.
  314. For the data portion, SW shall program the 'Extend_duration_value_bw...'
  315. field
  316. <enum 8 ndp_ack_expected>Reserved for 11ah usage.
  317. <enum 9 ndp_modified_ack>Reserved for 11ah usage
  318. <enum 10 ndp_ba_expected>Reserved for 11ah usage.
  319. <enum 11 ndp_cts_expected>Reserved for 11ah usage
  320. <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
  321. 11ah usage
  322. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  323. As PDG does not know how RUs are assigned for the uplink
  324. portion, PDG can not calculate the uplink duration. Therefor
  325. SW shall program the 'Extend_duration_value_bw...' field
  326. RXPCU will report any frame received, irrespective of it
  327. having been UL MU or SU It is TXPCUs responsibility to
  328. distinguish between the UL MU or SU
  329. TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
  330. if indeed BA was received
  331. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  332. As PDG does not know how RUs are assigned for the uplink
  333. portion, PDG can not calculate the uplink duration. Therefor
  334. SW shall program the 'Extend_duration_value_bw...' field
  335. RXPCU will report any frame received, irrespective of it
  336. having been UL MU or SU It is TXPCUs responsibility to
  337. distinguish between the UL MU or SU
  338. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
  339. and MU_Response_BA_bitmap if indeed BA and data was received
  340. When selected, CBF frames are expected to be received in
  341. MU reception (uplink OFDMA or uplink MIMO)
  342. RXPCU is just expecting any response. It is TXPCU who checks
  343. that the right response was received
  344. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
  345. if indeed CBF frames were received.
  346. <enum 16 ul_mu_frames_expected>When selected, MPDU frames
  347. are expected in the MU reception (uplink OFDMA or uplink
  348. MIMO)
  349. RXPCU is just expecting any response. It is TXPCU who checks
  350. that the right response was received
  351. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
  352. if indeed frames were received.
  353. <enum 17 any_response_to_this_device>Any response expected
  354. to be send to this device in SIFS time is acceptable.
  355. RXPCU is just expecting any response. It is TXPCU who checks
  356. that the right response was received
  357. For TXPCU, UL MU or SU is both acceptable.
  358. Can be used for complex OFDMA scenarios. PDG can not calculate
  359. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  360. field
  361. <enum 18 any_response_accepted>Any frame in the medium to
  362. this or any other device, is acceptable as response.
  363. RXPCU is just expecting any response. It is TXPCU who checks
  364. that the right response was received
  365. For TXPCU, UL MU or SU is both acceptable.
  366. Can be used for complex OFDMA scenarios. PDG can not calculate
  367. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  368. field
  369. <enum 19 frameless_phyrx_response_accepted>Any MU frameless
  370. reception generated by the PHY is acceptable.
  371. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
  372. field Reception_type == reception_is_frameless
  373. RXPCU will report any frame received, irrespective of it
  374. having been UL MU or SU.
  375. This can be used for complex MU-MIMO or OFDMA scenarios,
  376. like receiving MU-CTS.
  377. PDG can not calculate the uplink duration. Therefor SW shall
  378. program the 'Extend_duration_value_bw...' field
  379. <enum 20 ranging_ndp_and_lmr_expected>SW sets this after
  380. sending ranging NDPA followed by NDP as an ISTA and NDP
  381. and LMR (Action No Ack) are expected as back-to-back reception
  382. in SIFS.
  383. As PDG has no idea on how long the reception is going to
  384. be, the reception time of the response will have to be
  385. programmed by SW in the 'Extend_duration_value_bw...' field
  386. RXPCU is just expecting any response. It is TXPCU who checks
  387. that the right response was received.
  388. <enum 21 ba_512_expected>BA with 512 bitmap is expected.
  389. PDG DOES NOT use the size info to calculated response duration.
  390. The length of the response will have to be programmed by
  391. SW in the per-BW 'Expected_ppdu_resp_length' field.
  392. For TXPCU only the fact that it is a BA is important. Actual
  393. received BA size is not important
  394. RXPCU is just expecting any response. It is TXPCU who checks
  395. that the right response was received.
  396. <enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
  397. PDG DOES NOT use the size info to calculated response duration.
  398. The length of the response will have to be programmed by
  399. SW in the per-BW 'Expected_ppdu_resp_length' field.
  400. For TXPCU only the fact that it is a BA is important. Actual
  401. received BA size is not important
  402. RXPCU is just expecting any response. It is TXPCU who checks
  403. that the right response was received.
  404. <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
  405. frames are expected to be received in MU reception (uplink
  406. OFDMA)
  407. RXPCU shall check each response for CTS2S and report to
  408. TXPCU.
  409. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  410. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
  411. frames were received.
  412. <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
  413. frames are expected to be received in MU reception (uplink
  414. spatial multiplexing)
  415. RXPCU shall check each response for NDP and report to TXPCU.
  416. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  417. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
  418. frames were received.
  419. <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
  420. are expected to be received in MU reception (uplink OFDMA
  421. or uplink MIMO)
  422. RXPCU shall check each response for LMR and report to TXPCU.
  423. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  424. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
  425. frames were received.
  426. */
  427. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_OFFSET 0x0000000000000008
  428. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_LSB 59
  429. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MSB 63
  430. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MASK 0xf800000000000000
  431. #endif // TX_FES_STATUS_START_PPDU