1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2021 The Linux Foundation. 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 // $ATH_LICENSE_HW_HDR_C$ 18*5113495bSYour Name // 19*5113495bSYour Name // DO NOT EDIT! This file is automatically generated 20*5113495bSYour Name // These definitions are tied to a particular hardware layout 21*5113495bSYour Name 22*5113495bSYour Name 23*5113495bSYour Name #ifndef _VHT_SIG_A_INFO_H_ 24*5113495bSYour Name #define _VHT_SIG_A_INFO_H_ 25*5113495bSYour Name #if !defined(__ASSEMBLER__) 26*5113495bSYour Name #endif 27*5113495bSYour Name 28*5113495bSYour Name 29*5113495bSYour Name // ################ START SUMMARY ################# 30*5113495bSYour Name // 31*5113495bSYour Name // Dword Fields 32*5113495bSYour Name // 0 bandwidth[1:0], vhta_reserved_0[2], stbc[3], group_id[9:4], n_sts[21:10], txop_ps_not_allowed[22], vhta_reserved_0b[23], reserved_0[31:24] 33*5113495bSYour Name // 1 gi_setting[1:0], su_mu_coding[2], ldpc_extra_symbol[3], mcs[7:4], beamformed[8], vhta_reserved_1[9], crc[17:10], tail[23:18], reserved_1[31:24] 34*5113495bSYour Name // 35*5113495bSYour Name // ################ END SUMMARY ################# 36*5113495bSYour Name 37*5113495bSYour Name #define NUM_OF_DWORDS_VHT_SIG_A_INFO 2 38*5113495bSYour Name 39*5113495bSYour Name struct vht_sig_a_info { 40*5113495bSYour Name uint32_t bandwidth : 2, //[1:0] 41*5113495bSYour Name vhta_reserved_0 : 1, //[2] 42*5113495bSYour Name stbc : 1, //[3] 43*5113495bSYour Name group_id : 6, //[9:4] 44*5113495bSYour Name n_sts : 12, //[21:10] 45*5113495bSYour Name txop_ps_not_allowed : 1, //[22] 46*5113495bSYour Name vhta_reserved_0b : 1, //[23] 47*5113495bSYour Name reserved_0 : 8; //[31:24] 48*5113495bSYour Name uint32_t gi_setting : 2, //[1:0] 49*5113495bSYour Name su_mu_coding : 1, //[2] 50*5113495bSYour Name ldpc_extra_symbol : 1, //[3] 51*5113495bSYour Name mcs : 4, //[7:4] 52*5113495bSYour Name beamformed : 1, //[8] 53*5113495bSYour Name vhta_reserved_1 : 1, //[9] 54*5113495bSYour Name crc : 8, //[17:10] 55*5113495bSYour Name tail : 6, //[23:18] 56*5113495bSYour Name reserved_1 : 8; //[31:24] 57*5113495bSYour Name }; 58*5113495bSYour Name 59*5113495bSYour Name /* 60*5113495bSYour Name 61*5113495bSYour Name bandwidth 62*5113495bSYour Name 63*5113495bSYour Name Packet bandwidth 64*5113495bSYour Name 65*5113495bSYour Name 66*5113495bSYour Name 67*5113495bSYour Name <enum 0 20_MHZ_11AC> 68*5113495bSYour Name 69*5113495bSYour Name <enum 1 40_MHZ_11AC> 70*5113495bSYour Name 71*5113495bSYour Name <enum 2 80_MHZ_11AC> 72*5113495bSYour Name 73*5113495bSYour Name <enum 3 160_MHZ_11AC> 74*5113495bSYour Name 75*5113495bSYour Name 76*5113495bSYour Name 77*5113495bSYour Name <legal 0-3> 78*5113495bSYour Name 79*5113495bSYour Name vhta_reserved_0 80*5113495bSYour Name 81*5113495bSYour Name Reserved. Set to 1 by MAC, PHY should ignore 82*5113495bSYour Name 83*5113495bSYour Name <legal 1> 84*5113495bSYour Name 85*5113495bSYour Name stbc 86*5113495bSYour Name 87*5113495bSYour Name Space time block coding: 88*5113495bSYour Name 89*5113495bSYour Name <enum 0 stbc_disabled> Indicates STBC is disabled 90*5113495bSYour Name 91*5113495bSYour Name <enum 1 stbc_enabled> Indicates STBC is enabled on 92*5113495bSYour Name all streams 93*5113495bSYour Name 94*5113495bSYour Name <legal 0-1> 95*5113495bSYour Name 96*5113495bSYour Name group_id 97*5113495bSYour Name 98*5113495bSYour Name In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 99*5113495bSYour Name to an AP or to a mesh STA, the Group ID field is set to 0, 100*5113495bSYour Name otherwise it is set to 63. In an NDP PPDU the Group ID is 101*5113495bSYour Name set according to IEEE 802.11ac_D1.0 Section 9.30.6 102*5113495bSYour Name (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group ID 103*5113495bSYour Name is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group ID). 104*5113495bSYour Name <legal all> 105*5113495bSYour Name 106*5113495bSYour Name n_sts 107*5113495bSYour Name 108*5113495bSYour Name For MU: 109*5113495bSYour Name 110*5113495bSYour Name 3 bits/user with maximum of 4 users (user u uses 111*5113495bSYour Name 112*5113495bSYour Name vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 113*5113495bSYour Name 3) 114*5113495bSYour Name 115*5113495bSYour Name Set to 0 for 0 space time streams 116*5113495bSYour Name 117*5113495bSYour Name Set to 1 for 1 space time stream 118*5113495bSYour Name 119*5113495bSYour Name Set to 2 for 2 space time streams 120*5113495bSYour Name 121*5113495bSYour Name Set to 3 for 3 space time streams 122*5113495bSYour Name 123*5113495bSYour Name Set to 4 for 4 space time streams (not supported in Wifi 124*5113495bSYour Name 3.0) 125*5113495bSYour Name 126*5113495bSYour Name Values 5-7 are reserved 127*5113495bSYour Name 128*5113495bSYour Name In this field, references to user u should be 129*5113495bSYour Name interpreted as MU user u. As described in the previous 130*5113495bSYour Name chapter in this document (see chapter on User number), the 131*5113495bSYour Name MU user value for a given client is defined for each MU 132*5113495bSYour Name group that the client participates in. The MU user number is 133*5113495bSYour Name not related to the internal user number that is used within 134*5113495bSYour Name the BFer. 135*5113495bSYour Name 136*5113495bSYour Name 137*5113495bSYour Name 138*5113495bSYour Name 139*5113495bSYour Name 140*5113495bSYour Name For SU: 141*5113495bSYour Name 142*5113495bSYour Name vht_sig_a[0][12:10] 143*5113495bSYour Name 144*5113495bSYour Name Set to 0 for 1 space time stream 145*5113495bSYour Name 146*5113495bSYour Name Set to 1 for 2 space time streams 147*5113495bSYour Name 148*5113495bSYour Name Set to 2 for 3 space time streams 149*5113495bSYour Name 150*5113495bSYour Name Set to 3 for 4 space time streams 151*5113495bSYour Name 152*5113495bSYour Name Set to 4 for 5 space time streams 153*5113495bSYour Name 154*5113495bSYour Name Set to 5 for 6 space time streams 155*5113495bSYour Name 156*5113495bSYour Name Set to 6 for 7 space time streams 157*5113495bSYour Name 158*5113495bSYour Name Set to 7 for 8 space time streams 159*5113495bSYour Name 160*5113495bSYour Name 161*5113495bSYour Name 162*5113495bSYour Name vht_sig_a[0][21:13] 163*5113495bSYour Name 164*5113495bSYour Name Partial AID: 165*5113495bSYour Name 166*5113495bSYour Name Set to the value of the TXVECTOR parameter PARTIAL_AID. 167*5113495bSYour Name Partial AID provides an abbreviated indication of the 168*5113495bSYour Name intended recipient(s) of the frame (see IEEE802.11ac_D1.0 169*5113495bSYour Name Section 9.17a (Partial AID in VHT PPDUs)). 170*5113495bSYour Name 171*5113495bSYour Name <legal all> 172*5113495bSYour Name 173*5113495bSYour Name txop_ps_not_allowed 174*5113495bSYour Name 175*5113495bSYour Name E_num 0 txop_ps_allowed Not supported: If set to by 176*5113495bSYour Name VHT AP if it allows non-AP VHT STAs in TXOP power save mode 177*5113495bSYour Name to enter Doze state during a TXOP 178*5113495bSYour Name 179*5113495bSYour Name <enum 1 no_txop_ps_allowed> Otherwise 180*5113495bSYour Name 181*5113495bSYour Name <legal 1> 182*5113495bSYour Name 183*5113495bSYour Name vhta_reserved_0b 184*5113495bSYour Name 185*5113495bSYour Name Reserved: Should be set to 1 by the MAC and ignored by 186*5113495bSYour Name the PHY <legal 1> 187*5113495bSYour Name 188*5113495bSYour Name reserved_0 189*5113495bSYour Name 190*5113495bSYour Name This field is not part of HT-SIG: 191*5113495bSYour Name 192*5113495bSYour Name Reserved: Should be set to 0 by the MAC and ignored by 193*5113495bSYour Name the PHY <legal 0> 194*5113495bSYour Name 195*5113495bSYour Name gi_setting 196*5113495bSYour Name 197*5113495bSYour Name <enum 0 normal_gi> Indicates short guard interval 198*5113495bSYour Name is not used in the data field 199*5113495bSYour Name 200*5113495bSYour Name <enum 1 short_gi> Indicates short guard interval is 201*5113495bSYour Name used in the data field 202*5113495bSYour Name 203*5113495bSYour Name <enum 3 short_gi_ambiguity> Indicates short guard 204*5113495bSYour Name interval is used in the data field and NSYM mod 10 = 9 205*5113495bSYour Name 206*5113495bSYour Name NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 207*5113495bSYour Name (TXTIME and PSDU_LENGTH calculation). 208*5113495bSYour Name 209*5113495bSYour Name <legal 0,1,3> 210*5113495bSYour Name 211*5113495bSYour Name su_mu_coding 212*5113495bSYour Name 213*5113495bSYour Name For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For 214*5113495bSYour Name an MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then 215*5113495bSYour Name B2 indicates the coding used for user 0; set to 0 for BCC 216*5113495bSYour Name and 1 for LDPC. If the MU[0] NSTS field is 0, then this 217*5113495bSYour Name field is reserved and set to 1 218*5113495bSYour Name 219*5113495bSYour Name ldpc_extra_symbol 220*5113495bSYour Name 221*5113495bSYour Name Set to 1 if the LDPC PPDU encoding process (if an SU 222*5113495bSYour Name PPDU), or at least one LDPC user's PPDU encoding process (if 223*5113495bSYour Name an MU PPDU), results in an extra OFDM symbol (or symbols) as 224*5113495bSYour Name described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5 225*5113495bSYour Name (Encoding process for MU PPDUs). Set to 0 otherwise. 226*5113495bSYour Name 227*5113495bSYour Name mcs 228*5113495bSYour Name 229*5113495bSYour Name For SU: 230*5113495bSYour Name 231*5113495bSYour Name Set to 0 for BPSK 1/2 232*5113495bSYour Name 233*5113495bSYour Name Set to 1 for QPSK 1/2 234*5113495bSYour Name 235*5113495bSYour Name Set to 2 for QPSK 3/4 236*5113495bSYour Name 237*5113495bSYour Name Set to 3 for 16-QAM 1/2 238*5113495bSYour Name 239*5113495bSYour Name Set to 4 for 16-QAM 3/4 240*5113495bSYour Name 241*5113495bSYour Name Set to 5 for 64-QAM 2/3 242*5113495bSYour Name 243*5113495bSYour Name Set to 6 for 64-QAM 3/4 244*5113495bSYour Name 245*5113495bSYour Name Set to 7 for 64-QAM 5/6 246*5113495bSYour Name 247*5113495bSYour Name Set to 8 for 256-QAM 3/4 248*5113495bSYour Name 249*5113495bSYour Name Set to 9 for 256-QAM 5/6 250*5113495bSYour Name 251*5113495bSYour Name For MU: 252*5113495bSYour Name 253*5113495bSYour Name If NSTS for user 1 is non-zero, then vht_sig_a[1][4] 254*5113495bSYour Name indicates coding for user 1: set to 0 for BCC, 1 for LDPC. 255*5113495bSYour Name 256*5113495bSYour Name If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 257*5113495bSYour Name reserved and set to 1. 258*5113495bSYour Name 259*5113495bSYour Name If NSTS for user 2 is non-zero, then vht_sig_a[1][5] 260*5113495bSYour Name indicates coding for user 2: set to 0 for BCC, 1 for LDPC. 261*5113495bSYour Name 262*5113495bSYour Name If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 263*5113495bSYour Name reserved and set to 1. 264*5113495bSYour Name 265*5113495bSYour Name If NSTS for user 3 is non-zero, then vht_sig_a[1][6] 266*5113495bSYour Name indicates coding for user 3: set to 0 for BCC, 1 for LDPC. 267*5113495bSYour Name 268*5113495bSYour Name If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 269*5113495bSYour Name reserved and set to 1. 270*5113495bSYour Name 271*5113495bSYour Name vht_sig_a[1][7] is reserved and set to 1 272*5113495bSYour Name 273*5113495bSYour Name <legal 0-15> 274*5113495bSYour Name 275*5113495bSYour Name beamformed 276*5113495bSYour Name 277*5113495bSYour Name For SU: 278*5113495bSYour Name 279*5113495bSYour Name Set to 1 if a Beamforming steering matrix is applied to 280*5113495bSYour Name the waveform in an SU transmission as described in 281*5113495bSYour Name IEEE802.11ac_D1.0 Section 19.3.11.11.2 (Spatial mapping), 282*5113495bSYour Name set to 0 otherwise. 283*5113495bSYour Name 284*5113495bSYour Name For MU: 285*5113495bSYour Name 286*5113495bSYour Name Reserved and set to 1 287*5113495bSYour Name 288*5113495bSYour Name <legal 0-1> 289*5113495bSYour Name 290*5113495bSYour Name vhta_reserved_1 291*5113495bSYour Name 292*5113495bSYour Name Reserved and set to 1. <legal 1> 293*5113495bSYour Name 294*5113495bSYour Name crc 295*5113495bSYour Name 296*5113495bSYour Name CRC calculated as in IEEE802.11ac_D1.0 Section 297*5113495bSYour Name 19.3.9.4.4 (CRC calculation for HTSIG) with C7 in 298*5113495bSYour Name vht_sig_a[1][10], etc. <legal all> 299*5113495bSYour Name 300*5113495bSYour Name tail 301*5113495bSYour Name 302*5113495bSYour Name Used to terminate the trellis of the convolutional 303*5113495bSYour Name decoder. Set to 0. <legal 0> 304*5113495bSYour Name 305*5113495bSYour Name reserved_1 306*5113495bSYour Name 307*5113495bSYour Name This field is not part of HT-SIG: 308*5113495bSYour Name 309*5113495bSYour Name Reserved: Should be set to 0 by the MAC and ignored by 310*5113495bSYour Name the PHY <legal 0> 311*5113495bSYour Name */ 312*5113495bSYour Name 313*5113495bSYour Name 314*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_BANDWIDTH 315*5113495bSYour Name 316*5113495bSYour Name Packet bandwidth 317*5113495bSYour Name 318*5113495bSYour Name 319*5113495bSYour Name 320*5113495bSYour Name <enum 0 20_MHZ_11AC> 321*5113495bSYour Name 322*5113495bSYour Name <enum 1 40_MHZ_11AC> 323*5113495bSYour Name 324*5113495bSYour Name <enum 2 80_MHZ_11AC> 325*5113495bSYour Name 326*5113495bSYour Name <enum 3 160_MHZ_11AC> 327*5113495bSYour Name 328*5113495bSYour Name 329*5113495bSYour Name 330*5113495bSYour Name <legal 0-3> 331*5113495bSYour Name */ 332*5113495bSYour Name #define VHT_SIG_A_INFO_0_BANDWIDTH_OFFSET 0x00000000 333*5113495bSYour Name #define VHT_SIG_A_INFO_0_BANDWIDTH_LSB 0 334*5113495bSYour Name #define VHT_SIG_A_INFO_0_BANDWIDTH_MASK 0x00000003 335*5113495bSYour Name 336*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_VHTA_RESERVED_0 337*5113495bSYour Name 338*5113495bSYour Name Reserved. Set to 1 by MAC, PHY should ignore 339*5113495bSYour Name 340*5113495bSYour Name <legal 1> 341*5113495bSYour Name */ 342*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0_OFFSET 0x00000000 343*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0_LSB 2 344*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0_MASK 0x00000004 345*5113495bSYour Name 346*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_STBC 347*5113495bSYour Name 348*5113495bSYour Name Space time block coding: 349*5113495bSYour Name 350*5113495bSYour Name <enum 0 stbc_disabled> Indicates STBC is disabled 351*5113495bSYour Name 352*5113495bSYour Name <enum 1 stbc_enabled> Indicates STBC is enabled on 353*5113495bSYour Name all streams 354*5113495bSYour Name 355*5113495bSYour Name <legal 0-1> 356*5113495bSYour Name */ 357*5113495bSYour Name #define VHT_SIG_A_INFO_0_STBC_OFFSET 0x00000000 358*5113495bSYour Name #define VHT_SIG_A_INFO_0_STBC_LSB 3 359*5113495bSYour Name #define VHT_SIG_A_INFO_0_STBC_MASK 0x00000008 360*5113495bSYour Name 361*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_GROUP_ID 362*5113495bSYour Name 363*5113495bSYour Name In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 364*5113495bSYour Name to an AP or to a mesh STA, the Group ID field is set to 0, 365*5113495bSYour Name otherwise it is set to 63. In an NDP PPDU the Group ID is 366*5113495bSYour Name set according to IEEE 802.11ac_D1.0 Section 9.30.6 367*5113495bSYour Name (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group ID 368*5113495bSYour Name is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group ID). 369*5113495bSYour Name <legal all> 370*5113495bSYour Name */ 371*5113495bSYour Name #define VHT_SIG_A_INFO_0_GROUP_ID_OFFSET 0x00000000 372*5113495bSYour Name #define VHT_SIG_A_INFO_0_GROUP_ID_LSB 4 373*5113495bSYour Name #define VHT_SIG_A_INFO_0_GROUP_ID_MASK 0x000003f0 374*5113495bSYour Name 375*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_N_STS 376*5113495bSYour Name 377*5113495bSYour Name For MU: 378*5113495bSYour Name 379*5113495bSYour Name 3 bits/user with maximum of 4 users (user u uses 380*5113495bSYour Name 381*5113495bSYour Name vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 382*5113495bSYour Name 3) 383*5113495bSYour Name 384*5113495bSYour Name Set to 0 for 0 space time streams 385*5113495bSYour Name 386*5113495bSYour Name Set to 1 for 1 space time stream 387*5113495bSYour Name 388*5113495bSYour Name Set to 2 for 2 space time streams 389*5113495bSYour Name 390*5113495bSYour Name Set to 3 for 3 space time streams 391*5113495bSYour Name 392*5113495bSYour Name Set to 4 for 4 space time streams (not supported in Wifi 393*5113495bSYour Name 3.0) 394*5113495bSYour Name 395*5113495bSYour Name Values 5-7 are reserved 396*5113495bSYour Name 397*5113495bSYour Name In this field, references to user u should be 398*5113495bSYour Name interpreted as MU user u. As described in the previous 399*5113495bSYour Name chapter in this document (see chapter on User number), the 400*5113495bSYour Name MU user value for a given client is defined for each MU 401*5113495bSYour Name group that the client participates in. The MU user number is 402*5113495bSYour Name not related to the internal user number that is used within 403*5113495bSYour Name the BFer. 404*5113495bSYour Name 405*5113495bSYour Name 406*5113495bSYour Name 407*5113495bSYour Name 408*5113495bSYour Name 409*5113495bSYour Name For SU: 410*5113495bSYour Name 411*5113495bSYour Name vht_sig_a[0][12:10] 412*5113495bSYour Name 413*5113495bSYour Name Set to 0 for 1 space time stream 414*5113495bSYour Name 415*5113495bSYour Name Set to 1 for 2 space time streams 416*5113495bSYour Name 417*5113495bSYour Name Set to 2 for 3 space time streams 418*5113495bSYour Name 419*5113495bSYour Name Set to 3 for 4 space time streams 420*5113495bSYour Name 421*5113495bSYour Name Set to 4 for 5 space time streams 422*5113495bSYour Name 423*5113495bSYour Name Set to 5 for 6 space time streams 424*5113495bSYour Name 425*5113495bSYour Name Set to 6 for 7 space time streams 426*5113495bSYour Name 427*5113495bSYour Name Set to 7 for 8 space time streams 428*5113495bSYour Name 429*5113495bSYour Name 430*5113495bSYour Name 431*5113495bSYour Name vht_sig_a[0][21:13] 432*5113495bSYour Name 433*5113495bSYour Name Partial AID: 434*5113495bSYour Name 435*5113495bSYour Name Set to the value of the TXVECTOR parameter PARTIAL_AID. 436*5113495bSYour Name Partial AID provides an abbreviated indication of the 437*5113495bSYour Name intended recipient(s) of the frame (see IEEE802.11ac_D1.0 438*5113495bSYour Name Section 9.17a (Partial AID in VHT PPDUs)). 439*5113495bSYour Name 440*5113495bSYour Name <legal all> 441*5113495bSYour Name */ 442*5113495bSYour Name #define VHT_SIG_A_INFO_0_N_STS_OFFSET 0x00000000 443*5113495bSYour Name #define VHT_SIG_A_INFO_0_N_STS_LSB 10 444*5113495bSYour Name #define VHT_SIG_A_INFO_0_N_STS_MASK 0x003ffc00 445*5113495bSYour Name 446*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_TXOP_PS_NOT_ALLOWED 447*5113495bSYour Name 448*5113495bSYour Name E_num 0 txop_ps_allowed Not supported: If set to by 449*5113495bSYour Name VHT AP if it allows non-AP VHT STAs in TXOP power save mode 450*5113495bSYour Name to enter Doze state during a TXOP 451*5113495bSYour Name 452*5113495bSYour Name <enum 1 no_txop_ps_allowed> Otherwise 453*5113495bSYour Name 454*5113495bSYour Name <legal 1> 455*5113495bSYour Name */ 456*5113495bSYour Name #define VHT_SIG_A_INFO_0_TXOP_PS_NOT_ALLOWED_OFFSET 0x00000000 457*5113495bSYour Name #define VHT_SIG_A_INFO_0_TXOP_PS_NOT_ALLOWED_LSB 22 458*5113495bSYour Name #define VHT_SIG_A_INFO_0_TXOP_PS_NOT_ALLOWED_MASK 0x00400000 459*5113495bSYour Name 460*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_VHTA_RESERVED_0B 461*5113495bSYour Name 462*5113495bSYour Name Reserved: Should be set to 1 by the MAC and ignored by 463*5113495bSYour Name the PHY <legal 1> 464*5113495bSYour Name */ 465*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0B_OFFSET 0x00000000 466*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0B_LSB 23 467*5113495bSYour Name #define VHT_SIG_A_INFO_0_VHTA_RESERVED_0B_MASK 0x00800000 468*5113495bSYour Name 469*5113495bSYour Name /* Description VHT_SIG_A_INFO_0_RESERVED_0 470*5113495bSYour Name 471*5113495bSYour Name This field is not part of HT-SIG: 472*5113495bSYour Name 473*5113495bSYour Name Reserved: Should be set to 0 by the MAC and ignored by 474*5113495bSYour Name the PHY <legal 0> 475*5113495bSYour Name */ 476*5113495bSYour Name #define VHT_SIG_A_INFO_0_RESERVED_0_OFFSET 0x00000000 477*5113495bSYour Name #define VHT_SIG_A_INFO_0_RESERVED_0_LSB 24 478*5113495bSYour Name #define VHT_SIG_A_INFO_0_RESERVED_0_MASK 0xff000000 479*5113495bSYour Name 480*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_GI_SETTING 481*5113495bSYour Name 482*5113495bSYour Name <enum 0 normal_gi> Indicates short guard interval 483*5113495bSYour Name is not used in the data field 484*5113495bSYour Name 485*5113495bSYour Name <enum 1 short_gi> Indicates short guard interval is 486*5113495bSYour Name used in the data field 487*5113495bSYour Name 488*5113495bSYour Name <enum 3 short_gi_ambiguity> Indicates short guard 489*5113495bSYour Name interval is used in the data field and NSYM mod 10 = 9 490*5113495bSYour Name 491*5113495bSYour Name NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 492*5113495bSYour Name (TXTIME and PSDU_LENGTH calculation). 493*5113495bSYour Name 494*5113495bSYour Name <legal 0,1,3> 495*5113495bSYour Name */ 496*5113495bSYour Name #define VHT_SIG_A_INFO_1_GI_SETTING_OFFSET 0x00000004 497*5113495bSYour Name #define VHT_SIG_A_INFO_1_GI_SETTING_LSB 0 498*5113495bSYour Name #define VHT_SIG_A_INFO_1_GI_SETTING_MASK 0x00000003 499*5113495bSYour Name 500*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_SU_MU_CODING 501*5113495bSYour Name 502*5113495bSYour Name For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For 503*5113495bSYour Name an MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then 504*5113495bSYour Name B2 indicates the coding used for user 0; set to 0 for BCC 505*5113495bSYour Name and 1 for LDPC. If the MU[0] NSTS field is 0, then this 506*5113495bSYour Name field is reserved and set to 1 507*5113495bSYour Name */ 508*5113495bSYour Name #define VHT_SIG_A_INFO_1_SU_MU_CODING_OFFSET 0x00000004 509*5113495bSYour Name #define VHT_SIG_A_INFO_1_SU_MU_CODING_LSB 2 510*5113495bSYour Name #define VHT_SIG_A_INFO_1_SU_MU_CODING_MASK 0x00000004 511*5113495bSYour Name 512*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_LDPC_EXTRA_SYMBOL 513*5113495bSYour Name 514*5113495bSYour Name Set to 1 if the LDPC PPDU encoding process (if an SU 515*5113495bSYour Name PPDU), or at least one LDPC user's PPDU encoding process (if 516*5113495bSYour Name an MU PPDU), results in an extra OFDM symbol (or symbols) as 517*5113495bSYour Name described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5 518*5113495bSYour Name (Encoding process for MU PPDUs). Set to 0 otherwise. 519*5113495bSYour Name */ 520*5113495bSYour Name #define VHT_SIG_A_INFO_1_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004 521*5113495bSYour Name #define VHT_SIG_A_INFO_1_LDPC_EXTRA_SYMBOL_LSB 3 522*5113495bSYour Name #define VHT_SIG_A_INFO_1_LDPC_EXTRA_SYMBOL_MASK 0x00000008 523*5113495bSYour Name 524*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_MCS 525*5113495bSYour Name 526*5113495bSYour Name For SU: 527*5113495bSYour Name 528*5113495bSYour Name Set to 0 for BPSK 1/2 529*5113495bSYour Name 530*5113495bSYour Name Set to 1 for QPSK 1/2 531*5113495bSYour Name 532*5113495bSYour Name Set to 2 for QPSK 3/4 533*5113495bSYour Name 534*5113495bSYour Name Set to 3 for 16-QAM 1/2 535*5113495bSYour Name 536*5113495bSYour Name Set to 4 for 16-QAM 3/4 537*5113495bSYour Name 538*5113495bSYour Name Set to 5 for 64-QAM 2/3 539*5113495bSYour Name 540*5113495bSYour Name Set to 6 for 64-QAM 3/4 541*5113495bSYour Name 542*5113495bSYour Name Set to 7 for 64-QAM 5/6 543*5113495bSYour Name 544*5113495bSYour Name Set to 8 for 256-QAM 3/4 545*5113495bSYour Name 546*5113495bSYour Name Set to 9 for 256-QAM 5/6 547*5113495bSYour Name 548*5113495bSYour Name For MU: 549*5113495bSYour Name 550*5113495bSYour Name If NSTS for user 1 is non-zero, then vht_sig_a[1][4] 551*5113495bSYour Name indicates coding for user 1: set to 0 for BCC, 1 for LDPC. 552*5113495bSYour Name 553*5113495bSYour Name If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 554*5113495bSYour Name reserved and set to 1. 555*5113495bSYour Name 556*5113495bSYour Name If NSTS for user 2 is non-zero, then vht_sig_a[1][5] 557*5113495bSYour Name indicates coding for user 2: set to 0 for BCC, 1 for LDPC. 558*5113495bSYour Name 559*5113495bSYour Name If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 560*5113495bSYour Name reserved and set to 1. 561*5113495bSYour Name 562*5113495bSYour Name If NSTS for user 3 is non-zero, then vht_sig_a[1][6] 563*5113495bSYour Name indicates coding for user 3: set to 0 for BCC, 1 for LDPC. 564*5113495bSYour Name 565*5113495bSYour Name If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 566*5113495bSYour Name reserved and set to 1. 567*5113495bSYour Name 568*5113495bSYour Name vht_sig_a[1][7] is reserved and set to 1 569*5113495bSYour Name 570*5113495bSYour Name <legal 0-15> 571*5113495bSYour Name */ 572*5113495bSYour Name #define VHT_SIG_A_INFO_1_MCS_OFFSET 0x00000004 573*5113495bSYour Name #define VHT_SIG_A_INFO_1_MCS_LSB 4 574*5113495bSYour Name #define VHT_SIG_A_INFO_1_MCS_MASK 0x000000f0 575*5113495bSYour Name 576*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_BEAMFORMED 577*5113495bSYour Name 578*5113495bSYour Name For SU: 579*5113495bSYour Name 580*5113495bSYour Name Set to 1 if a Beamforming steering matrix is applied to 581*5113495bSYour Name the waveform in an SU transmission as described in 582*5113495bSYour Name IEEE802.11ac_D1.0 Section 19.3.11.11.2 (Spatial mapping), 583*5113495bSYour Name set to 0 otherwise. 584*5113495bSYour Name 585*5113495bSYour Name For MU: 586*5113495bSYour Name 587*5113495bSYour Name Reserved and set to 1 588*5113495bSYour Name 589*5113495bSYour Name <legal 0-1> 590*5113495bSYour Name */ 591*5113495bSYour Name #define VHT_SIG_A_INFO_1_BEAMFORMED_OFFSET 0x00000004 592*5113495bSYour Name #define VHT_SIG_A_INFO_1_BEAMFORMED_LSB 8 593*5113495bSYour Name #define VHT_SIG_A_INFO_1_BEAMFORMED_MASK 0x00000100 594*5113495bSYour Name 595*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_VHTA_RESERVED_1 596*5113495bSYour Name 597*5113495bSYour Name Reserved and set to 1. <legal 1> 598*5113495bSYour Name */ 599*5113495bSYour Name #define VHT_SIG_A_INFO_1_VHTA_RESERVED_1_OFFSET 0x00000004 600*5113495bSYour Name #define VHT_SIG_A_INFO_1_VHTA_RESERVED_1_LSB 9 601*5113495bSYour Name #define VHT_SIG_A_INFO_1_VHTA_RESERVED_1_MASK 0x00000200 602*5113495bSYour Name 603*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_CRC 604*5113495bSYour Name 605*5113495bSYour Name CRC calculated as in IEEE802.11ac_D1.0 Section 606*5113495bSYour Name 19.3.9.4.4 (CRC calculation for HTSIG) with C7 in 607*5113495bSYour Name vht_sig_a[1][10], etc. <legal all> 608*5113495bSYour Name */ 609*5113495bSYour Name #define VHT_SIG_A_INFO_1_CRC_OFFSET 0x00000004 610*5113495bSYour Name #define VHT_SIG_A_INFO_1_CRC_LSB 10 611*5113495bSYour Name #define VHT_SIG_A_INFO_1_CRC_MASK 0x0003fc00 612*5113495bSYour Name 613*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_TAIL 614*5113495bSYour Name 615*5113495bSYour Name Used to terminate the trellis of the convolutional 616*5113495bSYour Name decoder. Set to 0. <legal 0> 617*5113495bSYour Name */ 618*5113495bSYour Name #define VHT_SIG_A_INFO_1_TAIL_OFFSET 0x00000004 619*5113495bSYour Name #define VHT_SIG_A_INFO_1_TAIL_LSB 18 620*5113495bSYour Name #define VHT_SIG_A_INFO_1_TAIL_MASK 0x00fc0000 621*5113495bSYour Name 622*5113495bSYour Name /* Description VHT_SIG_A_INFO_1_RESERVED_1 623*5113495bSYour Name 624*5113495bSYour Name This field is not part of HT-SIG: 625*5113495bSYour Name 626*5113495bSYour Name Reserved: Should be set to 0 by the MAC and ignored by 627*5113495bSYour Name the PHY <legal 0> 628*5113495bSYour Name */ 629*5113495bSYour Name #define VHT_SIG_A_INFO_1_RESERVED_1_OFFSET 0x00000004 630*5113495bSYour Name #define VHT_SIG_A_INFO_1_RESERVED_1_LSB 24 631*5113495bSYour Name #define VHT_SIG_A_INFO_1_RESERVED_1_MASK 0xff000000 632*5113495bSYour Name 633*5113495bSYour Name 634*5113495bSYour Name #endif // _VHT_SIG_A_INFO_H_ 635