/*
 * 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 _TX_CBF_INFO_H_
#define _TX_CBF_INFO_H_
#if !defined(__ASSEMBLER__)
#endif

#define NUM_OF_DWORDS_TX_CBF_INFO 16

#define NUM_OF_QWORDS_TX_CBF_INFO 8


struct tx_cbf_info {
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
             uint32_t sw_peer_id                                              : 16, // [15:0]
                      pre_cbf_duration                                        : 16; // [31:16]
             uint32_t brpoll_info_valid                                       :  1, // [0:0]
                      trigger_brpoll_info_valid                               :  1, // [1:1]
                      npda_info_11ac_valid                                    :  1, // [2:2]
                      npda_info_11ax_valid                                    :  1, // [3:3]
                      dot11ax_su_extended                                     :  1, // [4:4]
                      bandwidth                                               :  3, // [7:5]
                      brpoll_info                                             :  8, // [15:8]
                      cbf_response_table_base_index                           :  8, // [23:16]
                      peer_index                                              :  3, // [26:24]
                      pkt_type                                                :  4, // [30:27]
                      txop_duration_all_ones                                  :  1; // [31:31]
             uint32_t trigger_brpoll_common_info_15_0                         : 16, // [15:0]
                      trigger_brpoll_common_info_31_16                        : 16; // [31:16]
             uint32_t trigger_brpoll_user_info_15_0                           : 16, // [15:0]
                      trigger_brpoll_user_info_31_16                          : 16; // [31:16]
             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 addr3_31_0                                              : 32; // [31:0]
             uint32_t addr3_47_32                                             : 16, // [15:0]
                      sta_partial_aid                                         : 11, // [26:16]
                      reserved_8a                                             :  4, // [30:27]
                      cbf_resp_pwr_mgmt                                       :  1; // [31:31]
             uint32_t group_id                                                :  6, // [5:0]
                      rssi_comb                                               :  8, // [13:6]
                      reserved_9a                                             :  2, // [15:14]
                      vht_ndpa_sta_info                                       : 16; // [31:16]
             uint32_t he_eht_sta_info_15_0                                    : 16, // [15:0]
                      he_eht_sta_info_31_16                                   : 16; // [31:16]
             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]
                      dot11ax_dl_ul_flag                                      :  1, // [23:23]
                      reserved_11a                                            :  8; // [31:24]
             uint32_t sw_response_frame_length                                : 16, // [15:0]
                      sw_response_tlv_from_crypto                             :  1, // [16:16]
                      wait_sifs_config_valid                                  :  1, // [17:17]
                      wait_sifs                                               :  2, // [19:18]
                      ranging                                                 :  1, // [20:20]
                      secure                                                  :  1, // [21:21]
                      tb_ranging_response_required                            :  2, // [23:22]
                      reserved_12a                                            :  2, // [25:24]
                      u_sig_puncture_pattern_encoding                         :  6; // [31:26]
             uint32_t dot11be_puncture_bitmap                                 : 16, // [15:0]
                      dot11be_response                                        :  1, // [16:16]
                      punctured_response                                      :  1, // [17:17]
                      npda_info_11be_valid                                    :  1, // [18:18]
                      eht_duplicate_mode                                      :  2, // [20:19]
                      reserved_13a                                            : 11; // [31:21]
             uint32_t eht_sta_info_39_32                                      :  8, // [7:0]
                      reserved_14a                                            : 24; // [31:8]
             uint32_t tlv64_padding                                           : 32; // [31:0]
#else
             uint32_t pre_cbf_duration                                        : 16, // [31:16]
                      sw_peer_id                                              : 16; // [15:0]
             uint32_t txop_duration_all_ones                                  :  1, // [31:31]
                      pkt_type                                                :  4, // [30:27]
                      peer_index                                              :  3, // [26:24]
                      cbf_response_table_base_index                           :  8, // [23:16]
                      brpoll_info                                             :  8, // [15:8]
                      bandwidth                                               :  3, // [7:5]
                      dot11ax_su_extended                                     :  1, // [4:4]
                      npda_info_11ax_valid                                    :  1, // [3:3]
                      npda_info_11ac_valid                                    :  1, // [2:2]
                      trigger_brpoll_info_valid                               :  1, // [1:1]
                      brpoll_info_valid                                       :  1; // [0:0]
             uint32_t trigger_brpoll_common_info_31_16                        : 16, // [31:16]
                      trigger_brpoll_common_info_15_0                         : 16; // [15:0]
             uint32_t trigger_brpoll_user_info_31_16                          : 16, // [31:16]
                      trigger_brpoll_user_info_15_0                           : 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 addr3_31_0                                              : 32; // [31:0]
             uint32_t cbf_resp_pwr_mgmt                                       :  1, // [31:31]
                      reserved_8a                                             :  4, // [30:27]
                      sta_partial_aid                                         : 11, // [26:16]
                      addr3_47_32                                             : 16; // [15:0]
             uint32_t vht_ndpa_sta_info                                       : 16, // [31:16]
                      reserved_9a                                             :  2, // [15:14]
                      rssi_comb                                               :  8, // [13:6]
                      group_id                                                :  6; // [5:0]
             uint32_t he_eht_sta_info_31_16                                   : 16, // [31:16]
                      he_eht_sta_info_15_0                                    : 16; // [15:0]
             uint32_t reserved_11a                                            :  8, // [31:24]
                      dot11ax_dl_ul_flag                                      :  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 u_sig_puncture_pattern_encoding                         :  6, // [31:26]
                      reserved_12a                                            :  2, // [25:24]
                      tb_ranging_response_required                            :  2, // [23:22]
                      secure                                                  :  1, // [21:21]
                      ranging                                                 :  1, // [20:20]
                      wait_sifs                                               :  2, // [19:18]
                      wait_sifs_config_valid                                  :  1, // [17:17]
                      sw_response_tlv_from_crypto                             :  1, // [16:16]
                      sw_response_frame_length                                : 16; // [15:0]
             uint32_t reserved_13a                                            : 11, // [31:21]
                      eht_duplicate_mode                                      :  2, // [20:19]
                      npda_info_11be_valid                                    :  1, // [18:18]
                      punctured_response                                      :  1, // [17:17]
                      dot11be_response                                        :  1, // [16:16]
                      dot11be_puncture_bitmap                                 : 16; // [15:0]
             uint32_t reserved_14a                                            : 24, // [31:8]
                      eht_sta_info_39_32                                      :  8; // [7:0]
             uint32_t tlv64_padding                                           : 32; // [31:0]
#endif
};


/* Description		SW_PEER_ID

			An identifier indicating from which AP this CBF is being
			 requested. Helps in crosschecking that the MAC and PHY 
			are still in sync on what is stored in the cbf_mem_index
			 location.
			<legal all>
*/

#define TX_CBF_INFO_SW_PEER_ID_OFFSET                                               0x0000000000000000
#define TX_CBF_INFO_SW_PEER_ID_LSB                                                  0
#define TX_CBF_INFO_SW_PEER_ID_MSB                                                  15
#define TX_CBF_INFO_SW_PEER_ID_MASK                                                 0x000000000000ffff


/* Description		PRE_CBF_DURATION

			NPDA_duration_field - SIFS - NDP_pkt_time or BRPOLL_duration_field. 
			 The cbf_duration_field = pre_cbf_duration - cbf_pkt_time
			
			
			This will be the pre-NDP duration or pre-LMR duration in
			 case of .11az ranging (field Ranging below is set).
*/

#define TX_CBF_INFO_PRE_CBF_DURATION_OFFSET                                         0x0000000000000000
#define TX_CBF_INFO_PRE_CBF_DURATION_LSB                                            16
#define TX_CBF_INFO_PRE_CBF_DURATION_MSB                                            31
#define TX_CBF_INFO_PRE_CBF_DURATION_MASK                                           0x00000000ffff0000


/* Description		BRPOLL_INFO_VALID

			When set, legacy type brpoll info is valid. TXPCU will have
			 to trigger the PDG for response transmission
			
			It will not be clear here what the PHY's response format
			 will be. Could be 11ac or 11ax. MAC is not 'remembering' 
			the format type, but PHY will know.
			
			MAC will get to know based on the field Cbf_response_type
			 in the PHYRX_CBF_READ_REQUEST_ACK TLV.
			
			<legal all>
*/

#define TX_CBF_INFO_BRPOLL_INFO_VALID_OFFSET                                        0x0000000000000000
#define TX_CBF_INFO_BRPOLL_INFO_VALID_LSB                                           32
#define TX_CBF_INFO_BRPOLL_INFO_VALID_MSB                                           32
#define TX_CBF_INFO_BRPOLL_INFO_VALID_MASK                                          0x0000000100000000


/* Description		TRIGGER_BRPOLL_INFO_VALID

			When set with Ranging = 0, trigger based brpoll info is 
			valid.
			When set with Ranging = 1, .11az sounding trigger info is
			 valid for trigger-based ranging (TBR).
			This also implies that RXPCU has already triggered the PDG
			 for response transmission
			<legal all>
*/

#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_OFFSET                                0x0000000000000000
#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_LSB                                   33
#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MSB                                   33
#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MASK                                  0x0000000200000000


/* Description		NPDA_INFO_11AC_VALID

			When set, 11ac_NDPA info is valid.
			TXPCU will have to trigger the PDG for response transmission
			 
			
			PHY's response will be be in 11ac format
			<legal all>
*/

#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_OFFSET                                     0x0000000000000000
#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_LSB                                        34
#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MSB                                        34
#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MASK                                       0x0000000400000000


/* Description		NPDA_INFO_11AX_VALID

			When set, 11ax_NDPA info is valid.
			TXPCU will have to trigger the PDG for response transmission
			 
			
			PHY's response will be be in 11ax format
			
			There is a separate Npda_info_11be_valid field near the 
			end of this TLV.
			<legal all>
*/

#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_OFFSET                                     0x0000000000000000
#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_LSB                                        35
#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MSB                                        35
#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MASK                                       0x0000000800000000


/* Description		DOT11AX_SU_EXTENDED

			When set, frame was received in 11ax or 11be extended range
			 format 
*/

#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_OFFSET                                      0x0000000000000000
#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_LSB                                         36
#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MSB                                         36
#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MASK                                        0x0000001000000000


/* Description		BANDWIDTH

			Field only valid when Brpoll_info_valid , Npda_info_11ac_valid
			  or Npda_info_11ax_valid is set.
			
			The bandwidth that TXPCU uses to select the final response
			 table entry. That entry will contain all response info 
			for the CBF 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 TX_CBF_INFO_BANDWIDTH_OFFSET                                                0x0000000000000000
#define TX_CBF_INFO_BANDWIDTH_LSB                                                   37
#define TX_CBF_INFO_BANDWIDTH_MSB                                                   39
#define TX_CBF_INFO_BANDWIDTH_MASK                                                  0x000000e000000000


/* Description		BRPOLL_INFO

			Field only valid when Brpoll_info_valid is set.
			
			Feedback Segment retransmission feedback field from the 
			BRPOLL frame.
			<legal all>
*/

#define TX_CBF_INFO_BRPOLL_INFO_OFFSET                                              0x0000000000000000
#define TX_CBF_INFO_BRPOLL_INFO_LSB                                                 40
#define TX_CBF_INFO_BRPOLL_INFO_MSB                                                 47
#define TX_CBF_INFO_BRPOLL_INFO_MASK                                                0x0000ff0000000000


/* Description		CBF_RESPONSE_TABLE_BASE_INDEX

			Field only valid when Brpoll_info_valid or
			Npda_info_11ac_valid  or Npda_info_11ax_valid is set.
			
			When set to 0, use the register based lookup for determining
			 the CBF 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
			
			This will be the LMR response table base index in case of
			 .11az ranging (field Ranging below is set).
			
			<legal all>
*/

#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_OFFSET                            0x0000000000000000
#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_LSB                               48
#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MSB                               55
#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MASK                              0x00ff000000000000


/* Description		PEER_INDEX

			Field only valid when Brpoll_info_valid or
			Npda_info_11ac_valid  or Npda_info_11ax_valid is set.
			
			
			Indicates the CBF peer index to be used by TxPCU to determine
			 the look-up table index for CBF response frames. RxPCU 
			populate this field from the peer_entry. 
			<legal 0-7>
*/

#define TX_CBF_INFO_PEER_INDEX_OFFSET                                               0x0000000000000000
#define TX_CBF_INFO_PEER_INDEX_LSB                                                  56
#define TX_CBF_INFO_PEER_INDEX_MSB                                                  58
#define TX_CBF_INFO_PEER_INDEX_MASK                                                 0x0700000000000000


/* Description		PKT_TYPE

			Received 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 TX_CBF_INFO_PKT_TYPE_OFFSET                                                 0x0000000000000000
#define TX_CBF_INFO_PKT_TYPE_LSB                                                    59
#define TX_CBF_INFO_PKT_TYPE_MSB                                                    62
#define TX_CBF_INFO_PKT_TYPE_MASK                                                   0x7800000000000000


/* 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 TX_CBF_INFO_TXOP_DURATION_ALL_ONES_OFFSET                                   0x0000000000000000
#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_LSB                                      63
#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MSB                                      63
#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MASK                                     0x8000000000000000


/* Description		TRIGGER_BRPOLL_COMMON_INFO_15_0

			Field only valid when Trigger_Brpoll_info_valid  is set.
			
			
			Trigger based BRPOLL or .11az sounding (TBR) request info... 
			bits [15:0] 
			
			This is the variable common info field from the trigger 
			related to the BTPOLL. For field definition see IEEE spec
			
			
			Note: final IEEE field might not need all these bits. If
			 so, the extra bits become reserved fields.
			<legal all>
*/

#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_OFFSET                          0x0000000000000008
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_LSB                             0
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MSB                             15
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MASK                            0x000000000000ffff


/* Description		TRIGGER_BRPOLL_COMMON_INFO_31_16

			Field only valid when Trigger_Brpoll_info_valid  is set.
			
			
			Trigger based BRPOLL or .11az sounding (TBR) request info... 
			bits [31:15] 
			
			This is the variable common info field from the trigger 
			related to the BTPOLL. For field definition see IEEE spec
			
			
			Note: final IEEE field might not need all these bits. If
			 so, the extra bits become reserved fields.
			<legal all>
*/

#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_OFFSET                         0x0000000000000008
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_LSB                            16
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MSB                            31
#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MASK                           0x00000000ffff0000


/* Description		TRIGGER_BRPOLL_USER_INFO_15_0

			Field only valid when Trigger_Brpoll_info_valid  is set.
			
			
			BRPOLL or .11az sounding (TBR) trigger Type dependent User
			 information bits [15:0] 
			
			This is the variable user info field from the trigger related
			 to the BTPOLL. 
			
			For field definition see IEEE spec
			
			Note: final IEEE field might not need all these bits. If
			 so, the extra bits become reserved fields.
			<legal all>
*/

#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_OFFSET                            0x0000000000000008
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_LSB                               32
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MSB                               47
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MASK                              0x0000ffff00000000


/* Description		TRIGGER_BRPOLL_USER_INFO_31_16

			Field only valid when Trigger_Brpoll_info_valid  is set.
			
			
			BRPOLL or .11az sounding (TBR) trigger Type dependent User
			 information bits [31:16] 
			
			This is the variable user info field from the trigger related
			 to the BTPOLL. 
			
			For field definition see IEEE spec
			
			Note: final IEEE field might not need all these bits. If
			 so, the extra bits become reserved fields.
			<legal all>
*/

#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_OFFSET                           0x0000000000000008
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_LSB                              48
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MSB                              63
#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MASK                             0xffff000000000000


/* Description		ADDR1_31_0

			CBF address1[31:0]
*/

#define TX_CBF_INFO_ADDR1_31_0_OFFSET                                               0x0000000000000010
#define TX_CBF_INFO_ADDR1_31_0_LSB                                                  0
#define TX_CBF_INFO_ADDR1_31_0_MSB                                                  31
#define TX_CBF_INFO_ADDR1_31_0_MASK                                                 0x00000000ffffffff


/* Description		ADDR1_47_32

			CBF address1[47:32]
*/

#define TX_CBF_INFO_ADDR1_47_32_OFFSET                                              0x0000000000000010
#define TX_CBF_INFO_ADDR1_47_32_LSB                                                 32
#define TX_CBF_INFO_ADDR1_47_32_MSB                                                 47
#define TX_CBF_INFO_ADDR1_47_32_MASK                                                0x0000ffff00000000


/* Description		ADDR2_15_0

			CBF address2[15:0]
*/

#define TX_CBF_INFO_ADDR2_15_0_OFFSET                                               0x0000000000000010
#define TX_CBF_INFO_ADDR2_15_0_LSB                                                  48
#define TX_CBF_INFO_ADDR2_15_0_MSB                                                  63
#define TX_CBF_INFO_ADDR2_15_0_MASK                                                 0xffff000000000000


/* Description		ADDR2_47_16

			CBF address2[47:16]
*/

#define TX_CBF_INFO_ADDR2_47_16_OFFSET                                              0x0000000000000018
#define TX_CBF_INFO_ADDR2_47_16_LSB                                                 0
#define TX_CBF_INFO_ADDR2_47_16_MSB                                                 31
#define TX_CBF_INFO_ADDR2_47_16_MASK                                                0x00000000ffffffff


/* Description		ADDR3_31_0

			CBF address3[31:0]
*/

#define TX_CBF_INFO_ADDR3_31_0_OFFSET                                               0x0000000000000018
#define TX_CBF_INFO_ADDR3_31_0_LSB                                                  32
#define TX_CBF_INFO_ADDR3_31_0_MSB                                                  63
#define TX_CBF_INFO_ADDR3_31_0_MASK                                                 0xffffffff00000000


/* Description		ADDR3_47_32

			CBF address3[47:16]
*/

#define TX_CBF_INFO_ADDR3_47_32_OFFSET                                              0x0000000000000020
#define TX_CBF_INFO_ADDR3_47_32_LSB                                                 0
#define TX_CBF_INFO_ADDR3_47_32_MSB                                                 15
#define TX_CBF_INFO_ADDR3_47_32_MASK                                                0x000000000000ffff


/* Description		STA_PARTIAL_AID

			Partial AID field
*/

#define TX_CBF_INFO_STA_PARTIAL_AID_OFFSET                                          0x0000000000000020
#define TX_CBF_INFO_STA_PARTIAL_AID_LSB                                             16
#define TX_CBF_INFO_STA_PARTIAL_AID_MSB                                             26
#define TX_CBF_INFO_STA_PARTIAL_AID_MASK                                            0x0000000007ff0000


/* Description		RESERVED_8A

			<legal 0>
*/

#define TX_CBF_INFO_RESERVED_8A_OFFSET                                              0x0000000000000020
#define TX_CBF_INFO_RESERVED_8A_LSB                                                 27
#define TX_CBF_INFO_RESERVED_8A_MSB                                                 30
#define TX_CBF_INFO_RESERVED_8A_MASK                                                0x0000000078000000


/* Description		CBF_RESP_PWR_MGMT

			Power management bit of the response CBF frame or LMR frame
			 in case of .11az ranging (field Ranging below is set).
*/

#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_OFFSET                                        0x0000000000000020
#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_LSB                                           31
#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MSB                                           31
#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MASK                                          0x0000000080000000


/* Description		GROUP_ID

			Group ID field
*/

#define TX_CBF_INFO_GROUP_ID_OFFSET                                                 0x0000000000000020
#define TX_CBF_INFO_GROUP_ID_LSB                                                    32
#define TX_CBF_INFO_GROUP_ID_MSB                                                    37
#define TX_CBF_INFO_GROUP_ID_MASK                                                   0x0000003f00000000


/* Description		RSSI_COMB

			The combined RSSI of the legacy STF of RX PPDU of all active
			 chains and bandwidths.
*/

#define TX_CBF_INFO_RSSI_COMB_OFFSET                                                0x0000000000000020
#define TX_CBF_INFO_RSSI_COMB_LSB                                                   38
#define TX_CBF_INFO_RSSI_COMB_MSB                                                   45
#define TX_CBF_INFO_RSSI_COMB_MASK                                                  0x00003fc000000000


/* Description		RESERVED_9A

			Bit 14: 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)
			
			<legal 0-1>
*/

#define TX_CBF_INFO_RESERVED_9A_OFFSET                                              0x0000000000000020
#define TX_CBF_INFO_RESERVED_9A_LSB                                                 46
#define TX_CBF_INFO_RESERVED_9A_MSB                                                 47
#define TX_CBF_INFO_RESERVED_9A_MASK                                                0x0000c00000000000


/* Description		VHT_NDPA_STA_INFO

			Field only valid when Npda_info_11ac_valid is set
			
			The complete (RAW) STA INFO field that MAC extracted from
			 the VHT NDPA frame.
			
			Put here for backup reasons in case last moment fields got
			 added that PHY needs to be able to interpret
			
			This field contains 
			{
			VHT STA_INFO.NC_INDEX[2:0],
			VHT STA_INFO.FEEDBACK_TYPE,
			VHT STA_INFO.AID12[11:0]
			}
			<legal all>
*/

#define TX_CBF_INFO_VHT_NDPA_STA_INFO_OFFSET                                        0x0000000000000020
#define TX_CBF_INFO_VHT_NDPA_STA_INFO_LSB                                           48
#define TX_CBF_INFO_VHT_NDPA_STA_INFO_MSB                                           63
#define TX_CBF_INFO_VHT_NDPA_STA_INFO_MASK                                          0xffff000000000000


/* Description		HE_EHT_STA_INFO_15_0

			Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
			 is set
			
			The first 16 bits of the RAW HE or EHT STA INFO field in
			 the NDPA frame
			
			Put here for backup reasons in case last moment fields got
			 added that PHY needs to be able to interpret
			<legal all>
*/

#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_OFFSET                                     0x0000000000000028
#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_LSB                                        0
#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MSB                                        15
#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MASK                                       0x000000000000ffff


/* Description		HE_EHT_STA_INFO_31_16

			Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
			 is set
			
			The second 16 bits of the RAW HE or EHT STA INFO field in
			 the NDPA frame
			
			Put here for backup reasons in case last moment fields got
			 added that PHY needs to be able to interpret
			
			There is an EHT_STA_INFO_39_32 field near the end of this
			 TLV.
			<legal all>
*/

#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_OFFSET                                    0x0000000000000028
#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_LSB                                       16
#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MSB                                       31
#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MASK                                      0x00000000ffff0000


/* Description		DOT11AX_RECEIVED_FORMAT_INDICATION

			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 TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET                       0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB                          32
#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB                          32
#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK                         0x0000000100000000


/* Description		DOT11AX_RECEIVED_DL_UL_FLAG

			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 TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET                              0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB                                 33
#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB                                 33
#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK                                0x0000000200000000


/* Description		DOT11AX_RECEIVED_BSS_COLOR_ID

			This field is only valid for pkt_type == 11ax
			
			BSS_color_id from the received frame
			<legal all>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET                            0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB                               34
#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB                               39
#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK                              0x000000fc00000000


/* Description		DOT11AX_RECEIVED_SPATIAL_REUSE

			This field is only valid for pkt_type == 11ax
			Spatial reuse from the received frame
			<legal all>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET                           0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB                              40
#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB                              43
#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK                             0x00000f0000000000


/* Description		DOT11AX_RECEIVED_CP_SIZE

			This field is only valid for pkt_type == 11ax
			
			CP size of the received frame
			
			<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 TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET                                 0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB                                    44
#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB                                    45
#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK                                   0x0000300000000000


/* Description		DOT11AX_RECEIVED_LTF_SIZE

			This field is only valid for pkt_type == 11ax
			
			LTF size of the received frame
			
			<enum 0     ltf_1x > 
			<enum 1     ltf_2x > 
			<enum 2     ltf_4x > 
			<legal 0 - 2>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET                                0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB                                   46
#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB                                   47
#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK                                  0x0000c00000000000


/* Description		DOT11AX_RECEIVED_CODING

			This field is only valid for pkt_type == 11ax
			
			Coding from the received frame
			
			<legal all>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_OFFSET                                  0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_LSB                                     48
#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MSB                                     48
#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MASK                                    0x0001000000000000


/* Description		DOT11AX_RECEIVED_DCM

			This field is only valid for pkt_type == 11ax
			
			DCM from the received frame
			
			<legal all>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_OFFSET                                     0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_LSB                                        49
#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MSB                                        49
#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MASK                                       0x0002000000000000


/* Description		DOT11AX_RECEIVED_DOPPLER_INDICATION

			This field is only valid for pkt_type == 11ax
			
			Doppler_indication from the received frame
			
			<legal all>
*/

#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET                      0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB                         50
#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB                         50
#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK                        0x0004000000000000


/* Description		DOT11AX_RECEIVED_EXT_RU_SIZE

			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 TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET                             0x0000000000000028
#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB                                51
#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB                                54
#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK                               0x0078000000000000


/* Description		DOT11AX_DL_UL_FLAG

			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 TX_CBF_INFO_DOT11AX_DL_UL_FLAG_OFFSET                                       0x0000000000000028
#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_LSB                                          55
#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MSB                                          55
#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MASK                                         0x0080000000000000


/* Description		RESERVED_11A

			<legal 0>
*/

#define TX_CBF_INFO_RESERVED_11A_OFFSET                                             0x0000000000000028
#define TX_CBF_INFO_RESERVED_11A_LSB                                                56
#define TX_CBF_INFO_RESERVED_11A_MSB                                                63
#define TX_CBF_INFO_RESERVED_11A_MASK                                               0xff00000000000000


/* Description		SW_RESPONSE_FRAME_LENGTH

			Field only valid when SW_Response_tlv_from_crypto is set
			
			
			This is the size of the frame (in bytes) 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 length value  includes the FCS.
			<legal all>
*/

#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET                                 0x0000000000000030
#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_LSB                                    0
#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MSB                                    15
#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MASK                                   0x000000000000ffff


/* Description		SW_RESPONSE_TLV_FROM_CRYPTO

			Field can only be set by MAC mitigation logic
			
			The idea is here that normally TXPCU generates the response
			 frame.
			But as a backup scenario, in case of a last moment some 
			CBF frame BA format change happens or there is some other
			 issue, the CBF frame could be fully generated in the MAC
			 micro CPU and pushed into TXPCU through the Crypto - TXPCU
			 TLV interface.
			
			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 TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET                              0x0000000000000030
#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB                                 16
#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB                                 16
#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK                                0x0000000000010000


/* Description		WAIT_SIFS_CONFIG_VALID

			When set, TXPCU shall follow the wait_sifs configuration.
			
			
			<legal all>
*/

#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET                                   0x0000000000000030
#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_LSB                                      17
#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MSB                                      17
#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MASK                                     0x0000000000020000


/* 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
			 registers in RXPCU, where RXPCU shall allow SW to program
			 different settings for the following scenarios: BRPOLL, 
			NDPA-NDP, 11ax trigger frame based BRPOLL
			
			<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 TX_CBF_INFO_WAIT_SIFS_OFFSET                                                0x0000000000000030
#define TX_CBF_INFO_WAIT_SIFS_LSB                                                   18
#define TX_CBF_INFO_WAIT_SIFS_MSB                                                   19
#define TX_CBF_INFO_WAIT_SIFS_MASK                                                  0x00000000000c0000


/* Description		RANGING

			0: This TLV is generated for Tx CBF generation.
			1: TLV is generated due to an active ranging session (.11az).
			
			<legal all>
*/

#define TX_CBF_INFO_RANGING_OFFSET                                                  0x0000000000000030
#define TX_CBF_INFO_RANGING_LSB                                                     20
#define TX_CBF_INFO_RANGING_MSB                                                     20
#define TX_CBF_INFO_RANGING_MASK                                                    0x0000000000100000


/* Description		SECURE

			Field only valid if Ranging is set to 1.
			0: Current ranging session is non-secure.
			1: Current ranging session is secure.
			<legal all>
*/

#define TX_CBF_INFO_SECURE_OFFSET                                                   0x0000000000000030
#define TX_CBF_INFO_SECURE_LSB                                                      21
#define TX_CBF_INFO_SECURE_MSB                                                      21
#define TX_CBF_INFO_SECURE_MASK                                                     0x0000000000200000


/* 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 > DO NOT USE.
			<enum 2 LMR_Resp_to_TF_report> DO NOT USE.
			<enum 3 NDP_Resp_to_TF_sound> TXPCU to generate TB ranging
			 NDP in response 
			<legal 0-3>
*/

#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET                             0x0000000000000030
#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB                                22
#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB                                23
#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK                               0x0000000000c00000


/* Description		RESERVED_12A

			<legal 0>
*/

#define TX_CBF_INFO_RESERVED_12A_OFFSET                                             0x0000000000000030
#define TX_CBF_INFO_RESERVED_12A_LSB                                                24
#define TX_CBF_INFO_RESERVED_12A_MSB                                                25
#define TX_CBF_INFO_RESERVED_12A_MASK                                               0x0000000003000000


/* 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 TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET                          0x0000000000000030
#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                             26
#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                             31
#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                            0x00000000fc000000


/* 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 TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET                                  0x0000000000000030
#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_LSB                                     32
#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MSB                                     47
#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MASK                                    0x0000ffff00000000


/* Description		DOT11BE_RESPONSE

			Indicates that the peer supports .11be response protocols, 
			e.g. .11be BW indication in scrambler seed, .11be dynamic
			 BW procedure, punctured response, etc.
*/

#define TX_CBF_INFO_DOT11BE_RESPONSE_OFFSET                                         0x0000000000000030
#define TX_CBF_INFO_DOT11BE_RESPONSE_LSB                                            48
#define TX_CBF_INFO_DOT11BE_RESPONSE_MSB                                            48
#define TX_CBF_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 TX_CBF_INFO_PUNCTURED_RESPONSE_OFFSET                                       0x0000000000000030
#define TX_CBF_INFO_PUNCTURED_RESPONSE_LSB                                          49
#define TX_CBF_INFO_PUNCTURED_RESPONSE_MSB                                          49
#define TX_CBF_INFO_PUNCTURED_RESPONSE_MASK                                         0x0002000000000000


/* Description		NPDA_INFO_11BE_VALID

			When set, 11be_NDPA info is valid.
			TXPCU will have to trigger the PDG for response transmission
			 .
			
			PHY's response will be in 11be format.
			<legal all>
*/

#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_OFFSET                                     0x0000000000000030
#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_LSB                                        50
#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MSB                                        50
#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MASK                                       0x0004000000000000


/* 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 TX_CBF_INFO_EHT_DUPLICATE_MODE_OFFSET                                       0x0000000000000030
#define TX_CBF_INFO_EHT_DUPLICATE_MODE_LSB                                          51
#define TX_CBF_INFO_EHT_DUPLICATE_MODE_MSB                                          52
#define TX_CBF_INFO_EHT_DUPLICATE_MODE_MASK                                         0x0018000000000000


/* Description		RESERVED_13A

			<legal 0>
*/

#define TX_CBF_INFO_RESERVED_13A_OFFSET                                             0x0000000000000030
#define TX_CBF_INFO_RESERVED_13A_LSB                                                53
#define TX_CBF_INFO_RESERVED_13A_MSB                                                63
#define TX_CBF_INFO_RESERVED_13A_MASK                                               0xffe0000000000000


/* Description		EHT_STA_INFO_39_32

			Field only valid when Npda_info_11be_valid is set
			
			The fifth 8 bits of the RAW EHT STA INFO field in the NDPA
			 frame
*/

#define TX_CBF_INFO_EHT_STA_INFO_39_32_OFFSET                                       0x0000000000000038
#define TX_CBF_INFO_EHT_STA_INFO_39_32_LSB                                          0
#define TX_CBF_INFO_EHT_STA_INFO_39_32_MSB                                          7
#define TX_CBF_INFO_EHT_STA_INFO_39_32_MASK                                         0x00000000000000ff


/* Description		RESERVED_14A

			Can be used for future expansion
			<legal 0>
*/

#define TX_CBF_INFO_RESERVED_14A_OFFSET                                             0x0000000000000038
#define TX_CBF_INFO_RESERVED_14A_LSB                                                8
#define TX_CBF_INFO_RESERVED_14A_MSB                                                31
#define TX_CBF_INFO_RESERVED_14A_MASK                                               0x00000000ffffff00


/* Description		TLV64_PADDING

			Automatic DWORD padding inserted while converting TLV32 
			to TLV64 for 64 bit ARCH
			<legal 0>
*/

#define TX_CBF_INFO_TLV64_PADDING_OFFSET                                            0x0000000000000038
#define TX_CBF_INFO_TLV64_PADDING_LSB                                               32
#define TX_CBF_INFO_TLV64_PADDING_MSB                                               63
#define TX_CBF_INFO_TLV64_PADDING_MASK                                              0xffffffff00000000



#endif   // TX_CBF_INFO