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