/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _TX_RAW_OR_NATIVE_FRAME_SETUP_H_ #define _TX_RAW_OR_NATIVE_FRAME_SETUP_H_ #if !defined(__ASSEMBLER__) #endif #define NUM_OF_DWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 2 #define NUM_OF_QWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 1 struct tx_raw_or_native_frame_setup { #ifndef WIFI_BIT_ORDER_BIG_ENDIAN uint32_t fc_to_ds_mask : 1, // [0:0] fc_from_ds_mask : 1, // [1:1] fc_more_frag_mask : 1, // [2:2] fc_retry_mask : 1, // [3:3] fc_pwr_mgt_mask : 1, // [4:4] fc_more_data_mask : 1, // [5:5] fc_prot_frame_mask : 1, // [6:6] fc_order_mask : 1, // [7:7] duration_field_mask : 1, // [8:8] sequence_control_mask : 1, // [9:9] qc_tid_mask : 1, // [10:10] qc_eosp_mask : 1, // [11:11] qc_ack_policy_mask : 1, // [12:12] qc_amsdu_mask : 1, // [13:13] reserved_0a : 1, // [14:14] qc_15to8_mask : 1, // [15:15] iv_mask : 1, // [16:16] fc_to_ds_setting : 1, // [17:17] fc_from_ds_setting : 1, // [18:18] fc_more_frag_setting : 1, // [19:19] fc_retry_setting : 2, // [21:20] fc_pwr_mgt_setting : 1, // [22:22] fc_more_data_setting : 2, // [24:23] fc_prot_frame_setting : 2, // [26:25] fc_order_setting : 1, // [27:27] qc_tid_setting : 4; // [31:28] uint32_t qc_eosp_setting : 2, // [1:0] qc_ack_policy_setting : 2, // [3:2] qc_amsdu_setting : 1, // [4:4] qc_15to8_setting : 8, // [12:5] mlo_addr_override : 1, // [13:13] mlo_ignore_addr3_override : 1, // [14:14] sequence_control_source : 1, // [15:15] fragment_number : 4, // [19:16] sequence_number : 12; // [31:20] #else uint32_t qc_tid_setting : 4, // [31:28] fc_order_setting : 1, // [27:27] fc_prot_frame_setting : 2, // [26:25] fc_more_data_setting : 2, // [24:23] fc_pwr_mgt_setting : 1, // [22:22] fc_retry_setting : 2, // [21:20] fc_more_frag_setting : 1, // [19:19] fc_from_ds_setting : 1, // [18:18] fc_to_ds_setting : 1, // [17:17] iv_mask : 1, // [16:16] qc_15to8_mask : 1, // [15:15] reserved_0a : 1, // [14:14] qc_amsdu_mask : 1, // [13:13] qc_ack_policy_mask : 1, // [12:12] qc_eosp_mask : 1, // [11:11] qc_tid_mask : 1, // [10:10] sequence_control_mask : 1, // [9:9] duration_field_mask : 1, // [8:8] fc_order_mask : 1, // [7:7] fc_prot_frame_mask : 1, // [6:6] fc_more_data_mask : 1, // [5:5] fc_pwr_mgt_mask : 1, // [4:4] fc_retry_mask : 1, // [3:3] fc_more_frag_mask : 1, // [2:2] fc_from_ds_mask : 1, // [1:1] fc_to_ds_mask : 1; // [0:0] uint32_t sequence_number : 12, // [31:20] fragment_number : 4, // [19:16] sequence_control_source : 1, // [15:15] mlo_ignore_addr3_override : 1, // [14:14] mlo_addr_override : 1, // [13:13] qc_15to8_setting : 8, // [12:5] qc_amsdu_setting : 1, // [4:4] qc_ack_policy_setting : 2, // [3:2] qc_eosp_setting : 2; // [1:0] #endif }; /* Description FC_TO_DS_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: Enc_type is NOT allowed b Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_to_ds_setting. : HW is not allowed to update the contents of this field. In 11ah mode of Operation, same description as above applies if this field is a part of FC field of the MPDU. This field does not apply to Short MAC header (PV=1) and is ignored by HW */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_LSB 0 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MSB 0 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MASK 0x0000000000000001 /* Description FC_FROM_DS_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_from_ds_setting. : HW is not allowed to update the contents of this field. In 11ah mode of Operation, same description as above applies if this field is a part of FC field of the MPDU. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_LSB 1 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MSB 1 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MASK 0x0000000000000002 /* Description FC_MORE_FRAG_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_more_frag_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_LSB 2 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MSB 2 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MASK 0x0000000000000004 /* Description FC_RETRY_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the setting for this field on the retry_bitmap_31_0 and retry_bitmap_63_32 fields in the MPDU_queue_extension descriptor : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_retry_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_LSB 3 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MSB 3 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MASK 0x0000000000000008 /* Description FC_PWR_MGT_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_pwr_mgt_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_LSB 4 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MSB 4 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MASK 0x0000000000000010 /* Description FC_MORE_DATA_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. TX_PCU has the abilty of overwrite the More data field, based on the Set_fc_more_data field in the PPDU_SS_... TLVs given by PDG. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_more_data_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_LSB 5 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MSB 5 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MASK 0x0000000000000020 /* Description FC_PROT_FRAME_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the setting for the Protected frame bit on the key_type setting in the peer entry. When NO encryption is needed, the bit will be set to 0, When the any encryption is needed, the bit will be set to 0. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_prot_frame_setting. When fc_prot_frame_setting is set, OLE will encrypt the frame, based on the encryption type indicate with the key_type setting in the peer entry : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_LSB 6 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MSB 6 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MASK 0x0000000000000040 /* Description FC_ORDER_MASK Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will get the setting from the frame_ctl field in the MPDU_queue extension data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: fc_order_setting. : HW is not allowed to update the contents of this field. In 11ah mode of Operation, same description as above applies if this field is a part of FC field of the MPDU. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_LSB 7 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MSB 7 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MASK 0x0000000000000080 /* Description DURATION_FIELD_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, TX PCU will get the value for this field from the Duration fields in the PPDU_SS_... TLVs from PDG. : HW is allowed to update this field. The value that HW (TX_PCU) will insert is coming from the Duration fields in the PPDU_SS_... TLVs from PDG (similar as with NON RAW/Native WiFi frames). : HW is not allowed to update the contents of this field. In 11ah mode of Operation, same description as above applies if this field is a part of FC field of the MPDU. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_LSB 8 #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MSB 8 #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MASK 0x0000000000000100 /* Description SEQUENCE_CONTROL_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on sequence number field in the TX_MPDU_START descriptor : HW is allowed to update this field. The value that HW (OLE) will insert is dependent on the setting in the 'sequence_control_source' field : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_LSB 9 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MSB 9 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MASK 0x0000000000000200 /* Description QC_TID_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on the qos_ctl field from the MPDU_queue_ext data structure. : HW is allowed to update this field. The value that HW (OLE) will insert is the given in field: qc_tid_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_LSB 10 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MSB 10 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MASK 0x0000000000000400 /* Description QC_EOSP_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on the qos_ctl field from the MPDU_queue_ext data structure. TX_PCU has the abilty of overwrite the QoS eosp field, based on the Set_fc_more_data field in the PPDU_SS_... TLVs given by PDG. : HW is allowed to update the QoS eosp field. The value that HW (OLE) will insert is the given in field: qc_eosp_setting. : HW is not allowed to update the contents of this field. In 11ah mode of Operation, same description as above applies if this field is a part of FC field of the MPDU. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_LSB 11 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MSB 11 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MASK 0x0000000000000800 /* Description QC_ACK_POLICY_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on the qos_ctl field from the MPDU_queue_ext data structure. : HW is allowed to update the QoS ack policy field. The value that HW (OLE) will insert is determined by field: qc_ack_policy_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_LSB 12 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MSB 12 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MASK 0x0000000000001000 /* Description QC_AMSDU_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on the qos_ctl field from the MPDU_queue_ext data structure. : HW is allowed to update the QoS amsdu field. The value that HW (OLE) will insert is determined by field: qc_amsdu_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_LSB 13 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MSB 13 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MASK 0x0000000000002000 /* Description RESERVED_0A */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_LSB 14 #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MSB 14 #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MASK 0x0000000000004000 /* Description QC_15TO8_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the value for this field on the qos_ctl field from the MPDU_queue_ext data structure. : HW is allowed to update the QoS control field, bits 15-8. The value that HW (OLE) will insert is determined by field: qc_15to8_setting. : HW is not allowed to update the contents of this field. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_LSB 15 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MSB 15 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MASK 0x0000000000008000 /* Description IV_MASK Consumer: TXOLE Producer: SW Field only valid for MPDU frames with MSDU enc_type == RAW or Native WiFi Note: When enc_type != RAW or Native WiFi, OLE will base the IV field insertion/value on the on the encryption type indicate with the key_type setting in the peer entry : OLE is allowed to overwrite the IV field, in case key_type setting in the peer entry indicates some encryption. : OLE is not allowed to overwrite any of the IV field contents. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_LSB 16 #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MSB 16 #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MASK 0x0000000000010000 /* Description FC_TO_DS_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_to_ds_mask is not set. : OLE will set the frame control field, to ds bit to 0 : OLE will set the frame control field, to ds bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_LSB 17 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MSB 17 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MASK 0x0000000000020000 /* Description FC_FROM_DS_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_from_ds_mask is not set. : OLE will set the frame control field, from ds bit to 0 : OLE will set the frame control field, from ds bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_LSB 18 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MSB 18 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MASK 0x0000000000040000 /* Description FC_MORE_FRAG_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_more_frag_mask is not set. : OLE will set the frame control field, more frag bit to 0 : OLE will set the frame control field, more frag bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_LSB 19 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MSB 19 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MASK 0x0000000000080000 /* Description FC_RETRY_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_retry_mask is not set. : OLE will set the frame control field, retry bit to 0 : OLE will set the frame control field, retry bit to 1 : OLE will base the setting for this field on the retry_bitmap_31_0 and retry_bitmap_63_32 fields in the MPDU_queue_extension descriptor */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_LSB 20 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MSB 21 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MASK 0x0000000000300000 /* Description FC_PWR_MGT_SETTING Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_pwr_mgt_mask is not set. : OLE will set the frame control field, pwr_mgt bit to 0 : OLE will set the frame control field, pwr_mgt bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_LSB 22 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MSB 22 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MASK 0x0000000000400000 /* Description FC_MORE_DATA_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_more_Data_mask is not set. : OLE will set the frame control field, More data bit to 0 : OLE will set the frame control field, More data bit to 1 : OLE will set the Frame control, More data bit to 0, but TX_PCU has the abilty to overwrite this based on the Set_fc_more_data field in the PPDU_SS_... TLVs given by PDG. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_LSB 23 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MSB 24 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MASK 0x0000000001800000 /* Description FC_PROT_FRAME_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_prot_frame_mask is not set. : OLE will set the frame control field , "Protected Frame" bit to 0 : OLE will set the frame control field , "Protected Frame" bit to 1 : OLE configures the Frame Control field, Prot frame bit according to the following rule: When the encryption type indicated with the key_type setting in the peer entry is set to no crypto, the Frame control "Protected Frame" bit is set to 0. When the encryption type indicated with the key_type setting in the peer entry is set to some encryption type, the OLE will set the frame control "Protected Frame" bit to 1. OLE changes only the value of the prot_frame bit. It won't push IV in the frame according to this bit. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_LSB 25 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MSB 26 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MASK 0x0000000006000000 /* Description FC_ORDER_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Fc_order_mask is not set. : OLE will set the frame control field , order bit to 0 : OLE will set the frame control field , order bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_LSB 27 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MSB 27 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MASK 0x0000000008000000 /* Description QC_TID_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Qc_tid_mask is not set. OLE sets the TID field in the QoS control field to this value. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_LSB 28 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MSB 31 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MASK 0x00000000f0000000 /* Description QC_EOSP_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Qc_eosp_mask is not set. : OLE will set the QoS control bit to 0 : OLE will set the QoS control bit to 1 : OLE will set the QoS control bit to 0, but TX_PCU has the abilty of overwrite the QoS eosp field, based on the Set_fc_more_data field in the PPDU_SS_... TLVs given by PDG. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_LSB 32 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MSB 33 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MASK 0x0000000300000000 /* Description QC_ACK_POLICY_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Qc_ack_policy_mask is not set. This is is QoS ACK policy value that RXOLE shall put in the ACK policy field in the QoS control field */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_LSB 34 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MSB 35 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MASK 0x0000000c00000000 /* Description QC_AMSDU_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Qc_amsdu_mask is not set. : OLE will set the QoS control field amsdu bit to 0 : OLE will set the QoS control field amsdu bit to 1 */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_LSB 36 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MSB 36 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MASK 0x0000001000000000 /* Description QC_15TO8_SETTING Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Qc_15to8_mask is not set. OLE sets bit 8 to 16 in the QoS control field to this value. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_LSB 37 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MSB 44 #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MASK 0x00001fe000000000 /* Description MLO_ADDR_OVERRIDE Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Enables address translation for raw Wi-Fi frames to multi-link peers, esp. management frames */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_LSB 45 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MSB 45 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MASK 0x0000200000000000 /* Description MLO_IGNORE_ADDR3_OVERRIDE Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi when Mlo_addr_override is set. Preserves Address3 (BSSID) for raw Wi-Fi management frames to multi-link peers. */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_LSB 46 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MSB 46 #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MASK 0x0000400000000000 /* Description SEQUENCE_CONTROL_SOURCE Field only valid when field Sequence_control_mask is set to 'mask_disable'. : OLE will set the sequence control field based on what is indicated in the TX_MPDU_START TLV. : OLE will set the sequence control field based on what is indicated in this TLV, fields Fragment_number and Sequence_number Note that this setting assumes that there is only a single RAW or Native Wifi MPDU for this user in the transmit path. This works well for level 1 fragmentation. Reason that there should only be a single RAW or Native WiFi frames is that with this feature they would all get the same sequence + fragment number */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_LSB 47 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MSB 47 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MASK 0x0000800000000000 /* Description FRAGMENT_NUMBER Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Sequence_control_mask = mask_disable AND sequence_control_source is set to seq_ctrl_source_this_tlv The Fragment number to be filled in */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_LSB 48 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MSB 51 #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MASK 0x000f000000000000 /* Description SEQUENCE_NUMBER Consumer: TXOLE Producer: SW Field only valid for MSDU frames with enc_type == RAW or Native WiFi. Field only valid when field Sequence_control_mask = mask_disable AND sequence_control_source is set to seq_ctrl_source_this_tlv The Sequence number to be filled in */ #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_OFFSET 0x0000000000000000 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_LSB 52 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MSB 63 #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MASK 0xfff0000000000000 #endif // TX_RAW_OR_NATIVE_FRAME_SETUP