rx_response_required_info.h 88 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _RX_RESPONSE_REQUIRED_INFO_H_
  16. #define _RX_RESPONSE_REQUIRED_INFO_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "mlo_sta_id_details.h"
  20. #define NUM_OF_DWORDS_RX_RESPONSE_REQUIRED_INFO 16
  21. #define NUM_OF_QWORDS_RX_RESPONSE_REQUIRED_INFO 8
  22. struct rx_response_required_info {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t phy_ppdu_id : 16, // [15:0]
  25. su_or_uplink_mu_reception : 1, // [16:16]
  26. trigger_frame_received : 1, // [17:17]
  27. ftm_tm : 2, // [19:18]
  28. tb_ranging_response_required : 2, // [21:20]
  29. mac_security : 1, // [22:22]
  30. filter_pass_monitor_ovrd : 1, // [23:23]
  31. ast_search_incomplete : 1, // [24:24]
  32. r2r_end_status_to_follow : 1, // [25:25]
  33. reserved_0a : 2, // [27:26]
  34. three_or_more_type_subtypes : 1, // [28:28]
  35. wait_sifs_config_valid : 1, // [29:29]
  36. wait_sifs : 2; // [31:30]
  37. uint32_t general_frame_control : 16, // [15:0]
  38. second_frame_control : 16; // [31:16]
  39. uint32_t duration : 16, // [15:0]
  40. pkt_type : 4, // [19:16]
  41. dot11ax_su_extended : 1, // [20:20]
  42. rate_mcs : 4, // [24:21]
  43. sgi : 2, // [26:25]
  44. stbc : 1, // [27:27]
  45. ldpc : 1, // [28:28]
  46. ampdu : 1, // [29:29]
  47. vht_ack : 1, // [30:30]
  48. rts_ta_grp_bit : 1; // [31:31]
  49. uint32_t ctrl_frame_soliciting_resp : 1, // [0:0]
  50. ast_fail_for_dot11ax_su_ext : 1, // [1:1]
  51. service_dynamic : 1, // [2:2]
  52. m_pkt : 1, // [3:3]
  53. sta_partial_aid : 12, // [15:4]
  54. group_id : 6, // [21:16]
  55. ctrl_resp_pwr_mgmt : 1, // [22:22]
  56. response_indication : 2, // [24:23]
  57. ndp_indication : 1, // [25:25]
  58. ndp_frame_type : 3, // [28:26]
  59. second_frame_control_valid : 1, // [29:29]
  60. reserved_3a : 2; // [31:30]
  61. uint32_t ack_id : 16, // [15:0]
  62. ack_id_ext : 10, // [25:16]
  63. agc_cbw : 3, // [28:26]
  64. service_cbw : 3; // [31:29]
  65. uint32_t response_sta_count : 7, // [6:0]
  66. reserved : 4, // [10:7]
  67. ht_vht_sig_cbw : 3, // [13:11]
  68. cts_cbw : 3, // [16:14]
  69. response_ack_count : 7, // [23:17]
  70. response_assoc_ack_count : 7, // [30:24]
  71. txop_duration_all_ones : 1; // [31:31]
  72. uint32_t response_ba32_count : 7, // [6:0]
  73. response_ba64_count : 7, // [13:7]
  74. response_ba128_count : 7, // [20:14]
  75. response_ba256_count : 7, // [27:21]
  76. multi_tid : 1, // [28:28]
  77. sw_response_tlv_from_crypto : 1, // [29:29]
  78. dot11ax_dl_ul_flag : 1, // [30:30]
  79. reserved_6a : 1; // [31:31]
  80. uint32_t sw_response_frame_length : 16, // [15:0]
  81. response_ba512_count : 7, // [22:16]
  82. response_ba1024_count : 7, // [29:23]
  83. reserved_7a : 2; // [31:30]
  84. uint32_t addr1_31_0 : 32; // [31:0]
  85. uint32_t addr1_47_32 : 16, // [15:0]
  86. addr2_15_0 : 16; // [31:16]
  87. uint32_t addr2_47_16 : 32; // [31:0]
  88. uint32_t dot11ax_received_format_indication : 1, // [0:0]
  89. dot11ax_received_dl_ul_flag : 1, // [1:1]
  90. dot11ax_received_bss_color_id : 6, // [7:2]
  91. dot11ax_received_spatial_reuse : 4, // [11:8]
  92. dot11ax_received_cp_size : 2, // [13:12]
  93. dot11ax_received_ltf_size : 2, // [15:14]
  94. dot11ax_received_coding : 1, // [16:16]
  95. dot11ax_received_dcm : 1, // [17:17]
  96. dot11ax_received_doppler_indication : 1, // [18:18]
  97. dot11ax_received_ext_ru_size : 4, // [22:19]
  98. ftm_fields_valid : 1, // [23:23]
  99. ftm_pe_nss : 3, // [26:24]
  100. ftm_pe_ltf_size : 2, // [28:27]
  101. ftm_pe_content : 1, // [29:29]
  102. ftm_chain_csd_en : 1, // [30:30]
  103. ftm_pe_chain_csd_en : 1; // [31:31]
  104. uint32_t dot11ax_response_rate_source : 8, // [7:0]
  105. dot11ax_ext_response_rate_source : 8, // [15:8]
  106. sw_peer_id : 16; // [31:16]
  107. uint32_t dot11be_puncture_bitmap : 16, // [15:0]
  108. dot11be_response : 1, // [16:16]
  109. punctured_response : 1, // [17:17]
  110. eht_duplicate_mode : 2, // [19:18]
  111. force_extra_symbol : 1, // [20:20]
  112. reserved_13a : 5, // [25:21]
  113. u_sig_puncture_pattern_encoding : 6; // [31:26]
  114. struct mlo_sta_id_details mlo_sta_id_details_rx;
  115. uint16_t he_a_control_response_time : 12, // [27:16]
  116. reserved_after_struct16 : 4; // [31:28]
  117. uint32_t tlv64_padding : 32; // [31:0]
  118. #else
  119. uint32_t wait_sifs : 2, // [31:30]
  120. wait_sifs_config_valid : 1, // [29:29]
  121. three_or_more_type_subtypes : 1, // [28:28]
  122. reserved_0a : 2, // [27:26]
  123. r2r_end_status_to_follow : 1, // [25:25]
  124. ast_search_incomplete : 1, // [24:24]
  125. filter_pass_monitor_ovrd : 1, // [23:23]
  126. mac_security : 1, // [22:22]
  127. tb_ranging_response_required : 2, // [21:20]
  128. ftm_tm : 2, // [19:18]
  129. trigger_frame_received : 1, // [17:17]
  130. su_or_uplink_mu_reception : 1, // [16:16]
  131. phy_ppdu_id : 16; // [15:0]
  132. uint32_t second_frame_control : 16, // [31:16]
  133. general_frame_control : 16; // [15:0]
  134. uint32_t rts_ta_grp_bit : 1, // [31:31]
  135. vht_ack : 1, // [30:30]
  136. ampdu : 1, // [29:29]
  137. ldpc : 1, // [28:28]
  138. stbc : 1, // [27:27]
  139. sgi : 2, // [26:25]
  140. rate_mcs : 4, // [24:21]
  141. dot11ax_su_extended : 1, // [20:20]
  142. pkt_type : 4, // [19:16]
  143. duration : 16; // [15:0]
  144. uint32_t reserved_3a : 2, // [31:30]
  145. second_frame_control_valid : 1, // [29:29]
  146. ndp_frame_type : 3, // [28:26]
  147. ndp_indication : 1, // [25:25]
  148. response_indication : 2, // [24:23]
  149. ctrl_resp_pwr_mgmt : 1, // [22:22]
  150. group_id : 6, // [21:16]
  151. sta_partial_aid : 12, // [15:4]
  152. m_pkt : 1, // [3:3]
  153. service_dynamic : 1, // [2:2]
  154. ast_fail_for_dot11ax_su_ext : 1, // [1:1]
  155. ctrl_frame_soliciting_resp : 1; // [0:0]
  156. uint32_t service_cbw : 3, // [31:29]
  157. agc_cbw : 3, // [28:26]
  158. ack_id_ext : 10, // [25:16]
  159. ack_id : 16; // [15:0]
  160. uint32_t txop_duration_all_ones : 1, // [31:31]
  161. response_assoc_ack_count : 7, // [30:24]
  162. response_ack_count : 7, // [23:17]
  163. cts_cbw : 3, // [16:14]
  164. ht_vht_sig_cbw : 3, // [13:11]
  165. reserved : 4, // [10:7]
  166. response_sta_count : 7; // [6:0]
  167. uint32_t reserved_6a : 1, // [31:31]
  168. dot11ax_dl_ul_flag : 1, // [30:30]
  169. sw_response_tlv_from_crypto : 1, // [29:29]
  170. multi_tid : 1, // [28:28]
  171. response_ba256_count : 7, // [27:21]
  172. response_ba128_count : 7, // [20:14]
  173. response_ba64_count : 7, // [13:7]
  174. response_ba32_count : 7; // [6:0]
  175. uint32_t reserved_7a : 2, // [31:30]
  176. response_ba1024_count : 7, // [29:23]
  177. response_ba512_count : 7, // [22:16]
  178. sw_response_frame_length : 16; // [15:0]
  179. uint32_t addr1_31_0 : 32; // [31:0]
  180. uint32_t addr2_15_0 : 16, // [31:16]
  181. addr1_47_32 : 16; // [15:0]
  182. uint32_t addr2_47_16 : 32; // [31:0]
  183. uint32_t ftm_pe_chain_csd_en : 1, // [31:31]
  184. ftm_chain_csd_en : 1, // [30:30]
  185. ftm_pe_content : 1, // [29:29]
  186. ftm_pe_ltf_size : 2, // [28:27]
  187. ftm_pe_nss : 3, // [26:24]
  188. ftm_fields_valid : 1, // [23:23]
  189. dot11ax_received_ext_ru_size : 4, // [22:19]
  190. dot11ax_received_doppler_indication : 1, // [18:18]
  191. dot11ax_received_dcm : 1, // [17:17]
  192. dot11ax_received_coding : 1, // [16:16]
  193. dot11ax_received_ltf_size : 2, // [15:14]
  194. dot11ax_received_cp_size : 2, // [13:12]
  195. dot11ax_received_spatial_reuse : 4, // [11:8]
  196. dot11ax_received_bss_color_id : 6, // [7:2]
  197. dot11ax_received_dl_ul_flag : 1, // [1:1]
  198. dot11ax_received_format_indication : 1; // [0:0]
  199. uint32_t sw_peer_id : 16, // [31:16]
  200. dot11ax_ext_response_rate_source : 8, // [15:8]
  201. dot11ax_response_rate_source : 8; // [7:0]
  202. uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
  203. reserved_13a : 5, // [25:21]
  204. force_extra_symbol : 1, // [20:20]
  205. eht_duplicate_mode : 2, // [19:18]
  206. punctured_response : 1, // [17:17]
  207. dot11be_response : 1, // [16:16]
  208. dot11be_puncture_bitmap : 16; // [15:0]
  209. uint32_t reserved_after_struct16 : 4, // [31:28]
  210. he_a_control_response_time : 12; // [27:16]
  211. struct mlo_sta_id_details mlo_sta_id_details_rx;
  212. uint32_t tlv64_padding : 32; // [31:0]
  213. #endif
  214. };
  215. /* Description PHY_PPDU_ID
  216. A ppdu counter value that PHY increments for every PPDU
  217. received. The counter value wraps around
  218. <legal all>
  219. */
  220. #define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_OFFSET 0x0000000000000000
  221. #define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_LSB 0
  222. #define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MSB 15
  223. #define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MASK 0x000000000000ffff
  224. /* Description SU_OR_UPLINK_MU_RECEPTION
  225. <enum 0 Reception_is_SU> This TLV is the result of an SU
  226. reception. Note that this can be regular SU reception or
  227. an SU reception as part of a downlink MU - MIMO/OFDMA transmission.
  228. <enum 1 Reception_is_MU> This TLV is the result of an MU_OFDMA
  229. uplink reception or MU_MIMO uplink reception
  230. NOTE:When a STA receives a downlink MU-MIMO or DL MU_OFDMA,
  231. this field shall still be set to Reception_is_SU. From the
  232. STA perspective, it is only receiving from one other device.
  233. <legal all>
  234. */
  235. #define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_OFFSET 0x0000000000000000
  236. #define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_LSB 16
  237. #define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MSB 16
  238. #define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MASK 0x0000000000010000
  239. /* Description TRIGGER_FRAME_RECEIVED
  240. Field only valid in case of SU_or_uplink_MU_reception =
  241. Reception_is_SU
  242. When set, this TLV has been sent because a trigger frame
  243. has been received.
  244. Note that in case there were other frames received as well
  245. that required an immediate response, like data or management
  246. frames, this will still be indicated here in this TLV with
  247. the fields "Response_..._count".
  248. <legal all>
  249. */
  250. #define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_OFFSET 0x0000000000000000
  251. #define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_LSB 17
  252. #define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MSB 17
  253. #define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MASK 0x0000000000020000
  254. /* Description FTM_TM
  255. Field only valid in case of SU_or_uplink_MU_reception =
  256. Reception_is_SU
  257. This field Indicates if the response is related to receiving
  258. a TM or FTM frame
  259. 0: no TM and no FTM frame => there is NO measurement done
  260. 1: FTM frame
  261. 2: TM frame
  262. 3: reserved
  263. */
  264. #define RX_RESPONSE_REQUIRED_INFO_FTM_TM_OFFSET 0x0000000000000000
  265. #define RX_RESPONSE_REQUIRED_INFO_FTM_TM_LSB 18
  266. #define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MSB 19
  267. #define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MASK 0x00000000000c0000
  268. /* Description TB_RANGING_RESPONSE_REQUIRED
  269. Field only valid in case of TB Ranging
  270. <enum 0 No_TB_Ranging_Resp>
  271. <enum 1 CTS2S_Resp_to_TF_poll > TXPCU to generate CTS-to-self
  272. in TB response
  273. <enum 2 LMR_Resp_to_TF_report> TXPCU to generate LMR in
  274. TB response
  275. <enum 3 NDP_Resp_to_TF_sound> DO NOT USE.
  276. <legal 0-3>
  277. */
  278. #define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET 0x0000000000000000
  279. #define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB 20
  280. #define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB 21
  281. #define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK 0x0000000000300000
  282. /* Description MAC_SECURITY
  283. Field only valid if TB_Ranging_response_required = LMR_Resp_to_TF_report
  284. Indicates whether MAC security is enabled for LMR
  285. <legal all>
  286. */
  287. #define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_OFFSET 0x0000000000000000
  288. #define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_LSB 22
  289. #define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MSB 22
  290. #define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MASK 0x0000000000400000
  291. /* Description FILTER_PASS_MONITOR_OVRD
  292. Consumer: TXMON/SW
  293. Producer: RXPCU
  294. This indicates that the Rx MPDU passed the 'normal' frame
  295. filter programming of RXPCU and additionally the MAC address
  296. search matched an 'ADDR_SEARCH_ENTRY' of a 'Monitor_override_sta.'
  297. When enabled in TXMON, it will discard the upstream response
  298. TLVs for cases not matching the 'Filter_pass_Monitor_ovrd'
  299. criterion.
  300. If RXPCU is generating this TLV before the address search
  301. is complete, it shall fill this bit based on a register
  302. configuration 'FILTER_PASS_OVRD_AST_NOT_DONE.'
  303. <legal all>
  304. */
  305. #define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_OFFSET 0x0000000000000000
  306. #define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_LSB 23
  307. #define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MSB 23
  308. #define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MASK 0x0000000000800000
  309. /* Description AST_SEARCH_INCOMPLETE
  310. Consumer: SW
  311. Producer: RXPCU
  312. If RXPCU is generating this TLV before the address search
  313. is complete, it shall set this bit. This is to indicate
  314. to SW (via TXMON) that the Filter_pass_Monitor_ovrd bit
  315. is unreliable and SW may have to add their own filtering
  316. logic.
  317. <legal all>
  318. */
  319. #define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_OFFSET 0x0000000000000000
  320. #define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_LSB 24
  321. #define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MSB 24
  322. #define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MASK 0x0000000001000000
  323. /* Description R2R_END_STATUS_TO_FOLLOW
  324. Consumer: TXMON
  325. Producer: TXPCU
  326. When set, TXPCU will generate an R2R frame (typically M-BA),
  327. and the 'R2R_STATUS_END' TLV.
  328. TXMON uses this to identify the continuation of a Tx sequence
  329. (typically including Trigger frames) with R2R Tx.
  330. <legal all>
  331. */
  332. #define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_OFFSET 0x0000000000000000
  333. #define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_LSB 25
  334. #define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MSB 25
  335. #define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MASK 0x0000000002000000
  336. /* Description RESERVED_0A
  337. <legal 0>
  338. */
  339. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_OFFSET 0x0000000000000000
  340. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_LSB 26
  341. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MSB 27
  342. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MASK 0x000000000c000000
  343. /* Description THREE_OR_MORE_TYPE_SUBTYPES
  344. Field only valid in case of SU_or_uplink_MU_reception =
  345. Reception_is_SU
  346. When set, there are 3 or more different frame type/subtypes
  347. received that all required a response.
  348. Note that the HW will only report the very first two that
  349. have been seen
  350. */
  351. #define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_OFFSET 0x0000000000000000
  352. #define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_LSB 28
  353. #define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MSB 28
  354. #define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MASK 0x0000000010000000
  355. /* Description WAIT_SIFS_CONFIG_VALID
  356. When set, TXPCU shall follow the wait_sifs configuration.
  357. Field added to be backwards compatible, and transition to
  358. the new signalling.
  359. <legal all>
  360. */
  361. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET 0x0000000000000000
  362. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_LSB 29
  363. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MSB 29
  364. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MASK 0x0000000020000000
  365. /* Description WAIT_SIFS
  366. Indicates to the TXPCU how precise the SIFS the response
  367. timing shall be...
  368. The configuration for this is coming from SW programmable
  369. register in RXPCU
  370. <enum 0 NO_SIFS_TIMING> Transmission shall start with the
  371. normal delay in PHY after receiving this notification
  372. <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
  373. at the SIFS boundary. If shall never start before SIFS boundary,
  374. but if it a little later, it is not ideal and should be
  375. flagged, but transmission shall not be aborted.
  376. <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
  377. at exactly SIFS boundary. If this notification is received
  378. by the PHY after SIFS boundary already passed, the PHY
  379. shall abort the transmission
  380. <legal 0-2>
  381. */
  382. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_OFFSET 0x0000000000000000
  383. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_LSB 30
  384. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MSB 31
  385. #define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MASK 0x00000000c0000000
  386. /* Description GENERAL_FRAME_CONTROL
  387. Field only valid in case of SU_or_uplink_MU_reception =
  388. Reception_is_SU
  389. In case only a single frame is receive, this field will
  390. always contain the frame control field of the received frame.
  391. In case multiple frames are received that require a response,
  392. and one of those frames is not a data frame, this field
  393. will always contain the frame control field of that received
  394. frame.
  395. In case multiple frames are received that require a response,
  396. but all have them have the same type/subtype, this field
  397. will contain the very first one of them.
  398. Note: In case of a BAR frame reception, the 'response_ack_...'
  399. fields will indicate for how many TIDs a BA is needed, as
  400. well as their individual sizes.
  401. Used by TXPCU to determine the type of response that is
  402. needed
  403. TODO: Look at table below for all the possible combination
  404. of frames types reported here and in the next field: Second_frame_control
  405. */
  406. #define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_OFFSET 0x0000000000000000
  407. #define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_LSB 32
  408. #define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MSB 47
  409. #define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MASK 0x0000ffff00000000
  410. /* Description SECOND_FRAME_CONTROL
  411. Field only valid when Second_frame_control_valid ==1
  412. In case multiple frames of different frame type/subtype
  413. are received that require a response, this field will always
  414. contain the frame control field remaining after the 'frame_control
  415. ' field has been filled in.
  416. NOTE: in case more then 2 different frame type/subtypes
  417. are received (which only happens if the transmitter did
  418. something wrong), only the first two frame types are reported
  419. in this and the General_frame_control field. All the other
  420. ones are ignored, but bit 'three_or_more_type_subtypes'
  421. shall be set.
  422. Note: In case of a BAR frame reception, the 'response_ack_...'
  423. fields will indicate for how many TIDs a BA is needed, as
  424. well as their individual sizes.
  425. Used by TXPCU to determine the type of response that is
  426. needed
  427. */
  428. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_OFFSET 0x0000000000000000
  429. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_LSB 48
  430. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MSB 63
  431. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MASK 0xffff000000000000
  432. /* Description DURATION
  433. Field only valid in case of SU_or_uplink_MU_reception =
  434. Reception_is_SU
  435. duration field of the received frame
  436. */
  437. #define RX_RESPONSE_REQUIRED_INFO_DURATION_OFFSET 0x0000000000000008
  438. #define RX_RESPONSE_REQUIRED_INFO_DURATION_LSB 0
  439. #define RX_RESPONSE_REQUIRED_INFO_DURATION_MSB 15
  440. #define RX_RESPONSE_REQUIRED_INFO_DURATION_MASK 0x000000000000ffff
  441. /* Description PKT_TYPE
  442. Packet type:
  443. Note that for MU UL reception, this field can only be set
  444. to dot11ax.
  445. <enum 0 dot11a>802.11a PPDU type
  446. <enum 1 dot11b>802.11b PPDU type
  447. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  448. <enum 3 dot11ac>802.11ac PPDU type
  449. <enum 4 dot11ax>802.11ax PPDU type
  450. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  451. <enum 6 dot11be>802.11be PPDU type
  452. <enum 7 dot11az>802.11az (ranging) PPDU type
  453. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  454. & aborted)
  455. */
  456. #define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_OFFSET 0x0000000000000008
  457. #define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_LSB 16
  458. #define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MSB 19
  459. #define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MASK 0x00000000000f0000
  460. /* Description DOT11AX_SU_EXTENDED
  461. This field is only valid for pkt_type == 11ax OR pkt_type
  462. == 11be
  463. When set, the 11ax or 11be reception was an extended range
  464. SU
  465. */
  466. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000008
  467. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_LSB 20
  468. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MSB 20
  469. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000000000100000
  470. /* Description RATE_MCS
  471. Field only valid in case of SU_or_uplink_MU_reception =
  472. Reception_is_SU
  473. For details, refer to MCS_TYPE description
  474. Note: This is "rate" in case of 11a/11b
  475. <legal all>
  476. */
  477. #define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_OFFSET 0x0000000000000008
  478. #define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_LSB 21
  479. #define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MSB 24
  480. #define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MASK 0x0000000001e00000
  481. /* Description SGI
  482. Field only valid in case of SU_or_uplink_MU_reception =
  483. Reception_is_SU
  484. Field only valid when pkt type is HT, VHT or HE.
  485. Specify the right GI for HE-Ranging NDPs (11az).
  486. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used
  487. for HE
  488. <enum 1 0_4_us_sgi > Legacy short GI. Can also be used
  489. for HE
  490. <enum 2 1_6_us_sgi > HE related GI
  491. <enum 3 3_2_us_sgi > HE related GI
  492. <legal 0 - 3>
  493. */
  494. #define RX_RESPONSE_REQUIRED_INFO_SGI_OFFSET 0x0000000000000008
  495. #define RX_RESPONSE_REQUIRED_INFO_SGI_LSB 25
  496. #define RX_RESPONSE_REQUIRED_INFO_SGI_MSB 26
  497. #define RX_RESPONSE_REQUIRED_INFO_SGI_MASK 0x0000000006000000
  498. /* Description STBC
  499. Field only valid in case of SU_or_uplink_MU_reception =
  500. Reception_is_SU
  501. Indicate STBC
  502. In 11ah mode of Operation, this bit indicates the STBC bit
  503. setting in the SIG Preamble.
  504. */
  505. #define RX_RESPONSE_REQUIRED_INFO_STBC_OFFSET 0x0000000000000008
  506. #define RX_RESPONSE_REQUIRED_INFO_STBC_LSB 27
  507. #define RX_RESPONSE_REQUIRED_INFO_STBC_MSB 27
  508. #define RX_RESPONSE_REQUIRED_INFO_STBC_MASK 0x0000000008000000
  509. /* Description LDPC
  510. Field only valid in case of SU_or_uplink_MU_reception =
  511. Reception_is_SU
  512. Indicate LDPC
  513. In 11ah mode of Operation, this bit indicates the LDPC bit
  514. setting in the SIG Preamble.
  515. */
  516. #define RX_RESPONSE_REQUIRED_INFO_LDPC_OFFSET 0x0000000000000008
  517. #define RX_RESPONSE_REQUIRED_INFO_LDPC_LSB 28
  518. #define RX_RESPONSE_REQUIRED_INFO_LDPC_MSB 28
  519. #define RX_RESPONSE_REQUIRED_INFO_LDPC_MASK 0x0000000010000000
  520. /* Description AMPDU
  521. Field only valid in case of SU_or_uplink_MU_reception =
  522. Reception_is_SU
  523. Field indicates if the received frame was in ampdu format
  524. or not. If set, it implies the reception was 11n, aggregation,
  525. 11ac or 11ax.
  526. Within TXPCU it is used to determine if the response will
  527. have to be BA format or not. Note that there are some exceptions
  528. where received frame was A-MPDU format, but the response
  529. will still be just an ACK frame.
  530. */
  531. #define RX_RESPONSE_REQUIRED_INFO_AMPDU_OFFSET 0x0000000000000008
  532. #define RX_RESPONSE_REQUIRED_INFO_AMPDU_LSB 29
  533. #define RX_RESPONSE_REQUIRED_INFO_AMPDU_MSB 29
  534. #define RX_RESPONSE_REQUIRED_INFO_AMPDU_MASK 0x0000000020000000
  535. /* Description VHT_ACK
  536. Field only valid in case of SU_or_uplink_MU_reception =
  537. Reception_is_SU
  538. set when ACK is required to be generated
  539. */
  540. #define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_OFFSET 0x0000000000000008
  541. #define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_LSB 30
  542. #define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MSB 30
  543. #define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MASK 0x0000000040000000
  544. /* Description RTS_TA_GRP_BIT
  545. Field only valid in case of SU_or_uplink_MU_reception =
  546. Reception_is_SU
  547. frame is rts and TA G/I bit is set
  548. */
  549. #define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_OFFSET 0x0000000000000008
  550. #define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_LSB 31
  551. #define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MSB 31
  552. #define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MASK 0x0000000080000000
  553. /* Description CTRL_FRAME_SOLICITING_RESP
  554. Field only valid in case of SU_or_uplink_MU_reception =
  555. Reception_is_SU
  556. frame is rts, bar or ps_poll and TA G/I bit is set
  557. */
  558. #define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_OFFSET 0x0000000000000008
  559. #define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_LSB 32
  560. #define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MSB 32
  561. #define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MASK 0x0000000100000000
  562. /* Description AST_FAIL_FOR_DOT11AX_SU_EXT
  563. Field only valid in case of
  564. dot11ax_su_extended = 1
  565. When set, the just finished reception had address search
  566. failure (e.g. unassociated STA).
  567. This field can be used to determine special response rates
  568. for those types of STAs.
  569. This field shall be analyzed in combination with pkt_type
  570. and dot11ax_su_extended settings.
  571. <legal all>
  572. */
  573. #define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_OFFSET 0x0000000000000008
  574. #define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_LSB 33
  575. #define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MSB 33
  576. #define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MASK 0x0000000200000000
  577. /* Description SERVICE_DYNAMIC
  578. Field only valid in case of SU_or_uplink_MU_reception =
  579. Reception_is_SU
  580. Dynamic field extracted from Service field
  581. Reserved for 11ah. Should be populated to zero by RxPCU
  582. */
  583. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_OFFSET 0x0000000000000008
  584. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_LSB 34
  585. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MSB 34
  586. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MASK 0x0000000400000000
  587. /* Description M_PKT
  588. Field only valid in case of SU_or_uplink_MU_reception =
  589. Reception_is_SU
  590. Indicates that RXPCU has detected a 802.11v M packet. The
  591. TXPCU should generate a TX_FREEZE_CAPTURE_CHANNEL message
  592. to the PHY so that the PHY will hold the current channel
  593. capture so FW can read the channel capture memory over
  594. APB.
  595. Reserved for 11ah. Should be populated to zero by RxPCU
  596. */
  597. #define RX_RESPONSE_REQUIRED_INFO_M_PKT_OFFSET 0x0000000000000008
  598. #define RX_RESPONSE_REQUIRED_INFO_M_PKT_LSB 35
  599. #define RX_RESPONSE_REQUIRED_INFO_M_PKT_MSB 35
  600. #define RX_RESPONSE_REQUIRED_INFO_M_PKT_MASK 0x0000000800000000
  601. /* Description STA_PARTIAL_AID
  602. Field only valid in case of SU_or_uplink_MU_reception =
  603. Reception_is_SU
  604. Specifies the partial AID of response frames transmitted
  605. at VHT rates.
  606. In 11ah mode of operation, this field is used to populate
  607. the RA/partial BSSID filed in the NDP CTS response frame.
  608. Please refer to the 802.11 spec for details on the NDP CTS
  609. frame format.
  610. Reserved for 11ah.
  611. Should be populated to zero by RxPCU
  612. */
  613. #define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_OFFSET 0x0000000000000008
  614. #define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_LSB 36
  615. #define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MSB 47
  616. #define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MASK 0x0000fff000000000
  617. /* Description GROUP_ID
  618. Field only valid in case of SU_or_uplink_MU_reception =
  619. Reception_is_SU
  620. Reserved for 11ah.
  621. Should be populated to zero by RxPCU
  622. */
  623. #define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_OFFSET 0x0000000000000008
  624. #define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_LSB 48
  625. #define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MSB 53
  626. #define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MASK 0x003f000000000000
  627. /* Description CTRL_RESP_PWR_MGMT
  628. Field valid in case of both SU_or_uplink_MU_reception =
  629. Reception_is_SU
  630. AND
  631. SU_or_uplink_MU_reception = Reception_is_MU
  632. RX PCU passes this bit (coming from the peer entry) setting
  633. on to TX PCU, where the setting of this bit is inserted
  634. in the pwr_mgt bit in the control field of the SIFS response
  635. control frames: ACK, CTS, BA
  636. <legal all>
  637. */
  638. #define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_OFFSET 0x0000000000000008
  639. #define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_LSB 54
  640. #define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MSB 54
  641. #define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MASK 0x0040000000000000
  642. /* Description RESPONSE_INDICATION
  643. Field only valid in case of SU_or_uplink_MU_reception =
  644. Reception_is_SU
  645. <enum 0 no_response>
  646. <enum 1 ndp_response>
  647. <enum 2 normal_response>
  648. <enum 3 long_response>
  649. <legal 0-3>
  650. This field indicates the Response Indication of the received
  651. PPDU. RxPCU populates this field using the Response Indication
  652. bits extracted from the SIG in the received PPDU.
  653. */
  654. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_OFFSET 0x0000000000000008
  655. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_LSB 55
  656. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MSB 56
  657. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MASK 0x0180000000000000
  658. /* Description NDP_INDICATION
  659. Field only valid in case of SU_or_uplink_MU_reception =
  660. Reception_is_SU
  661. This field is valid in 11ah mode of opearation only. In
  662. non-11ah mode, this bit is reserved and RxPCU populates
  663. this bit to Zero.
  664. NDP Indication bit.
  665. This field is set if the received SIG has the NDP Indication
  666. bit set.
  667. <legal all>
  668. */
  669. #define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_OFFSET 0x0000000000000008
  670. #define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_LSB 57
  671. #define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MSB 57
  672. #define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MASK 0x0200000000000000
  673. /* Description NDP_FRAME_TYPE
  674. Field only valid in case of SU_or_uplink_MU_reception =
  675. Reception_is_SU
  676. Include the ndp_frame_type encoding.
  677. This field is valid in 11ah mode of opearation only. In
  678. non-11ah mode, this bit is reserved and RxPCU populates
  679. this bit to Zero.
  680. The ndp_frame_type filed form the SIG is extracted and is
  681. populated in this field by RxPCU. TxPCU can decode the
  682. NDP frame type.
  683. */
  684. #define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_OFFSET 0x0000000000000008
  685. #define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_LSB 58
  686. #define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MSB 60
  687. #define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MASK 0x1c00000000000000
  688. /* Description SECOND_FRAME_CONTROL_VALID
  689. Field only valid in case of SU_or_uplink_MU_reception =
  690. Reception_is_SU
  691. When set, the second frame control field is valid.
  692. */
  693. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_OFFSET 0x0000000000000008
  694. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_LSB 61
  695. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MSB 61
  696. #define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MASK 0x2000000000000000
  697. /* Description RESERVED_3A
  698. <legal 0>
  699. */
  700. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_OFFSET 0x0000000000000008
  701. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_LSB 62
  702. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MSB 63
  703. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MASK 0xc000000000000000
  704. /* Description ACK_ID
  705. Field only valid in case of SU_or_uplink_MU_reception =
  706. Reception_is_SU
  707. Indicates the ACD_ID to be used in NDP response frames (NDP
  708. ACK and NDP Modified ACK).
  709. For NDP ACK
  710. ACK_ID (16bits)= {Scrambler Initialization[0:6], FCS[23:31}
  711. for 2MHz
  712. ACK_ID (9bits)= { Scrambler Initialization[0:6], FCS[30:31]}
  713. for 1MHz. Bits[15:9] should be filled with Zero by RxPCU
  714. For NDP Modified ACK
  715. ACK_ID (16bits)= {CRC[0:3],TA[0:8],RA[6:8]} for 2MHz
  716. ACK_ID (9bits)= { CRC[0:3], TA[4:8]} for 1MHz; Bits[15:9]
  717. should be filled with Zero by RxPCU.
  718. */
  719. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_OFFSET 0x0000000000000010
  720. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_LSB 0
  721. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MSB 15
  722. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MASK 0x000000000000ffff
  723. /* Description ACK_ID_EXT
  724. Field only valid in case of SU_or_uplink_MU_reception =
  725. Reception_is_SU
  726. This is populated by RxPCU when the Duration Indication
  727. Bit is set to Zero in the Received NDP PS-Poll Frame.
  728. */
  729. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_OFFSET 0x0000000000000010
  730. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_LSB 16
  731. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MSB 25
  732. #define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MASK 0x0000000003ff0000
  733. /* Description AGC_CBW
  734. BW as detected by the AGC
  735. <enum 0 20_mhz>20 Mhz BW
  736. <enum 1 40_mhz>40 Mhz BW
  737. <enum 2 80_mhz>80 Mhz BW
  738. <enum 3 160_mhz>160 Mhz BW
  739. <enum 4 320_mhz>320 Mhz BW
  740. <enum 5 240_mhz>240 Mhz BW
  741. */
  742. #define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_OFFSET 0x0000000000000010
  743. #define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_LSB 26
  744. #define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MSB 28
  745. #define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MASK 0x000000001c000000
  746. /* Description SERVICE_CBW
  747. Field only valid in case of SU_or_uplink_MU_reception =
  748. Reception_is_SU
  749. This field reflects the BW extracted from the Serivce Field
  750. for 11ac mode of operation and from the FC portion of the
  751. MAC header in 11ah mode of operation. This field is used
  752. in the context of Dynamic/Static BW evaluation purposes
  753. in TxPCU
  754. CBW field extracted from Service field by RXPCU and populates
  755. this
  756. <enum 0 20_mhz>20 Mhz BW
  757. <enum 1 40_mhz>40 Mhz BW
  758. <enum 2 80_mhz>80 Mhz BW
  759. <enum 3 160_mhz>160 Mhz BW
  760. <enum 4 320_mhz>320 Mhz BW
  761. <enum 5 240_mhz>240 Mhz BW
  762. */
  763. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_OFFSET 0x0000000000000010
  764. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_LSB 29
  765. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MSB 31
  766. #define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MASK 0x00000000e0000000
  767. /* Description RESPONSE_STA_COUNT
  768. The number of STAs to which the responses need to be sent.
  769. In case of multiple ACKs/BAs to be send, TXPCU uses this
  770. field to determine what address formatting to use for the
  771. response frame: This could be broadcast or unicast.
  772. <legal 0-36>
  773. */
  774. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_OFFSET 0x0000000000000010
  775. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_LSB 32
  776. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MSB 38
  777. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MASK 0x0000007f00000000
  778. /* Description RESERVED
  779. <legal 0>
  780. */
  781. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_OFFSET 0x0000000000000010
  782. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_LSB 39
  783. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_MSB 42
  784. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_MASK 0x0000078000000000
  785. /* Description HT_VHT_SIG_CBW
  786. Field only valid in case of SU_or_uplink_MU_reception =
  787. Reception_is_SU
  788. Bandwidth of the received frame from either the HT-SIG or
  789. VHT-SIG-A or HE-SIG. For HT-SIG, this bandwidth can be
  790. 20 MHz or 40 MHz, For VHT or HE, this bandwidth can be 20,
  791. 40, 80, or 160 MHz:
  792. <enum 0 20_mhz>20 Mhz BW
  793. <enum 1 40_mhz>40 Mhz BW
  794. <enum 2 80_mhz>80 Mhz BW
  795. <enum 3 160_mhz>160 Mhz BW
  796. <enum 4 320_mhz>320 Mhz BW
  797. <enum 5 240_mhz>240 Mhz BW
  798. */
  799. #define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_OFFSET 0x0000000000000010
  800. #define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_LSB 43
  801. #define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MSB 45
  802. #define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MASK 0x0000380000000000
  803. /* Description CTS_CBW
  804. Field only valid in case of SU_or_uplink_MU_reception =
  805. Reception_is_SU
  806. Calculated bandwidth for the CTS response frame
  807. <enum 0 20_mhz>20 Mhz BW
  808. <enum 1 40_mhz>40 Mhz BW
  809. <enum 2 80_mhz>80 Mhz BW
  810. <enum 3 160_mhz>160 Mhz BW
  811. <enum 4 320_mhz>320 Mhz BW
  812. <enum 5 240_mhz>240 Mhz BW
  813. */
  814. #define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_OFFSET 0x0000000000000010
  815. #define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_LSB 46
  816. #define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MSB 48
  817. #define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MASK 0x0001c00000000000
  818. /* Description RESPONSE_ACK_COUNT
  819. Field valid for both SU and MU reception
  820. ACK Count for management action frames, PS_POLL frames,
  821. single data frame and the general "ACK ALL". For this last
  822. one, a single "ACK" should be interpreted by the receiver
  823. that all transmitted frames have been properly received.
  824. For SU:
  825. Max count can be 1
  826. Note that Response_ba64_count and/or Response_ba256_count
  827. can be > 0, which implies that both an ACK and BA needs
  828. to be send back.
  829. For MU:
  830. The number of users that need an 'ACK' response.
  831. <legal 0-36>
  832. */
  833. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_OFFSET 0x0000000000000010
  834. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_LSB 49
  835. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MSB 55
  836. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MASK 0x00fe000000000000
  837. /* Description RESPONSE_ASSOC_ACK_COUNT
  838. Field ONLY valid for Reception_is_MU. This count can only
  839. be set to > 0, when there were wildcards send in the trigger
  840. frame.
  841. ACK Count to be generated for Management frames from STAs
  842. that are not yet associated to this device. These STAs
  843. can only send this type of response when the trigger frame
  844. included some wildcards.
  845. Note that in the MBA frame, this "ack" has a special format,
  846. and includes more bytes then the normal "ack". For that
  847. reason TXPCU needs to be able to differentiate between the
  848. 'normal acks' and these association request acks...
  849. <legal 0-36>
  850. */
  851. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_OFFSET 0x0000000000000010
  852. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_LSB 56
  853. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MSB 62
  854. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MASK 0x7f00000000000000
  855. /* Description TXOP_DURATION_ALL_ONES
  856. When set, either the TXOP_DURATION of the received frame
  857. was set to all 1s or there is a BSS color collision. The
  858. TXOP_DURATION of the transmit response should be forced
  859. to all 1s.
  860. <legal all>
  861. */
  862. #define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000010
  863. #define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_LSB 63
  864. #define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MSB 63
  865. #define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MASK 0x8000000000000000
  866. /* Description RESPONSE_BA32_COUNT
  867. Field valid for both Reception_is_SU and Reception_is_MU
  868. For SU:
  869. Total number of '32 bitmap BA' responses for this one user.
  870. If this value is > 1, in implies that multi TID response
  871. is needed. Also, if the sum of all the Response_ba??? Counts
  872. ) > 1, a multi TID response is needed.
  873. For MU:
  874. Total number of '32 bitmap BA' responses shared between
  875. all the users.
  876. <legal 0-36>
  877. */
  878. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_OFFSET 0x0000000000000018
  879. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_LSB 0
  880. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MSB 6
  881. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MASK 0x000000000000007f
  882. /* Description RESPONSE_BA64_COUNT
  883. Field valid for both Reception_is_SU and Reception_is_MU
  884. For SU:
  885. Total number of '64 bitmap BA' responses for this one user.
  886. If this value is > 1, in implies that multi TID response
  887. is needed. Also, if the sum of all the Response_ba??? Counts
  888. ) > 1, a multi TID response is needed.
  889. For MU:
  890. Total number of '64 bitmap BA' responses shared between
  891. all the users.
  892. <legal 0-36>
  893. */
  894. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_OFFSET 0x0000000000000018
  895. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_LSB 7
  896. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MSB 13
  897. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MASK 0x0000000000003f80
  898. /* Description RESPONSE_BA128_COUNT
  899. Field valid for both Reception_is_SU and Reception_is_MU
  900. For SU:
  901. Total number of '128 bitmap BA' responses for this one user.
  902. If this value is > 1, in implies that multi TID response
  903. is needed. Also, if the sum of all the Response_ba??? Counts
  904. ) > 1, a multi TID response is needed.
  905. For MU:
  906. Total number of '128 bitmap BA' responses shared between
  907. all the users.
  908. <legal 0-36>
  909. */
  910. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_OFFSET 0x0000000000000018
  911. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_LSB 14
  912. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MSB 20
  913. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MASK 0x00000000001fc000
  914. /* Description RESPONSE_BA256_COUNT
  915. Field valid for both Reception_is_SU and Reception_is_MU
  916. For SU:
  917. Total number of '256 bitmap BA' responses for this one user.
  918. If this value is > 1, in implies that multi TID response
  919. is needed. Also, if the sum of all the Response_ba??? Counts
  920. ) > 1, a multi TID response is needed.
  921. For MU:
  922. Total number of '256 bitmap BA' responses shared between
  923. all the users.
  924. <legal 0-36>
  925. */
  926. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_OFFSET 0x0000000000000018
  927. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_LSB 21
  928. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MSB 27
  929. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MASK 0x000000000fe00000
  930. /* Description MULTI_TID
  931. Field valid for both Reception_is_SU and Reception_is_MU
  932. When set, RXPCU has for at least one user multiple bitmaps
  933. available (which corresponds to multiple TIDs)
  934. Note that the sum of Response_ack_count,
  935. response_ba32_count, response_ba64_count,
  936. response_ba128_count, response_ba256_count is larger then
  937. the total number of users.
  938. Note: There is no restriction on TXPCU to retrieve all the
  939. bitmaps using explicit_user_request mode or not.
  940. <legal all>
  941. */
  942. #define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_OFFSET 0x0000000000000018
  943. #define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_LSB 28
  944. #define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MSB 28
  945. #define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MASK 0x0000000010000000
  946. /* Description SW_RESPONSE_TLV_FROM_CRYPTO
  947. Field can only be set by MAC mitigation logic
  948. The idea is here that normally TXPCU generates the BA frame.
  949. But as a backup scenario, in case of a last moment BA format
  950. change or some other issue, the BA frame could be fully
  951. generated in the MAC micro CPU and pushed into TXPCU through
  952. the Crypto - TXPCU TLV interface.
  953. This feature can be used for any response frame generation.
  954. From TXPCU perspective, all interaction with PDG remains
  955. exactly the same, accept that the frame length is now coming
  956. from field SW_Response_frame_length and the response frame
  957. is pushed into TXPCU over the CRYPTO - TXPCU TLV interface
  958. When set, this feature kick in
  959. When clear, this feature is not enabled
  960. <legal all>
  961. */
  962. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET 0x0000000000000018
  963. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB 29
  964. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB 29
  965. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK 0x0000000020000000
  966. /* Description DOT11AX_DL_UL_FLAG
  967. Field only valid in case of SU_or_uplink_MU_reception =
  968. Reception_is_SU
  969. This field is only valid for pkt_type == 11ax
  970. DL_UL_flag to be used for response frame sent to this device.
  971. Differentiates between DL and UL transmission
  972. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  973. <enum 1 DL_UL_FLAG_IS_UL>
  974. Note: this setting can also come from response look-up table
  975. in TXPCU...
  976. The selection is SW programmable
  977. <legal all>
  978. */
  979. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000018
  980. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_LSB 30
  981. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MSB 30
  982. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0000000040000000
  983. /* Description RESERVED_6A
  984. <legal 0>
  985. */
  986. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_OFFSET 0x0000000000000018
  987. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_LSB 31
  988. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MSB 31
  989. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MASK 0x0000000080000000
  990. /* Description SW_RESPONSE_FRAME_LENGTH
  991. Field only valid when SW_Response_tlv_from_crypto is set
  992. This is the size of the frame that SW will generate as the
  993. response frame. In those scenarios where TXPCU needs to
  994. indicate a frame_length in the PDG_RESPONSE TLV, this will
  995. be the value that TXPCU needs to use.
  996. Note that this value shall always be such that when PDG
  997. calculates the LSIG duration field, the calculated value
  998. is less then the max time duration that the LSIG length
  999. can hold.
  1000. Note that the MAX range here for
  1001. 11ax, MCS 11, BW 180, might not be reached. But as this
  1002. is just for 'normal HW generated response' frames, the range
  1003. is size here is more then enough.
  1004. Also not that this field is NOT used for trigger responses.
  1005. <legal all>
  1006. */
  1007. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000018
  1008. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_LSB 32
  1009. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MSB 47
  1010. #define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MASK 0x0000ffff00000000
  1011. /* Description RESPONSE_BA512_COUNT
  1012. Field valid for both Reception_is_SU and Reception_is_MU
  1013. For SU:
  1014. Total number of '512 bitmap BA' responses for this one user.
  1015. If this value is > 1, in implies that multi TID response
  1016. is needed. Also, if the sum of all the Response_ba??? Counts
  1017. > 1, a multi TID response is needed.
  1018. For MU:
  1019. Total number of '512 bitmap BA' responses shared between
  1020. all the users.
  1021. <legal 0-36>
  1022. */
  1023. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_OFFSET 0x0000000000000018
  1024. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_LSB 48
  1025. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MSB 54
  1026. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MASK 0x007f000000000000
  1027. /* Description RESPONSE_BA1024_COUNT
  1028. Field valid for both Reception_is_SU and Reception_is_MU
  1029. For SU:
  1030. Total number of '1024 bitmap BA' responses for this one
  1031. user.
  1032. If this value is > 1, in implies that multi TID response
  1033. is needed. Also, if the sum of all the Response_ba??? Counts
  1034. > 1, a multi TID response is needed.
  1035. For MU:
  1036. Total number of '1024 bitmap BA' responses shared between
  1037. all the users.
  1038. <legal 0-36>
  1039. */
  1040. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_OFFSET 0x0000000000000018
  1041. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_LSB 55
  1042. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MSB 61
  1043. #define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MASK 0x3f80000000000000
  1044. /* Description RESERVED_7A
  1045. <legal 0>
  1046. */
  1047. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_OFFSET 0x0000000000000018
  1048. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_LSB 62
  1049. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MSB 63
  1050. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MASK 0xc000000000000000
  1051. /* Description ADDR1_31_0
  1052. Field only valid in case of SU_or_uplink_MU_reception =
  1053. Reception_is_SU
  1054. lower 32 bits of addr1 of the received frame
  1055. <legal all>
  1056. */
  1057. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_OFFSET 0x0000000000000020
  1058. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_LSB 0
  1059. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MSB 31
  1060. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MASK 0x00000000ffffffff
  1061. /* Description ADDR1_47_32
  1062. Field only valid in case of SU_or_uplink_MU_reception =
  1063. Reception_is_SU
  1064. upper 16 bits of addr1 of the received frame
  1065. <legal all>
  1066. */
  1067. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_OFFSET 0x0000000000000020
  1068. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_LSB 32
  1069. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MSB 47
  1070. #define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MASK 0x0000ffff00000000
  1071. /* Description ADDR2_15_0
  1072. Field only valid in case of SU_or_uplink_MU_reception =
  1073. Reception_is_SU
  1074. lower 16 bits of addr2 of the received frame
  1075. <legal all>
  1076. */
  1077. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_OFFSET 0x0000000000000020
  1078. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_LSB 48
  1079. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MSB 63
  1080. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MASK 0xffff000000000000
  1081. /* Description ADDR2_47_16
  1082. Field only valid in case of SU_or_uplink_MU_reception =
  1083. Reception_is_SU
  1084. upper 32 bits of addr2 of the received frame
  1085. <legal all>
  1086. */
  1087. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_OFFSET 0x0000000000000028
  1088. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_LSB 0
  1089. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MSB 31
  1090. #define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MASK 0x00000000ffffffff
  1091. /* Description DOT11AX_RECEIVED_FORMAT_INDICATION
  1092. Field only valid in case of SU_or_uplink_MU_reception =
  1093. Reception_is_SU
  1094. This field is only valid for pkt_type == 11ax
  1095. Format_Indication from the received frame.
  1096. <enum 0 HE_SIGA_FORMAT_HE_TRIG>
  1097. <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
  1098. <legal all>
  1099. */
  1100. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET 0x0000000000000028
  1101. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB 32
  1102. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB 32
  1103. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK 0x0000000100000000
  1104. /* Description DOT11AX_RECEIVED_DL_UL_FLAG
  1105. Field only valid in case of SU_or_uplink_MU_reception =
  1106. Reception_is_SU
  1107. This field is only valid for pkt_type == 11ax
  1108. DL_UL_flag from the received frame
  1109. Differentiates between DL and UL transmission
  1110. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  1111. <enum 1 DL_UL_FLAG_IS_UL>
  1112. <legal all>
  1113. */
  1114. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET 0x0000000000000028
  1115. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB 33
  1116. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB 33
  1117. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK 0x0000000200000000
  1118. /* Description DOT11AX_RECEIVED_BSS_COLOR_ID
  1119. Field only valid in case of SU_or_uplink_MU_reception =
  1120. Reception_is_SU
  1121. This field is only valid for pkt_type == 11ax
  1122. BSS_color_id from the received frame
  1123. <legal all>
  1124. */
  1125. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET 0x0000000000000028
  1126. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB 34
  1127. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB 39
  1128. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK 0x000000fc00000000
  1129. /* Description DOT11AX_RECEIVED_SPATIAL_REUSE
  1130. Field only valid in case of SU_or_uplink_MU_reception =
  1131. Reception_is_SU
  1132. This field is only valid for pkt_type == 11ax
  1133. Spatial reuse from the received frame
  1134. <legal all>
  1135. */
  1136. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET 0x0000000000000028
  1137. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB 40
  1138. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB 43
  1139. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK 0x00000f0000000000
  1140. /* Description DOT11AX_RECEIVED_CP_SIZE
  1141. Field only valid in case of SU_or_uplink_MU_reception =
  1142. Reception_is_SU
  1143. This field is only valid for pkt_type == 11ax
  1144. CP size of the received frame
  1145. Specify the right GI for HE-Ranging NDPs (11az).
  1146. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used
  1147. for HE
  1148. <enum 1 0_4_us_sgi > Legacy short GI. Can also be used
  1149. for HE
  1150. <enum 2 1_6_us_sgi > HE related GI
  1151. <enum 3 3_2_us_sgi > HE related GI
  1152. <legal 0 - 3>
  1153. */
  1154. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET 0x0000000000000028
  1155. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB 44
  1156. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB 45
  1157. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK 0x0000300000000000
  1158. /* Description DOT11AX_RECEIVED_LTF_SIZE
  1159. Field only valid in case of SU_or_uplink_MU_reception =
  1160. Reception_is_SU
  1161. This field is only valid for pkt_type == 11ax
  1162. LTF size of the received frame
  1163. Specify the right LTF-size for HE-Ranging NDPs (11az).
  1164. <enum 0 ltf_1x >
  1165. <enum 1 ltf_2x >
  1166. <enum 2 ltf_4x >
  1167. <legal 0 - 2>
  1168. */
  1169. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET 0x0000000000000028
  1170. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB 46
  1171. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB 47
  1172. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK 0x0000c00000000000
  1173. /* Description DOT11AX_RECEIVED_CODING
  1174. Field only valid in case of SU_or_uplink_MU_reception =
  1175. Reception_is_SU
  1176. This field is only valid for pkt_type == 11ax
  1177. Coding from the received frame
  1178. <legal all>
  1179. */
  1180. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_OFFSET 0x0000000000000028
  1181. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_LSB 48
  1182. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MSB 48
  1183. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MASK 0x0001000000000000
  1184. /* Description DOT11AX_RECEIVED_DCM
  1185. Field only valid in case of SU_or_uplink_MU_reception =
  1186. Reception_is_SU
  1187. This field is only valid for pkt_type == 11ax
  1188. DCM from the received frame
  1189. <legal all>
  1190. */
  1191. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_OFFSET 0x0000000000000028
  1192. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_LSB 49
  1193. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MSB 49
  1194. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MASK 0x0002000000000000
  1195. /* Description DOT11AX_RECEIVED_DOPPLER_INDICATION
  1196. Field only valid in case of SU_or_uplink_MU_reception =
  1197. Reception_is_SU
  1198. This field is only valid for pkt_type == 11ax
  1199. Doppler_indication from the received frame
  1200. <legal all>
  1201. */
  1202. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET 0x0000000000000028
  1203. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB 50
  1204. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB 50
  1205. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK 0x0004000000000000
  1206. /* Description DOT11AX_RECEIVED_EXT_RU_SIZE
  1207. Field only valid in case of SU_or_uplink_MU_reception =
  1208. Reception_is_SU
  1209. This field is only valid for pkt_type == 11ax OR pkt_type
  1210. == 11be AND dot11ax_su_extended is set
  1211. The number of (basic) RUs in this extended range reception
  1212. RXPCU gets this from the received HE_SIG_A
  1213. <legal all>
  1214. */
  1215. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET 0x0000000000000028
  1216. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB 51
  1217. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB 54
  1218. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK 0x0078000000000000
  1219. /* Description FTM_FIELDS_VALID
  1220. Field only valid in case of SU_or_uplink_MU_reception =
  1221. Reception_is_SU
  1222. Field only valid in case ftm_en is set.
  1223. When set, the other ftm_ fields are valid and TXCPU shall
  1224. use these in the response frame instead of the response
  1225. table based fields with a similar name.
  1226. <legal all>
  1227. */
  1228. #define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_OFFSET 0x0000000000000028
  1229. #define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_LSB 55
  1230. #define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MSB 55
  1231. #define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MASK 0x0080000000000000
  1232. /* Description FTM_PE_NSS
  1233. Field only valid in case ftm_fields_valid is set.
  1234. Number of active spatial streams during packet extension
  1235. for ftm related frame exchanges
  1236. <enum 0 1_spatial_stream>Single spatial stream
  1237. <enum 1 2_spatial_streams>2 spatial streams
  1238. <enum 2 3_spatial_streams>3 spatial streams
  1239. <enum 3 4_spatial_streams>4 spatial streams
  1240. <enum 4 5_spatial_streams>5 spatial streams
  1241. <enum 5 6_spatial_streams>6 spatial streams
  1242. <enum 6 7_spatial_streams>7 spatial streams
  1243. <enum 7 8_spatial_streams>8 spatial streams
  1244. */
  1245. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_OFFSET 0x0000000000000028
  1246. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_LSB 56
  1247. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MSB 58
  1248. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MASK 0x0700000000000000
  1249. /* Description FTM_PE_LTF_SIZE
  1250. Field only valid in case ftm_fields_valid is set.
  1251. LTF size to be used during packet extention for ftm related
  1252. frame exchanges.
  1253. 0-1x
  1254. 1-2x (unsupported un HWK-1)
  1255. 2-4x (unsupported un HWK-1)
  1256. <legal all>
  1257. */
  1258. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_OFFSET 0x0000000000000028
  1259. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_LSB 59
  1260. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MSB 60
  1261. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MASK 0x1800000000000000
  1262. /* Description FTM_PE_CONTENT
  1263. Field only valid in case ftm_fields_valid is set.
  1264. The pe content for ftm related frame exchanges.
  1265. Content of packet extension.
  1266. 0-he_ltf, 1-last_data_symbol
  1267. <legal all>
  1268. */
  1269. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_OFFSET 0x0000000000000028
  1270. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_LSB 61
  1271. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MSB 61
  1272. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MASK 0x2000000000000000
  1273. /* Description FTM_CHAIN_CSD_EN
  1274. Field only valid in case ftm_fields_valid is set.
  1275. This field denotes whether to apply CSD on the preamble
  1276. and data portion of the packet. This field is valid for
  1277. all transmit packets
  1278. 0: disable per-chain csd
  1279. 1: enable per-chain csd
  1280. <legal all>
  1281. */
  1282. #define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_OFFSET 0x0000000000000028
  1283. #define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_LSB 62
  1284. #define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MSB 62
  1285. #define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MASK 0x4000000000000000
  1286. /* Description FTM_PE_CHAIN_CSD_EN
  1287. Field only valid in case ftm_fields_valid is set.
  1288. This field denotes whether to apply CSD on the preamble
  1289. and data portion of the packet. This field is valid for
  1290. all transmit packets
  1291. 0: disable per-chain csd
  1292. 1: enable per-chain csd
  1293. <legal all>
  1294. */
  1295. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000028
  1296. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_LSB 63
  1297. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MSB 63
  1298. #define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MASK 0x8000000000000000
  1299. /* Description DOT11AX_RESPONSE_RATE_SOURCE
  1300. Field only valid in case of SU_or_uplink_MU_reception =
  1301. Reception_is_SU
  1302. Valid for response generation to an 11ax pkt_type received
  1303. frame, but NOT 11ax extended pkt_type of frame
  1304. When set to 0, use the register based lookup for determining
  1305. the 11ax response rates.
  1306. When > 0, TXPCU shall use this response table index for
  1307. the 20 MHz response, and higher BW responses are in the
  1308. subsequent response table entries
  1309. <legal all>
  1310. */
  1311. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_OFFSET 0x0000000000000030
  1312. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_LSB 0
  1313. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MSB 7
  1314. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MASK 0x00000000000000ff
  1315. /* Description DOT11AX_EXT_RESPONSE_RATE_SOURCE
  1316. Field only valid in case of SU_or_uplink_MU_reception =
  1317. Reception_is_SU
  1318. This field is only valid for pkt_type == 11ax and dot11ax_su_extended
  1319. is set
  1320. When set to 0, the response rates are based on the 11ax
  1321. extended response register based indexes in TXPCU.
  1322. When > 0, TXPCU shall use this response table index for
  1323. the response to a 1RU reception. Higher RU count reception
  1324. responses can be found in the subsequent response table
  1325. entries: Next entry is for 2 RU receptions, then 4 RU
  1326. receptions, then >= 8 RU receptions...
  1327. <legal all>
  1328. */
  1329. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_OFFSET 0x0000000000000030
  1330. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_LSB 8
  1331. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MSB 15
  1332. #define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MASK 0x000000000000ff00
  1333. /* Description SW_PEER_ID
  1334. Field only valid in case of SU_or_uplink_MU_reception =
  1335. Reception_is_SU
  1336. An identifier indicating for which device this response
  1337. is needed.
  1338. <legal all>
  1339. */
  1340. #define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_OFFSET 0x0000000000000030
  1341. #define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_LSB 16
  1342. #define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MSB 31
  1343. #define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MASK 0x00000000ffff0000
  1344. /* Description DOT11BE_PUNCTURE_BITMAP
  1345. This field is only valid if Punctured_response is set
  1346. The bitmap of 20 MHz sub-bands valid in this EHT reception
  1347. RXPCU gets this from the received U-SIG and/or EHT-SIG via
  1348. PHY microcode.
  1349. <legal all>
  1350. */
  1351. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET 0x0000000000000030
  1352. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_LSB 32
  1353. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MSB 47
  1354. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MASK 0x0000ffff00000000
  1355. /* Description DOT11BE_RESPONSE
  1356. Field only valid in case of SU_or_uplink_MU_reception =
  1357. Reception_is_SU
  1358. Indicates that the peer supports .11be response protocols,
  1359. e.g. .11be BW indication in scrambler seed, .11be dynamic
  1360. BW procedure, punctured response, etc.
  1361. */
  1362. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_OFFSET 0x0000000000000030
  1363. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_LSB 48
  1364. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MSB 48
  1365. #define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MASK 0x0001000000000000
  1366. /* Description PUNCTURED_RESPONSE
  1367. Field only valid if Dot11be_response is set
  1368. Indicates that the response shall use preamble puncturing
  1369. */
  1370. #define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_OFFSET 0x0000000000000030
  1371. #define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_LSB 49
  1372. #define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MSB 49
  1373. #define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MASK 0x0002000000000000
  1374. /* Description EHT_DUPLICATE_MODE
  1375. Field only valid in case of SU_or_uplink_MU_reception =
  1376. Reception_is_SU for pkt_type == 11be
  1377. Indicates EHT duplicate modulation
  1378. <enum 0 eht_no_duplicate>
  1379. <enum 1 eht_2x_duplicate>
  1380. <enum 2 eht_4x_duplicate>
  1381. <legal 0-2>
  1382. */
  1383. #define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000030
  1384. #define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_LSB 50
  1385. #define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MSB 51
  1386. #define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MASK 0x000c000000000000
  1387. /* Description FORCE_EXTRA_SYMBOL
  1388. Set to 1 to force an extra OFDM symbol (or symbols) even
  1389. if the PPDU encoding process does not result in an extra
  1390. OFDM symbol (or symbols)
  1391. */
  1392. #define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000030
  1393. #define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_LSB 52
  1394. #define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MSB 52
  1395. #define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MASK 0x0010000000000000
  1396. /* Description RESERVED_13A
  1397. <legal 0>
  1398. */
  1399. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_OFFSET 0x0000000000000030
  1400. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_LSB 53
  1401. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MSB 57
  1402. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MASK 0x03e0000000000000
  1403. /* Description U_SIG_PUNCTURE_PATTERN_ENCODING
  1404. This field is only valid if Punctured_response is set
  1405. The 6-bit value used in U-SIG and/or EHT-SIG Common field
  1406. for the puncture pattern
  1407. <legal 0-29>
  1408. */
  1409. #define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000030
  1410. #define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
  1411. #define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
  1412. #define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
  1413. /* Description MLO_STA_ID_DETAILS_RX
  1414. Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID'
  1415. from address search.
  1416. See definition of mlo_sta_id_details.
  1417. Hamilton v1 did not include this (and any subsequent) word.
  1418. */
  1419. /* Description NSTR_MLO_STA_ID
  1420. ID of peer participating in non-STR MLO
  1421. */
  1422. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000038
  1423. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
  1424. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
  1425. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
  1426. /* Description BLOCK_SELF_ML_SYNC
  1427. Only valid for TX
  1428. When set, this provides an indication to block the peer
  1429. for self-link.
  1430. */
  1431. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000038
  1432. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
  1433. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
  1434. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
  1435. /* Description BLOCK_PARTNER_ML_SYNC
  1436. Only valid for TX
  1437. When set, this provides an indication to block the peer
  1438. for partner links.
  1439. */
  1440. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000038
  1441. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
  1442. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
  1443. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
  1444. /* Description NSTR_MLO_STA_ID_VALID
  1445. All the fields in this TLV are valid only if this bit is
  1446. set.
  1447. */
  1448. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000038
  1449. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
  1450. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
  1451. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
  1452. /* Description RESERVED_0A
  1453. <legal 0>
  1454. */
  1455. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000038
  1456. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
  1457. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
  1458. #define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
  1459. /* Description HE_A_CONTROL_RESPONSE_TIME
  1460. When non-zero, indicates the value from an HE A-Control
  1461. in the received frame requiring a specific response time
  1462. (e.g. for sync MLO)
  1463. <legal all>
  1464. */
  1465. #define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_OFFSET 0x0000000000000038
  1466. #define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_LSB 16
  1467. #define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MSB 27
  1468. #define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MASK 0x000000000fff0000
  1469. /* Description RESERVED_AFTER_STRUCT16
  1470. <legal 0>
  1471. */
  1472. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_OFFSET 0x0000000000000038
  1473. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_LSB 28
  1474. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MSB 31
  1475. #define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MASK 0x00000000f0000000
  1476. /* Description TLV64_PADDING
  1477. Automatic DWORD padding inserted while converting TLV32
  1478. to TLV64 for 64 bit ARCH
  1479. <legal 0>
  1480. */
  1481. #define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_OFFSET 0x0000000000000038
  1482. #define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_LSB 32
  1483. #define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MSB 63
  1484. #define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MASK 0xffffffff00000000
  1485. #endif // RX_RESPONSE_REQUIRED_INFO