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