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