1*5113495bSYour Name 2*5113495bSYour Name /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name 18*5113495bSYour Name 19*5113495bSYour Name 20*5113495bSYour Name 21*5113495bSYour Name 22*5113495bSYour Name 23*5113495bSYour Name 24*5113495bSYour Name 25*5113495bSYour Name 26*5113495bSYour Name #ifndef _TX_RAW_OR_NATIVE_FRAME_SETUP_H_ 27*5113495bSYour Name #define _TX_RAW_OR_NATIVE_FRAME_SETUP_H_ 28*5113495bSYour Name #if !defined(__ASSEMBLER__) 29*5113495bSYour Name #endif 30*5113495bSYour Name 31*5113495bSYour Name #define NUM_OF_DWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 2 32*5113495bSYour Name 33*5113495bSYour Name #define NUM_OF_QWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 1 34*5113495bSYour Name 35*5113495bSYour Name 36*5113495bSYour Name struct tx_raw_or_native_frame_setup { 37*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38*5113495bSYour Name uint32_t fc_to_ds_mask : 1, // [0:0] 39*5113495bSYour Name fc_from_ds_mask : 1, // [1:1] 40*5113495bSYour Name fc_more_frag_mask : 1, // [2:2] 41*5113495bSYour Name fc_retry_mask : 1, // [3:3] 42*5113495bSYour Name fc_pwr_mgt_mask : 1, // [4:4] 43*5113495bSYour Name fc_more_data_mask : 1, // [5:5] 44*5113495bSYour Name fc_prot_frame_mask : 1, // [6:6] 45*5113495bSYour Name fc_order_mask : 1, // [7:7] 46*5113495bSYour Name duration_field_mask : 1, // [8:8] 47*5113495bSYour Name sequence_control_mask : 1, // [9:9] 48*5113495bSYour Name qc_tid_mask : 1, // [10:10] 49*5113495bSYour Name qc_eosp_mask : 1, // [11:11] 50*5113495bSYour Name qc_ack_policy_mask : 1, // [12:12] 51*5113495bSYour Name qc_amsdu_mask : 1, // [13:13] 52*5113495bSYour Name reserved_0a : 1, // [14:14] 53*5113495bSYour Name qc_15to8_mask : 1, // [15:15] 54*5113495bSYour Name iv_mask : 1, // [16:16] 55*5113495bSYour Name fc_to_ds_setting : 1, // [17:17] 56*5113495bSYour Name fc_from_ds_setting : 1, // [18:18] 57*5113495bSYour Name fc_more_frag_setting : 1, // [19:19] 58*5113495bSYour Name fc_retry_setting : 2, // [21:20] 59*5113495bSYour Name fc_pwr_mgt_setting : 1, // [22:22] 60*5113495bSYour Name fc_more_data_setting : 2, // [24:23] 61*5113495bSYour Name fc_prot_frame_setting : 2, // [26:25] 62*5113495bSYour Name fc_order_setting : 1, // [27:27] 63*5113495bSYour Name qc_tid_setting : 4; // [31:28] 64*5113495bSYour Name uint32_t qc_eosp_setting : 2, // [1:0] 65*5113495bSYour Name qc_ack_policy_setting : 2, // [3:2] 66*5113495bSYour Name qc_amsdu_setting : 1, // [4:4] 67*5113495bSYour Name qc_15to8_setting : 8, // [12:5] 68*5113495bSYour Name mlo_addr_override : 1, // [13:13] 69*5113495bSYour Name mlo_ignore_addr3_override : 1, // [14:14] 70*5113495bSYour Name sequence_control_source : 1, // [15:15] 71*5113495bSYour Name fragment_number : 4, // [19:16] 72*5113495bSYour Name sequence_number : 12; // [31:20] 73*5113495bSYour Name #else 74*5113495bSYour Name uint32_t qc_tid_setting : 4, // [31:28] 75*5113495bSYour Name fc_order_setting : 1, // [27:27] 76*5113495bSYour Name fc_prot_frame_setting : 2, // [26:25] 77*5113495bSYour Name fc_more_data_setting : 2, // [24:23] 78*5113495bSYour Name fc_pwr_mgt_setting : 1, // [22:22] 79*5113495bSYour Name fc_retry_setting : 2, // [21:20] 80*5113495bSYour Name fc_more_frag_setting : 1, // [19:19] 81*5113495bSYour Name fc_from_ds_setting : 1, // [18:18] 82*5113495bSYour Name fc_to_ds_setting : 1, // [17:17] 83*5113495bSYour Name iv_mask : 1, // [16:16] 84*5113495bSYour Name qc_15to8_mask : 1, // [15:15] 85*5113495bSYour Name reserved_0a : 1, // [14:14] 86*5113495bSYour Name qc_amsdu_mask : 1, // [13:13] 87*5113495bSYour Name qc_ack_policy_mask : 1, // [12:12] 88*5113495bSYour Name qc_eosp_mask : 1, // [11:11] 89*5113495bSYour Name qc_tid_mask : 1, // [10:10] 90*5113495bSYour Name sequence_control_mask : 1, // [9:9] 91*5113495bSYour Name duration_field_mask : 1, // [8:8] 92*5113495bSYour Name fc_order_mask : 1, // [7:7] 93*5113495bSYour Name fc_prot_frame_mask : 1, // [6:6] 94*5113495bSYour Name fc_more_data_mask : 1, // [5:5] 95*5113495bSYour Name fc_pwr_mgt_mask : 1, // [4:4] 96*5113495bSYour Name fc_retry_mask : 1, // [3:3] 97*5113495bSYour Name fc_more_frag_mask : 1, // [2:2] 98*5113495bSYour Name fc_from_ds_mask : 1, // [1:1] 99*5113495bSYour Name fc_to_ds_mask : 1; // [0:0] 100*5113495bSYour Name uint32_t sequence_number : 12, // [31:20] 101*5113495bSYour Name fragment_number : 4, // [19:16] 102*5113495bSYour Name sequence_control_source : 1, // [15:15] 103*5113495bSYour Name mlo_ignore_addr3_override : 1, // [14:14] 104*5113495bSYour Name mlo_addr_override : 1, // [13:13] 105*5113495bSYour Name qc_15to8_setting : 8, // [12:5] 106*5113495bSYour Name qc_amsdu_setting : 1, // [4:4] 107*5113495bSYour Name qc_ack_policy_setting : 2, // [3:2] 108*5113495bSYour Name qc_eosp_setting : 2; // [1:0] 109*5113495bSYour Name #endif 110*5113495bSYour Name }; 111*5113495bSYour Name 112*5113495bSYour Name 113*5113495bSYour Name /* Description FC_TO_DS_MASK 114*5113495bSYour Name 115*5113495bSYour Name Consumer: TXOLE 116*5113495bSYour Name Producer: SW 117*5113495bSYour Name 118*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 119*5113495bSYour Name Native WiFi 120*5113495bSYour Name Note: Enc_type is NOT allowed b 121*5113495bSYour Name 122*5113495bSYour Name Note: 123*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 124*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 125*5113495bSYour Name structure. 126*5113495bSYour Name 127*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 128*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 129*5113495bSYour Name fc_to_ds_setting. 130*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 131*5113495bSYour Name of this field. 132*5113495bSYour Name 133*5113495bSYour Name <legal all> 134*5113495bSYour Name 135*5113495bSYour Name In 11ah mode of Operation, same description as above applies 136*5113495bSYour Name if this field is a part of FC field of the MPDU. This field 137*5113495bSYour Name does not apply to Short MAC header (PV=1) and is ignored 138*5113495bSYour Name by HW 139*5113495bSYour Name */ 140*5113495bSYour Name 141*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_OFFSET 0x0000000000000000 142*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_LSB 0 143*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MSB 0 144*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MASK 0x0000000000000001 145*5113495bSYour Name 146*5113495bSYour Name 147*5113495bSYour Name /* Description FC_FROM_DS_MASK 148*5113495bSYour Name 149*5113495bSYour Name Consumer: TXOLE 150*5113495bSYour Name Producer: SW 151*5113495bSYour Name 152*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 153*5113495bSYour Name Native WiFi 154*5113495bSYour Name 155*5113495bSYour Name Note: 156*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 157*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 158*5113495bSYour Name structure. 159*5113495bSYour Name 160*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 161*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 162*5113495bSYour Name fc_from_ds_setting. 163*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 164*5113495bSYour Name of this field. 165*5113495bSYour Name 166*5113495bSYour Name <legal all> 167*5113495bSYour Name 168*5113495bSYour Name In 11ah mode of Operation, same description as above applies 169*5113495bSYour Name if this field is a part of FC field of the MPDU. 170*5113495bSYour Name */ 171*5113495bSYour Name 172*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_OFFSET 0x0000000000000000 173*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_LSB 1 174*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MSB 1 175*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MASK 0x0000000000000002 176*5113495bSYour Name 177*5113495bSYour Name 178*5113495bSYour Name /* Description FC_MORE_FRAG_MASK 179*5113495bSYour Name 180*5113495bSYour Name Consumer: TXOLE 181*5113495bSYour Name Producer: SW 182*5113495bSYour Name 183*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 184*5113495bSYour Name Native WiFi 185*5113495bSYour Name 186*5113495bSYour Name Note: 187*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 188*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 189*5113495bSYour Name structure. 190*5113495bSYour Name 191*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 192*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 193*5113495bSYour Name fc_more_frag_setting. 194*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 195*5113495bSYour Name of this field. 196*5113495bSYour Name 197*5113495bSYour Name <legal all> 198*5113495bSYour Name */ 199*5113495bSYour Name 200*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_OFFSET 0x0000000000000000 201*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_LSB 2 202*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MSB 2 203*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MASK 0x0000000000000004 204*5113495bSYour Name 205*5113495bSYour Name 206*5113495bSYour Name /* Description FC_RETRY_MASK 207*5113495bSYour Name 208*5113495bSYour Name Consumer: TXOLE 209*5113495bSYour Name Producer: SW 210*5113495bSYour Name 211*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 212*5113495bSYour Name Native WiFi 213*5113495bSYour Name 214*5113495bSYour Name Note: 215*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the setting 216*5113495bSYour Name for this field on the retry_bitmap_31_0 and retry_bitmap_63_32 217*5113495bSYour Name fields in the MPDU_queue_extension descriptor 218*5113495bSYour Name 219*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 220*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 221*5113495bSYour Name fc_retry_setting. 222*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 223*5113495bSYour Name of this field. 224*5113495bSYour Name 225*5113495bSYour Name <legal all> 226*5113495bSYour Name */ 227*5113495bSYour Name 228*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_OFFSET 0x0000000000000000 229*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_LSB 3 230*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MSB 3 231*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MASK 0x0000000000000008 232*5113495bSYour Name 233*5113495bSYour Name 234*5113495bSYour Name /* Description FC_PWR_MGT_MASK 235*5113495bSYour Name 236*5113495bSYour Name Consumer: TXOLE 237*5113495bSYour Name Producer: SW 238*5113495bSYour Name 239*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 240*5113495bSYour Name Native WiFi 241*5113495bSYour Name 242*5113495bSYour Name Note: 243*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 244*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 245*5113495bSYour Name structure. 246*5113495bSYour Name 247*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 248*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 249*5113495bSYour Name fc_pwr_mgt_setting. 250*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 251*5113495bSYour Name of this field. 252*5113495bSYour Name 253*5113495bSYour Name <legal all> 254*5113495bSYour Name */ 255*5113495bSYour Name 256*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_OFFSET 0x0000000000000000 257*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_LSB 4 258*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MSB 4 259*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MASK 0x0000000000000010 260*5113495bSYour Name 261*5113495bSYour Name 262*5113495bSYour Name /* Description FC_MORE_DATA_MASK 263*5113495bSYour Name 264*5113495bSYour Name Consumer: TXOLE 265*5113495bSYour Name Producer: SW 266*5113495bSYour Name 267*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 268*5113495bSYour Name Native WiFi 269*5113495bSYour Name 270*5113495bSYour Name Note: 271*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 272*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 273*5113495bSYour Name structure. 274*5113495bSYour Name 275*5113495bSYour Name TX_PCU has the abilty of overwrite the More data field, 276*5113495bSYour Name based on the Set_fc_more_data field in the PPDU_SS_... TLVs 277*5113495bSYour Name given by PDG. 278*5113495bSYour Name 279*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 280*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 281*5113495bSYour Name fc_more_data_setting. 282*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 283*5113495bSYour Name of this field. 284*5113495bSYour Name 285*5113495bSYour Name <legal all> 286*5113495bSYour Name */ 287*5113495bSYour Name 288*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_OFFSET 0x0000000000000000 289*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_LSB 5 290*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MSB 5 291*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MASK 0x0000000000000020 292*5113495bSYour Name 293*5113495bSYour Name 294*5113495bSYour Name /* Description FC_PROT_FRAME_MASK 295*5113495bSYour Name 296*5113495bSYour Name Consumer: TXOLE 297*5113495bSYour Name Producer: SW 298*5113495bSYour Name 299*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 300*5113495bSYour Name Native WiFi 301*5113495bSYour Name 302*5113495bSYour Name Note: 303*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the setting 304*5113495bSYour Name for the Protected frame bit on the key_type setting in 305*5113495bSYour Name the peer entry. When NO encryption is needed, the bit will 306*5113495bSYour Name be set to 0, When the any encryption is needed, the bit 307*5113495bSYour Name will be set to 0. 308*5113495bSYour Name 309*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 310*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 311*5113495bSYour Name fc_prot_frame_setting. When fc_prot_frame_setting is set, 312*5113495bSYour Name OLE will encrypt the frame, based on the encryption type 313*5113495bSYour Name indicate with the key_type setting in the peer entry 314*5113495bSYour Name 315*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 316*5113495bSYour Name of this field. 317*5113495bSYour Name <legal all> 318*5113495bSYour Name */ 319*5113495bSYour Name 320*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_OFFSET 0x0000000000000000 321*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_LSB 6 322*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MSB 6 323*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MASK 0x0000000000000040 324*5113495bSYour Name 325*5113495bSYour Name 326*5113495bSYour Name /* Description FC_ORDER_MASK 327*5113495bSYour Name 328*5113495bSYour Name Consumer: TXOLE 329*5113495bSYour Name Producer: SW 330*5113495bSYour Name 331*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 332*5113495bSYour Name Native WiFi 333*5113495bSYour Name 334*5113495bSYour Name Note: 335*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will get the setting 336*5113495bSYour Name from the frame_ctl field in the MPDU_queue extension data 337*5113495bSYour Name structure. 338*5113495bSYour Name 339*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 340*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 341*5113495bSYour Name fc_order_setting. 342*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 343*5113495bSYour Name of this field. 344*5113495bSYour Name 345*5113495bSYour Name <legal all> 346*5113495bSYour Name 347*5113495bSYour Name In 11ah mode of Operation, same description as above applies 348*5113495bSYour Name if this field is a part of FC field of the MPDU. 349*5113495bSYour Name */ 350*5113495bSYour Name 351*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_OFFSET 0x0000000000000000 352*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_LSB 7 353*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MSB 7 354*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MASK 0x0000000000000080 355*5113495bSYour Name 356*5113495bSYour Name 357*5113495bSYour Name /* Description DURATION_FIELD_MASK 358*5113495bSYour Name 359*5113495bSYour Name Consumer: TXOLE 360*5113495bSYour Name Producer: SW 361*5113495bSYour Name 362*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 363*5113495bSYour Name or Native WiFi 364*5113495bSYour Name 365*5113495bSYour Name Note: 366*5113495bSYour Name When enc_type != RAW or Native WiFi, TX PCU will get the 367*5113495bSYour Name value for this field from the Duration fields in the PPDU_SS_... 368*5113495bSYour Name TLVs from PDG. 369*5113495bSYour Name 370*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 371*5113495bSYour Name The value that HW (TX_PCU) will insert is coming from the 372*5113495bSYour Name Duration fields in the PPDU_SS_... TLVs from PDG (similar 373*5113495bSYour Name as with NON RAW/Native WiFi frames). 374*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 375*5113495bSYour Name of this field. 376*5113495bSYour Name 377*5113495bSYour Name <legal all> 378*5113495bSYour Name 379*5113495bSYour Name In 11ah mode of Operation, same description as above applies 380*5113495bSYour Name if this field is a part of FC field of the MPDU. 381*5113495bSYour Name */ 382*5113495bSYour Name 383*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_OFFSET 0x0000000000000000 384*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_LSB 8 385*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MSB 8 386*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MASK 0x0000000000000100 387*5113495bSYour Name 388*5113495bSYour Name 389*5113495bSYour Name /* Description SEQUENCE_CONTROL_MASK 390*5113495bSYour Name 391*5113495bSYour Name Consumer: TXOLE 392*5113495bSYour Name Producer: SW 393*5113495bSYour Name 394*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 395*5113495bSYour Name or Native WiFi 396*5113495bSYour Name 397*5113495bSYour Name Note: 398*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 399*5113495bSYour Name for this field on sequence number field in the TX_MPDU_START 400*5113495bSYour Name descriptor 401*5113495bSYour Name 402*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 403*5113495bSYour Name The value that HW (OLE) will insert is dependent on the 404*5113495bSYour Name setting in the 'sequence_control_source' field 405*5113495bSYour Name 406*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 407*5113495bSYour Name of this field. 408*5113495bSYour Name 409*5113495bSYour Name <legal all> 410*5113495bSYour Name */ 411*5113495bSYour Name 412*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_OFFSET 0x0000000000000000 413*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_LSB 9 414*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MSB 9 415*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MASK 0x0000000000000200 416*5113495bSYour Name 417*5113495bSYour Name 418*5113495bSYour Name /* Description QC_TID_MASK 419*5113495bSYour Name 420*5113495bSYour Name Consumer: TXOLE 421*5113495bSYour Name Producer: SW 422*5113495bSYour Name 423*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 424*5113495bSYour Name or Native WiFi 425*5113495bSYour Name 426*5113495bSYour Name Note: 427*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 428*5113495bSYour Name for this field on the qos_ctl field from the MPDU_queue_ext 429*5113495bSYour Name data structure. 430*5113495bSYour Name 431*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update this field. 432*5113495bSYour Name The value that HW (OLE) will insert is the given in field: 433*5113495bSYour Name qc_tid_setting. 434*5113495bSYour Name 435*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 436*5113495bSYour Name of this field. 437*5113495bSYour Name 438*5113495bSYour Name <legal all> 439*5113495bSYour Name */ 440*5113495bSYour Name 441*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_OFFSET 0x0000000000000000 442*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_LSB 10 443*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MSB 10 444*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MASK 0x0000000000000400 445*5113495bSYour Name 446*5113495bSYour Name 447*5113495bSYour Name /* Description QC_EOSP_MASK 448*5113495bSYour Name 449*5113495bSYour Name Consumer: TXOLE 450*5113495bSYour Name Producer: SW 451*5113495bSYour Name 452*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 453*5113495bSYour Name or Native WiFi 454*5113495bSYour Name 455*5113495bSYour Name Note: 456*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 457*5113495bSYour Name for this field on the qos_ctl field from the MPDU_queue_ext 458*5113495bSYour Name data structure. 459*5113495bSYour Name 460*5113495bSYour Name TX_PCU has the abilty of overwrite the QoS eosp field, based 461*5113495bSYour Name on the Set_fc_more_data field in the PPDU_SS_... TLVs given 462*5113495bSYour Name by PDG. 463*5113495bSYour Name 464*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update the QoS eosp 465*5113495bSYour Name field. The value that HW (OLE) will insert is the given 466*5113495bSYour Name in field: qc_eosp_setting. 467*5113495bSYour Name 468*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 469*5113495bSYour Name of this field. 470*5113495bSYour Name 471*5113495bSYour Name <legal all> 472*5113495bSYour Name 473*5113495bSYour Name In 11ah mode of Operation, same description as above applies 474*5113495bSYour Name if this field is a part of FC field of the MPDU. 475*5113495bSYour Name */ 476*5113495bSYour Name 477*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_OFFSET 0x0000000000000000 478*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_LSB 11 479*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MSB 11 480*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MASK 0x0000000000000800 481*5113495bSYour Name 482*5113495bSYour Name 483*5113495bSYour Name /* Description QC_ACK_POLICY_MASK 484*5113495bSYour Name 485*5113495bSYour Name Consumer: TXOLE 486*5113495bSYour Name Producer: SW 487*5113495bSYour Name 488*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 489*5113495bSYour Name or Native WiFi 490*5113495bSYour Name 491*5113495bSYour Name Note: 492*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 493*5113495bSYour Name for this field on the qos_ctl field from the MPDU_queue_ext 494*5113495bSYour Name data structure. 495*5113495bSYour Name 496*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update the QoS ack 497*5113495bSYour Name policy field. The value that HW (OLE) will insert is determined 498*5113495bSYour Name by field: qc_ack_policy_setting. 499*5113495bSYour Name 500*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 501*5113495bSYour Name of this field. 502*5113495bSYour Name 503*5113495bSYour Name <legal all> 504*5113495bSYour Name */ 505*5113495bSYour Name 506*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_OFFSET 0x0000000000000000 507*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_LSB 12 508*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MSB 12 509*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MASK 0x0000000000001000 510*5113495bSYour Name 511*5113495bSYour Name 512*5113495bSYour Name /* Description QC_AMSDU_MASK 513*5113495bSYour Name 514*5113495bSYour Name Consumer: TXOLE 515*5113495bSYour Name Producer: SW 516*5113495bSYour Name 517*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 518*5113495bSYour Name or Native WiFi 519*5113495bSYour Name 520*5113495bSYour Name Note: 521*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 522*5113495bSYour Name for this field on the qos_ctl field from the MPDU_queue_ext 523*5113495bSYour Name data structure. 524*5113495bSYour Name 525*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update the QoS amsdu 526*5113495bSYour Name field. The value that HW (OLE) will insert is determined 527*5113495bSYour Name by field: qc_amsdu_setting. 528*5113495bSYour Name 529*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 530*5113495bSYour Name of this field. 531*5113495bSYour Name 532*5113495bSYour Name <legal all> 533*5113495bSYour Name */ 534*5113495bSYour Name 535*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_OFFSET 0x0000000000000000 536*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_LSB 13 537*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MSB 13 538*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MASK 0x0000000000002000 539*5113495bSYour Name 540*5113495bSYour Name 541*5113495bSYour Name /* Description RESERVED_0A 542*5113495bSYour Name 543*5113495bSYour Name <legal 0> 544*5113495bSYour Name */ 545*5113495bSYour Name 546*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_OFFSET 0x0000000000000000 547*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_LSB 14 548*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MSB 14 549*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MASK 0x0000000000004000 550*5113495bSYour Name 551*5113495bSYour Name 552*5113495bSYour Name /* Description QC_15TO8_MASK 553*5113495bSYour Name 554*5113495bSYour Name Consumer: TXOLE 555*5113495bSYour Name Producer: SW 556*5113495bSYour Name 557*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 558*5113495bSYour Name or Native WiFi 559*5113495bSYour Name 560*5113495bSYour Name Note: 561*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the value 562*5113495bSYour Name for this field on the qos_ctl field from the MPDU_queue_ext 563*5113495bSYour Name data structure. 564*5113495bSYour Name 565*5113495bSYour Name <enum 0 mask_disable>: HW is allowed to update the QoS control 566*5113495bSYour Name field, bits 15-8. The value that HW (OLE) will insert is 567*5113495bSYour Name determined by field: qc_15to8_setting. 568*5113495bSYour Name 569*5113495bSYour Name <enum 1 mask_enable>: HW is not allowed to update the contents 570*5113495bSYour Name of this field. 571*5113495bSYour Name 572*5113495bSYour Name <legal all> 573*5113495bSYour Name */ 574*5113495bSYour Name 575*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_OFFSET 0x0000000000000000 576*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_LSB 15 577*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MSB 15 578*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MASK 0x0000000000008000 579*5113495bSYour Name 580*5113495bSYour Name 581*5113495bSYour Name /* Description IV_MASK 582*5113495bSYour Name 583*5113495bSYour Name Consumer: TXOLE 584*5113495bSYour Name Producer: SW 585*5113495bSYour Name 586*5113495bSYour Name Field only valid for MPDU frames with MSDU enc_type == RAW 587*5113495bSYour Name or Native WiFi 588*5113495bSYour Name 589*5113495bSYour Name Note: 590*5113495bSYour Name When enc_type != RAW or Native WiFi, OLE will base the IV 591*5113495bSYour Name field insertion/value on the on the encryption type indicate 592*5113495bSYour Name with the key_type setting in the peer entry 593*5113495bSYour Name 594*5113495bSYour Name <enum 0 mask_disable>: OLE is allowed to overwrite the IV 595*5113495bSYour Name field, in case key_type setting in the peer entry indicates 596*5113495bSYour Name some encryption. 597*5113495bSYour Name 598*5113495bSYour Name <enum 1 mask_enable>: OLE is not allowed to overwrite any 599*5113495bSYour Name of the IV field contents. 600*5113495bSYour Name <legal all> 601*5113495bSYour Name */ 602*5113495bSYour Name 603*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_OFFSET 0x0000000000000000 604*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_LSB 16 605*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MSB 16 606*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MASK 0x0000000000010000 607*5113495bSYour Name 608*5113495bSYour Name 609*5113495bSYour Name /* Description FC_TO_DS_SETTING 610*5113495bSYour Name 611*5113495bSYour Name Consumer: TXOLE 612*5113495bSYour Name Producer: SW 613*5113495bSYour Name 614*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 615*5113495bSYour Name Native WiFi. 616*5113495bSYour Name Field only valid when field Fc_to_ds_mask is not set. 617*5113495bSYour Name 618*5113495bSYour Name <enum 0 clear>: OLE will set the frame control field, to 619*5113495bSYour Name ds bit to 0 620*5113495bSYour Name <enum 1 set>: OLE will set the frame control field, to ds 621*5113495bSYour Name bit to 1 622*5113495bSYour Name <legal all> 623*5113495bSYour Name */ 624*5113495bSYour Name 625*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_OFFSET 0x0000000000000000 626*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_LSB 17 627*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MSB 17 628*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MASK 0x0000000000020000 629*5113495bSYour Name 630*5113495bSYour Name 631*5113495bSYour Name /* Description FC_FROM_DS_SETTING 632*5113495bSYour Name 633*5113495bSYour Name Consumer: TXOLE 634*5113495bSYour Name Producer: SW 635*5113495bSYour Name 636*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 637*5113495bSYour Name Native WiFi. 638*5113495bSYour Name Field only valid when field Fc_from_ds_mask is not set. 639*5113495bSYour Name 640*5113495bSYour Name <enum 0 clear>: OLE will set the frame control field, from 641*5113495bSYour Name ds bit to 0 642*5113495bSYour Name <enum 1 set>: OLE will set the frame control field, from 643*5113495bSYour Name ds bit to 1 644*5113495bSYour Name <legal all> 645*5113495bSYour Name */ 646*5113495bSYour Name 647*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_OFFSET 0x0000000000000000 648*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_LSB 18 649*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MSB 18 650*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MASK 0x0000000000040000 651*5113495bSYour Name 652*5113495bSYour Name 653*5113495bSYour Name /* Description FC_MORE_FRAG_SETTING 654*5113495bSYour Name 655*5113495bSYour Name Consumer: TXOLE 656*5113495bSYour Name Producer: SW 657*5113495bSYour Name 658*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 659*5113495bSYour Name Native WiFi. 660*5113495bSYour Name Field only valid when field Fc_more_frag_mask is not set. 661*5113495bSYour Name 662*5113495bSYour Name 663*5113495bSYour Name <enum 0 clear>: OLE will set the frame control field, more 664*5113495bSYour Name frag bit to 0 665*5113495bSYour Name <enum 1 set>: OLE will set the frame control field, more 666*5113495bSYour Name frag bit to 1 667*5113495bSYour Name <legal all> 668*5113495bSYour Name */ 669*5113495bSYour Name 670*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_OFFSET 0x0000000000000000 671*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_LSB 19 672*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MSB 19 673*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MASK 0x0000000000080000 674*5113495bSYour Name 675*5113495bSYour Name 676*5113495bSYour Name /* Description FC_RETRY_SETTING 677*5113495bSYour Name 678*5113495bSYour Name Consumer: TXOLE 679*5113495bSYour Name Producer: SW 680*5113495bSYour Name 681*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 682*5113495bSYour Name Native WiFi. 683*5113495bSYour Name Field only valid when field Fc_retry_mask is not set. 684*5113495bSYour Name 685*5113495bSYour Name <enum 0 fc_retry_clear>: OLE will set the frame control 686*5113495bSYour Name field, retry bit to 0 687*5113495bSYour Name <enum 1 fc_retry_set>: OLE will set the frame control field, 688*5113495bSYour Name retry bit to 1 689*5113495bSYour Name <enum 2 fc_retry_bimap_based>: OLE will base the setting 690*5113495bSYour Name for this field on the retry_bitmap_31_0 and retry_bitmap_63_32 691*5113495bSYour Name fields in the MPDU_queue_extension descriptor 692*5113495bSYour Name 693*5113495bSYour Name <legal 0-2> 694*5113495bSYour Name */ 695*5113495bSYour Name 696*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_OFFSET 0x0000000000000000 697*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_LSB 20 698*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MSB 21 699*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MASK 0x0000000000300000 700*5113495bSYour Name 701*5113495bSYour Name 702*5113495bSYour Name /* Description FC_PWR_MGT_SETTING 703*5113495bSYour Name 704*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 705*5113495bSYour Name Native WiFi. 706*5113495bSYour Name Field only valid when field Fc_pwr_mgt_mask is not set. 707*5113495bSYour Name 708*5113495bSYour Name <enum 0 clear>: OLE will set the frame control field, pwr_mgt 709*5113495bSYour Name bit to 0 710*5113495bSYour Name <enum 1 set>: OLE will set the frame control field, pwr_mgt 711*5113495bSYour Name bit to 1 712*5113495bSYour Name <legal all> 713*5113495bSYour Name */ 714*5113495bSYour Name 715*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_OFFSET 0x0000000000000000 716*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_LSB 22 717*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MSB 22 718*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MASK 0x0000000000400000 719*5113495bSYour Name 720*5113495bSYour Name 721*5113495bSYour Name /* Description FC_MORE_DATA_SETTING 722*5113495bSYour Name 723*5113495bSYour Name Consumer: TXOLE 724*5113495bSYour Name Producer: SW 725*5113495bSYour Name 726*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 727*5113495bSYour Name Native WiFi. 728*5113495bSYour Name Field only valid when field Fc_more_Data_mask is not set. 729*5113495bSYour Name 730*5113495bSYour Name 731*5113495bSYour Name <enum 0 fc_more_data_clear>: OLE will set the frame control 732*5113495bSYour Name field, More data bit to 0 733*5113495bSYour Name <enum 1 fc_more_data_set>: OLE will set the frame control 734*5113495bSYour Name field, More data bit to 1 735*5113495bSYour Name 736*5113495bSYour Name <enum 2 fc_more_data_pdg_based>: OLE will set the Frame 737*5113495bSYour Name control, More data bit to 0, but TX_PCU has the abilty to 738*5113495bSYour Name overwrite this based on the Set_fc_more_data field in the 739*5113495bSYour Name PPDU_SS_... TLVs given by PDG. 740*5113495bSYour Name 741*5113495bSYour Name <legal 0-2> 742*5113495bSYour Name */ 743*5113495bSYour Name 744*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_OFFSET 0x0000000000000000 745*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_LSB 23 746*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MSB 24 747*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MASK 0x0000000001800000 748*5113495bSYour Name 749*5113495bSYour Name 750*5113495bSYour Name /* Description FC_PROT_FRAME_SETTING 751*5113495bSYour Name 752*5113495bSYour Name Consumer: TXOLE 753*5113495bSYour Name Producer: SW 754*5113495bSYour Name 755*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 756*5113495bSYour Name Native WiFi. 757*5113495bSYour Name Field only valid when field Fc_prot_frame_mask is not set. 758*5113495bSYour Name 759*5113495bSYour Name 760*5113495bSYour Name <enum 0 fc_prot_frame_clear>: OLE will set the frame control 761*5113495bSYour Name field , "Protected Frame" bit to 0 762*5113495bSYour Name <enum 1 fc_prot_frame_set>: OLE will set the frame control 763*5113495bSYour Name field , "Protected Frame" bit to 1 764*5113495bSYour Name <enum 2 fc_prot_frame_encap_type_based>: OLE configures 765*5113495bSYour Name the Frame Control field, Prot frame bit according to the 766*5113495bSYour Name following rule: 767*5113495bSYour Name When the encryption type indicated with the key_type setting 768*5113495bSYour Name in the peer entry is set to no crypto, the Frame control 769*5113495bSYour Name "Protected Frame" bit is set to 0. 770*5113495bSYour Name When the encryption type indicated with the key_type setting 771*5113495bSYour Name in the peer entry is set to some encryption type, the OLE 772*5113495bSYour Name will set the frame control "Protected Frame" bit to 1. 773*5113495bSYour Name OLE changes only the value of the prot_frame bit. It won't 774*5113495bSYour Name push IV in the frame according to this bit. 775*5113495bSYour Name 776*5113495bSYour Name <legal 0-2> 777*5113495bSYour Name */ 778*5113495bSYour Name 779*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_OFFSET 0x0000000000000000 780*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_LSB 25 781*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MSB 26 782*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MASK 0x0000000006000000 783*5113495bSYour Name 784*5113495bSYour Name 785*5113495bSYour Name /* Description FC_ORDER_SETTING 786*5113495bSYour Name 787*5113495bSYour Name Consumer: TXOLE 788*5113495bSYour Name Producer: SW 789*5113495bSYour Name 790*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 791*5113495bSYour Name Native WiFi. 792*5113495bSYour Name Field only valid when field Fc_order_mask is not set. 793*5113495bSYour Name 794*5113495bSYour Name <enum 0 clear>: OLE will set the frame control field , order 795*5113495bSYour Name bit to 0 796*5113495bSYour Name <enum 1 set>: OLE will set the frame control field , order 797*5113495bSYour Name bit to 1 798*5113495bSYour Name <legal all> 799*5113495bSYour Name */ 800*5113495bSYour Name 801*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_OFFSET 0x0000000000000000 802*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_LSB 27 803*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MSB 27 804*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MASK 0x0000000008000000 805*5113495bSYour Name 806*5113495bSYour Name 807*5113495bSYour Name /* Description QC_TID_SETTING 808*5113495bSYour Name 809*5113495bSYour Name Consumer: TXOLE 810*5113495bSYour Name Producer: SW 811*5113495bSYour Name 812*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 813*5113495bSYour Name Native WiFi. 814*5113495bSYour Name Field only valid when field Qc_tid_mask is not set. 815*5113495bSYour Name 816*5113495bSYour Name OLE sets the TID field in the QoS control field to this 817*5113495bSYour Name value. 818*5113495bSYour Name 819*5113495bSYour Name <legal all> 820*5113495bSYour Name */ 821*5113495bSYour Name 822*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_OFFSET 0x0000000000000000 823*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_LSB 28 824*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MSB 31 825*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MASK 0x00000000f0000000 826*5113495bSYour Name 827*5113495bSYour Name 828*5113495bSYour Name /* Description QC_EOSP_SETTING 829*5113495bSYour Name 830*5113495bSYour Name Consumer: TXOLE 831*5113495bSYour Name Producer: SW 832*5113495bSYour Name 833*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 834*5113495bSYour Name Native WiFi. 835*5113495bSYour Name Field only valid when field Qc_eosp_mask is not set. 836*5113495bSYour Name 837*5113495bSYour Name <enum 0 qc_eosp_clear>: OLE will set the QoS control bit 838*5113495bSYour Name to 0 839*5113495bSYour Name <enum 1 qc_eosp_set>: OLE will set the QoS control bit to 840*5113495bSYour Name 1 841*5113495bSYour Name <enum 2 qc_eosp_pdg_based>: OLE will set the QoS control 842*5113495bSYour Name bit to 0, but TX_PCU has the abilty of overwrite the QoS 843*5113495bSYour Name eosp field, based on the Set_fc_more_data field in the 844*5113495bSYour Name PPDU_SS_... TLVs given by PDG. 845*5113495bSYour Name 846*5113495bSYour Name <legal 0-2> 847*5113495bSYour Name */ 848*5113495bSYour Name 849*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_OFFSET 0x0000000000000000 850*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_LSB 32 851*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MSB 33 852*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MASK 0x0000000300000000 853*5113495bSYour Name 854*5113495bSYour Name 855*5113495bSYour Name /* Description QC_ACK_POLICY_SETTING 856*5113495bSYour Name 857*5113495bSYour Name Consumer: TXOLE 858*5113495bSYour Name Producer: SW 859*5113495bSYour Name 860*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 861*5113495bSYour Name Native WiFi. 862*5113495bSYour Name Field only valid when field Qc_ack_policy_mask is not set. 863*5113495bSYour Name 864*5113495bSYour Name 865*5113495bSYour Name This is is QoS ACK policy value that RXOLE shall put in 866*5113495bSYour Name the ACK policy field in the QoS control field 867*5113495bSYour Name 868*5113495bSYour Name <legal all> 869*5113495bSYour Name */ 870*5113495bSYour Name 871*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_OFFSET 0x0000000000000000 872*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_LSB 34 873*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MSB 35 874*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MASK 0x0000000c00000000 875*5113495bSYour Name 876*5113495bSYour Name 877*5113495bSYour Name /* Description QC_AMSDU_SETTING 878*5113495bSYour Name 879*5113495bSYour Name Consumer: TXOLE 880*5113495bSYour Name Producer: SW 881*5113495bSYour Name 882*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 883*5113495bSYour Name Native WiFi. 884*5113495bSYour Name Field only valid when field Qc_amsdu_mask is not set. 885*5113495bSYour Name 886*5113495bSYour Name <enum 0 clear>: OLE will set the QoS control field amsdu 887*5113495bSYour Name bit to 0 888*5113495bSYour Name <enum 1 set>: OLE will set the QoS control field amsdu bit 889*5113495bSYour Name to 1 890*5113495bSYour Name 891*5113495bSYour Name <legal all> 892*5113495bSYour Name */ 893*5113495bSYour Name 894*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_OFFSET 0x0000000000000000 895*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_LSB 36 896*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MSB 36 897*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MASK 0x0000001000000000 898*5113495bSYour Name 899*5113495bSYour Name 900*5113495bSYour Name /* Description QC_15TO8_SETTING 901*5113495bSYour Name 902*5113495bSYour Name Consumer: TXOLE 903*5113495bSYour Name Producer: SW 904*5113495bSYour Name 905*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 906*5113495bSYour Name Native WiFi. 907*5113495bSYour Name Field only valid when field Qc_15to8_mask is not set. 908*5113495bSYour Name 909*5113495bSYour Name OLE sets bit 8 to 16 in the QoS control field to this value. 910*5113495bSYour Name 911*5113495bSYour Name 912*5113495bSYour Name <legal all> 913*5113495bSYour Name */ 914*5113495bSYour Name 915*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_OFFSET 0x0000000000000000 916*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_LSB 37 917*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MSB 44 918*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MASK 0x00001fe000000000 919*5113495bSYour Name 920*5113495bSYour Name 921*5113495bSYour Name /* Description MLO_ADDR_OVERRIDE 922*5113495bSYour Name 923*5113495bSYour Name Consumer: TXOLE 924*5113495bSYour Name Producer: SW 925*5113495bSYour Name 926*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 927*5113495bSYour Name Native WiFi. 928*5113495bSYour Name 929*5113495bSYour Name Enables address translation for raw Wi-Fi frames to multi-link 930*5113495bSYour Name peers, esp. management frames 931*5113495bSYour Name <legal all> 932*5113495bSYour Name */ 933*5113495bSYour Name 934*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_OFFSET 0x0000000000000000 935*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_LSB 45 936*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MSB 45 937*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MASK 0x0000200000000000 938*5113495bSYour Name 939*5113495bSYour Name 940*5113495bSYour Name /* Description MLO_IGNORE_ADDR3_OVERRIDE 941*5113495bSYour Name 942*5113495bSYour Name Consumer: TXOLE 943*5113495bSYour Name Producer: SW 944*5113495bSYour Name 945*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 946*5113495bSYour Name Native WiFi when Mlo_addr_override is set. 947*5113495bSYour Name 948*5113495bSYour Name Preserves Address3 (BSSID) for raw Wi-Fi management frames 949*5113495bSYour Name to multi-link peers. 950*5113495bSYour Name 951*5113495bSYour Name <legal all> 952*5113495bSYour Name */ 953*5113495bSYour Name 954*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_OFFSET 0x0000000000000000 955*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_LSB 46 956*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MSB 46 957*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MASK 0x0000400000000000 958*5113495bSYour Name 959*5113495bSYour Name 960*5113495bSYour Name /* Description SEQUENCE_CONTROL_SOURCE 961*5113495bSYour Name 962*5113495bSYour Name Field only valid when field Sequence_control_mask is set 963*5113495bSYour Name to 'mask_disable'. 964*5113495bSYour Name 965*5113495bSYour Name <enum 0 seq_ctrl_source_mpdu_start>: OLE will set the sequence 966*5113495bSYour Name control field based on what is indicated in the TX_MPDU_START 967*5113495bSYour Name TLV. 968*5113495bSYour Name 969*5113495bSYour Name <enum 1 seq_ctrl_source_this_tlv>: OLE will set the sequence 970*5113495bSYour Name control field based on what is indicated in this TLV, fields 971*5113495bSYour Name Fragment_number and Sequence_number 972*5113495bSYour Name Note that this setting assumes that there is only a single 973*5113495bSYour Name RAW or Native Wifi MPDU for this user in the transmit path. 974*5113495bSYour Name This works well for level 1 fragmentation. Reason that there 975*5113495bSYour Name should only be a single RAW or Native WiFi frames is that 976*5113495bSYour Name with this feature they would all get the same sequence + 977*5113495bSYour Name fragment number 978*5113495bSYour Name 979*5113495bSYour Name <legal 0-1> 980*5113495bSYour Name */ 981*5113495bSYour Name 982*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_OFFSET 0x0000000000000000 983*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_LSB 47 984*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MSB 47 985*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MASK 0x0000800000000000 986*5113495bSYour Name 987*5113495bSYour Name 988*5113495bSYour Name /* Description FRAGMENT_NUMBER 989*5113495bSYour Name 990*5113495bSYour Name Consumer: TXOLE 991*5113495bSYour Name Producer: SW 992*5113495bSYour Name 993*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 994*5113495bSYour Name Native WiFi. 995*5113495bSYour Name 996*5113495bSYour Name Field only valid when field Sequence_control_mask = mask_disable 997*5113495bSYour Name AND sequence_control_source is set to seq_ctrl_source_this_tlv 998*5113495bSYour Name 999*5113495bSYour Name 1000*5113495bSYour Name The Fragment number to be filled in 1001*5113495bSYour Name <legal all> 1002*5113495bSYour Name */ 1003*5113495bSYour Name 1004*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_OFFSET 0x0000000000000000 1005*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_LSB 48 1006*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MSB 51 1007*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MASK 0x000f000000000000 1008*5113495bSYour Name 1009*5113495bSYour Name 1010*5113495bSYour Name /* Description SEQUENCE_NUMBER 1011*5113495bSYour Name 1012*5113495bSYour Name Consumer: TXOLE 1013*5113495bSYour Name Producer: SW 1014*5113495bSYour Name 1015*5113495bSYour Name Field only valid for MSDU frames with enc_type == RAW or 1016*5113495bSYour Name Native WiFi. 1017*5113495bSYour Name 1018*5113495bSYour Name Field only valid when field Sequence_control_mask = mask_disable 1019*5113495bSYour Name AND sequence_control_source is set to seq_ctrl_source_this_tlv 1020*5113495bSYour Name 1021*5113495bSYour Name 1022*5113495bSYour Name The Sequence number to be filled in 1023*5113495bSYour Name <legal all> 1024*5113495bSYour Name */ 1025*5113495bSYour Name 1026*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_OFFSET 0x0000000000000000 1027*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_LSB 52 1028*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MSB 63 1029*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MASK 0xfff0000000000000 1030*5113495bSYour Name 1031*5113495bSYour Name 1032*5113495bSYour Name 1033*5113495bSYour Name #endif // TX_RAW_OR_NATIVE_FRAME_SETUP 1034