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