blob: f46575b24998327c5efd8fcbe70f4c28a048169d [file] [log] [blame]
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _PDG_RESPONSE_H_
#define _PDG_RESPONSE_H_
#if !defined(__ASSEMBLER__)
#endif
#include "pdg_response_rate_setting.h"
#define NUM_OF_DWORDS_PDG_RESPONSE 12
#define NUM_OF_QWORDS_PDG_RESPONSE 6
struct pdg_response {
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
struct pdg_response_rate_setting hw_response_rate_info;
uint32_t hw_response_tx_duration : 16, // [15:0]
rx_duration_field : 16; // [31:16]
uint32_t punctured_response_transmission : 1, // [0:0]
cca_subband_channel_bonding_mask : 16, // [16:1]
scrambler_seed_override : 2, // [18:17]
response_density_valid : 1, // [19:19]
response_density : 5, // [24:20]
more_data : 1, // [25:25]
duration_indication : 1, // [26:26]
relayed_frame : 1, // [27:27]
address_indicator : 1, // [28:28]
bandwidth : 3; // [31:29]
uint32_t ack_id : 16, // [15:0]
block_ack_bitmap : 16; // [31:16]
uint32_t response_frame_type : 4, // [3:0]
ack_id_ext : 10, // [13:4]
ftm_en : 1, // [14:14]
group_id : 6, // [20:15]
sta_partial_aid : 11; // [31:21]
uint32_t ndp_ba_start_seq_ctrl : 12, // [11:0]
active_channel : 3, // [14:12]
txop_duration_all_ones : 1, // [15:15]
frame_length : 16; // [31:16]
#else
struct pdg_response_rate_setting hw_response_rate_info;
uint32_t rx_duration_field : 16, // [31:16]
hw_response_tx_duration : 16; // [15:0]
uint32_t bandwidth : 3, // [31:29]
address_indicator : 1, // [28:28]
relayed_frame : 1, // [27:27]
duration_indication : 1, // [26:26]
more_data : 1, // [25:25]
response_density : 5, // [24:20]
response_density_valid : 1, // [19:19]
scrambler_seed_override : 2, // [18:17]
cca_subband_channel_bonding_mask : 16, // [16:1]
punctured_response_transmission : 1; // [0:0]
uint32_t block_ack_bitmap : 16, // [31:16]
ack_id : 16; // [15:0]
uint32_t sta_partial_aid : 11, // [31:21]
group_id : 6, // [20:15]
ftm_en : 1, // [14:14]
ack_id_ext : 10, // [13:4]
response_frame_type : 4; // [3:0]
uint32_t frame_length : 16, // [31:16]
txop_duration_all_ones : 1, // [15:15]
active_channel : 3, // [14:12]
ndp_ba_start_seq_ctrl : 12; // [11:0]
#endif
};
/* Description HW_RESPONSE_RATE_INFO
All transmit rate related parameters
*/
/* Description RESERVED_0A
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_LSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MASK 0x0000000000000001
/* Description TX_ANTENNA_SECTOR_CTRL
Sectored transmit antenna
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_LSB 1
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MSB 24
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe
/* Description PKT_TYPE
Packet type:
<enum 0 dot11a>802.11a PPDU type
<enum 1 dot11b>802.11b PPDU type
<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
<enum 3 dot11ac>802.11ac PPDU type
<enum 4 dot11ax>802.11ax PPDU type
<enum 5 dot11ba>802.11ba (WUR) PPDU type
<enum 6 dot11be>802.11be PPDU type
<enum 7 dot11az>802.11az (ranging) PPDU type
<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
& aborted)
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_LSB 25
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MSB 28
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MASK 0x000000001e000000
/* Description SMOOTHING
This field is used by PDG to populate the SMOOTHING filed
in the SIG Preamble of the PPDU
<legal 0-1>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_LSB 29
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MSB 29
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MASK 0x0000000020000000
/* Description LDPC
When set, use LDPC transmission rates
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_LSB 30
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MSB 30
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MASK 0x0000000040000000
/* Description STBC
When set, use STBC transmission rates
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_LSB 31
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MSB 31
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MASK 0x0000000080000000
/* Description ALT_TX_PWR
Coex related AlternativeTransmit parameter
Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_LSB 32
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MSB 39
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MASK 0x000000ff00000000
/* Description ALT_MIN_TX_PWR
Coex related Alternative Transmit parameter
Minimum allowed Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_LSB 40
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MSB 47
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000
/* Description ALT_NSS
Coex related Alternative Transmit parameter
Number of spatial streams.
<enum 0 1_spatial_stream>Single spatial stream
<enum 1 2_spatial_streams>2 spatial streams
<enum 2 3_spatial_streams>3 spatial streams
<enum 3 4_spatial_streams>4 spatial streams
<enum 4 5_spatial_streams>5 spatial streams
<enum 5 6_spatial_streams>6 spatial streams
<enum 6 7_spatial_streams>7 spatial streams
<enum 7 8_spatial_streams>8 spatial streams
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_LSB 48
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MSB 50
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MASK 0x0007000000000000
/* Description ALT_TX_CHAIN_MASK
Coex related Alternative Transmit parameter
Chain mask to support up to 8 antennas.
<legal 1-255>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_LSB 51
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MSB 58
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000
/* Description ALT_BW
Coex related Alternative Transmit parameter
The BW of the upcoming transmission.
<enum 0 20_mhz>20 Mhz BW
<enum 1 40_mhz>40 Mhz BW
<enum 2 80_mhz>80 Mhz BW
<enum 3 160_mhz>160 Mhz BW
<enum 4 320_mhz>320 Mhz BW
<enum 5 240_mhz>240 Mhz BW
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_LSB 59
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MSB 61
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MASK 0x3800000000000000
/* Description STF_LTF_3DB_BOOST
Boost the STF and LTF power by 3dB in 11a/n/ac packets.
This includes both the legacy preambles and the HT/VHT preambles.0:
disable power boost1: enable power boost
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_LSB 62
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MSB 62
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MASK 0x4000000000000000
/* Description FORCE_EXTRA_SYMBOL
Set to 1 to force an extra OFDM symbol (or symbols) even
if the PPDU encoding process does not result in an extra
OFDM symbol (or symbols)
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000000
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_LSB 63
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MSB 63
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000
/* Description ALT_RATE_MCS
Coex related Alternative Transmit parameter
For details, refer to MCS_TYPE
Note: This is "rate" in case of 11a/11b
description
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_LSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MSB 3
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MASK 0x000000000000000f
/* Description NSS
Number of spatial streams.
<enum 0 1_spatial_stream>Single spatial stream
<enum 1 2_spatial_streams>2 spatial streams
<enum 2 3_spatial_streams>3 spatial streams
<enum 3 4_spatial_streams>4 spatial streams
<enum 4 5_spatial_streams>5 spatial streams
<enum 5 6_spatial_streams>6 spatial streams
<enum 6 7_spatial_streams>7 spatial streams
<enum 7 8_spatial_streams>8 spatial streams
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_LSB 4
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MSB 6
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MASK 0x0000000000000070
/* Description DPD_ENABLE
DPD enable control
This is needed on a per packet basis
<enum 0 dpd_off> DPD profile not applied to current
packet
<enum 1 dpd_on> DPD profile applied to current packet
if available
<legal 0-1>
This field is not applicable in11ah mode of operation and
is ignored by the HW
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_LSB 7
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MSB 7
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MASK 0x0000000000000080
/* Description TX_PWR
Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_LSB 8
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MSB 15
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MASK 0x000000000000ff00
/* Description MIN_TX_PWR
Coex related field:
Minimum allowed Transmit Power in s6.2 format.
In units of 0.25 dBm
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_LSB 16
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MSB 23
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MASK 0x0000000000ff0000
/* Description TX_CHAIN_MASK
Chain mask to support up to 8 antennas.
<legal 1-255>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_LSB 24
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MSB 31
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MASK 0x00000000ff000000
/* Description RESERVED_3A
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_LSB 32
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MSB 39
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MASK 0x000000ff00000000
/* Description SGI
Field only valid when pkt type is HT or VHT.For 11ax see
field Dot11ax_CP_LTF_size
<enum 0 0_8_us_sgi > Legacy normal GI. Can also be used
for HE
<enum 1 0_4_us_sgi > Legacy short GI. Can also be used
for HE
<enum 2 1_6_us_sgi > Not used for pre 11ax pkt_types.
<enum 3 3_2_us_sgi > Not used for pre 11ax pkt_types
<legal 0 - 3>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_LSB 40
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MSB 41
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MASK 0x0000030000000000
/* Description RATE_MCS
For details, refer to MCS_TYPE description
Note: This is "rate" in case of 11a/11b
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_LSB 42
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MSB 45
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MASK 0x00003c0000000000
/* Description RESERVED_3B
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_LSB 46
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MSB 47
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MASK 0x0000c00000000000
/* Description TX_PWR_1
Default (desired) transmit parameter for the second chain
Transmit Power in s6.2 format.
In units of 0.25 dBm
Note that there is no Min value for this
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_LSB 48
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MSB 55
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MASK 0x00ff000000000000
/* Description ALT_TX_PWR_1
Alternate (desired) transmit parameter for the second chain
Transmit Power in s6.2 format.
In units of 0.25 dBm
Note that there is no Min value for this
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_OFFSET 0x0000000000000008
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_LSB 56
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MSB 63
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MASK 0xff00000000000000
/* Description AGGREGATION
Field only valid in case of pkt_type == 11n
<enum 0 mpdu> Indicates MPDU format. TXPCU will select
this setting if the CBF response only contains a single
segment
<enum 1 a_mpdu> Indicates A-MPDU format. TXPCU will
select this setting if the CBF response will contain two
or more segments
<legal 0-1>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_LSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MASK 0x0000000000000001
/* Description DOT11AX_BSS_COLOR_ID
BSS color of the nextwork to which this STA belongs.
When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_LSB 1
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MSB 6
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e
/* Description DOT11AX_SPATIAL_REUSE
This field is only valid for pkt_type == 11ax
Spatial re-use
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_LSB 7
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MSB 10
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780
/* Description DOT11AX_CP_LTF_SIZE
field is only valid for pkt_type == 11ax
Indicates the CP and HE-LTF type
<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
<enum 3 FourX_LTF_0_8CP_3_2CP>
When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
In this scenario, Neither DCM nor STBC is applied to HE
data field.
If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
0 = 1xLTF + 0.4 usec
1 = 2xLTF + 0.4 usec
2~3 = Reserved
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_LSB 11
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MSB 12
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800
/* Description DOT11AX_DCM
field is only valid for pkt_type == 11ax
Indicates whether dual sub-carrier modulation is applied
0: No DCM
1:DCM
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_LSB 13
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MSB 13
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MASK 0x0000000000002000
/* Description DOT11AX_DOPPLER_INDICATION
field is only valid for pkt_type == 11ax
0: No Doppler support
1: Doppler support
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_LSB 14
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MSB 14
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000
/* Description DOT11AX_SU_EXTENDED
field is only valid for pkt_type == 11ax OR pkt_type ==
11be
When set, the 11ax or 11be frame is of the extended range
format
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_LSB 15
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MSB 15
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000
/* Description DOT11AX_MIN_PACKET_EXTENSION
field is only valid for pkt_type == 11ax OR pkt_type ==
11be
The min packet extension duration for this user.
0: no extension
1: 8us
2: 16 us
3: 20 us (only for .11be)
<legal 0-3>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_LSB 16
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MSB 17
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000
/* Description DOT11AX_PE_NSS
Number of active spatial streams during packet extension.
<enum 0 1_spatial_stream>Single spatial stream
<enum 1 2_spatial_streams>2 spatial streams
<enum 2 3_spatial_streams>3 spatial streams
<enum 3 4_spatial_streams>4 spatial streams
<enum 4 5_spatial_streams>5 spatial streams
<enum 5 6_spatial_streams>6 spatial streams
<enum 6 7_spatial_streams>7 spatial streams
<enum 7 8_spatial_streams>8 spatial streams
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_LSB 18
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MSB 20
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MASK 0x00000000001c0000
/* Description DOT11AX_PE_CONTENT
Content of packet extension. Valid for all 11ax packets
having packet extension
0-he_ltf, 1-last_data_symbol
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_LSB 21
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MSB 21
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MASK 0x0000000000200000
/* Description DOT11AX_PE_LTF_SIZE
LTF size to be used during packet extention. . This field
is valid for both FTM and non-FTM packets.
0-1x
1-2x (unsupported un HWK-1)
2-4x (unsupported un HWK-1)
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_LSB 22
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MSB 23
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000
/* Description DOT11AX_CHAIN_CSD_EN
This field denotes whether to apply CSD on the preamble
and data portion of the packet. This field is valid for
all transmit packets
0: disable per-chain csd
1: enable per-chain csd
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_LSB 24
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MSB 24
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000
/* Description DOT11AX_PE_CHAIN_CSD_EN
This field denotes whether to apply CSD on the packet extension
portion of the packet. This field is valid for all 11ax
packets.
0: disable per-chain csd
1: enable per-chain csd
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_LSB 25
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MSB 25
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000
/* Description DOT11AX_DL_UL_FLAG
field is only valid for pkt_type == 11ax
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
<enum 1 DL_UL_FLAG_IS_UL>
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_LSB 26
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MSB 26
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000
/* Description RESERVED_4A
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_LSB 27
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MSB 31
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MASK 0x00000000f8000000
/* Description DOT11AX_EXT_RU_START_INDEX
field is only valid for pkt_type == 11ax and Dot11ax_su_extended
== 1
RU Number to which User is assigned
The RU numbering bitwidth is only enough to cover the 20MHz
BW that extended range allows
<legal 0-8>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_LSB 32
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MSB 35
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000
/* Description DOT11AX_EXT_RU_SIZE
field is only valid for pkt_type == 11ax and Dot11ax_su_extended
== 1 or pkt_type == 11be and EHT_duplicate_mode == 1
The size of the RU for this user.
In case of EHT duplicate transmissions, this field indicates
the width of the actual content before duplication, e.g.
a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
fields indicating 160 MHz and this field set to e-num 4
(RU_484).
<enum 0 RU_26>
<enum 1 RU_52>
<enum 2 RU_106>
<enum 3 RU_242>
<enum 4 RU_484>
<enum 5 RU_996>
<enum 6 RU_1992>
<enum 7 RU_FULLBW> Set when the RU occupies the full packet
bandwidth
<enum 8 RU_FULLBW_240> Set when the RU occupies the full
packet bandwidth
<enum 9 RU_FULLBW_320> Set when the RU occupies the full
packet bandwidth
<enum 10 RU_MULTI_LARGE> DO NOT USE
<enum 11 RU_78> DO NOT USE
<enum 12 RU_132> DO NOT USE
<legal 0-12>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_LSB 36
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MSB 39
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000
/* Description EHT_DUPLICATE_MODE
Field only valid for pkt_type == 11be
Indicates EHT duplicate modulation
<enum 0 eht_no_duplicate>
<enum 1 eht_2x_duplicate>
<enum 2 eht_4x_duplicate>
<legal 0-2>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_LSB 40
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MSB 41
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MASK 0x0000030000000000
/* Description HE_SIGB_DCM
Indicates whether dual sub-carrier modulation is applied
to EHT-SIG
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_LSB 42
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MSB 42
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MASK 0x0000040000000000
/* Description HE_SIGB_0_MCS
Indicates the MCS of EHT-SIG
For details, refer to MCS_TYPE description
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_LSB 43
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MSB 45
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MASK 0x0000380000000000
/* Description NUM_HE_SIGB_SYM
Indicates the number of EHT-SIG symbols
This field is 0-based with 0 indicating that 1 eht_sig symbol
needs to be transmitted.
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_LSB 46
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MSB 50
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000
/* Description REQUIRED_RESPONSE_TIME_SOURCE
<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
HT Control for sync MLO response
<enum 1 reqd_resp_time_src_is_FW>
Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
to response
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000
/* Description RESERVED_5A
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_LSB 52
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MSB 57
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MASK 0x03f0000000000000
/* Description U_SIG_PUNCTURE_PATTERN_ENCODING
6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO'
to pass on to PDG
<legal 0-29>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000010
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
/* Description MLO_STA_ID_DETAILS_RX
16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
on to PDG
Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID'
from address search.
See definition of mlo_sta_id_details.
*/
/* Description NSTR_MLO_STA_ID
ID of peer participating in non-STR MLO
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
/* Description BLOCK_SELF_ML_SYNC
Only valid for TX
When set, this provides an indication to block the peer
for self-link.
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
/* Description BLOCK_PARTNER_ML_SYNC
Only valid for TX
When set, this provides an indication to block the peer
for partner links.
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
/* Description NSTR_MLO_STA_ID_VALID
All the fields in this TLV are valid only if this bit is
set.
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
/* Description RESERVED_0A
<legal 0>
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
/* Description REQUIRED_RESPONSE_TIME
When non-zero, indicates that PDG shall pad the response
transmission to the indicated duration (in us)
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_LSB 16
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MSB 27
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000
/* Description DOT11BE_PARAMS_PLACEHOLDER
4 bytes for use as placeholders for 'Dot11be_*' parameters
*/
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_LSB 28
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MSB 31
#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000
/* Description HW_RESPONSE_TX_DURATION
The amount of time the transmission of the HW response will
take (in us)
Used for coex.....
This field also represents the 'alt_hw_response_tx_duration'.
Note that this implies that no different duration can be
programmed for the default and alt setting. SW should program
the worst case value in the RXPCU table in case they are
different.
<legal all>
*/
#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_OFFSET 0x0000000000000018
#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_LSB 32
#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MSB 47
#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MASK 0x0000ffff00000000
/* Description RX_DURATION_FIELD
The duration field in the received frame.
PDG uses this field to calculate what the duration field
value should be in the response frame.
This is returned to the TX PCU
This field is used in 11ah mode as well
<legal all>
*/
#define PDG_RESPONSE_RX_DURATION_FIELD_OFFSET 0x0000000000000018
#define PDG_RESPONSE_RX_DURATION_FIELD_LSB 48
#define PDG_RESPONSE_RX_DURATION_FIELD_MSB 63
#define PDG_RESPONSE_RX_DURATION_FIELD_MASK 0xffff000000000000
/* Description PUNCTURED_RESPONSE_TRANSMISSION
When set, this response frame will be transmitted using
a puncture transmit pattern that is indicated in the cca_subband_channel_bonding_mask
field.
Typically used in the Response to response transmissions.
<legal all>
*/
#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_OFFSET 0x0000000000000020
#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_LSB 0
#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MSB 0
#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MASK 0x0000000000000001
/* Description CCA_SUBBAND_CHANNEL_BONDING_MASK
Field only valid when 'Punctured_response_transmission'
is set
Indicates which 20 Mhz channels will be used for the transmission.
Bit 0: primary 20 Mhz
Bit 1: secondary 20 MHz.
Etc.
<legal 1-65535>
*/
#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_OFFSET 0x0000000000000020
#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_LSB 1
#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MSB 16
#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MASK 0x000000000001fffe
/* Description SCRAMBLER_SEED_OVERRIDE
Used in dynamic BW RTS-CTS, BAR -BA, etc. kind of exchanges.
0: PDG will use all 7 bits of the scrambler seed.
1: PDG will override bits [6:5] of the scrambler_seed
with BW information.
2: PDG will override bits [6:5] and bit [3] of the scrambler_seed
with BW information for .11be dynamic BW procedure.
<legal 0-2>
*/
#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_OFFSET 0x0000000000000020
#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_LSB 17
#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MSB 18
#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MASK 0x0000000000060000
/* Description RESPONSE_DENSITY_VALID
When set, field Response_density has valid info. TXPCU sets
this for multi segment CBF response generation.
<legal all>
*/
#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_OFFSET 0x0000000000000020
#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_LSB 19
#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MSB 19
#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MASK 0x0000000000080000
/* Description RESPONSE_DENSITY
Field only valid when Response_density_valid is set.
When Response_density_valid is NOT set, this field is set
to 0
The MPDU density is required for the response frame (in
us). PDG will translate this value into minimum number of
words per MPDU and give this back to TXPCU in TLV PCU_PPDU_SETUP_USER
field min_mpdu_spacing
TXPCU gets this value from a register.
<legal all>
*/
#define PDG_RESPONSE_RESPONSE_DENSITY_OFFSET 0x0000000000000020
#define PDG_RESPONSE_RESPONSE_DENSITY_LSB 20
#define PDG_RESPONSE_RESPONSE_DENSITY_MSB 24
#define PDG_RESPONSE_RESPONSE_DENSITY_MASK 0x0000000001f00000
/* Description MORE_DATA
This setting is used for
NDP ACK response frames
NDP Modified ACK response frames
The value of this field comes from a register programming.
The register resides in TxPCU and is programmed by SW within
SIFS response time when responding with NDP ACK or NDP
Modified ACK.
<legal all>
*/
#define PDG_RESPONSE_MORE_DATA_OFFSET 0x0000000000000020
#define PDG_RESPONSE_MORE_DATA_LSB 25
#define PDG_RESPONSE_MORE_DATA_MSB 25
#define PDG_RESPONSE_MORE_DATA_MASK 0x0000000002000000
/* Description DURATION_INDICATION
This setting is used for
NDP ACK response frames
NDP Modified ACK response frames
The value of this field comes from a register programming.
The register resides in TxPCU and is programmed by SW within
SIFS response time when responding with NDP ACK or NDP
Modified ACK.
<legal all>
*/
#define PDG_RESPONSE_DURATION_INDICATION_OFFSET 0x0000000000000020
#define PDG_RESPONSE_DURATION_INDICATION_LSB 26
#define PDG_RESPONSE_DURATION_INDICATION_MSB 26
#define PDG_RESPONSE_DURATION_INDICATION_MASK 0x0000000004000000
/* Description RELAYED_FRAME
This setting is used to fill the field in the SIG preamble
for
NDP ACK response frame
This feature is not supported and TxPCU should program this
field to Zero. PDG will ignore this field.
<legal all>
*/
#define PDG_RESPONSE_RELAYED_FRAME_OFFSET 0x0000000000000020
#define PDG_RESPONSE_RELAYED_FRAME_LSB 27
#define PDG_RESPONSE_RELAYED_FRAME_MSB 27
#define PDG_RESPONSE_RELAYED_FRAME_MASK 0x0000000008000000
/* Description ADDRESS_INDICATOR
This bit is used to fill the address_indicator field in
the SIG preamble of NDP CTS response frame.
This feature is not supported and TxPCU should program this
field to Zero. PDG will use this field to populate the
NDP response frame
<legal all>
*/
#define PDG_RESPONSE_ADDRESS_INDICATOR_OFFSET 0x0000000000000020
#define PDG_RESPONSE_ADDRESS_INDICATOR_LSB 28
#define PDG_RESPONSE_ADDRESS_INDICATOR_MSB 28
#define PDG_RESPONSE_ADDRESS_INDICATOR_MASK 0x0000000010000000
/* Description BANDWIDTH
Packet bandwidth:
<enum 0 20_mhz>20 Mhz BW
<enum 1 40_mhz>40 Mhz BW
<enum 2 80_mhz>80 Mhz BW
<enum 3 160_mhz>160 Mhz BW
<enum 4 320_mhz>320 Mhz BW
<enum 5 240_mhz>240 Mhz BW
*/
#define PDG_RESPONSE_BANDWIDTH_OFFSET 0x0000000000000020
#define PDG_RESPONSE_BANDWIDTH_LSB 29
#define PDG_RESPONSE_BANDWIDTH_MSB 31
#define PDG_RESPONSE_BANDWIDTH_MASK 0x00000000e0000000
/* Description ACK_ID
ACK_ID in NDP_ACK frames, NDP Modified ACK frames
For BW > 1MHz
[15:0] = ack_id
For BW = 1MHz
[8:0] = ack_id
[15:9] = Reserved
For NDP BA
If BW=1MHz
[1:0] = Block ACK ID
[15:2] = Reserved
If BW>1MHz
[5:0] = Block ACK ID
[15:2] = Reserved
<legal all>
*/
#define PDG_RESPONSE_ACK_ID_OFFSET 0x0000000000000020
#define PDG_RESPONSE_ACK_ID_LSB 32
#define PDG_RESPONSE_ACK_ID_MSB 47
#define PDG_RESPONSE_ACK_ID_MASK 0x0000ffff00000000
/* Description BLOCK_ACK_BITMAP
Block Ack bitmap field for generating the NDP BA frames
in 1MHz and >= 2MHz
<legal all>
*/
#define PDG_RESPONSE_BLOCK_ACK_BITMAP_OFFSET 0x0000000000000020
#define PDG_RESPONSE_BLOCK_ACK_BITMAP_LSB 48
#define PDG_RESPONSE_BLOCK_ACK_BITMAP_MSB 63
#define PDG_RESPONSE_BLOCK_ACK_BITMAP_MASK 0xffff000000000000
/* Description RESPONSE_FRAME_TYPE
Coex related field
<enum 0 Non_11ah_ACK >
<enum 1 Non_11ah_BA > also used for M-BA
<enum 2 Non_11ah_CTS >
<enum 3 AH_NDP_CTS>
<enum 4 AH_NDP_ACK>
<enum 5 AH_NDP_BA>
<enum 6 AH_NDP_MOD_ACK>
<enum 7 AH_Normal_ACK>
<enum 8 AH_Normal_BA>
<enum 9 RTT_ACK>
<enum 10 CBF_RESPONSE>
<enum 11 MBA> This can be a multi STA BA or multi TID BA
<enum 12 Ranging_NDP>
<enum 13 LMR_RESPONSE> Ranging NDP response followed by
LMR response for Rx ranging NDPA followed by NDP
<legal 0-13>
*/
#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_OFFSET 0x0000000000000028
#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_LSB 0
#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MSB 3
#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MASK 0x000000000000000f
/* Description ACK_ID_EXT
This is populated by TxPCU from the RX_RESPONSE_REQUIRED_INFO.ack_id_ext.
*/
#define PDG_RESPONSE_ACK_ID_EXT_OFFSET 0x0000000000000028
#define PDG_RESPONSE_ACK_ID_EXT_LSB 4
#define PDG_RESPONSE_ACK_ID_EXT_MSB 13
#define PDG_RESPONSE_ACK_ID_EXT_MASK 0x0000000000003ff0
/* Description FTM_EN
This field is set to 1 if the response packet is either
an FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az).
0: non-FTM frame
1: FTM or HE-Randing NDP Frame
<legal all>
*/
#define PDG_RESPONSE_FTM_EN_OFFSET 0x0000000000000028
#define PDG_RESPONSE_FTM_EN_LSB 14
#define PDG_RESPONSE_FTM_EN_MSB 14
#define PDG_RESPONSE_FTM_EN_MASK 0x0000000000004000
/* Description GROUP_ID
Specifies the Group ID of response frames transmitted at
VHT rates for MU transmissions. This filed applies to both
non-11ah and 11ah modes.
*/
#define PDG_RESPONSE_GROUP_ID_OFFSET 0x0000000000000028
#define PDG_RESPONSE_GROUP_ID_LSB 15
#define PDG_RESPONSE_GROUP_ID_MSB 20
#define PDG_RESPONSE_GROUP_ID_MASK 0x00000000001f8000
/* Description STA_PARTIAL_AID
In 11AH mode of Operation:
This field is used to populate the ID field in the SIG PPDUs
of BW>1MHz and non-NDP frames. For example, the use case
would be in a Speed Frame Exchange, we may be generating
the SIG PPDU in response and this field is needed to populate
the ID field in the SIGA preamble . This value is based
on the Table provided by 9.17b section of the Draft P802.11ah_D1.1
Specification
In 11AH mode of Operation:
This field is also used to populate the field of RA/Parial_BSSID
in the NDP CTS response frames In non-11AH mode:
In non-11AH mode of Operation:
Specifies the partial AID of response frames transmitted
at VHT rates.
<legal all>
*/
#define PDG_RESPONSE_STA_PARTIAL_AID_OFFSET 0x0000000000000028
#define PDG_RESPONSE_STA_PARTIAL_AID_LSB 21
#define PDG_RESPONSE_STA_PARTIAL_AID_MSB 31
#define PDG_RESPONSE_STA_PARTIAL_AID_MASK 0x00000000ffe00000
/* Description NDP_BA_START_SEQ_CTRL
Starting Sequence Control - Sequence number of the first
MPDU in the frame soliciting the Block Ack.
*/
#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_OFFSET 0x0000000000000028
#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_LSB 32
#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MSB 43
#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MASK 0x00000fff00000000
/* Description ACTIVE_CHANNEL
This field indicates the active frequency band when the
packet bandwidth is less than the channel bandwidth. For
non 11ax packets this is same as the primary channel
<legal all>
*/
#define PDG_RESPONSE_ACTIVE_CHANNEL_OFFSET 0x0000000000000028
#define PDG_RESPONSE_ACTIVE_CHANNEL_LSB 44
#define PDG_RESPONSE_ACTIVE_CHANNEL_MSB 46
#define PDG_RESPONSE_ACTIVE_CHANNEL_MASK 0x0000700000000000
/* Description TXOP_DURATION_ALL_ONES
When set, either the TXOP_DURATION of the received frame
was set to all 1s or there is a BSS color collision. The
TXOP_DURATION of the transmit response should be forced
to all 1s.
<legal all>
*/
#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000028
#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_LSB 47
#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MSB 47
#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MASK 0x0000800000000000
/* Description FRAME_LENGTH
The response frame length in bytes
(This includes the FCS field)
<legal all>
*/
#define PDG_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000028
#define PDG_RESPONSE_FRAME_LENGTH_LSB 48
#define PDG_RESPONSE_FRAME_LENGTH_MSB 63
#define PDG_RESPONSE_FRAME_LENGTH_MASK 0xffff000000000000
#endif // PDG_RESPONSE