Files
android_kernel_samsung_sm86…/hw/qcn6432/rx_response_required_info.h
Adwait Nayak c3fae0027c fw-api: Add qcnn6432 target header files to fw-api project
Added qcn6432 target header files based on E3R47 under qcn6432 to make fw-api
project compatible to host.

Change-Id: I3bdf6298281323f4f0fe75aed04db93cd698ee1f
CRs-Fixed: 3463782
2023-04-20 04:58:59 -07:00

2101 line
88 KiB
C

/*
* Copyright (c) 2023 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 _RX_RESPONSE_REQUIRED_INFO_H_
#define _RX_RESPONSE_REQUIRED_INFO_H_
#if !defined(__ASSEMBLER__)
#endif
#include "mlo_sta_id_details.h"
#define NUM_OF_DWORDS_RX_RESPONSE_REQUIRED_INFO 16
#define NUM_OF_QWORDS_RX_RESPONSE_REQUIRED_INFO 8
struct rx_response_required_info {
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
uint32_t phy_ppdu_id : 16, // [15:0]
su_or_uplink_mu_reception : 1, // [16:16]
trigger_frame_received : 1, // [17:17]
ftm_tm : 2, // [19:18]
tb_ranging_response_required : 2, // [21:20]
mac_security : 1, // [22:22]
filter_pass_monitor_ovrd : 1, // [23:23]
ast_search_incomplete : 1, // [24:24]
r2r_end_status_to_follow : 1, // [25:25]
reserved_0a : 2, // [27:26]
three_or_more_type_subtypes : 1, // [28:28]
wait_sifs_config_valid : 1, // [29:29]
wait_sifs : 2; // [31:30]
uint32_t general_frame_control : 16, // [15:0]
second_frame_control : 16; // [31:16]
uint32_t duration : 16, // [15:0]
pkt_type : 4, // [19:16]
dot11ax_su_extended : 1, // [20:20]
rate_mcs : 4, // [24:21]
sgi : 2, // [26:25]
stbc : 1, // [27:27]
ldpc : 1, // [28:28]
ampdu : 1, // [29:29]
vht_ack : 1, // [30:30]
rts_ta_grp_bit : 1; // [31:31]
uint32_t ctrl_frame_soliciting_resp : 1, // [0:0]
ast_fail_for_dot11ax_su_ext : 1, // [1:1]
service_dynamic : 1, // [2:2]
m_pkt : 1, // [3:3]
sta_partial_aid : 12, // [15:4]
group_id : 6, // [21:16]
ctrl_resp_pwr_mgmt : 1, // [22:22]
response_indication : 2, // [24:23]
ndp_indication : 1, // [25:25]
ndp_frame_type : 3, // [28:26]
second_frame_control_valid : 1, // [29:29]
reserved_3a : 2; // [31:30]
uint32_t ack_id : 16, // [15:0]
ack_id_ext : 10, // [25:16]
agc_cbw : 3, // [28:26]
service_cbw : 3; // [31:29]
uint32_t response_sta_count : 7, // [6:0]
reserved : 4, // [10:7]
ht_vht_sig_cbw : 3, // [13:11]
cts_cbw : 3, // [16:14]
response_ack_count : 7, // [23:17]
response_assoc_ack_count : 7, // [30:24]
txop_duration_all_ones : 1; // [31:31]
uint32_t response_ba32_count : 7, // [6:0]
response_ba64_count : 7, // [13:7]
response_ba128_count : 7, // [20:14]
response_ba256_count : 7, // [27:21]
multi_tid : 1, // [28:28]
sw_response_tlv_from_crypto : 1, // [29:29]
dot11ax_dl_ul_flag : 1, // [30:30]
reserved_6a : 1; // [31:31]
uint32_t sw_response_frame_length : 16, // [15:0]
response_ba512_count : 7, // [22:16]
response_ba1024_count : 7, // [29:23]
reserved_7a : 2; // [31:30]
uint32_t addr1_31_0 : 32; // [31:0]
uint32_t addr1_47_32 : 16, // [15:0]
addr2_15_0 : 16; // [31:16]
uint32_t addr2_47_16 : 32; // [31:0]
uint32_t dot11ax_received_format_indication : 1, // [0:0]
dot11ax_received_dl_ul_flag : 1, // [1:1]
dot11ax_received_bss_color_id : 6, // [7:2]
dot11ax_received_spatial_reuse : 4, // [11:8]
dot11ax_received_cp_size : 2, // [13:12]
dot11ax_received_ltf_size : 2, // [15:14]
dot11ax_received_coding : 1, // [16:16]
dot11ax_received_dcm : 1, // [17:17]
dot11ax_received_doppler_indication : 1, // [18:18]
dot11ax_received_ext_ru_size : 4, // [22:19]
ftm_fields_valid : 1, // [23:23]
ftm_pe_nss : 3, // [26:24]
ftm_pe_ltf_size : 2, // [28:27]
ftm_pe_content : 1, // [29:29]
ftm_chain_csd_en : 1, // [30:30]
ftm_pe_chain_csd_en : 1; // [31:31]
uint32_t dot11ax_response_rate_source : 8, // [7:0]
dot11ax_ext_response_rate_source : 8, // [15:8]
sw_peer_id : 16; // [31:16]
uint32_t dot11be_puncture_bitmap : 16, // [15:0]
dot11be_response : 1, // [16:16]
punctured_response : 1, // [17:17]
eht_duplicate_mode : 2, // [19:18]
force_extra_symbol : 1, // [20:20]
reserved_13a : 5, // [25:21]
u_sig_puncture_pattern_encoding : 6; // [31:26]
struct mlo_sta_id_details mlo_sta_id_details_rx;
uint16_t he_a_control_response_time : 12, // [27:16]
reserved_after_struct16 : 4; // [31:28]
uint32_t tlv64_padding : 32; // [31:0]
#else
uint32_t wait_sifs : 2, // [31:30]
wait_sifs_config_valid : 1, // [29:29]
three_or_more_type_subtypes : 1, // [28:28]
reserved_0a : 2, // [27:26]
r2r_end_status_to_follow : 1, // [25:25]
ast_search_incomplete : 1, // [24:24]
filter_pass_monitor_ovrd : 1, // [23:23]
mac_security : 1, // [22:22]
tb_ranging_response_required : 2, // [21:20]
ftm_tm : 2, // [19:18]
trigger_frame_received : 1, // [17:17]
su_or_uplink_mu_reception : 1, // [16:16]
phy_ppdu_id : 16; // [15:0]
uint32_t second_frame_control : 16, // [31:16]
general_frame_control : 16; // [15:0]
uint32_t rts_ta_grp_bit : 1, // [31:31]
vht_ack : 1, // [30:30]
ampdu : 1, // [29:29]
ldpc : 1, // [28:28]
stbc : 1, // [27:27]
sgi : 2, // [26:25]
rate_mcs : 4, // [24:21]
dot11ax_su_extended : 1, // [20:20]
pkt_type : 4, // [19:16]
duration : 16; // [15:0]
uint32_t reserved_3a : 2, // [31:30]
second_frame_control_valid : 1, // [29:29]
ndp_frame_type : 3, // [28:26]
ndp_indication : 1, // [25:25]
response_indication : 2, // [24:23]
ctrl_resp_pwr_mgmt : 1, // [22:22]
group_id : 6, // [21:16]
sta_partial_aid : 12, // [15:4]
m_pkt : 1, // [3:3]
service_dynamic : 1, // [2:2]
ast_fail_for_dot11ax_su_ext : 1, // [1:1]
ctrl_frame_soliciting_resp : 1; // [0:0]
uint32_t service_cbw : 3, // [31:29]
agc_cbw : 3, // [28:26]
ack_id_ext : 10, // [25:16]
ack_id : 16; // [15:0]
uint32_t txop_duration_all_ones : 1, // [31:31]
response_assoc_ack_count : 7, // [30:24]
response_ack_count : 7, // [23:17]
cts_cbw : 3, // [16:14]
ht_vht_sig_cbw : 3, // [13:11]
reserved : 4, // [10:7]
response_sta_count : 7; // [6:0]
uint32_t reserved_6a : 1, // [31:31]
dot11ax_dl_ul_flag : 1, // [30:30]
sw_response_tlv_from_crypto : 1, // [29:29]
multi_tid : 1, // [28:28]
response_ba256_count : 7, // [27:21]
response_ba128_count : 7, // [20:14]
response_ba64_count : 7, // [13:7]
response_ba32_count : 7; // [6:0]
uint32_t reserved_7a : 2, // [31:30]
response_ba1024_count : 7, // [29:23]
response_ba512_count : 7, // [22:16]
sw_response_frame_length : 16; // [15:0]
uint32_t addr1_31_0 : 32; // [31:0]
uint32_t addr2_15_0 : 16, // [31:16]
addr1_47_32 : 16; // [15:0]
uint32_t addr2_47_16 : 32; // [31:0]
uint32_t ftm_pe_chain_csd_en : 1, // [31:31]
ftm_chain_csd_en : 1, // [30:30]
ftm_pe_content : 1, // [29:29]
ftm_pe_ltf_size : 2, // [28:27]
ftm_pe_nss : 3, // [26:24]
ftm_fields_valid : 1, // [23:23]
dot11ax_received_ext_ru_size : 4, // [22:19]
dot11ax_received_doppler_indication : 1, // [18:18]
dot11ax_received_dcm : 1, // [17:17]
dot11ax_received_coding : 1, // [16:16]
dot11ax_received_ltf_size : 2, // [15:14]
dot11ax_received_cp_size : 2, // [13:12]
dot11ax_received_spatial_reuse : 4, // [11:8]
dot11ax_received_bss_color_id : 6, // [7:2]
dot11ax_received_dl_ul_flag : 1, // [1:1]
dot11ax_received_format_indication : 1; // [0:0]
uint32_t sw_peer_id : 16, // [31:16]
dot11ax_ext_response_rate_source : 8, // [15:8]
dot11ax_response_rate_source : 8; // [7:0]
uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
reserved_13a : 5, // [25:21]
force_extra_symbol : 1, // [20:20]
eht_duplicate_mode : 2, // [19:18]
punctured_response : 1, // [17:17]
dot11be_response : 1, // [16:16]
dot11be_puncture_bitmap : 16; // [15:0]
uint32_t reserved_after_struct16 : 4, // [31:28]
he_a_control_response_time : 12; // [27:16]
struct mlo_sta_id_details mlo_sta_id_details_rx;
uint32_t tlv64_padding : 32; // [31:0]
#endif
};
/* Description PHY_PPDU_ID
A ppdu counter value that PHY increments for every PPDU
received. The counter value wraps around
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MSB 15
#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MASK 0x000000000000ffff
/* Description SU_OR_UPLINK_MU_RECEPTION
<enum 0 Reception_is_SU> This TLV is the result of an SU
reception. Note that this can be regular SU reception or
an SU reception as part of a downlink MU - MIMO/OFDMA transmission.
<enum 1 Reception_is_MU> This TLV is the result of an MU_OFDMA
uplink reception or MU_MIMO uplink reception
NOTE:When a STA receives a downlink MU-MIMO or DL MU_OFDMA,
this field shall still be set to Reception_is_SU. From the
STA perspective, it is only receiving from one other device.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_LSB 16
#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MSB 16
#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MASK 0x0000000000010000
/* Description TRIGGER_FRAME_RECEIVED
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
When set, this TLV has been sent because a trigger frame
has been received.
Note that in case there were other frames received as well
that required an immediate response, like data or management
frames, this will still be indicated here in this TLV with
the fields "Response_..._count".
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_LSB 17
#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MSB 17
#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MASK 0x0000000000020000
/* Description FTM_TM
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field Indicates if the response is related to receiving
a TM or FTM frame
0: no TM and no FTM frame => there is NO measurement done
1: FTM frame
2: TM frame
3: reserved
*/
#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_LSB 18
#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MSB 19
#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MASK 0x00000000000c0000
/* Description TB_RANGING_RESPONSE_REQUIRED
Field only valid in case of TB Ranging
<enum 0 No_TB_Ranging_Resp>
<enum 1 CTS2S_Resp_to_TF_poll > TXPCU to generate CTS-to-self
in TB response
<enum 2 LMR_Resp_to_TF_report> TXPCU to generate LMR in
TB response
<enum 3 NDP_Resp_to_TF_sound> DO NOT USE.
<legal 0-3>
*/
#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB 20
#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB 21
#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK 0x0000000000300000
/* Description MAC_SECURITY
Field only valid if TB_Ranging_response_required = LMR_Resp_to_TF_report
Indicates whether MAC security is enabled for LMR
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_LSB 22
#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MSB 22
#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MASK 0x0000000000400000
/* Description FILTER_PASS_MONITOR_OVRD
Consumer: TXMON/SW
Producer: RXPCU
This indicates that the Rx MPDU passed the 'normal' frame
filter programming of RXPCU and additionally the MAC address
search matched an 'ADDR_SEARCH_ENTRY' of a 'Monitor_override_sta.'
When enabled in TXMON, it will discard the upstream response
TLVs for cases not matching the 'Filter_pass_Monitor_ovrd'
criterion.
If RXPCU is generating this TLV before the address search
is complete, it shall fill this bit based on a register
configuration 'FILTER_PASS_OVRD_AST_NOT_DONE.'
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_LSB 23
#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MSB 23
#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MASK 0x0000000000800000
/* Description AST_SEARCH_INCOMPLETE
Consumer: SW
Producer: RXPCU
If RXPCU is generating this TLV before the address search
is complete, it shall set this bit. This is to indicate
to SW (via TXMON) that the Filter_pass_Monitor_ovrd bit
is unreliable and SW may have to add their own filtering
logic.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_LSB 24
#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MSB 24
#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MASK 0x0000000001000000
/* Description R2R_END_STATUS_TO_FOLLOW
Consumer: TXMON
Producer: TXPCU
When set, TXPCU will generate an R2R frame (typically M-BA),
and the 'R2R_STATUS_END' TLV.
TXMON uses this to identify the continuation of a Tx sequence
(typically including Trigger frames) with R2R Tx.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_LSB 25
#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MSB 25
#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MASK 0x0000000002000000
/* Description RESERVED_0A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_LSB 26
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MSB 27
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MASK 0x000000000c000000
/* Description THREE_OR_MORE_TYPE_SUBTYPES
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
When set, there are 3 or more different frame type/subtypes
received that all required a response.
Note that the HW will only report the very first two that
have been seen
*/
#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_LSB 28
#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MSB 28
#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MASK 0x0000000010000000
/* Description WAIT_SIFS_CONFIG_VALID
When set, TXPCU shall follow the wait_sifs configuration.
Field added to be backwards compatible, and transition to
the new signalling.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_LSB 29
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MSB 29
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MASK 0x0000000020000000
/* Description WAIT_SIFS
Indicates to the TXPCU how precise the SIFS the response
timing shall be...
The configuration for this is coming from SW programmable
register in RXPCU
<enum 0 NO_SIFS_TIMING> Transmission shall start with the
normal delay in PHY after receiving this notification
<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
at the SIFS boundary. If shall never start before SIFS boundary,
but if it a little later, it is not ideal and should be
flagged, but transmission shall not be aborted.
<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
at exactly SIFS boundary. If this notification is received
by the PHY after SIFS boundary already passed, the PHY
shall abort the transmission
<legal 0-2>
*/
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_LSB 30
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MASK 0x00000000c0000000
/* Description GENERAL_FRAME_CONTROL
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
In case only a single frame is receive, this field will
always contain the frame control field of the received frame.
In case multiple frames are received that require a response,
and one of those frames is not a data frame, this field
will always contain the frame control field of that received
frame.
In case multiple frames are received that require a response,
but all have them have the same type/subtype, this field
will contain the very first one of them.
Note: In case of a BAR frame reception, the 'response_ack_...'
fields will indicate for how many TIDs a BA is needed, as
well as their individual sizes.
Used by TXPCU to determine the type of response that is
needed
TODO: Look at table below for all the possible combination
of frames types reported here and in the next field: Second_frame_control
*/
#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MASK 0x0000ffff00000000
/* Description SECOND_FRAME_CONTROL
Field only valid when Second_frame_control_valid ==1
In case multiple frames of different frame type/subtype
are received that require a response, this field will always
contain the frame control field remaining after the 'frame_control
' field has been filled in.
NOTE: in case more then 2 different frame type/subtypes
are received (which only happens if the transmitter did
something wrong), only the first two frame types are reported
in this and the General_frame_control field. All the other
ones are ignored, but bit 'three_or_more_type_subtypes'
shall be set.
Note: In case of a BAR frame reception, the 'response_ack_...'
fields will indicate for how many TIDs a BA is needed, as
well as their individual sizes.
Used by TXPCU to determine the type of response that is
needed
*/
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_OFFSET 0x0000000000000000
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MASK 0xffff000000000000
/* Description DURATION
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
duration field of the received frame
*/
#define RX_RESPONSE_REQUIRED_INFO_DURATION_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_DURATION_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_DURATION_MSB 15
#define RX_RESPONSE_REQUIRED_INFO_DURATION_MASK 0x000000000000ffff
/* Description PKT_TYPE
Packet type:
Note that for MU UL reception, this field can only be set
to dot11ax.
<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 RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_LSB 16
#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MSB 19
#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MASK 0x00000000000f0000
/* Description DOT11AX_SU_EXTENDED
This field is only valid for pkt_type == 11ax OR pkt_type
== 11be
When set, the 11ax or 11be reception was an extended range
SU
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_LSB 20
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MSB 20
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000000000100000
/* Description RATE_MCS
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
For details, refer to MCS_TYPE description
Note: This is "rate" in case of 11a/11b
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_LSB 21
#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MSB 24
#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MASK 0x0000000001e00000
/* Description SGI
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Field only valid when pkt type is HT, VHT or HE.
Specify the right GI for HE-Ranging NDPs (11az).
<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 > HE related GI
<enum 3 3_2_us_sgi > HE related GI
<legal 0 - 3>
*/
#define RX_RESPONSE_REQUIRED_INFO_SGI_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_SGI_LSB 25
#define RX_RESPONSE_REQUIRED_INFO_SGI_MSB 26
#define RX_RESPONSE_REQUIRED_INFO_SGI_MASK 0x0000000006000000
/* Description STBC
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Indicate STBC
In 11ah mode of Operation, this bit indicates the STBC bit
setting in the SIG Preamble.
*/
#define RX_RESPONSE_REQUIRED_INFO_STBC_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_STBC_LSB 27
#define RX_RESPONSE_REQUIRED_INFO_STBC_MSB 27
#define RX_RESPONSE_REQUIRED_INFO_STBC_MASK 0x0000000008000000
/* Description LDPC
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Indicate LDPC
In 11ah mode of Operation, this bit indicates the LDPC bit
setting in the SIG Preamble.
*/
#define RX_RESPONSE_REQUIRED_INFO_LDPC_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_LDPC_LSB 28
#define RX_RESPONSE_REQUIRED_INFO_LDPC_MSB 28
#define RX_RESPONSE_REQUIRED_INFO_LDPC_MASK 0x0000000010000000
/* Description AMPDU
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Field indicates if the received frame was in ampdu format
or not. If set, it implies the reception was 11n, aggregation,
11ac or 11ax.
Within TXPCU it is used to determine if the response will
have to be BA format or not. Note that there are some exceptions
where received frame was A-MPDU format, but the response
will still be just an ACK frame.
*/
#define RX_RESPONSE_REQUIRED_INFO_AMPDU_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_AMPDU_LSB 29
#define RX_RESPONSE_REQUIRED_INFO_AMPDU_MSB 29
#define RX_RESPONSE_REQUIRED_INFO_AMPDU_MASK 0x0000000020000000
/* Description VHT_ACK
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
set when ACK is required to be generated
*/
#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_LSB 30
#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MSB 30
#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MASK 0x0000000040000000
/* Description RTS_TA_GRP_BIT
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
frame is rts and TA G/I bit is set
*/
#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_LSB 31
#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MASK 0x0000000080000000
/* Description CTRL_FRAME_SOLICITING_RESP
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
frame is rts, bar or ps_poll and TA G/I bit is set
*/
#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MSB 32
#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MASK 0x0000000100000000
/* Description AST_FAIL_FOR_DOT11AX_SU_EXT
Field only valid in case of
dot11ax_su_extended = 1
When set, the just finished reception had address search
failure (e.g. unassociated STA).
This field can be used to determine special response rates
for those types of STAs.
This field shall be analyzed in combination with pkt_type
and dot11ax_su_extended settings.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_LSB 33
#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MSB 33
#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MASK 0x0000000200000000
/* Description SERVICE_DYNAMIC
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Dynamic field extracted from Service field
Reserved for 11ah. Should be populated to zero by RxPCU
*/
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_LSB 34
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MSB 34
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MASK 0x0000000400000000
/* Description M_PKT
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Indicates that RXPCU has detected a 802.11v M packet. The
TXPCU should generate a TX_FREEZE_CAPTURE_CHANNEL message
to the PHY so that the PHY will hold the current channel
capture so FW can read the channel capture memory over
APB.
Reserved for 11ah. Should be populated to zero by RxPCU
*/
#define RX_RESPONSE_REQUIRED_INFO_M_PKT_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_M_PKT_LSB 35
#define RX_RESPONSE_REQUIRED_INFO_M_PKT_MSB 35
#define RX_RESPONSE_REQUIRED_INFO_M_PKT_MASK 0x0000000800000000
/* Description STA_PARTIAL_AID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Specifies the partial AID of response frames transmitted
at VHT rates.
In 11ah mode of operation, this field is used to populate
the RA/partial BSSID filed in the NDP CTS response frame.
Please refer to the 802.11 spec for details on the NDP CTS
frame format.
Reserved for 11ah.
Should be populated to zero by RxPCU
*/
#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_LSB 36
#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MASK 0x0000fff000000000
/* Description GROUP_ID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Reserved for 11ah.
Should be populated to zero by RxPCU
*/
#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MSB 53
#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MASK 0x003f000000000000
/* Description CTRL_RESP_PWR_MGMT
Field valid in case of both SU_or_uplink_MU_reception =
Reception_is_SU
AND
SU_or_uplink_MU_reception = Reception_is_MU
RX PCU passes this bit (coming from the peer entry) setting
on to TX PCU, where the setting of this bit is inserted
in the pwr_mgt bit in the control field of the SIFS response
control frames: ACK, CTS, BA
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_LSB 54
#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MSB 54
#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MASK 0x0040000000000000
/* Description RESPONSE_INDICATION
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
<enum 0 no_response>
<enum 1 ndp_response>
<enum 2 normal_response>
<enum 3 long_response>
<legal 0-3>
This field indicates the Response Indication of the received
PPDU. RxPCU populates this field using the Response Indication
bits extracted from the SIG in the received PPDU.
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_LSB 55
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MSB 56
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MASK 0x0180000000000000
/* Description NDP_INDICATION
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is valid in 11ah mode of opearation only. In
non-11ah mode, this bit is reserved and RxPCU populates
this bit to Zero.
NDP Indication bit.
This field is set if the received SIG has the NDP Indication
bit set.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_LSB 57
#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MSB 57
#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MASK 0x0200000000000000
/* Description NDP_FRAME_TYPE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Include the ndp_frame_type encoding.
This field is valid in 11ah mode of opearation only. In
non-11ah mode, this bit is reserved and RxPCU populates
this bit to Zero.
The ndp_frame_type filed form the SIG is extracted and is
populated in this field by RxPCU. TxPCU can decode the
NDP frame type.
*/
#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_LSB 58
#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MSB 60
#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MASK 0x1c00000000000000
/* Description SECOND_FRAME_CONTROL_VALID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
When set, the second frame control field is valid.
*/
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_LSB 61
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MSB 61
#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MASK 0x2000000000000000
/* Description RESERVED_3A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_OFFSET 0x0000000000000008
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_LSB 62
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MASK 0xc000000000000000
/* Description ACK_ID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Indicates the ACD_ID to be used in NDP response frames (NDP
ACK and NDP Modified ACK).
For NDP ACK
ACK_ID (16bits)= {Scrambler Initialization[0:6], FCS[23:31}
for 2MHz
ACK_ID (9bits)= { Scrambler Initialization[0:6], FCS[30:31]}
for 1MHz. Bits[15:9] should be filled with Zero by RxPCU
For NDP Modified ACK
ACK_ID (16bits)= {CRC[0:3],TA[0:8],RA[6:8]} for 2MHz
ACK_ID (9bits)= { CRC[0:3], TA[4:8]} for 1MHz; Bits[15:9]
should be filled with Zero by RxPCU.
*/
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MSB 15
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MASK 0x000000000000ffff
/* Description ACK_ID_EXT
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This is populated by RxPCU when the Duration Indication
Bit is set to Zero in the Received NDP PS-Poll Frame.
*/
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_LSB 16
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MSB 25
#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MASK 0x0000000003ff0000
/* Description AGC_CBW
BW as detected by the AGC
<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 RX_RESPONSE_REQUIRED_INFO_AGC_CBW_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_LSB 26
#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MSB 28
#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MASK 0x000000001c000000
/* Description SERVICE_CBW
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field reflects the BW extracted from the Serivce Field
for 11ac mode of operation and from the FC portion of the
MAC header in 11ah mode of operation. This field is used
in the context of Dynamic/Static BW evaluation purposes
in TxPCU
CBW field extracted from Service field by RXPCU and populates
this
<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 RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_LSB 29
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MASK 0x00000000e0000000
/* Description RESPONSE_STA_COUNT
The number of STAs to which the responses need to be sent.
In case of multiple ACKs/BAs to be send, TXPCU uses this
field to determine what address formatting to use for the
response frame: This could be broadcast or unicast.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MSB 38
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MASK 0x0000007f00000000
/* Description RESERVED
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_LSB 39
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_MSB 42
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_MASK 0x0000078000000000
/* Description HT_VHT_SIG_CBW
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Bandwidth of the received frame from either the HT-SIG or
VHT-SIG-A or HE-SIG. For HT-SIG, this bandwidth can be
20 MHz or 40 MHz, For VHT or HE, this bandwidth can be 20,
40, 80, or 160 MHz:
<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 RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_LSB 43
#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MSB 45
#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MASK 0x0000380000000000
/* Description CTS_CBW
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Calculated bandwidth for the CTS response frame
<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 RX_RESPONSE_REQUIRED_INFO_CTS_CBW_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_LSB 46
#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MSB 48
#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MASK 0x0001c00000000000
/* Description RESPONSE_ACK_COUNT
Field valid for both SU and MU reception
ACK Count for management action frames, PS_POLL frames,
single data frame and the general "ACK ALL". For this last
one, a single "ACK" should be interpreted by the receiver
that all transmitted frames have been properly received.
For SU:
Max count can be 1
Note that Response_ba64_count and/or Response_ba256_count
can be > 0, which implies that both an ACK and BA needs
to be send back.
For MU:
The number of users that need an 'ACK' response.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_LSB 49
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MSB 55
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MASK 0x00fe000000000000
/* Description RESPONSE_ASSOC_ACK_COUNT
Field ONLY valid for Reception_is_MU. This count can only
be set to > 0, when there were wildcards send in the trigger
frame.
ACK Count to be generated for Management frames from STAs
that are not yet associated to this device. These STAs
can only send this type of response when the trigger frame
included some wildcards.
Note that in the MBA frame, this "ack" has a special format,
and includes more bytes then the normal "ack". For that
reason TXPCU needs to be able to differentiate between the
'normal acks' and these association request acks...
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_LSB 56
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MSB 62
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MASK 0x7f00000000000000
/* 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 RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000010
#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_LSB 63
#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MASK 0x8000000000000000
/* Description RESPONSE_BA32_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '32 bitmap BA' responses for this one user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
) > 1, a multi TID response is needed.
For MU:
Total number of '32 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MSB 6
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MASK 0x000000000000007f
/* Description RESPONSE_BA64_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '64 bitmap BA' responses for this one user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
) > 1, a multi TID response is needed.
For MU:
Total number of '64 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_LSB 7
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MSB 13
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MASK 0x0000000000003f80
/* Description RESPONSE_BA128_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '128 bitmap BA' responses for this one user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
) > 1, a multi TID response is needed.
For MU:
Total number of '128 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_LSB 14
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MSB 20
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MASK 0x00000000001fc000
/* Description RESPONSE_BA256_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '256 bitmap BA' responses for this one user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
) > 1, a multi TID response is needed.
For MU:
Total number of '256 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_LSB 21
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MSB 27
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MASK 0x000000000fe00000
/* Description MULTI_TID
Field valid for both Reception_is_SU and Reception_is_MU
When set, RXPCU has for at least one user multiple bitmaps
available (which corresponds to multiple TIDs)
Note that the sum of Response_ack_count,
response_ba32_count, response_ba64_count,
response_ba128_count, response_ba256_count is larger then
the total number of users.
Note: There is no restriction on TXPCU to retrieve all the
bitmaps using explicit_user_request mode or not.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_LSB 28
#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MSB 28
#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MASK 0x0000000010000000
/* Description SW_RESPONSE_TLV_FROM_CRYPTO
Field can only be set by MAC mitigation logic
The idea is here that normally TXPCU generates the BA frame.
But as a backup scenario, in case of a last moment BA format
change or some other issue, the BA frame could be fully
generated in the MAC micro CPU and pushed into TXPCU through
the Crypto - TXPCU TLV interface.
This feature can be used for any response frame generation.
From TXPCU perspective, all interaction with PDG remains
exactly the same, accept that the frame length is now coming
from field SW_Response_frame_length and the response frame
is pushed into TXPCU over the CRYPTO - TXPCU TLV interface
When set, this feature kick in
When clear, this feature is not enabled
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB 29
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB 29
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK 0x0000000020000000
/* Description DOT11AX_DL_UL_FLAG
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
DL_UL_flag to be used for response frame sent to this device.
Differentiates between DL and UL transmission
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
<enum 1 DL_UL_FLAG_IS_UL>
Note: this setting can also come from response look-up table
in TXPCU...
The selection is SW programmable
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_LSB 30
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MSB 30
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0000000040000000
/* Description RESERVED_6A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_LSB 31
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MASK 0x0000000080000000
/* Description SW_RESPONSE_FRAME_LENGTH
Field only valid when SW_Response_tlv_from_crypto is set
This is the size of the frame that SW will generate as the
response frame. In those scenarios where TXPCU needs to
indicate a frame_length in the PDG_RESPONSE TLV, this will
be the value that TXPCU needs to use.
Note that this value shall always be such that when PDG
calculates the LSIG duration field, the calculated value
is less then the max time duration that the LSIG length
can hold.
Note that the MAX range here for
11ax, MCS 11, BW 180, might not be reached. But as this
is just for 'normal HW generated response' frames, the range
is size here is more then enough.
Also not that this field is NOT used for trigger responses.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MASK 0x0000ffff00000000
/* Description RESPONSE_BA512_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '512 bitmap BA' responses for this one user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
> 1, a multi TID response is needed.
For MU:
Total number of '512 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MSB 54
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MASK 0x007f000000000000
/* Description RESPONSE_BA1024_COUNT
Field valid for both Reception_is_SU and Reception_is_MU
For SU:
Total number of '1024 bitmap BA' responses for this one
user.
If this value is > 1, in implies that multi TID response
is needed. Also, if the sum of all the Response_ba??? Counts
> 1, a multi TID response is needed.
For MU:
Total number of '1024 bitmap BA' responses shared between
all the users.
<legal 0-36>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_LSB 55
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MSB 61
#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MASK 0x3f80000000000000
/* Description RESERVED_7A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_OFFSET 0x0000000000000018
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_LSB 62
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MASK 0xc000000000000000
/* Description ADDR1_31_0
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
lower 32 bits of addr1 of the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_OFFSET 0x0000000000000020
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MASK 0x00000000ffffffff
/* Description ADDR1_47_32
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
upper 16 bits of addr1 of the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_OFFSET 0x0000000000000020
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MASK 0x0000ffff00000000
/* Description ADDR2_15_0
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
lower 16 bits of addr2 of the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_OFFSET 0x0000000000000020
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MASK 0xffff000000000000
/* Description ADDR2_47_16
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
upper 32 bits of addr2 of the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MASK 0x00000000ffffffff
/* Description DOT11AX_RECEIVED_FORMAT_INDICATION
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
Format_Indication from the received frame.
<enum 0 HE_SIGA_FORMAT_HE_TRIG>
<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB 32
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK 0x0000000100000000
/* Description DOT11AX_RECEIVED_DL_UL_FLAG
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
DL_UL_flag from the received frame
Differentiates between DL and UL transmission
<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
<enum 1 DL_UL_FLAG_IS_UL>
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB 33
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB 33
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK 0x0000000200000000
/* Description DOT11AX_RECEIVED_BSS_COLOR_ID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
BSS_color_id from the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB 34
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB 39
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK 0x000000fc00000000
/* Description DOT11AX_RECEIVED_SPATIAL_REUSE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
Spatial reuse from the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB 40
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB 43
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK 0x00000f0000000000
/* Description DOT11AX_RECEIVED_CP_SIZE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
CP size of the received frame
Specify the right GI for HE-Ranging NDPs (11az).
<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 > HE related GI
<enum 3 3_2_us_sgi > HE related GI
<legal 0 - 3>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB 44
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB 45
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK 0x0000300000000000
/* Description DOT11AX_RECEIVED_LTF_SIZE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
LTF size of the received frame
Specify the right LTF-size for HE-Ranging NDPs (11az).
<enum 0 ltf_1x >
<enum 1 ltf_2x >
<enum 2 ltf_4x >
<legal 0 - 2>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB 46
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK 0x0000c00000000000
/* Description DOT11AX_RECEIVED_CODING
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
Coding from the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MSB 48
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MASK 0x0001000000000000
/* Description DOT11AX_RECEIVED_DCM
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
DCM from the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_LSB 49
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MSB 49
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MASK 0x0002000000000000
/* Description DOT11AX_RECEIVED_DOPPLER_INDICATION
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax
Doppler_indication from the received frame
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB 50
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB 50
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK 0x0004000000000000
/* Description DOT11AX_RECEIVED_EXT_RU_SIZE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax OR pkt_type
== 11be AND dot11ax_su_extended is set
The number of (basic) RUs in this extended range reception
RXPCU gets this from the received HE_SIG_A
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB 51
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB 54
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK 0x0078000000000000
/* Description FTM_FIELDS_VALID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Field only valid in case ftm_en is set.
When set, the other ftm_ fields are valid and TXCPU shall
use these in the response frame instead of the response
table based fields with a similar name.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_LSB 55
#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MSB 55
#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MASK 0x0080000000000000
/* Description FTM_PE_NSS
Field only valid in case ftm_fields_valid is set.
Number of active spatial streams during packet extension
for ftm related frame exchanges
<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 RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_LSB 56
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MSB 58
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MASK 0x0700000000000000
/* Description FTM_PE_LTF_SIZE
Field only valid in case ftm_fields_valid is set.
LTF size to be used during packet extention for ftm related
frame exchanges.
0-1x
1-2x (unsupported un HWK-1)
2-4x (unsupported un HWK-1)
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_LSB 59
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MSB 60
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MASK 0x1800000000000000
/* Description FTM_PE_CONTENT
Field only valid in case ftm_fields_valid is set.
The pe content for ftm related frame exchanges.
Content of packet extension.
0-he_ltf, 1-last_data_symbol
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_LSB 61
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MSB 61
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MASK 0x2000000000000000
/* Description FTM_CHAIN_CSD_EN
Field only valid in case ftm_fields_valid is set.
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 RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_LSB 62
#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MSB 62
#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MASK 0x4000000000000000
/* Description FTM_PE_CHAIN_CSD_EN
Field only valid in case ftm_fields_valid is set.
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 RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000028
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_LSB 63
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MASK 0x8000000000000000
/* Description DOT11AX_RESPONSE_RATE_SOURCE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Valid for response generation to an 11ax pkt_type received
frame, but NOT 11ax extended pkt_type of frame
When set to 0, use the register based lookup for determining
the 11ax response rates.
When > 0, TXPCU shall use this response table index for
the 20 MHz response, and higher BW responses are in the
subsequent response table entries
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MSB 7
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MASK 0x00000000000000ff
/* Description DOT11AX_EXT_RESPONSE_RATE_SOURCE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
This field is only valid for pkt_type == 11ax and dot11ax_su_extended
is set
When set to 0, the response rates are based on the 11ax
extended response register based indexes in TXPCU.
When > 0, TXPCU shall use this response table index for
the response to a 1RU reception. Higher RU count reception
responses can be found in the subsequent response table
entries: Next entry is for 2 RU receptions, then 4 RU
receptions, then >= 8 RU receptions...
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_LSB 8
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MSB 15
#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MASK 0x000000000000ff00
/* Description SW_PEER_ID
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
An identifier indicating for which device this response
is needed.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_LSB 16
#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MASK 0x00000000ffff0000
/* Description DOT11BE_PUNCTURE_BITMAP
This field is only valid if Punctured_response is set
The bitmap of 20 MHz sub-bands valid in this EHT reception
RXPCU gets this from the received U-SIG and/or EHT-SIG via
PHY microcode.
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MSB 47
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MASK 0x0000ffff00000000
/* Description DOT11BE_RESPONSE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU
Indicates that the peer supports .11be response protocols,
e.g. .11be BW indication in scrambler seed, .11be dynamic
BW procedure, punctured response, etc.
*/
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_LSB 48
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MSB 48
#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MASK 0x0001000000000000
/* Description PUNCTURED_RESPONSE
Field only valid if Dot11be_response is set
Indicates that the response shall use preamble puncturing
*/
#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_LSB 49
#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MSB 49
#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MASK 0x0002000000000000
/* Description EHT_DUPLICATE_MODE
Field only valid in case of SU_or_uplink_MU_reception =
Reception_is_SU 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 RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_LSB 50
#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MSB 51
#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MASK 0x000c000000000000
/* 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 RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_LSB 52
#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MSB 52
#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MASK 0x0010000000000000
/* Description RESERVED_13A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_LSB 53
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MSB 57
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MASK 0x03e0000000000000
/* Description U_SIG_PUNCTURE_PATTERN_ENCODING
This field is only valid if Punctured_response is set
The 6-bit value used in U-SIG and/or EHT-SIG Common field
for the puncture pattern
<legal 0-29>
*/
#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000030
#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
/* Description MLO_STA_ID_DETAILS_RX
Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID'
from address search.
*/
/* Description NSTR_MLO_STA_ID
ID of peer participating in non-STR MLO
*/
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
#define RX_RESPONSE_REQUIRED_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 RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
#define RX_RESPONSE_REQUIRED_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 RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
#define RX_RESPONSE_REQUIRED_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 RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
/* Description RESERVED_0A
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
/* Description HE_A_CONTROL_RESPONSE_TIME
When non-zero, indicates the value from an HE A-Control
in the received frame requiring a specific response time
(e.g. for sync MLO)
<legal all>
*/
#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_LSB 16
#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MSB 27
#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MASK 0x000000000fff0000
/* Description RESERVED_AFTER_STRUCT16
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_LSB 28
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MSB 31
#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MASK 0x00000000f0000000
/* Description TLV64_PADDING
Automatic DWORD padding inserted while converting TLV32
to TLV64 for 64 bit ARCH
<legal 0>
*/
#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_OFFSET 0x0000000000000038
#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_LSB 32
#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MSB 63
#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MASK 0xffffffff00000000
#endif // RX_RESPONSE_REQUIRED_INFO