xref: /wlan-driver/qcacld-3.0/core/mac/src/cfg/cfgUtil/dot11f.frms (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name/*
2*5113495bSYour Name * Copyright (c) 2006-2007, 2014-2018, 2020-2021 The Linux Foundation.
3*5113495bSYour Name * All rights reserved.
4*5113495bSYour Name * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
5*5113495bSYour Name *
6*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for
7*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the
8*5113495bSYour Name * above copyright notice and this permission notice appear in all
9*5113495bSYour Name * copies.
10*5113495bSYour Name *
11*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
12*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
13*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
14*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
15*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
16*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
17*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE.
19*5113495bSYour Name */
20*5113495bSYour Name
21*5113495bSYour Name/**
22*5113495bSYour Name * \file dot11f.frms
23*5113495bSYour Name *
24*5113495bSYour Name * \brief Primary 'frames' file for the MAC parser
25*5113495bSYour Name *
26*5113495bSYour Name *
27*5113495bSYour Name * This  file defines  several  802.11 frames  (along  with their  associated
28*5113495bSYour Name * constituents) in a little language  called "frames".  When run through the
29*5113495bSYour Name * 'framesc' program, it will generate  C code for working with these frames:
30*5113495bSYour Name * C  structs  representing the  802.11  frame  together  with functions  for
31*5113495bSYour Name * packing & unpacking them.
32*5113495bSYour Name *
33*5113495bSYour Name * For more information on the "frames" language, run 'framesc --help'...
34*5113495bSYour Name *
35*5113495bSYour Name *
36*5113495bSYour Name */
37*5113495bSYour Name
38*5113495bSYour Name
39*5113495bSYour Name// Tell framesc what types to use for...
40*5113495bSYour Name%8-bit-type   uint8_t  // 8,
41*5113495bSYour Name%16-bit-type  uint16_t // 16,
42*5113495bSYour Name%32-bit-type  uint32_t // & 32-bit unsigned integral types.  These can also
43*5113495bSYour Name                       // be specified on the command line.
44*5113495bSYour Name
45*5113495bSYour Name// Define some mnemonic constants; these are just for our use with the frames
46*5113495bSYour Name// files we're compiling.  IOW, they won't result in any C code being
47*5113495bSYour Name// emitted.
48*5113495bSYour Name
49*5113495bSYour Nameconst EID_SSID                       =   0;
50*5113495bSYour Nameconst EID_SUPP_RATES                 =   1;
51*5113495bSYour Nameconst EID_FH_PARAM_SET               =   2;
52*5113495bSYour Nameconst EID_DS_PARAM_SET               =   3;
53*5113495bSYour Nameconst EID_CF_PARAM_SET               =   4;
54*5113495bSYour Nameconst EID_TIM                        =   5;
55*5113495bSYour Nameconst EID_IBSS_PARAM_SET             =   6;
56*5113495bSYour Nameconst EID_COUNTRY                    =   7;
57*5113495bSYour Nameconst EID_FH_PATTERN                 =   8;
58*5113495bSYour Nameconst EID_FH_PATT_TABLE              =   9;
59*5113495bSYour Nameconst EID_REQUEST                    =  10;
60*5113495bSYour Nameconst EID_QBSS_LOAD                  =  11;
61*5113495bSYour Nameconst EID_EDCA_PARAM_SET             =  12;
62*5113495bSYour Nameconst EID_TSPEC                      =  13;
63*5113495bSYour Nameconst EID_TCLAS                      =  14;
64*5113495bSYour Nameconst EID_SCHEDULE                   =  15;
65*5113495bSYour Nameconst EID_CHALLENGE_TEXT             =  16;
66*5113495bSYour Nameconst EID_POWER_CONSTRAINTS          =  32;
67*5113495bSYour Nameconst EID_POWER_CAPABILITY           =  33;
68*5113495bSYour Nameconst EID_TPC_REQUEST                =  34;
69*5113495bSYour Nameconst EID_TPC_REPORT                 =  35;
70*5113495bSYour Nameconst EID_SUPPORTED_CHANNELS         =  36;
71*5113495bSYour Nameconst EID_CHANNEL_SWITCH_ANN         =  37;
72*5113495bSYour Nameconst EID_MEAS_REQUEST               =  38;
73*5113495bSYour Nameconst EID_MEAS_REPORT                =  39;
74*5113495bSYour Nameconst EID_QUIET                      =  40;
75*5113495bSYour Nameconst EID_ERP_INFO                   =  42;
76*5113495bSYour Nameconst EID_TS_DELAY                   =  43;
77*5113495bSYour Nameconst EID_TCLASS_PROC                =  44;
78*5113495bSYour Nameconst EID_HT_CAPABILITIES            =  45;
79*5113495bSYour Nameconst EID_QOS_CAPABILITY             =  46;
80*5113495bSYour Nameconst EID_RSN                        =  48;
81*5113495bSYour Nameconst EID_EXT_SUPP_RATES             =  50;
82*5113495bSYour Nameconst EID_AP_CHAN_REPORT             =  51;
83*5113495bSYour Nameconst EID_NEIGHBOR_REPORT            =  52;
84*5113495bSYour Nameconst EID_RCPI                       =  53;
85*5113495bSYour Nameconst EID_FT_MOBILITY_DOMAIN         =  54;
86*5113495bSYour Nameconst EID_FT_INFO                    =  55;
87*5113495bSYour Nameconst EID_TIMEOUT_INTERVAL           =  56;
88*5113495bSYour Nameconst EID_FT_RIC_DATA                =  57;
89*5113495bSYour Nameconst EID_SUPPORTED_OPER_CLASSES     =  59;
90*5113495bSYour Nameconst EID_EXT_CHAN_SWITCH            =  60;
91*5113495bSYour Nameconst EID_HT_INFO                    =  61;
92*5113495bSYour Nameconst EID_SEC_CHAN_OFFSET            =  62;
93*5113495bSYour Nameconst EID_RSNI                       =  65;
94*5113495bSYour Nameconst EID_RRM_MEAS_PILOT_TX_INFO     =  66;
95*5113495bSYour Nameconst EID_WAPI                       =  68;
96*5113495bSYour Nameconst EID_TIME_ADVERTISEMENT         =  69;
97*5113495bSYour Nameconst EID_RRM_ENABLED_CAPS           =  70;
98*5113495bSYour Nameconst EID_MULTIPLE_BSSID             =  71;
99*5113495bSYour Nameconst EID_20_40_BSS_COEXISTENCE      =  72;
100*5113495bSYour Nameconst EID_20_40_BSS_INTOLERANT_REPORT=  73;
101*5113495bSYour Nameconst EID_OBSS_SCAN_PARAMETERS       =  74;
102*5113495bSYour Nameconst EID_FT_RIC_DESCRIPTOR          =  75;
103*5113495bSYour Nameconst EID_MSCS_STATUS                =  76;
104*5113495bSYour Nameconst EID_BSS_MAX_IDLE_PERIOD        =  90;
105*5113495bSYour Nameconst EID_LINK_IDENTIFIER            = 101;
106*5113495bSYour Nameconst EID_PTI_CONTROL                = 105;
107*5113495bSYour Nameconst EID_PU_BUFFER_STATUS           = 106;
108*5113495bSYour Nameconst EID_QOS_MAP_SET                = 110;
109*5113495bSYour Nameconst EID_ESE_SPECIFIC               = 150;
110*5113495bSYour Nameconst EID_ESE_CCKM_SPECIFIC          = 156;
111*5113495bSYour Nameconst EID_ADDBA_EXTN_ELEMENT         = 159;
112*5113495bSYour Nameconst EID_VHT_CAPABILITIES           =  191;
113*5113495bSYour Nameconst EID_VHT_OPERATION_ELEMENT      =  192;
114*5113495bSYour Nameconst EID_VHT_EXT_BSS_LOAD           =  193;
115*5113495bSYour Nameconst EID_AID                        =  197;
116*5113495bSYour Nameconst EID_EXT_CAP           	     =  127;
117*5113495bSYour Nameconst EID_OPERATING_MODE             =  199;
118*5113495bSYour Nameconst EID_WIDER_BW_CHANNEL_SWITCH_ANN=  194;
119*5113495bSYour Nameconst EID_TRANSMIT_POWER_ENVELOPE    = 195;
120*5113495bSYour Nameconst EID_CHANNEL_SWITCH_WRAPPER     = 196;
121*5113495bSYour Nameconst EID_RNR_IE                     = 201;
122*5113495bSYour Nameconst EID_VENDOR_SPECIFIC            = 221;
123*5113495bSYour Nameconst EID_FILS_INDICATION            = 240;
124*5113495bSYour Nameconst EID_FRAGMENT_IE                = 242;
125*5113495bSYour Name/**
126*5113495bSYour Name * Extended Element ID
127*5113495bSYour Name *
128*5113495bSYour Name * As part of IEEE-802.11-2016 spec, extended element ID is introduced(9.4.2.1)
129*5113495bSYour Name * Elements are defined to have a common general format consisting of a 1 octet
130*5113495bSYour Name * Element ID field, a 1 octet Length field, an optional 1 octet Element ID
131*5113495bSYour Name * Extension field, and a variable-length element-specific Information field.
132*5113495bSYour Name * Each element is identified by the contents of the Element ID and, when
133*5113495bSYour Name * present, Element ID Extension fields as defined in this standard. An Extended
134*5113495bSYour Name * Element ID is a combination of an Element ID and an Element ID Extension for
135*5113495bSYour Name * those elements that have a defined Element ID Extension. The Length field
136*5113495bSYour Name * specifies the number of octets following the Length field. The presence of
137*5113495bSYour Name * the Element ID Extension field is determined by the Element ID field having
138*5113495bSYour Name * value of 255
139*5113495bSYour Name */
140*5113495bSYour Nameconst EID_EXTN_ID_ELEMENT            = 255;
141*5113495bSYour Name
142*5113495bSYour Nameconst SIR_MAC_PROP_EXT_RATES_TYPE    =   0;
143*5113495bSYour Nameconst SIR_MAC_PROP_AP_NAME_TYPE      =   1;
144*5113495bSYour Nameconst SIR_MAC_PROP_HCF_TYPE          =   2;
145*5113495bSYour Nameconst SIR_MAC_PROP_WDS_TYPE          =   3;
146*5113495bSYour Nameconst SIR_MAC_PROP_BP_IND_TYPE       =   4;
147*5113495bSYour Nameconst SIR_MAC_PROP_NEIGHBOR_BSS_TYPE =   5;
148*5113495bSYour Nameconst SIR_MAC_PROP_LOAD_INFO_TYPE    =   6;
149*5113495bSYour Nameconst SIR_MAC_PROP_ASSOC_TYPE        =   7;
150*5113495bSYour Nameconst SIR_MAC_PROP_LOAD_BALANCE_TYPE =   8;
151*5113495bSYour Nameconst SIR_MAC_PROP_LL_ATTR_TYPE      =   9;
152*5113495bSYour Nameconst SIR_MAC_PROP_CAPABILITY        =  10;
153*5113495bSYour Nameconst SIR_MAC_PROP_VERSION           =  11;
154*5113495bSYour Nameconst SIR_MAC_PROP_EDCAPARAMS        =  12;
155*5113495bSYour Nameconst SIR_MAC_PROP_CHANNEL_SWITCH    =  15;
156*5113495bSYour Nameconst SIR_MAC_PROP_QUIET_BSS         =  16;
157*5113495bSYour Nameconst SIR_MAC_PROP_TRIG_STA_BK_SCAN	 =  17;
158*5113495bSYour Name
159*5113495bSYour Nameconst ANI_WDS_INFO_MAX_LENGTH        =  64;
160*5113495bSYour Nameconst SIR_MAC_MAX_NUMBER_OF_RATES    =  12;
161*5113495bSYour Nameconst HT_MAX_SUPPORTED_MCS_SET       =  16;
162*5113495bSYour Nameconst MAX_SUPPORTED_NEIGHBOR_RPT     =  15;
163*5113495bSYour Nameconst MAX_QOS_DSCP_DATA_LEN          =  58;
164*5113495bSYour Nameconst QOS_DSCP_RANGE_LEN             =  16;
165*5113495bSYour Name
166*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
167*5113495bSYour Name//                  Wi-Fi Protected Setup TLV Identifiers                  //
168*5113495bSYour Name//                  WSC Version 2.0.0 Table 28                             //
169*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
170*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
171*5113495bSYour Name//                  Wi-Fi Simple Configuration TLV Identifiers             //
172*5113495bSYour Name// WFA Vendor Extension Subelements                                        //
173*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
174*5113495bSYour Nameconst TLV_VERSION2                          = 0;
175*5113495bSYour Nameconst TLV_AUTHORIZED_MAC                    = 1;
176*5113495bSYour Nameconst TLV_NETWORK_KEY_SHAREABLE             = 2;
177*5113495bSYour Nameconst TLV_REQUEST_TO_ENROLL                 = 3;
178*5113495bSYour Nameconst TLV_SETTINGS_DELAY_TIME               = 4;
179*5113495bSYour Name
180*5113495bSYour Nameconst TLV_VERSION                           = 0x104A;
181*5113495bSYour Nameconst TLV_WI_FI_SIMPLE_CONFIG_STATE         = 0x1044;
182*5113495bSYour Nameconst TLV_AP_SETUP_LOCKED                   = 0x1057;
183*5113495bSYour Nameconst TLV_SELECTED_REGISTRAR_CONFIG_METHODS = 0x1053;
184*5113495bSYour Nameconst TLV_DEVICE_PASSWORD_ID                = 0x1012;
185*5113495bSYour Nameconst TLV_UUID_E                            = 0x1047;
186*5113495bSYour Nameconst TLV_UUID_R                            = 0x1048;
187*5113495bSYour Nameconst TLV_RF_BANDS                          = 0x103C;
188*5113495bSYour Nameconst TLV_REQUEST_TYPE                      = 0x103A;
189*5113495bSYour Nameconst TLV_RESPONSE_TYPE                     = 0x103B;
190*5113495bSYour Nameconst TLV_CONFIG_METHODS                    = 0x1008;
191*5113495bSYour Nameconst TLV_PRIMARY_DEVICE_TYPE               = 0x1054;
192*5113495bSYour Nameconst TLV_ASSOCIATION_STATE                 = 0x1002;
193*5113495bSYour Nameconst TLV_CONFIGURATION_ERROR               = 0x1009;
194*5113495bSYour Nameconst TLV_MANUFACTURER                      = 0x1021;
195*5113495bSYour Nameconst TLV_MODEL_NAME                        = 0x1023;
196*5113495bSYour Nameconst TLV_MODEL_NUMBER                      = 0x1024;
197*5113495bSYour Nameconst TLV_SERIAL_NUMBER                     = 0x1042;
198*5113495bSYour Nameconst TLV_DEVICE_NAME                       = 0x1011;
199*5113495bSYour Nameconst TLV_SELECTED_REGISTRAR                = 0x1041;
200*5113495bSYour Nameconst TLV_VENDOR_EXTENSION                  = 0x1049;
201*5113495bSYour Nameconst TLV_REQUESTED_DEVICE_TYPE             = 0x106A;
202*5113495bSYour Name
203*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
204*5113495bSYour Name//                  Wi-Fi Direct/P2P TLV Identifiers                       //
205*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
206*5113495bSYour Nameconst TLV_P2P_STATUS                         =   0;
207*5113495bSYour Nameconst TLV_MINOR_REASON_CODE                  =   1;
208*5113495bSYour Nameconst TLV_P2P_CAPABILITY                     =   2;
209*5113495bSYour Nameconst TLV_P2P_DEVICE_ID                      =   3;
210*5113495bSYour Nameconst TLV_P2P_GROUP_OWNER_INTENT             =   4;
211*5113495bSYour Nameconst TLV_CONFIGURATION_TIMEOUT              =   5;
212*5113495bSYour Nameconst TLV_LISTEN_CHANNEL                     =   6;
213*5113495bSYour Nameconst TLV_P2P_GROUP_BSSID                    =   7;
214*5113495bSYour Nameconst TLV_EXTENDED_LISTEN_TIMING             =   8;
215*5113495bSYour Nameconst TLV_INTENDED_P2P_INTERFACE_ADDRESS     =   9;
216*5113495bSYour Nameconst TLV_P2P_MANAGEABILITY                  =  10;
217*5113495bSYour Nameconst TLV_CHANNEL_LIST                       =  11;
218*5113495bSYour Nameconst TLV_NOTICE_OF_ABSENCE                  =  12;
219*5113495bSYour Nameconst TLV_P2P_DEVICE_INFO                    =  13;
220*5113495bSYour Nameconst TLV_P2P_GROUP_INFO                     =  14;
221*5113495bSYour Nameconst TLV_P2P_GROUP_ID                       =  15;
222*5113495bSYour Nameconst TLV_P2P_INTERFACE                      =  16;
223*5113495bSYour Nameconst TLV_OPERATING_CHANNEL                  =  17;
224*5113495bSYour Nameconst TLV_INVITATION_FLAGS                   =  18;
225*5113495bSYour Nameconst TLV_P2P_VENDOR_SPECIFIC                = 221;
226*5113495bSYour Name
227*5113495bSYour Name
228*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
229*5113495bSYour Name//                  MBO-OCE Attributes (0, 151-255: Reserved)              //
230*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
231*5113495bSYour Nameconst TLV_MBO_AP_CAP_ATTR                    =   1;
232*5113495bSYour Nameconst TLV_NON_PREFERRED_CHAN_REPORT_ATTR     =   2;
233*5113495bSYour Nameconst TLV_CELLULAR_DATA_CAP_ATTR             =   3;
234*5113495bSYour Nameconst TLV_ASSOC_DISSALLOWED_ATTR             =   4;
235*5113495bSYour Nameconst TLV_CELLULAR_DATA_CON_PREF_ATTR        =   5;
236*5113495bSYour Nameconst TLV_TRANSITION_REASON_CODE_ATTR        =   6;
237*5113495bSYour Nameconst TLV_TRANSITION_REJECT_REASON_CODE_ATTR =   7;
238*5113495bSYour Nameconst TLV_ASSOC_RETRY_DELAY_ATTR             =   8;
239*5113495bSYour Name
240*5113495bSYour Name// 9-100 : Reserved for MBO //
241*5113495bSYour Name
242*5113495bSYour Name// OCE ATTRIBUTES //
243*5113495bSYour Nameconst TLV_OCE_CAP_IND_ATTR                   =   101;
244*5113495bSYour Nameconst TLV_RSSI_ASSOC_REJ_ATTR                =   102;
245*5113495bSYour Nameconst TLV_REDUCED_WAN_METRICS_ATTR           =   103;
246*5113495bSYour Name// 104-150 : Reserved for OCE
247*5113495bSYour Name
248*5113495bSYour Name
249*5113495bSYour Name
250*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
251*5113495bSYour Name// Fixed Fields
252*5113495bSYour Name
253*5113495bSYour NameFF AuthAlgo (2)                           // C.f. Sec. 7.3.1.1
254*5113495bSYour Name{
255*5113495bSYour Name    algo, 2;
256*5113495bSYour Name}
257*5113495bSYour Name
258*5113495bSYour NameFF AuthSeqNo (2)                          // 7.3.1.2
259*5113495bSYour Name{
260*5113495bSYour Name    no, 2;
261*5113495bSYour Name}
262*5113495bSYour Name
263*5113495bSYour NameFF BeaconInterval (2)                     // 7.3.1.3
264*5113495bSYour Name{
265*5113495bSYour Name    interval, 2;
266*5113495bSYour Name}
267*5113495bSYour Name
268*5113495bSYour NameFF Capabilities (2)                       // 7.3.1.4
269*5113495bSYour Name{
270*5113495bSYour Name    {
271*5113495bSYour Name        ess:                1;
272*5113495bSYour Name        ibss:               1;
273*5113495bSYour Name        cfPollable:         1;
274*5113495bSYour Name        cfPollReq:          1;
275*5113495bSYour Name        privacy:            1;
276*5113495bSYour Name        shortPreamble:      1;
277*5113495bSYour Name        criticalUpdateFlag: 1;
278*5113495bSYour Name        channelAgility:     1;
279*5113495bSYour Name        spectrumMgt:        1;
280*5113495bSYour Name        qos:                1;
281*5113495bSYour Name        shortSlotTime:      1;
282*5113495bSYour Name        apsd:               1;
283*5113495bSYour Name        rrm:                1;
284*5113495bSYour Name        dsssOfdm:           1;
285*5113495bSYour Name        delayedBA:          1;
286*5113495bSYour Name        immediateBA:        1;
287*5113495bSYour Name    }
288*5113495bSYour Name}
289*5113495bSYour Name
290*5113495bSYour NameFF CurrentAPAddress(6)                    // 7.3.1.5
291*5113495bSYour Name{
292*5113495bSYour Name    mac[6];
293*5113495bSYour Name}
294*5113495bSYour Name
295*5113495bSYour NameFF ListenInterval (2)                     // 7.3.1.6
296*5113495bSYour Name{
297*5113495bSYour Name    interval, 2;
298*5113495bSYour Name}
299*5113495bSYour Name
300*5113495bSYour NameFF Reason (2)                             // 7.3.1.7
301*5113495bSYour Name{
302*5113495bSYour Name    code, 2;
303*5113495bSYour Name}
304*5113495bSYour Name
305*5113495bSYour NameFF AID (2)                                // 7.3.1.8
306*5113495bSYour Name{
307*5113495bSYour Name    associd, 2;
308*5113495bSYour Name}
309*5113495bSYour Name
310*5113495bSYour NameFF Status (2)                             // 7.3.1.9
311*5113495bSYour Name{
312*5113495bSYour Name    status, 2;
313*5113495bSYour Name}
314*5113495bSYour Name
315*5113495bSYour NameFF TimeStamp (8)                          // 7.3.1.10
316*5113495bSYour Name{
317*5113495bSYour Name    timestamp, 8;
318*5113495bSYour Name}
319*5113495bSYour Name
320*5113495bSYour NameFF Category (1)                           // 7.3.1.11
321*5113495bSYour Name{
322*5113495bSYour Name    category, 1;
323*5113495bSYour Name}
324*5113495bSYour Name
325*5113495bSYour NameFF Action (1)                             // 7.3.1.11
326*5113495bSYour Name{
327*5113495bSYour Name    action, 1;
328*5113495bSYour Name}
329*5113495bSYour Name
330*5113495bSYour NameFF TransactionId (2)                      // 7.3.1.11
331*5113495bSYour Name{
332*5113495bSYour Name    transId[2];
333*5113495bSYour Name}
334*5113495bSYour Name
335*5113495bSYour NameFF DialogToken (1)                        // 7.3.1.12
336*5113495bSYour Name{
337*5113495bSYour Name    token, 1;
338*5113495bSYour Name}
339*5113495bSYour Name
340*5113495bSYour NameFF StatusCode (1)                         // WMM Spec 2.2.10
341*5113495bSYour Name{
342*5113495bSYour Name    statusCode, 1;
343*5113495bSYour Name}
344*5113495bSYour Name
345*5113495bSYour NameFF p2p_action_oui (4)
346*5113495bSYour Name{
347*5113495bSYour Name    oui_data[4];
348*5113495bSYour Name}
349*5113495bSYour Name
350*5113495bSYour NameFF p2p_action_subtype (1)
351*5113495bSYour Name{
352*5113495bSYour Name    subtype, 1;
353*5113495bSYour Name}
354*5113495bSYour Name
355*5113495bSYour NameFF OperatingMode (1)
356*5113495bSYour Name{
357*5113495bSYour Name   {
358*5113495bSYour Name    //Operating Mode field
359*5113495bSYour Name    chanWidth:    2;
360*5113495bSYour Name    reserved:     2;
361*5113495bSYour Name    rxNSS:        3;
362*5113495bSYour Name    rxNSSType:    1;
363*5113495bSYour Name    }
364*5113495bSYour Name}
365*5113495bSYour Name
366*5113495bSYour NameFF SMPowerModeSet (1)				//7.3.1.25
367*5113495bSYour Name{
368*5113495bSYour Name    {
369*5113495bSYour Name        PowerSave_En: 1;
370*5113495bSYour Name        Mode: 1;
371*5113495bSYour Name        reserved: 6;
372*5113495bSYour Name     }
373*5113495bSYour Name}
374*5113495bSYour Name
375*5113495bSYour NameFF TSInfo (3)                             // 7.3.2.30
376*5113495bSYour Name{
377*5113495bSYour Name    {
378*5113495bSYour Name        traffic_type:    1;
379*5113495bSYour Name        tsid:            4;
380*5113495bSYour Name        direction:       2;
381*5113495bSYour Name        access_policy:   2;
382*5113495bSYour Name        aggregation:     1;
383*5113495bSYour Name        psb:             1;
384*5113495bSYour Name        user_priority:   3;
385*5113495bSYour Name        tsinfo_ack_pol:  2;
386*5113495bSYour Name        schedule:        1;
387*5113495bSYour Name        unused:         15;
388*5113495bSYour Name    }
389*5113495bSYour Name}
390*5113495bSYour Name
391*5113495bSYour NameFF NumOfRepetitions (2)
392*5113495bSYour Name{
393*5113495bSYour Name     repetitions, 2;
394*5113495bSYour Name}
395*5113495bSYour Name
396*5113495bSYour NameFF TxPower (1)
397*5113495bSYour Name{
398*5113495bSYour Name     txPower, 1;
399*5113495bSYour Name}
400*5113495bSYour Name
401*5113495bSYour NameFF MaxTxPower (1)
402*5113495bSYour Name{
403*5113495bSYour Name     maxTxPower, 1;
404*5113495bSYour Name}
405*5113495bSYour NameFF TPCEleID (1)
406*5113495bSYour Name{
407*5113495bSYour Name     TPCId, 1;
408*5113495bSYour Name}
409*5113495bSYour NameFF TPCEleLen (1)
410*5113495bSYour Name{
411*5113495bSYour Name     TPCLen, 1;
412*5113495bSYour Name}
413*5113495bSYour NameFF LinkMargin (1)
414*5113495bSYour Name{
415*5113495bSYour Name     linkMargin, 1;
416*5113495bSYour Name}
417*5113495bSYour NameFF RxAntennaId (1)
418*5113495bSYour Name{
419*5113495bSYour Name     antennaId, 1;
420*5113495bSYour Name}
421*5113495bSYour NameFF TxAntennaId (1)
422*5113495bSYour Name{
423*5113495bSYour Name     antennaId, 1;
424*5113495bSYour Name}
425*5113495bSYour NameFF RCPI (1)
426*5113495bSYour Name{
427*5113495bSYour Name     rcpi, 1;
428*5113495bSYour Name}
429*5113495bSYour NameFF RSNI (1)
430*5113495bSYour Name{
431*5113495bSYour Name     rsni, 1;
432*5113495bSYour Name}
433*5113495bSYour Name
434*5113495bSYour NameFF VhtMembershipStatusArray(8)                    // 8.4.1.51
435*5113495bSYour Name{
436*5113495bSYour Name    membershipStatusArray[8];
437*5113495bSYour Name}
438*5113495bSYour Name
439*5113495bSYour NameFF VhtUserPositionArray(16)                    // 8.4.1.52
440*5113495bSYour Name{
441*5113495bSYour Name    userPositionArray[16];
442*5113495bSYour Name}
443*5113495bSYour Name
444*5113495bSYour NameFF ext_chan_switch_ann_action(4)
445*5113495bSYour Name{
446*5113495bSYour Name   {
447*5113495bSYour Name     switch_mode: 8;
448*5113495bSYour Name     op_class: 8;
449*5113495bSYour Name     new_channel: 8;
450*5113495bSYour Name     switch_count: 8;
451*5113495bSYour Name   }
452*5113495bSYour Name}
453*5113495bSYour Name
454*5113495bSYour NameFF addba_param_set(2)
455*5113495bSYour Name{
456*5113495bSYour Name   {
457*5113495bSYour Name     amsdu_supp: 1;
458*5113495bSYour Name     policy: 1;
459*5113495bSYour Name     tid: 4;
460*5113495bSYour Name     buff_size: 10;
461*5113495bSYour Name   }
462*5113495bSYour Name}
463*5113495bSYour Name
464*5113495bSYour NameFF ba_timeout(2)
465*5113495bSYour Name{
466*5113495bSYour Name    timeout, 2;
467*5113495bSYour Name}
468*5113495bSYour Name
469*5113495bSYour NameFF ba_start_seq_ctrl(2)
470*5113495bSYour Name{
471*5113495bSYour Name    {
472*5113495bSYour Name      frag_number: 4;
473*5113495bSYour Name      ssn: 12;
474*5113495bSYour Name    }
475*5113495bSYour Name}
476*5113495bSYour Name
477*5113495bSYour NameFF vendor_oui (3)
478*5113495bSYour Name{
479*5113495bSYour Name    oui_data[3];
480*5113495bSYour Name}
481*5113495bSYour Name
482*5113495bSYour NameFF vendor_action_subtype (1)
483*5113495bSYour Name{
484*5113495bSYour Name    subtype, 1;
485*5113495bSYour Name}
486*5113495bSYour Name
487*5113495bSYour NameIE addba_extn_element(EID_ADDBA_EXTN_ELEMENT)
488*5113495bSYour Name{
489*5113495bSYour Name    {
490*5113495bSYour Name      no_fragmentation: 1;
491*5113495bSYour Name      he_frag_operation: 2;
492*5113495bSYour Name      reserved: 2;
493*5113495bSYour Name      extd_buff_size: 3;
494*5113495bSYour Name    }
495*5113495bSYour Name}
496*5113495bSYour Name
497*5113495bSYour NameFF delba_param_set(2)
498*5113495bSYour Name{
499*5113495bSYour Name    {
500*5113495bSYour Name      reserved: 11;
501*5113495bSYour Name      initiator: 1;
502*5113495bSYour Name      tid: 4;
503*5113495bSYour Name    }
504*5113495bSYour Name}
505*5113495bSYour Name
506*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
507*5113495bSYour Name//                                  TLVs                                   //
508*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
509*5113495bSYour Name
510*5113495bSYour Name/**
511*5113495bSYour Name * \brief Version
512*5113495bSYour Name *
513*5113495bSYour Name * WPS 1.0h
514*5113495bSYour Name * Version specifies  the Easy  Setup version. The  one-byte field  is broken
515*5113495bSYour Name * into a  four-bit major  part using  the top MSBs  and four-bit  minor part
516*5113495bSYour Name * using the LSBs. As an example, version 3.2 would be 0x32.
517*5113495bSYour Name *
518*5113495bSYour Name * WSC 2.0.0
519*5113495bSYour Name * Deprecated Version mechanism. This attribute is always set to value 0x10
520*5113495bSYour Name * (version 1.0) for backwards compatibility. Version 1.0h of the specification
521*5113495bSYour Name * did not fully describe the version negotiation mechanism and version 2.0
522*5113495bSYour Name * introduced a new subelement (Version2) for indicating the version number
523*5113495bSYour Name * to avoid potential interoperability issues with deployed 1.0h-based devices.
524*5113495bSYour Name *
525*5113495bSYour Name */
526*5113495bSYour Name
527*5113495bSYour NameTLV Version( TLV_VERSION ) ( 2 : 2 ) MSB
528*5113495bSYour Name{
529*5113495bSYour Name  {
530*5113495bSYour Name      minor: 4;
531*5113495bSYour Name      major: 4;
532*5113495bSYour Name  }
533*5113495bSYour Name}
534*5113495bSYour Name
535*5113495bSYour Name/// Wi-Fi Protected Setup State
536*5113495bSYour NameTLV WPSState( TLV_WI_FI_SIMPLE_CONFIG_STATE ) ( 2 : 2 ) MSB
537*5113495bSYour Name{
538*5113495bSYour Name  state, 1;
539*5113495bSYour Name}
540*5113495bSYour Name
541*5113495bSYour Name/**
542*5113495bSYour Name * \brief AP Setup Locked
543*5113495bSYour Name *
544*5113495bSYour Name *
545*5113495bSYour Name * This variable indicates that the AP has entered a state in which it will
546*5113495bSYour Name * refuse to allow an external Registrar to attempt to run the Registration
547*5113495bSYour Name * Protocol using the AP?s PIN (with the AP acting as Enrollee). The AP
548*5113495bSYour Name * should enter this state if it believes a brute force attack is underway
549*5113495bSYour Name * against the AP?s PIN.
550*5113495bSYour Name *
551*5113495bSYour Name * When the AP is in this state, it MUST continue to allow other Enrollees to
552*5113495bSYour Name * connect and run the Registration  Protocol with any external Registrars or
553*5113495bSYour Name * the AP's built-in  Registrar (if any). It  is only the use of  the AP' PIN
554*5113495bSYour Name * for adding external Registrars that is disabled in this state.
555*5113495bSYour Name *
556*5113495bSYour Name * The AP Setup Locked state can be reset to FALSE through an authenticated
557*5113495bSYour Name * call to SetAPSettings. APs may provide other implementation-specific
558*5113495bSYour Name * methods of resetting the AP Setup Locked state as well.
559*5113495bSYour Name *
560*5113495bSYour Name *
561*5113495bSYour Name */
562*5113495bSYour Name
563*5113495bSYour NameTLV APSetupLocked( TLV_AP_SETUP_LOCKED ) ( 2 : 2 ) MSB
564*5113495bSYour Name{
565*5113495bSYour Name    fLocked, 1;
566*5113495bSYour Name}
567*5113495bSYour Name
568*5113495bSYour Name/**
569*5113495bSYour Name * \brief Selected Registrar Config Methods
570*5113495bSYour Name *
571*5113495bSYour Name *
572*5113495bSYour Name * This attribute has the same values that Config Methods have. It is used in
573*5113495bSYour Name * Probe Response messages to convey the Config Methods of the selected
574*5113495bSYour Name * Registrar.
575*5113495bSYour Name *
576*5113495bSYour Name *
577*5113495bSYour Name */
578*5113495bSYour Name
579*5113495bSYour NameTLV SelectedRegistrarConfigMethods ( TLV_SELECTED_REGISTRAR_CONFIG_METHODS ) ( 2 : 2 ) MSB
580*5113495bSYour Name{
581*5113495bSYour Name    methods, 2;
582*5113495bSYour Name}
583*5113495bSYour Name
584*5113495bSYour Name/**
585*5113495bSYour Name * \brief UUID-E
586*5113495bSYour Name *
587*5113495bSYour Name *
588*5113495bSYour Name * The  universally  unique  identifier  (UUID)  element  is  a  unique  GUID
589*5113495bSYour Name * generated by  the Enrollee. It  uniquely identifies an  operational device
590*5113495bSYour Name * and  should survive reboots  and resets.  The UUID  is provided  in binary
591*5113495bSYour Name * format. If the device also supports UPnP, then the UUID corresponds to the
592*5113495bSYour Name * UPnP UUID.
593*5113495bSYour Name *
594*5113495bSYour Name *
595*5113495bSYour Name */
596*5113495bSYour Name
597*5113495bSYour NameTLV UUID_E ( TLV_UUID_E ) ( 2 : 2 ) MSB
598*5113495bSYour Name{
599*5113495bSYour Name    uuid[ 16 ];
600*5113495bSYour Name}
601*5113495bSYour Name
602*5113495bSYour Name/**
603*5113495bSYour Name * \brief UUID-R
604*5113495bSYour Name *
605*5113495bSYour Name *
606*5113495bSYour Name * The  universally  unique  identifier  (UUID)  element  is  a  unique  GUID
607*5113495bSYour Name * generated by  the Registrar. It uniquely identifies  an operational device
608*5113495bSYour Name * and  should survive reboots  and resets.  The UUID  is provided  in binary
609*5113495bSYour Name * format. If the device also supports UPnP, then the UUID corresponds to the
610*5113495bSYour Name * UPnP UUID.
611*5113495bSYour Name *
612*5113495bSYour Name *
613*5113495bSYour Name */
614*5113495bSYour Name
615*5113495bSYour NameTLV UUID_R ( TLV_UUID_R ) ( 2 : 2 ) MSB
616*5113495bSYour Name{
617*5113495bSYour Name    uuid[ 16 ];
618*5113495bSYour Name}
619*5113495bSYour Name
620*5113495bSYour Name/**
621*5113495bSYour Name * \brief RF Bands
622*5113495bSYour Name *
623*5113495bSYour Name *
624*5113495bSYour Name \code
625*5113495bSYour Name
626*5113495bSYour Name  0x01 2.4GHz
627*5113495bSYour Name  0x02 5.0GHz
628*5113495bSYour Name
629*5113495bSYour Name \endcode
630*5113495bSYour Name *
631*5113495bSYour Name *
632*5113495bSYour Name */
633*5113495bSYour Name
634*5113495bSYour NameTLV RFBands ( TLV_RF_BANDS ) ( 2 : 2 ) MSB
635*5113495bSYour Name{
636*5113495bSYour Name    bands, 1;
637*5113495bSYour Name}
638*5113495bSYour Name
639*5113495bSYour Name
640*5113495bSYour Name/**
641*5113495bSYour Name * \brief Selected Registrar
642*5113495bSYour Name *
643*5113495bSYour Name *
644*5113495bSYour Name * This field indicates that a Registrar has been selected by a user and that
645*5113495bSYour Name * an Enrollee  should proceed  with setting up  an 802.1X  uncontrolled data
646*5113495bSYour Name * port with the Registrar.
647*5113495bSYour Name *
648*5113495bSYour Name *
649*5113495bSYour Name */
650*5113495bSYour Name
651*5113495bSYour NameTLV SelectedRegistrar ( TLV_SELECTED_REGISTRAR ) ( 2 : 2 ) MSB
652*5113495bSYour Name{
653*5113495bSYour Name    selected, 1;
654*5113495bSYour Name}
655*5113495bSYour Name
656*5113495bSYour Name/**
657*5113495bSYour Name * \brief Config Methods
658*5113495bSYour Name *
659*5113495bSYour Name *
660*5113495bSYour Name * The  Config Methods  Data component  lists the  configuration  methods the
661*5113495bSYour Name * Enrollee or Registrar  supports.  The list is a bitwise  OR of values from
662*5113495bSYour Name * the table below. In addition to  Config Methods, APs and STAs that support
663*5113495bSYour Name * the UPnP  Management Interface must  support the Permitted  Config Methods
664*5113495bSYour Name * attribute, which is used to control the Config Methods that are enabled on
665*5113495bSYour Name * that AP.
666*5113495bSYour Name *
667*5113495bSYour Name \code
668*5113495bSYour Name
669*5113495bSYour Name   Value   Hardware Interface
670*5113495bSYour Name   0x0001  USBA (Flash Drive)
671*5113495bSYour Name   0x0002  Ethernet
672*5113495bSYour Name   0x0004  Label
673*5113495bSYour Name   0x0008  Display
674*5113495bSYour Name   0x0010  External NFC Token
675*5113495bSYour Name   0x0020  Integrated NFC Token
676*5113495bSYour Name   0x0040  NFC Interface
677*5113495bSYour Name   0x0080  PushButton
678*5113495bSYour Name   0x0100  Keypad
679*5113495bSYour Name
680*5113495bSYour Name \endcode
681*5113495bSYour Name *
682*5113495bSYour Name *
683*5113495bSYour Name */
684*5113495bSYour Name
685*5113495bSYour NameTLV ConfigMethods ( TLV_CONFIG_METHODS ) ( 2 : 2 ) MSB
686*5113495bSYour Name{
687*5113495bSYour Name    methods, 2;
688*5113495bSYour Name}
689*5113495bSYour Name
690*5113495bSYour Name/**
691*5113495bSYour Name * \brief Association State
692*5113495bSYour Name *
693*5113495bSYour Name *
694*5113495bSYour Name * The  Association  State component  shows  the  configuration and  previous
695*5113495bSYour Name * association  state  of  the  wireless  station when  sending  a  Discovery
696*5113495bSYour Name * request.
697*5113495bSYour Name *
698*5113495bSYour Name \code
699*5113495bSYour Name
700*5113495bSYour Name  Association State    Description
701*5113495bSYour Name  0                    Not Associated
702*5113495bSYour Name  1                    Connection Success
703*5113495bSYour Name  2                    Configuration Failure
704*5113495bSYour Name  3                    Association Failure
705*5113495bSYour Name  4                    IP Failure
706*5113495bSYour Name
707*5113495bSYour Name \endcode
708*5113495bSYour Name *
709*5113495bSYour Name *
710*5113495bSYour Name */
711*5113495bSYour Name
712*5113495bSYour NameTLV AssociationState ( TLV_ASSOCIATION_STATE ) ( 2 : 2 ) MSB
713*5113495bSYour Name{
714*5113495bSYour Name    state, 2;
715*5113495bSYour Name}
716*5113495bSYour Name
717*5113495bSYour Name/**
718*5113495bSYour Name * \brief Configuration Error
719*5113495bSYour Name *
720*5113495bSYour Name *
721*5113495bSYour Name * The  Configuration  Error  component   shows  the  result  of  the  device
722*5113495bSYour Name * attempting to configure itself and to associate with the WLAN.
723*5113495bSYour Name *
724*5113495bSYour Name \code
725*5113495bSYour Name
726*5113495bSYour Name   Configuration Error  Description
727*5113495bSYour Name    0                   No Error
728*5113495bSYour Name    1                   OOB Interface Read Error
729*5113495bSYour Name    2                   Decryption CRC Failure
730*5113495bSYour Name    3                   2.4 channel not supported
731*5113495bSYour Name    4                   5.0 channel not supported
732*5113495bSYour Name    5                   Signal too weak
733*5113495bSYour Name    6                   Network auth failure
734*5113495bSYour Name    7                   Network association failure
735*5113495bSYour Name    8                   No DHCP response
736*5113495bSYour Name    9                   Failed DHCP config
737*5113495bSYour Name   10                   IP address conflict
738*5113495bSYour Name   11                   Couldn't connect to Registrar
739*5113495bSYour Name   12                   Multiple PBC sessions detected
740*5113495bSYour Name   13                   Rogue activity suspected
741*5113495bSYour Name   14                   Device busy
742*5113495bSYour Name   15                   Setup locked
743*5113495bSYour Name   16                   Message Timeout
744*5113495bSYour Name   17                   Registration Session Timeout
745*5113495bSYour Name   18                   Device Password Auth Failure
746*5113495bSYour Name
747*5113495bSYour Name \endcode
748*5113495bSYour Name *
749*5113495bSYour Name * The  Device busy  error is  returned if  the sending  device is  unable to
750*5113495bSYour Name * respond  to  the  request  due  to  some  internal  conflict  or  resource
751*5113495bSYour Name * contention issue. For example, if a device is only capable of performing a
752*5113495bSYour Name * single instance of the Registration Protocol at a time, it may return this
753*5113495bSYour Name * error in response  to attempts to start another instance  in the middle of
754*5113495bSYour Name * an active session.
755*5113495bSYour Name *
756*5113495bSYour Name *
757*5113495bSYour Name */
758*5113495bSYour Name
759*5113495bSYour NameTLV ConfigurationError ( TLV_CONFIGURATION_ERROR ) ( 2 : 2 ) MSB
760*5113495bSYour Name{
761*5113495bSYour Name    error, 2;
762*5113495bSYour Name}
763*5113495bSYour Name
764*5113495bSYour NameTLV Manufacturer ( TLV_MANUFACTURER ) ( 2 : 2 ) MSB
765*5113495bSYour Name{
766*5113495bSYour Name    name[ 0..64 ];
767*5113495bSYour Name}
768*5113495bSYour Name
769*5113495bSYour NameTLV ModelName ( TLV_MODEL_NAME ) ( 2 : 2 ) MSB
770*5113495bSYour Name{
771*5113495bSYour Name    text[ 0..32 ];
772*5113495bSYour Name}
773*5113495bSYour Name
774*5113495bSYour NameTLV ModelNumber ( TLV_MODEL_NUMBER ) ( 2 : 2 ) MSB
775*5113495bSYour Name{
776*5113495bSYour Name    text[ 0..32 ];
777*5113495bSYour Name}
778*5113495bSYour Name
779*5113495bSYour NameTLV SerialNumber ( TLV_SERIAL_NUMBER ) ( 2 : 2 ) MSB
780*5113495bSYour Name{
781*5113495bSYour Name    text[ 0..32 ];
782*5113495bSYour Name}
783*5113495bSYour Name
784*5113495bSYour NameTLV DeviceName ( TLV_DEVICE_NAME ) ( 2 : 2 ) MSB
785*5113495bSYour Name{
786*5113495bSYour Name    text[ 0..32 ];
787*5113495bSYour Name}
788*5113495bSYour Name
789*5113495bSYour Name/**
790*5113495bSYour Name * \brief Device Password ID
791*5113495bSYour Name *
792*5113495bSYour Name *
793*5113495bSYour Name * This  attribute is  used  to identify  a  device password.  There are  six
794*5113495bSYour Name * predefined values  and ten reserved values.  If the Device  Password ID is
795*5113495bSYour Name * Default,  the Enrollee  should use  its PIN  password (from  the  label or
796*5113495bSYour Name * display).  This  password may  correspond  to  the  label, display,  or  a
797*5113495bSYour Name * user-defined  password that has  been configured  to replace  the original
798*5113495bSYour Name * device password.
799*5113495bSYour Name *
800*5113495bSYour Name * User-specified indicates that the user  has overridden the password with a
801*5113495bSYour Name * manually  selected value.  Machine-specified  indicates that  the original
802*5113495bSYour Name * PIN  password has  been overridden  by a  strong,  machinegenerated device
803*5113495bSYour Name * password  value.  The Rekey  value  indicates  that  the device's  256-bit
804*5113495bSYour Name * rekeying password  will be used.  The PushButton value indicates  that the
805*5113495bSYour Name * PIN  is  the all-zero  value  reserved  for  the PushButton  Configuration
806*5113495bSYour Name * method.
807*5113495bSYour Name *
808*5113495bSYour Name * The Registrar-specified value indicates a  PIN that has been obtained from
809*5113495bSYour Name * the Registrar (via a display  or other out-of-band method). This value may
810*5113495bSYour Name * be further  augmented with the  optional 'Identity' attribute in  M1. This
811*5113495bSYour Name * augmentation is useful when multiple predefined UserID/PIN pairs have been
812*5113495bSYour Name * established  by a  Registrar such  as  an authenticator  used for  Hotspot
813*5113495bSYour Name * access. If the  Device Password ID in  M1 is not one of  the predefined or
814*5113495bSYour Name * reserved values, it corresponds to a password given to the Registrar as an
815*5113495bSYour Name * OOB Device Password.
816*5113495bSYour Name *
817*5113495bSYour Name \code
818*5113495bSYour Name
819*5113495bSYour Name   Value            Description
820*5113495bSYour Name
821*5113495bSYour Name   0x0000           Default (PIN)
822*5113495bSYour Name   0x0001           User-specified
823*5113495bSYour Name   0x0002           Machine-specified
824*5113495bSYour Name   0x0003           Rekey
825*5113495bSYour Name   0x0004           PushButton
826*5113495bSYour Name   0x0005           Registrar-specified
827*5113495bSYour Name   0x0006 - 0x000F  Reserved
828*5113495bSYour Name
829*5113495bSYour Name \endcode
830*5113495bSYour Name *
831*5113495bSYour Name *
832*5113495bSYour Name */
833*5113495bSYour Name
834*5113495bSYour NameTLV DevicePasswordID ( TLV_DEVICE_PASSWORD_ID ) ( 2 : 2 ) MSB
835*5113495bSYour Name{
836*5113495bSYour Name    id, 2;
837*5113495bSYour Name}
838*5113495bSYour Name
839*5113495bSYour Name
840*5113495bSYour Name/**
841*5113495bSYour Name * \brief Primary Device Type
842*5113495bSYour Name *
843*5113495bSYour Name *
844*5113495bSYour Name * This attribute contains the primary type of the device. Its format
845*5113495bSYour Name * follows:
846*5113495bSYour Name *
847*5113495bSYour Name \code
848*5113495bSYour Name
849*5113495bSYour Name   0 1 2 3
850*5113495bSYour Name   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
851*5113495bSYour Name   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
852*5113495bSYour Name   | Attribute ID                   | Length                       |
853*5113495bSYour Name   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
854*5113495bSYour Name   | Category ID                    | OUI (1-2)                    |
855*5113495bSYour Name   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
856*5113495bSYour Name   | OUI (3-4)                      | Sub Category ID              |
857*5113495bSYour Name   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
858*5113495bSYour Name
859*5113495bSYour Name \endcode
860*5113495bSYour Name *
861*5113495bSYour Name * Vendor-specific sub-categories  are designated by  setting the OUI  to the
862*5113495bSYour Name * value associated with  that vendor.  Note that a  four-byte subdivided OUI
863*5113495bSYour Name * is used. For the predefined values, the  Wi-Fi Alliance OUI of 00 50 F2 04
864*5113495bSYour Name * is used.  The predefined values  for Category ID  and Sub Category  ID are
865*5113495bSYour Name * provided in the next table. There  is no way to indicate a vendor-specific
866*5113495bSYour Name * main device  category. The OUI applies  only to the  interpretation of the
867*5113495bSYour Name * Sub Category. If  a vendor does not use sub categories  for their OUI, the
868*5113495bSYour Name * three-byte OUI  occupies the first  three bytes of  the OUI field  and the
869*5113495bSYour Name * fourth byte is set to zero.
870*5113495bSYour Name *
871*5113495bSYour Name *
872*5113495bSYour Name \code
873*5113495bSYour Name
874*5113495bSYour Name   Category              ID Value  Sub Category             ID Value
875*5113495bSYour Name   Computer              1         PC                       1
876*5113495bSYour Name                                   Server                   2
877*5113495bSYour Name                                   Media Center             3
878*5113495bSYour Name   Input Device          2
879*5113495bSYour Name   Printers, Scanners,             Printer                  1
880*5113495bSYour Name   Faxes and Copiers     3         Scanner                  2
881*5113495bSYour Name   Camera                4         Digital Still Camera     1
882*5113495bSYour Name   Storage               5         NAS                      1
883*5113495bSYour Name   Network                         AP                       1
884*5113495bSYour Name   Infrastructure        6         Router                   2
885*5113495bSYour Name                                   Switch                   3
886*5113495bSYour Name   Displays              7         Television               1
887*5113495bSYour Name                                   Electronic Picture Frame 2
888*5113495bSYour Name                                   Projector                3
889*5113495bSYour Name   Multimedia Devices    8         DAR                      1
890*5113495bSYour Name                                   PVR                      2
891*5113495bSYour Name                                   MCX                      3
892*5113495bSYour Name   Gaming Devices        9         Xbox                     1
893*5113495bSYour Name                                   Xbox360                  2
894*5113495bSYour Name                                   Playstation              3
895*5113495bSYour Name   Telephone             10        Windows Mobile           1
896*5113495bSYour Name
897*5113495bSYour Name \endcode
898*5113495bSYour Name *
899*5113495bSYour Name *
900*5113495bSYour Name */
901*5113495bSYour Name
902*5113495bSYour NameTLV PrimaryDeviceType ( TLV_PRIMARY_DEVICE_TYPE ) ( 2 : 2 ) MSB
903*5113495bSYour Name{
904*5113495bSYour Name    primary_category, 2;
905*5113495bSYour Name    oui[ 4 ];
906*5113495bSYour Name    sub_category, 2;
907*5113495bSYour Name}
908*5113495bSYour Name
909*5113495bSYour Name
910*5113495bSYour Name/**
911*5113495bSYour Name * \brief Request Type
912*5113495bSYour Name *
913*5113495bSYour Name *
914*5113495bSYour Name * The Request  Type component  specifies the mode  in which the  device will
915*5113495bSYour Name * operate in for  this setup exchange. If the device is  an Enrollee, it may
916*5113495bSYour Name * send only  discovery messages  or it may  also request that  the Registrar
917*5113495bSYour Name * proceed with opening a data  connection. This protocol allows Enrollees to
918*5113495bSYour Name * more efficiently discover devices on the network.
919*5113495bSYour Name
920*5113495bSYour Name * If  the device  indicates that  it  intends to  engage setup  either as  a
921*5113495bSYour Name * Registrar or an  Enrollee, the Access Point continues  to indicate that it
922*5113495bSYour Name * will  operate as  an AP  in the  response. The  Request Type  attribute is
923*5113495bSYour Name * carried  throughout the  802.1X data  channel setup  process in  the Wi-Fi
924*5113495bSYour Name * Protected Setup IE.   There are two sub-types of  Registrars: WLAN Manager
925*5113495bSYour Name * Registrar indicates  that this Registrar intends  to manage the  AP or STA
926*5113495bSYour Name * settings using UPnP.  It will derive a UPnP AP or  STA Management key. The
927*5113495bSYour Name * ordinary Registrar type  indicates that this Registrar does  not intend to
928*5113495bSYour Name * subsequently  manage  the Enrollee's  settings.  APs  must  not derive  AP
929*5113495bSYour Name * Management Keys for an ordinary  Registrar. If a Registrar does not intend
930*5113495bSYour Name * to  be  a WLAN  Manager  Registrar,  it should  set  the  Request Type  to
931*5113495bSYour Name * Registrar. Doing so avoids needlessly consuming resources on the AP.
932*5113495bSYour Name
933*5113495bSYour Name \code
934*5113495bSYour Name
935*5113495bSYour Name Request Type Value        Description
936*5113495bSYour Name 0x00                      Enrollee, Info only
937*5113495bSYour Name 0x01                      Enrollee, open 802.1X
938*5113495bSYour Name 0x02                      Registrar
939*5113495bSYour Name 0x03                      WLAN Manager Registrar
940*5113495bSYour Name
941*5113495bSYour Name \endcode
942*5113495bSYour Name *
943*5113495bSYour Name *
944*5113495bSYour Name */
945*5113495bSYour Name
946*5113495bSYour NameTLV RequestType ( TLV_REQUEST_TYPE ) ( 2 : 2 ) MSB
947*5113495bSYour Name{
948*5113495bSYour Name    reqType, 1;
949*5113495bSYour Name}
950*5113495bSYour Name
951*5113495bSYour Name/**
952*5113495bSYour Name * \brief Response Type
953*5113495bSYour Name *
954*5113495bSYour Name *
955*5113495bSYour Name * The Response Type component specifies the operational mode of the
956*5113495bSYour Name * device for this setup exchange. The Response Type IE is carried
957*5113495bSYour Name * throughout the 802.1X data channel setup process.
958*5113495bSYour Name
959*5113495bSYour Name \code
960*5113495bSYour Name
961*5113495bSYour Name Response Type Value       Description
962*5113495bSYour Name 0x00                      Enrollee, Info only
963*5113495bSYour Name 0x01                      Enrollee, open 802.1X
964*5113495bSYour Name 0x02                      Registrar
965*5113495bSYour Name 0x03                      AP
966*5113495bSYour Name
967*5113495bSYour Name\endcode
968*5113495bSYour Name *
969*5113495bSYour Name *
970*5113495bSYour Name */
971*5113495bSYour Name
972*5113495bSYour NameTLV ResponseType ( TLV_RESPONSE_TYPE  ) ( 2 : 2 ) MSB
973*5113495bSYour Name{
974*5113495bSYour Name    resType, 1;
975*5113495bSYour Name}
976*5113495bSYour Name
977*5113495bSYour Name
978*5113495bSYour Name///////////////////////////////////////////////////////////////////////////
979*5113495bSYour Name//                       WiFi Direct/P2P TLVs                            //
980*5113495bSYour Name///////////////////////////////////////////////////////////////////////////
981*5113495bSYour Name
982*5113495bSYour Name/**
983*5113495bSYour Name * \brief P2P Status Attribute
984*5113495bSYour Name */
985*5113495bSYour Name
986*5113495bSYour NameTLV P2PStatus ( TLV_P2P_STATUS ) ( 1 : 2 ) LSB
987*5113495bSYour Name{
988*5113495bSYour Name    status, 1;
989*5113495bSYour Name}
990*5113495bSYour Name
991*5113495bSYour Name
992*5113495bSYour Name/**
993*5113495bSYour Name * \brief Minor Reason Code Attribute
994*5113495bSYour Name */
995*5113495bSYour Name
996*5113495bSYour NameTLV MinorReasonCode ( TLV_MINOR_REASON_CODE ) ( 1 : 2 ) LSB
997*5113495bSYour Name{
998*5113495bSYour Name    minorReasonCode, 1;
999*5113495bSYour Name}
1000*5113495bSYour Name
1001*5113495bSYour Name
1002*5113495bSYour Name/**
1003*5113495bSYour Name * \brief P2P Capability Attribute
1004*5113495bSYour Name */
1005*5113495bSYour Name
1006*5113495bSYour NameTLV P2PCapability ( TLV_P2P_CAPABILITY ) ( 1 : 2 ) LSB
1007*5113495bSYour Name{
1008*5113495bSYour Name    deviceCapability, 1;
1009*5113495bSYour Name    groupCapability, 1;
1010*5113495bSYour Name}
1011*5113495bSYour Name
1012*5113495bSYour Name
1013*5113495bSYour Name/**
1014*5113495bSYour Name * \brief P2P Device Id Attribute
1015*5113495bSYour Name */
1016*5113495bSYour Name
1017*5113495bSYour NameTLV P2PDeviceId ( TLV_P2P_DEVICE_ID ) ( 1 : 2 ) LSB
1018*5113495bSYour Name{
1019*5113495bSYour Name    P2PDeviceAddress[6];
1020*5113495bSYour Name}
1021*5113495bSYour Name
1022*5113495bSYour Name/**
1023*5113495bSYour Name * \brief Listen Channel Attribute
1024*5113495bSYour Name */
1025*5113495bSYour Name
1026*5113495bSYour NameTLV ListenChannel ( TLV_LISTEN_CHANNEL ) ( 1 : 2 ) LSB
1027*5113495bSYour Name{
1028*5113495bSYour Name    countryString[3];
1029*5113495bSYour Name    regulatoryClass, 1;
1030*5113495bSYour Name    channel,         1;
1031*5113495bSYour Name}
1032*5113495bSYour Name
1033*5113495bSYour Name/**
1034*5113495bSYour Name * \brief Extended Listen Attribute
1035*5113495bSYour Name */
1036*5113495bSYour Name
1037*5113495bSYour NameTLV ExtendedListenTiming ( TLV_EXTENDED_LISTEN_TIMING ) ( 1 : 2 ) LSB
1038*5113495bSYour Name{
1039*5113495bSYour Name    availibilityPeriod, 2;
1040*5113495bSYour Name    availibilityInterval, 2;
1041*5113495bSYour Name}
1042*5113495bSYour Name
1043*5113495bSYour Name
1044*5113495bSYour Name/**
1045*5113495bSYour Name * \brief P2P Manageability Attribute
1046*5113495bSYour Name */
1047*5113495bSYour Name
1048*5113495bSYour NameTLV P2PManageability ( TLV_P2P_MANAGEABILITY ) ( 1 : 2 ) LSB
1049*5113495bSYour Name{
1050*5113495bSYour Name    manageability, 1;
1051*5113495bSYour Name}
1052*5113495bSYour Name
1053*5113495bSYour Name
1054*5113495bSYour Name/**
1055*5113495bSYour Name * \brief Notice of Absence
1056*5113495bSYour Name */
1057*5113495bSYour Name
1058*5113495bSYour NameTLV NoticeOfAbsence ( TLV_NOTICE_OF_ABSENCE ) ( 1 : 2 ) LSB
1059*5113495bSYour Name{
1060*5113495bSYour Name    index, 1;
1061*5113495bSYour Name    CTSWindowOppPS, 1;
1062*5113495bSYour Name    NoADesc[0..36];
1063*5113495bSYour Name}
1064*5113495bSYour Name
1065*5113495bSYour Name/**
1066*5113495bSYour Name * \brief P2P Device Info Attribute
1067*5113495bSYour Name */
1068*5113495bSYour Name
1069*5113495bSYour NameTLV P2PDeviceInfo ( TLV_P2P_DEVICE_INFO ) ( 1 : 2 ) LSB
1070*5113495bSYour Name{
1071*5113495bSYour Name    P2PDeviceAddress[6];
1072*5113495bSYour Name    configMethod, 2 , FLIPBYTEORDER;
1073*5113495bSYour Name    primaryDeviceType[8];
1074*5113495bSYour Name    MANDATORYTLV DeviceName;
1075*5113495bSYour Name}
1076*5113495bSYour Name
1077*5113495bSYour Name
1078*5113495bSYour Name/**
1079*5113495bSYour Name * \brief P2P Group Info Attribute
1080*5113495bSYour Name */
1081*5113495bSYour Name
1082*5113495bSYour NameTLV P2PGroupInfo ( TLV_P2P_GROUP_INFO ) ( 1 : 2 ) LSB
1083*5113495bSYour Name{
1084*5113495bSYour Name    P2PClientInfoDesc[0..1024];
1085*5113495bSYour Name}
1086*5113495bSYour Name
1087*5113495bSYour Name
1088*5113495bSYour Name/**
1089*5113495bSYour Name * \brief P2P Interface Attribute
1090*5113495bSYour Name */
1091*5113495bSYour Name
1092*5113495bSYour NameTLV P2PInterface ( TLV_P2P_INTERFACE ) ( 1 : 2 ) LSB
1093*5113495bSYour Name{
1094*5113495bSYour Name    P2PDeviceAddress[6];
1095*5113495bSYour Name}
1096*5113495bSYour Name
1097*5113495bSYour Name
1098*5113495bSYour Name/**
1099*5113495bSYour Name * \brief Operating Channel Attribute
1100*5113495bSYour Name */
1101*5113495bSYour Name
1102*5113495bSYour NameTLV OperatingChannel ( TLV_OPERATING_CHANNEL ) ( 1 : 2 ) LSB
1103*5113495bSYour Name{
1104*5113495bSYour Name    countryString[3];
1105*5113495bSYour Name    regulatoryClass, 1;
1106*5113495bSYour Name    channel,         1;
1107*5113495bSYour Name}
1108*5113495bSYour Name
1109*5113495bSYour Name///////////////////////////////////////////////////////////////////////////
1110*5113495bSYour Name//                       MBO-OCE ATTR TLVs                            //
1111*5113495bSYour Name///////////////////////////////////////////////////////////////////////////
1112*5113495bSYour Name
1113*5113495bSYour NameTLV mbo_ap_cap ( TLV_MBO_AP_CAP_ATTR ) ( 1 : 1 ) LSB
1114*5113495bSYour Name{
1115*5113495bSYour Name    mbo_cap_ind, 1;
1116*5113495bSYour Name}
1117*5113495bSYour Name
1118*5113495bSYour NameTLV non_prefferd_chan_rep ( TLV_NON_PREFERRED_CHAN_REPORT_ATTR ) ( 1 : 1 ) LSB
1119*5113495bSYour Name{
1120*5113495bSYour Name    oper_class, 1;
1121*5113495bSYour Name    channel_report[3..254];
1122*5113495bSYour Name}
1123*5113495bSYour Name
1124*5113495bSYour NameTLV cellular_data_cap ( TLV_CELLULAR_DATA_CAP_ATTR ) ( 1 : 1 ) LSB
1125*5113495bSYour Name{
1126*5113495bSYour Name    cellular_connectivity, 1;
1127*5113495bSYour Name}
1128*5113495bSYour Name
1129*5113495bSYour NameTLV assoc_disallowed ( TLV_ASSOC_DISSALLOWED_ATTR ) ( 1 : 1 ) LSB
1130*5113495bSYour Name{
1131*5113495bSYour Name    reason_code, 1;
1132*5113495bSYour Name}
1133*5113495bSYour Name
1134*5113495bSYour NameTLV cellular_data_con_pref ( TLV_CELLULAR_DATA_CON_PREF_ATTR ) ( 1 : 1 ) LSB
1135*5113495bSYour Name{
1136*5113495bSYour Name    cellular_preference, 1;
1137*5113495bSYour Name}
1138*5113495bSYour Name
1139*5113495bSYour NameTLV transition_reason ( TLV_TRANSITION_REASON_CODE_ATTR ) ( 1 : 1 ) LSB
1140*5113495bSYour Name{
1141*5113495bSYour Name    transition_reason_code, 1;
1142*5113495bSYour Name}
1143*5113495bSYour Name
1144*5113495bSYour NameTLV transition_reject_reason ( TLV_TRANSITION_REJECT_REASON_CODE_ATTR ) ( 1 : 1 ) LSB
1145*5113495bSYour Name{
1146*5113495bSYour Name    transition_reject_code, 1;
1147*5113495bSYour Name}
1148*5113495bSYour Name
1149*5113495bSYour NameTLV assoc_retry_delay ( TLV_ASSOC_RETRY_DELAY_ATTR ) ( 1 : 1 ) LSB
1150*5113495bSYour Name{
1151*5113495bSYour Name    delay, 2;
1152*5113495bSYour Name}
1153*5113495bSYour Name
1154*5113495bSYour Name// OCE Attributes //
1155*5113495bSYour Name
1156*5113495bSYour NameTLV oce_cap ( TLV_OCE_CAP_IND_ATTR ) ( 1 : 1 ) LSB
1157*5113495bSYour Name{
1158*5113495bSYour Name    {
1159*5113495bSYour Name     oce_release: 3;
1160*5113495bSYour Name     is_sta_cfon : 1;
1161*5113495bSYour Name     non_oce_ap_present : 1;
1162*5113495bSYour Name     reserved: 3;
1163*5113495bSYour Name    }
1164*5113495bSYour Name}
1165*5113495bSYour Name
1166*5113495bSYour NameTLV rssi_assoc_rej ( TLV_RSSI_ASSOC_REJ_ATTR ) ( 1 : 1 ) LSB
1167*5113495bSYour Name{
1168*5113495bSYour Name    delta_rssi, 1;
1169*5113495bSYour Name    retry_delay, 1;
1170*5113495bSYour Name}
1171*5113495bSYour Name
1172*5113495bSYour NameTLV reduced_wan_metrics ( TLV_REDUCED_WAN_METRICS_ATTR ) ( 1 : 1 ) LSB
1173*5113495bSYour Name{
1174*5113495bSYour Name    {
1175*5113495bSYour Name     downlink_av_cap: 4;
1176*5113495bSYour Name     uplink_av_cap : 4;
1177*5113495bSYour Name    }
1178*5113495bSYour Name}
1179*5113495bSYour Name
1180*5113495bSYour Name/**
1181*5113495bSYour Name * \brief Vendor Extension
1182*5113495bSYour Name *
1183*5113495bSYour Name * This variable permits vendor extensions in the Wi-Fi Simple
1184*5113495bSYour Name * Configuration TLV framework. The Vendor Extension figure
1185*5113495bSYour Name * illustrates the implementation of vendor extensions. Vendor
1186*5113495bSYour Name * ID is the SMI network management private enterprise code
1187*5113495bSYour Name *
1188*5113495bSYour Name * +-----------+----------------------+
1189*5113495bSYour Name * | Vendor ID |   Vendor Data        |
1190*5113495bSYour Name * +-----------+----------------------+
1191*5113495bSYour Name * |<--- 3 --->|<----- 1 - 1021 ----->|
1192*5113495bSYour Name *
1193*5113495bSYour Name */
1194*5113495bSYour Name
1195*5113495bSYour NameTLV VendorExtension ( TLV_VENDOR_EXTENSION ) ( 2 : 2 ) MSB
1196*5113495bSYour Name{
1197*5113495bSYour Name    /*
1198*5113495bSYour Name     * vendorId is the SMI network management private enterprise code.
1199*5113495bSYour Name     * WFA Vendor ID 0x00372A
1200*5113495bSYour Name     *
1201*5113495bSYour Name     */
1202*5113495bSYour Name    vendorId[ 3 ];
1203*5113495bSYour Name
1204*5113495bSYour Name    /**
1205*5113495bSYour Name     * \brief Version2
1206*5113495bSYour Name     *
1207*5113495bSYour Name     * The Version2 field specifies the version Wi-Fi Simple
1208*5113495bSYour Name     * Configuration implemented by the device sending this attribute.
1209*5113495bSYour Name     * The one-byte field is broken into a four-bit major part using
1210*5113495bSYour Name     * the top MSBs and four-bit minor part using the LSBs. As an example,
1211*5113495bSYour Name     * version 3.2 would be 0x32. This subelement was added in the
1212*5113495bSYour Name     * specification version 2.0 and if the subelement is not included
1213*5113495bSYour Name     * in a message, the transmitter of the message is assumed to
1214*5113495bSYour Name     * use version 1.0.
1215*5113495bSYour Name     *
1216*5113495bSYour Name     */
1217*5113495bSYour Name    OPTIONALTLV TLV Version2 ( TLV_VERSION2 )  ( 1 : 1 ) MSB
1218*5113495bSYour Name    {
1219*5113495bSYour Name      {
1220*5113495bSYour Name          minor: 4;
1221*5113495bSYour Name          major: 4;
1222*5113495bSYour Name      }
1223*5113495bSYour Name    }
1224*5113495bSYour Name    /**
1225*5113495bSYour Name     * \brief AuthorizedMACs
1226*5113495bSYour Name     *
1227*5113495bSYour Name     * This subelement contains a list of Enrollee MAC addresses (each
1228*5113495bSYour Name     * being six bytes in length) that have been registered to start WSC.
1229*5113495bSYour Name     * The AP includes this field in Beacon and Probe Response frames so
1230*5113495bSYour Name     * Enrollees can tell if they have been registered to start WSC. There
1231*5113495bSYour Name     * may be multiple Enrollees active on the network, but not all of them have
1232*5113495bSYour Name     * been registered to start WSC. This element allows an Enrollee to detect
1233*5113495bSYour Name     * if they should start WSC with the AP. The AuthorizedMACs field augments
1234*5113495bSYour Name     * the use of the Selected Registrar.
1235*5113495bSYour Name    *
1236*5113495bSYour Name     */
1237*5113495bSYour Name    OPTIONALTLV TLV AuthorizedMACs ( TLV_AUTHORIZED_MAC ) ( 1 : 1 ) MSB
1238*5113495bSYour Name    {
1239*5113495bSYour Name        mac[6];
1240*5113495bSYour Name    }
1241*5113495bSYour Name
1242*5113495bSYour Name    /**
1243*5113495bSYour Name     * \brief Request to Enroll
1244*5113495bSYour Name     *
1245*5113495bSYour Name     * This optional subelement in the WSC IE in Probe Request or M1 indicates
1246*5113495bSYour Name     * the desire to enroll in the network by setting its value to TRUE. If the
1247*5113495bSYour Name     * Registrar gets this subelement it can use this as a trigger that a device
1248*5113495bSYour Name     * wants to enroll (maybe an indication can be shown to the user). The device
1249*5113495bSYour Name     * must set it to FALSE after the registration protocol completion.
1250*5113495bSYour Name     *
1251*5113495bSYour Name     */
1252*5113495bSYour Name    OPTIONALTLV TLV RequestToEnroll( TLV_REQUEST_TO_ENROLL ) ( 1 : 1 ) MSB
1253*5113495bSYour Name    {
1254*5113495bSYour Name        req, 1;
1255*5113495bSYour Name    }
1256*5113495bSYour Name}
1257*5113495bSYour Name
1258*5113495bSYour Name/**
1259*5113495bSYour Name * \brief Requested Device Type
1260*5113495bSYour Name *
1261*5113495bSYour Name * This attribute contains the requested device type of a Wi-Fi
1262*5113495bSYour Name * Direct device.
1263*5113495bSYour Name *
1264*5113495bSYour Name * This attribute allows a device to specify the Primary Device Type
1265*5113495bSYour Name * or the Secondary Device Type of other devices it is interested in.
1266*5113495bSYour Name * Only a device that receives a Probe Request containing a WSC IE with
1267*5113495bSYour Name * this attribute and with a Primary Device Type or Secondary Device Type
1268*5113495bSYour Name * that matches the Requested Device Type will respond with a Probe Response.
1269*5113495bSYour Name *
1270*5113495bSYour Name * Its format and contents is identical to the 'Primary Device Type'.
1271*5113495bSYour Name *
1272*5113495bSYour Name * Both the Category ID and Sub Category ID can be used as a filter. If only
1273*5113495bSYour Name * looking for devices with a certain Category ID, the OUI and Sub Category ID
1274*5113495bSYour Name * fields will have to be set to zero.
1275*5113495bSYour Name *
1276*5113495bSYour Name */
1277*5113495bSYour NameTLV RequestDeviceType ( TLV_REQUESTED_DEVICE_TYPE ) ( 2 : 2 ) MSB
1278*5113495bSYour Name{
1279*5113495bSYour Name    primary_category, 2;
1280*5113495bSYour Name    oui[ 4 ];
1281*5113495bSYour Name    sub_category, 2;
1282*5113495bSYour Name}
1283*5113495bSYour Name
1284*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
1285*5113495bSYour Name// Information Elements
1286*5113495bSYour Name
1287*5113495bSYour NameIE SSID (EID_SSID)                        // C.f. Sec. 7.3.2.1
1288*5113495bSYour Name{
1289*5113495bSYour Name    ssid[0..32];
1290*5113495bSYour Name}
1291*5113495bSYour Name
1292*5113495bSYour NameIE SuppRates (EID_SUPP_RATES)             // 7.3.2.2
1293*5113495bSYour Name{
1294*5113495bSYour Name    rates[0..SIR_MAC_MAX_NUMBER_OF_RATES];
1295*5113495bSYour Name}
1296*5113495bSYour Name
1297*5113495bSYour NameIE FHParamSet (EID_FH_PARAM_SET)          // 7.3.2.3
1298*5113495bSYour Name{
1299*5113495bSYour Name    dwell_time,  2;
1300*5113495bSYour Name    hop_set,     1;
1301*5113495bSYour Name    hop_pattern, 1;
1302*5113495bSYour Name    hop_index,   1;
1303*5113495bSYour Name}
1304*5113495bSYour Name
1305*5113495bSYour NameIE DSParams (EID_DS_PARAM_SET)            // 7.3.2.4
1306*5113495bSYour Name{
1307*5113495bSYour Name    curr_channel, 1;
1308*5113495bSYour Name}
1309*5113495bSYour Name
1310*5113495bSYour NameIE CFParams (EID_CF_PARAM_SET)            // 7.3.2.5
1311*5113495bSYour Name{
1312*5113495bSYour Name    cfp_count,        1;
1313*5113495bSYour Name    cfp_period,       1;
1314*5113495bSYour Name    cfp_maxduration,  2;
1315*5113495bSYour Name    cfp_durremaining, 2;
1316*5113495bSYour Name}
1317*5113495bSYour Name
1318*5113495bSYour NameIE TIM (EID_TIM)                          // 7.3.2.6
1319*5113495bSYour Name{
1320*5113495bSYour Name    dtim_count,    1;
1321*5113495bSYour Name    dtim_period,   1;
1322*5113495bSYour Name    bmpctl,        1;
1323*5113495bSYour Name    vbmp[1..251];
1324*5113495bSYour Name}
1325*5113495bSYour Name
1326*5113495bSYour NameIE ChallengeText (EID_CHALLENGE_TEXT)     // 7.3.2.8
1327*5113495bSYour Name{
1328*5113495bSYour Name    text[1..253];
1329*5113495bSYour Name}
1330*5113495bSYour Name
1331*5113495bSYour NameIE RequestedInfo (EID_REQUEST)            // 7.3.2.12
1332*5113495bSYour Name{
1333*5113495bSYour Name    requested_eids[0..255];
1334*5113495bSYour Name}
1335*5113495bSYour Name
1336*5113495bSYour Nameconst EID_BCN_REQ_EXTENDED_INFO = 11;
1337*5113495bSYour NameIE ExtRequestedInfo (EID_BCN_REQ_EXTENDED_INFO)
1338*5113495bSYour Name{
1339*5113495bSYour Name    req_element_id,     1;
1340*5113495bSYour Name    req_element_id_ext[0..255];
1341*5113495bSYour Name}
1342*5113495bSYour Name
1343*5113495bSYour NameIE Country (EID_COUNTRY)                  // 7.3.2.9
1344*5113495bSYour Name{
1345*5113495bSYour Name    country[3];
1346*5113495bSYour Name    first_triplet[3];
1347*5113495bSYour Name    OPTIONAL more_triplets[3][0..80];
1348*5113495bSYour Name}
1349*5113495bSYour Name
1350*5113495bSYour NameIE FHParams (EID_FH_PATTERN)              // 7.3.2.10
1351*5113495bSYour Name{
1352*5113495bSYour Name    radix, 1;
1353*5113495bSYour Name    nchannels, 1;
1354*5113495bSYour Name}
1355*5113495bSYour Name
1356*5113495bSYour NameIE FHPattTable (EID_FH_PATT_TABLE)        // 7.3.2.11
1357*5113495bSYour Name{
1358*5113495bSYour Name    flag,    1;
1359*5113495bSYour Name    nsets,   1;
1360*5113495bSYour Name    modulus, 1;
1361*5113495bSYour Name    offset,  1;
1362*5113495bSYour Name    randtable[0..251];
1363*5113495bSYour Name}
1364*5113495bSYour Name
1365*5113495bSYour NameIE ERPInfo (EID_ERP_INFO)                 // 7.3.2.13
1366*5113495bSYour Name{
1367*5113495bSYour Name    {
1368*5113495bSYour Name        non_erp_present : 1;
1369*5113495bSYour Name        use_prot:         1;
1370*5113495bSYour Name        barker_preamble:  1;
1371*5113495bSYour Name        unused:           5;
1372*5113495bSYour Name    }
1373*5113495bSYour Name}
1374*5113495bSYour Name
1375*5113495bSYour NameIE ExtSuppRates (EID_EXT_SUPP_RATES)      // 7.3.2.14
1376*5113495bSYour Name{
1377*5113495bSYour Name    rates[1..SIR_MAC_MAX_NUMBER_OF_RATES];
1378*5113495bSYour Name}
1379*5113495bSYour Name
1380*5113495bSYour NameIE PowerConstraints (EID_POWER_CONSTRAINTS) // 7.3.2.15
1381*5113495bSYour Name{
1382*5113495bSYour Name    localPowerConstraints, 1;
1383*5113495bSYour Name}
1384*5113495bSYour Name
1385*5113495bSYour NameIE PowerCaps (EID_POWER_CAPABILITY)       // 7.3.2.16
1386*5113495bSYour Name{
1387*5113495bSYour Name    minTxPower, 1;
1388*5113495bSYour Name    maxTxPower, 1;
1389*5113495bSYour Name}
1390*5113495bSYour Name
1391*5113495bSYour NameIE TPCRequest (EID_TPC_REQUEST)           // 7.3.2.17
1392*5113495bSYour Name{ }
1393*5113495bSYour Name
1394*5113495bSYour NameIE TPCReport (EID_TPC_REPORT)             // 7.3.2.18
1395*5113495bSYour Name{
1396*5113495bSYour Name    tx_power,    1;
1397*5113495bSYour Name    link_margin, 1;
1398*5113495bSYour Name}
1399*5113495bSYour Name
1400*5113495bSYour NameIE SuppChannels (EID_SUPPORTED_CHANNELS)  // 7.2.3.19
1401*5113495bSYour Name{
1402*5113495bSYour Name    bands[2][0..48];
1403*5113495bSYour Name}
1404*5113495bSYour Name
1405*5113495bSYour NameIE SuppOperatingClasses (EID_SUPPORTED_OPER_CLASSES)
1406*5113495bSYour Name{
1407*5113495bSYour Name    classes[1..32];
1408*5113495bSYour Name}
1409*5113495bSYour Name
1410*5113495bSYour NameIE ChanSwitchAnn (EID_CHANNEL_SWITCH_ANN) // 7.3.2.20
1411*5113495bSYour Name{
1412*5113495bSYour Name    switchMode,  1;
1413*5113495bSYour Name    newChannel,  1;
1414*5113495bSYour Name    switchCount, 1;
1415*5113495bSYour Name}
1416*5113495bSYour Name
1417*5113495bSYour NameIE ext_chan_switch_ann (EID_EXT_CHAN_SWITCH) // 8.4.2.55
1418*5113495bSYour Name{
1419*5113495bSYour Name    switch_mode,   1;
1420*5113495bSYour Name    new_reg_class, 1;
1421*5113495bSYour Name    new_channel,   1;
1422*5113495bSYour Name    switch_count,  1;
1423*5113495bSYour Name}
1424*5113495bSYour Name
1425*5113495bSYour NameIE max_chan_switch_time (EID_EXTN_ID_ELEMENT) OUI (0x34)
1426*5113495bSYour Name{
1427*5113495bSYour Name    switch_time[3];
1428*5113495bSYour Name}
1429*5113495bSYour Name
1430*5113495bSYour NameIE sec_chan_offset_ele (EID_SEC_CHAN_OFFSET) // 7.3.2.20a
1431*5113495bSYour Name{
1432*5113495bSYour Name	secondaryChannelOffset, 1;
1433*5113495bSYour Name}
1434*5113495bSYour Name
1435*5113495bSYour NameIE Quiet (EID_QUIET)                      // 7.3.2.23
1436*5113495bSYour Name{
1437*5113495bSYour Name    count,    1;
1438*5113495bSYour Name    period,   1;
1439*5113495bSYour Name    duration, 2;
1440*5113495bSYour Name    offset,   2;
1441*5113495bSYour Name}
1442*5113495bSYour Name
1443*5113495bSYour NameIE RSN (EID_RSN)                          // 7.3.2.25
1444*5113495bSYour Name{
1445*5113495bSYour Name    // The version is 2 octets, and we only support version 1.
1446*5113495bSYour Name    version, 2 MUSTBE 1;
1447*5113495bSYour Name    // The next four octets will be the Optional Group Cipher Suite
1448*5113495bSYour Name    OPTIONAL gp_cipher_suite[4];
1449*5113495bSYour Name    // The IE *may* stop here; if there's any more, we should see two more
1450*5113495bSYour Name    // octets giving the number of Pairwise Cipher Suites
1451*5113495bSYour Name    OPTIONAL pwise_cipher_suite_count, 2;
1452*5113495bSYour Name    // I don't see anything in the Standard limiting the number of Pairwise
1453*5113495bSYour Name    // Cypher Suites, other than the maximum length of an IE, which limits us
1454*5113495bSYour Name    // to 61.  However, that seems needlessly wasteful of space.
1455*5113495bSYour Name    pwise_cipher_suites[4][0..6] COUNTIS pwise_cipher_suite_count;
1456*5113495bSYour Name    // Optional count of AKM suite selectors
1457*5113495bSYour Name    OPTIONAL akm_suite_cnt, 2;
1458*5113495bSYour Name    // Again, I see nothing in the Standard explicitly limiting the number of
1459*5113495bSYour Name    // AKM suite selectors other than the maximum size of an IE.
1460*5113495bSYour Name    akm_suite[4][0..6] COUNTIS akm_suite_cnt;
1461*5113495bSYour Name    OPTIONAL RSN_Cap[2];
1462*5113495bSYour Name    // Finally, the IE may contain zero or more PMKIDs:
1463*5113495bSYour Name    OPTIONAL pmkid_count, 2;
1464*5113495bSYour Name    pmkid[16][0..4] COUNTIS pmkid_count;
1465*5113495bSYour Name    OPTIONAL gp_mgmt_cipher_suite[4];
1466*5113495bSYour Name}
1467*5113495bSYour Name
1468*5113495bSYour NameIE RSNOpaque (EID_RSN)                    // 7.3.2.25
1469*5113495bSYour Name{
1470*5113495bSYour Name    data[ 0..253 ];
1471*5113495bSYour Name}
1472*5113495bSYour Name
1473*5113495bSYour NameIE WAPI (EID_WAPI)                          // 7.3.2.25
1474*5113495bSYour Name{
1475*5113495bSYour Name    // The version is 2 octets, and we only support version 1.
1476*5113495bSYour Name    version, 2 MUSTBE 1;
1477*5113495bSYour Name    // count of AKM suite selectors
1478*5113495bSYour Name    akm_suite_count, 2;
1479*5113495bSYour Name    // Again, I see nothing in the Standard explicitly limiting the number of
1480*5113495bSYour Name    // AKM suite selectors other than the maximum size of an IE.
1481*5113495bSYour Name    akm_suites[4][0..4] COUNTIS akm_suite_count;
1482*5113495bSYour Name    // we should see two more
1483*5113495bSYour Name    // octets giving the number of Unicast Cipher Suites
1484*5113495bSYour Name    unicast_cipher_suite_count, 2;
1485*5113495bSYour Name    // I don't see anything in the Standard limiting the number of Pairwise
1486*5113495bSYour Name    // Cypher Suites, other than the maximum length of an IE, which limits us
1487*5113495bSYour Name    // to 61.  However, that seems needlessly wasteful of space.
1488*5113495bSYour Name    unicast_cipher_suites[4][0..4] COUNTIS unicast_cipher_suite_count;
1489*5113495bSYour Name    // The next four octets will be the Multicast Cipher Suite
1490*5113495bSYour Name    multicast_cipher_suite[4];
1491*5113495bSYour Name    // WAPI capabilities
1492*5113495bSYour Name    {
1493*5113495bSYour Name        preauth:               1;
1494*5113495bSYour Name        reserved:             15;
1495*5113495bSYour Name    }
1496*5113495bSYour Name    // Finally, the IE may contain zero or more BKIDs:
1497*5113495bSYour Name    OPTIONAL bkid_count, 2;
1498*5113495bSYour Name    bkid[16][0..4] COUNTIS bkid_count;
1499*5113495bSYour Name}
1500*5113495bSYour Name
1501*5113495bSYour NameIE WAPIOpaque (EID_WAPI)                    // 7.3.2.25
1502*5113495bSYour Name{
1503*5113495bSYour Name    data[ 6..253 ];
1504*5113495bSYour Name}
1505*5113495bSYour Name
1506*5113495bSYour NameIE QBSSLoad (EID_QBSS_LOAD)               // 7.3.2.28
1507*5113495bSYour Name{
1508*5113495bSYour Name    stacount, 2;
1509*5113495bSYour Name    chautil,  1;
1510*5113495bSYour Name    avail,    2;
1511*5113495bSYour Name}
1512*5113495bSYour Name
1513*5113495bSYour NameIE EDCAParamSet (EID_EDCA_PARAM_SET)      // 7.3.2.29
1514*5113495bSYour Name{
1515*5113495bSYour Name    qos, 1;                     // ToDo: This is a bitfield whose format
1516*5113495bSYour Name                                // depends on whether this is from an AP
1517*5113495bSYour Name                                // or a STA, information which I'm not
1518*5113495bSYour Name                                // sure we have at parse time...
1519*5113495bSYour Name    reserved, 1;
1520*5113495bSYour Name    {
1521*5113495bSYour Name        acbe_aifsn: 4;
1522*5113495bSYour Name        acbe_acm:   1;
1523*5113495bSYour Name        acbe_aci:   2;
1524*5113495bSYour Name        unused1:    1;
1525*5113495bSYour Name    }
1526*5113495bSYour Name    {
1527*5113495bSYour Name        acbe_acwmin: 4;
1528*5113495bSYour Name        acbe_acwmax: 4;
1529*5113495bSYour Name    }
1530*5113495bSYour Name    acbe_txoplimit, 2;
1531*5113495bSYour Name    {
1532*5113495bSYour Name        acbk_aifsn: 4;
1533*5113495bSYour Name        acbk_acm:   1;
1534*5113495bSYour Name        acbk_aci:   2;
1535*5113495bSYour Name        unused2:    1;
1536*5113495bSYour Name    }
1537*5113495bSYour Name    {
1538*5113495bSYour Name        acbk_acwmin: 4;
1539*5113495bSYour Name        acbk_acwmax: 4;
1540*5113495bSYour Name    }
1541*5113495bSYour Name    acbk_txoplimit, 2;
1542*5113495bSYour Name    {
1543*5113495bSYour Name        acvi_aifsn: 4;
1544*5113495bSYour Name        acvi_acm:   1;
1545*5113495bSYour Name        acvi_aci:   2;
1546*5113495bSYour Name        unused3:    1;
1547*5113495bSYour Name    }
1548*5113495bSYour Name    {
1549*5113495bSYour Name        acvi_acwmin: 4;
1550*5113495bSYour Name        acvi_acwmax: 4;
1551*5113495bSYour Name    }
1552*5113495bSYour Name    acvi_txoplimit, 2;
1553*5113495bSYour Name    {
1554*5113495bSYour Name        acvo_aifsn: 4;
1555*5113495bSYour Name        acvo_acm:   1;
1556*5113495bSYour Name        acvo_aci:   2;
1557*5113495bSYour Name        unused4:    1;
1558*5113495bSYour Name    }
1559*5113495bSYour Name    {
1560*5113495bSYour Name        acvo_acwmin: 4;
1561*5113495bSYour Name        acvo_acwmax: 4;
1562*5113495bSYour Name    }
1563*5113495bSYour Name    acvo_txoplimit, 2;
1564*5113495bSYour Name}
1565*5113495bSYour Name
1566*5113495bSYour NameIE TSPEC (EID_TSPEC)                             // 7.3.2.30
1567*5113495bSYour Name{
1568*5113495bSYour Name
1569*5113495bSYour Name    // TS Info
1570*5113495bSYour Name    {
1571*5113495bSYour Name        traffic_type:    1;
1572*5113495bSYour Name        tsid:            4;
1573*5113495bSYour Name        direction:       2;
1574*5113495bSYour Name        access_policy:   2;
1575*5113495bSYour Name        aggregation:     1;
1576*5113495bSYour Name        psb:             1;
1577*5113495bSYour Name        user_priority:   3;
1578*5113495bSYour Name        tsinfo_ack_pol:  2;
1579*5113495bSYour Name    }
1580*5113495bSYour Name    {
1581*5113495bSYour Name        schedule:        1;
1582*5113495bSYour Name        unused:          7;
1583*5113495bSYour Name    }
1584*5113495bSYour Name
1585*5113495bSYour Name    // Nominal MSDU Size
1586*5113495bSYour Name    {
1587*5113495bSYour Name        size:  15;
1588*5113495bSYour Name        fixed: 1;
1589*5113495bSYour Name    }
1590*5113495bSYour Name
1591*5113495bSYour Name    max_msdu_size,        2;
1592*5113495bSYour Name    min_service_int,      4;
1593*5113495bSYour Name    max_service_int,      4;
1594*5113495bSYour Name    inactivity_int,       4;
1595*5113495bSYour Name    suspension_int,       4;
1596*5113495bSYour Name    service_start_time,   4;
1597*5113495bSYour Name    min_data_rate,        4;
1598*5113495bSYour Name    mean_data_rate,       4;
1599*5113495bSYour Name    peak_data_rate,       4;
1600*5113495bSYour Name    burst_size,           4;
1601*5113495bSYour Name    delay_bound,          4;
1602*5113495bSYour Name    min_phy_rate,         4;
1603*5113495bSYour Name    surplus_bw_allowance, 2;
1604*5113495bSYour Name    medium_time,          2;
1605*5113495bSYour Name
1606*5113495bSYour Name} // End IE TSPEC.
1607*5113495bSYour Name
1608*5113495bSYour NameIE TCLAS (EID_TCLAS)                             // 7.3.2.31
1609*5113495bSYour Name{
1610*5113495bSYour Name    user_priority, 1;
1611*5113495bSYour Name    classifier_type, 1;
1612*5113495bSYour Name    classifier_mask, 1;
1613*5113495bSYour Name    UNION info (DISCRIMINATOR classifier_type)
1614*5113495bSYour Name    {
1615*5113495bSYour Name        EthParams (classifier_type IS 0)
1616*5113495bSYour Name        {
1617*5113495bSYour Name            source[6];
1618*5113495bSYour Name            dest[6];
1619*5113495bSYour Name            type, 2;
1620*5113495bSYour Name        }
1621*5113495bSYour Name        IpParams (classifier_type IS 1)
1622*5113495bSYour Name        {
1623*5113495bSYour Name            version, 1;
1624*5113495bSYour Name            UNION params (DISCRIMINATOR version)
1625*5113495bSYour Name            {
1626*5113495bSYour Name                IpV4Params (version IS 4)
1627*5113495bSYour Name                {
1628*5113495bSYour Name                    source[4];
1629*5113495bSYour Name                    dest[4];
1630*5113495bSYour Name                    src_port, 2;
1631*5113495bSYour Name                    dest_port, 2;
1632*5113495bSYour Name                    DSCP, 1;
1633*5113495bSYour Name                    proto, 1;
1634*5113495bSYour Name                    reserved, 1;
1635*5113495bSYour Name                }
1636*5113495bSYour Name                IpV6Params (version IS 6)
1637*5113495bSYour Name                {
1638*5113495bSYour Name                    source[16];
1639*5113495bSYour Name                    dest[16];
1640*5113495bSYour Name                    src_port, 2;
1641*5113495bSYour Name                    dest_port, 2;
1642*5113495bSYour Name                    flow_label[3];
1643*5113495bSYour Name                }
1644*5113495bSYour Name            };
1645*5113495bSYour Name        }
1646*5113495bSYour Name        Params8021dq (classifier_type IS 2)
1647*5113495bSYour Name        {
1648*5113495bSYour Name            tag_type, 2;
1649*5113495bSYour Name        }
1650*5113495bSYour Name    };
1651*5113495bSYour Name} // End IE TCLASS
1652*5113495bSYour Name
1653*5113495bSYour Nameconst EID_BCN_REPORT_FRAME_BODY    = 1;
1654*5113495bSYour NameIE BeaconReportFrmBody (EID_BCN_REPORT_FRAME_BODY)
1655*5113495bSYour Name{
1656*5113495bSYour Name     reportedFields[0..224];
1657*5113495bSYour Name}
1658*5113495bSYour Name
1659*5113495bSYour Nameconst EID_BCN_REPORT_FRAME_BODY_FRAGMENT_ID = 2;
1660*5113495bSYour NameIE beacon_report_frm_body_fragment_id (EID_BCN_REPORT_FRAME_BODY_FRAGMENT_ID)
1661*5113495bSYour Name{
1662*5113495bSYour Name    // Data
1663*5113495bSYour Name    {
1664*5113495bSYour Name        beacon_report_id:    8;
1665*5113495bSYour Name        fragment_id_number:  7;
1666*5113495bSYour Name        more_fragments:      1;
1667*5113495bSYour Name    }
1668*5113495bSYour Name}
1669*5113495bSYour Name
1670*5113495bSYour Nameconst EID_BCN_REPORT_LAST_BEACON_REPORT_INDICATION = 164;
1671*5113495bSYour NameIE last_beacon_report_indication (EID_BCN_REPORT_LAST_BEACON_REPORT_INDICATION)
1672*5113495bSYour Name{
1673*5113495bSYour Name    last_fragment, 1;
1674*5113495bSYour Name}
1675*5113495bSYour Name
1676*5113495bSYour Nameconst EID_REPORTING_REASON = 1;
1677*5113495bSYour NameIE reporting_reason (EID_REPORTING_REASON)
1678*5113495bSYour Name{
1679*5113495bSYour Name   {
1680*5113495bSYour Name      failed_count: 1;
1681*5113495bSYour Name      fcs_error: 1;
1682*5113495bSYour Name      multiple_retry: 1;
1683*5113495bSYour Name      frame_duplicate: 1;
1684*5113495bSYour Name      rts_failure: 1;
1685*5113495bSYour Name      ack_failure: 1;
1686*5113495bSYour Name      retry: 1;
1687*5113495bSYour Name      reserved: 1;
1688*5113495bSYour Name   }
1689*5113495bSYour Name}
1690*5113495bSYour Name
1691*5113495bSYour Nameconst SUB_EID_BANDWIDTH_INDICATION     = 164;
1692*5113495bSYour NameIE bw_indication (SUB_EID_BANDWIDTH_INDICATION)
1693*5113495bSYour Name{
1694*5113495bSYour Name   {
1695*5113495bSYour Name       reserved: 1;
1696*5113495bSYour Name       disabled_sub_chan_bitmap_present: 1;
1697*5113495bSYour Name       reserved_1: 6;
1698*5113495bSYour Name   }
1699*5113495bSYour Name   {
1700*5113495bSYour Name       channel_width: 3;
1701*5113495bSYour Name       reserved_2: 5;
1702*5113495bSYour Name   }
1703*5113495bSYour Name   ccfs0, 1;
1704*5113495bSYour Name   ccfs1, 1;
1705*5113495bSYour Name   disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present;
1706*5113495bSYour Name}
1707*5113495bSYour Name
1708*5113495bSYour Nameconst SUB_EID_WIDE_BW_CHANNEL_SWITCH     = 163;
1709*5113495bSYour NameIE wide_bw_chan_switch (SUB_EID_WIDE_BW_CHANNEL_SWITCH)
1710*5113495bSYour Name{
1711*5113495bSYour Name   new_chan_width,           1;
1712*5113495bSYour Name   new_center_chan_freq0,    1;
1713*5113495bSYour Name   new_center_chan_freq1,    1;
1714*5113495bSYour Name}
1715*5113495bSYour Name
1716*5113495bSYour NameIE MeasurementReport (EID_MEAS_REPORT)    // 7.3.2.22
1717*5113495bSYour Name{
1718*5113495bSYour Name    token, 1;
1719*5113495bSYour Name    // Measurement Report Mode
1720*5113495bSYour Name    {
1721*5113495bSYour Name        late:      1;
1722*5113495bSYour Name        incapable: 1;
1723*5113495bSYour Name        refused:   1;
1724*5113495bSYour Name        unused:    5;
1725*5113495bSYour Name    }
1726*5113495bSYour Name    type, 1;
1727*5113495bSYour Name    OPTIONAL UNION report (DISCRIMINATOR type)
1728*5113495bSYour Name    {
1729*5113495bSYour Name        Basic (type IS 0)                 // 7.3.2.22.1
1730*5113495bSYour Name        {
1731*5113495bSYour Name            channel,         1;
1732*5113495bSYour Name            meas_start_time, 8;
1733*5113495bSYour Name            meas_duration,   2;
1734*5113495bSYour Name            // Map
1735*5113495bSYour Name            {
1736*5113495bSYour Name                bss:           1;
1737*5113495bSYour Name                ofdm_preamble: 1;
1738*5113495bSYour Name                unid_signal:   1;
1739*5113495bSYour Name                rader:         1;
1740*5113495bSYour Name                unmeasured:    1;
1741*5113495bSYour Name                unused:        3;
1742*5113495bSYour Name            }
1743*5113495bSYour Name        }
1744*5113495bSYour Name        CCA (type IS 1)
1745*5113495bSYour Name        {
1746*5113495bSYour Name            channel,           1;
1747*5113495bSYour Name            meas_start_time,   8;
1748*5113495bSYour Name            meas_duration,     2;
1749*5113495bSYour Name            cca_busy_fraction, 1;
1750*5113495bSYour Name        }
1751*5113495bSYour Name        RPIHistogram (type IS 2)
1752*5113495bSYour Name        {
1753*5113495bSYour Name            channel,         1;
1754*5113495bSYour Name            meas_start_time, 8;
1755*5113495bSYour Name            meas_duration,   2;
1756*5113495bSYour Name            rpi0_density,    1;
1757*5113495bSYour Name            rpi1_density,    1;
1758*5113495bSYour Name            rpi2_density,    1;
1759*5113495bSYour Name            rpi3_density,    1;
1760*5113495bSYour Name            rpi4_density,    1;
1761*5113495bSYour Name            rpi5_density,    1;
1762*5113495bSYour Name            rpi6_density,    1;
1763*5113495bSYour Name            rpi7_density,    1;
1764*5113495bSYour Name        }
1765*5113495bSYour Name        channel_load_report (type IS 3)
1766*5113495bSYour Name        {
1767*5113495bSYour Name            op_class,          1;
1768*5113495bSYour Name            channel,           1;
1769*5113495bSYour Name            meas_start_time,   8;
1770*5113495bSYour Name            meas_duration,     2;
1771*5113495bSYour Name            chan_load,         1;
1772*5113495bSYour Name            OPTIE wide_bw_chan_switch;
1773*5113495bSYour Name            OPTIE bw_indication;
1774*5113495bSYour Name        }
1775*5113495bSYour Name       Beacon (type IS 5)
1776*5113495bSYour Name       {
1777*5113495bSYour Name           regClass,               1;
1778*5113495bSYour Name           channel,                1;
1779*5113495bSYour Name           meas_start_time,        8;
1780*5113495bSYour Name           meas_duration,          2;
1781*5113495bSYour Name           // reported_frame_info,
1782*5113495bSYour Name           {
1783*5113495bSYour Name              condensed_PHY:        7;
1784*5113495bSYour Name              reported_frame_type: 1;
1785*5113495bSYour Name           }
1786*5113495bSYour Name           RCPI,                   1;
1787*5113495bSYour Name           RSNI,                   1;
1788*5113495bSYour Name           BSSID[6];
1789*5113495bSYour Name           antenna_id,               1;
1790*5113495bSYour Name           parent_TSF,              4;
1791*5113495bSYour Name           OPTIE BeaconReportFrmBody;
1792*5113495bSYour Name           OPTIE beacon_report_frm_body_fragment_id;
1793*5113495bSYour Name           OPTIE last_beacon_report_indication;
1794*5113495bSYour Name           //IE vendor_specific
1795*5113495bSYour Name     }
1796*5113495bSYour Name     sta_stats (type IS 7)
1797*5113495bSYour Name     {
1798*5113495bSYour Name           meas_duration,          2;
1799*5113495bSYour Name           group_id, 1;
1800*5113495bSYour Name           UNION statsgroupdata (DISCRIMINATOR group_id)
1801*5113495bSYour Name           {
1802*5113495bSYour Name                dot11_counter_stats (group_id IS 0)
1803*5113495bSYour Name                {
1804*5113495bSYour Name                        transmitted_fragment_count, 4;
1805*5113495bSYour Name                        group_transmitted_frame_count, 4;
1806*5113495bSYour Name                        failed_count, 4;
1807*5113495bSYour Name                        received_fragment_count, 4;
1808*5113495bSYour Name                        group_received_frame_count, 4;
1809*5113495bSYour Name                        fcs_error_count, 4;
1810*5113495bSYour Name                        transmitted_frame_count, 4;
1811*5113495bSYour Name                }
1812*5113495bSYour Name                dot11_mac_stats (group_id IS 1)
1813*5113495bSYour Name                {
1814*5113495bSYour Name                        retry_count, 4;
1815*5113495bSYour Name                        multiple_retry_count, 4;
1816*5113495bSYour Name                        frame_duplicate_count, 4;
1817*5113495bSYour Name                        rts_success_count, 4;
1818*5113495bSYour Name                        rts_failure_count, 4;
1819*5113495bSYour Name                        ack_failure_count, 4;
1820*5113495bSYour Name                }
1821*5113495bSYour Name                dot11_qos_counter (group_id IS 2)
1822*5113495bSYour Name                {
1823*5113495bSYour Name                        qos_transmitted_fragment_count, 4;
1824*5113495bSYour Name                        qos_failed_count, 4;
1825*5113495bSYour Name                        qos_retry_count, 4;
1826*5113495bSYour Name                        qos_multiple_retry_count, 4;
1827*5113495bSYour Name                        qos_frame_duplicate_count, 4;
1828*5113495bSYour Name                        qos_rts_success_count, 4;
1829*5113495bSYour Name                        qos_rts_failure_count, 4;
1830*5113495bSYour Name                        qos_ack_failure_count, 4;
1831*5113495bSYour Name                        qos_received_fragment_count, 4;
1832*5113495bSYour Name                        qos_transmitted_frame_count, 4;
1833*5113495bSYour Name                        qos_discarded_frame_count, 4;
1834*5113495bSYour Name                        qos_mpdus_received_count, 4;
1835*5113495bSYour Name                        qos_retries_received_count, 4;
1836*5113495bSYour Name                }
1837*5113495bSYour Name                dot11_bss_average_access_delay (group_id IS 10)
1838*5113495bSYour Name                {
1839*5113495bSYour Name                        ap_average_access_delay, 1;
1840*5113495bSYour Name                        average_access_delay_besteffort, 1;
1841*5113495bSYour Name                        average_access_delay_background, 1;
1842*5113495bSYour Name                        average_access_delay_video, 1;
1843*5113495bSYour Name                        average_access_delay_voice, 1;
1844*5113495bSYour Name                        station_count, 2;
1845*5113495bSYour Name                        channel_utilization, 1;
1846*5113495bSYour Name                }
1847*5113495bSYour Name            };
1848*5113495bSYour Name            OPTIE reporting_reason;
1849*5113495bSYour Name      }
1850*5113495bSYour Name
1851*5113495bSYour Name   };
1852*5113495bSYour Name}
1853*5113495bSYour Name
1854*5113495bSYour NameIE TSDelay (EID_TS_DELAY)                 // 7.3.2.32
1855*5113495bSYour Name{
1856*5113495bSYour Name    delay, 4;
1857*5113495bSYour Name}
1858*5113495bSYour Name
1859*5113495bSYour NameIE TCLASSPROC (EID_TCLASS_PROC)           // 7.3.2.33
1860*5113495bSYour Name{
1861*5113495bSYour Name    processing, 1;
1862*5113495bSYour Name}
1863*5113495bSYour Name
1864*5113495bSYour NameIE Schedule (EID_SCHEDULE)                // 7.3.2.34
1865*5113495bSYour Name{
1866*5113495bSYour Name    {
1867*5113495bSYour Name        aggregation: 1;
1868*5113495bSYour Name        tsid:        4;
1869*5113495bSYour Name        direction:   2;
1870*5113495bSYour Name        reserved:    9;
1871*5113495bSYour Name    }
1872*5113495bSYour Name    service_start_time, 4;
1873*5113495bSYour Name    service_interval,   4;
1874*5113495bSYour Name    max_service_dur,    2;
1875*5113495bSYour Name    spec_interval,      2;
1876*5113495bSYour Name}
1877*5113495bSYour Name
1878*5113495bSYour NameIE QOSCapsAp (EID_QOS_CAPABILITY)           // 7.3.2.35
1879*5113495bSYour Name{
1880*5113495bSYour Name    {
1881*5113495bSYour Name        count:   4;
1882*5113495bSYour Name        qack:    1;
1883*5113495bSYour Name        qreq:    1;
1884*5113495bSYour Name        txopreq: 1;
1885*5113495bSYour Name        reserved: 1;
1886*5113495bSYour Name    }
1887*5113495bSYour Name}
1888*5113495bSYour Name
1889*5113495bSYour NameIE QOSCapsStation (EID_QOS_CAPABILITY)           // 7.3.2.35
1890*5113495bSYour Name{
1891*5113495bSYour Name    {
1892*5113495bSYour Name        acvo_uapsd:    1;
1893*5113495bSYour Name        acvi_uapsd:    1;
1894*5113495bSYour Name        acbk_uapsd:    1;
1895*5113495bSYour Name        acbe_uapsd:    1;
1896*5113495bSYour Name        qack:          1;
1897*5113495bSYour Name        max_sp_length: 2;
1898*5113495bSYour Name        more_data_ack: 1;
1899*5113495bSYour Name    }
1900*5113495bSYour Name}
1901*5113495bSYour Name
1902*5113495bSYour NameIE LinkIdentifier (EID_LINK_IDENTIFIER)          // 7.3.2.62
1903*5113495bSYour Name{
1904*5113495bSYour Name    bssid[6];
1905*5113495bSYour Name    InitStaAddr[6];
1906*5113495bSYour Name    RespStaAddr[6];
1907*5113495bSYour Name}
1908*5113495bSYour Name
1909*5113495bSYour NameIE WPA (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x01)
1910*5113495bSYour Name{
1911*5113495bSYour Name    // This IE's first two octets should be interpreted as a version number;
1912*5113495bSYour Name    // we only support version 1.
1913*5113495bSYour Name    version, 2 MUSTBE 1;
1914*5113495bSYour Name    // A four-octet Multicast Cipher may or may not appear next (hence the
1915*5113495bSYour Name    // OPTIONAL keyword)
1916*5113495bSYour Name    OPTIONAL multicast_cipher[4];
1917*5113495bSYour Name    // Optional Unicast Cipher count
1918*5113495bSYour Name    OPTIONAL unicast_cipher_count, 2;
1919*5113495bSYour Name    // Next comes an array of four-octet Cipher Suite selectors; the COUNTIS
1920*5113495bSYour Name    // clause indicates that the actual number of selectors seen is in the
1921*5113495bSYour Name    // member 'unicast_cipher_count'.
1922*5113495bSYour Name    unicast_ciphers[4][0..4] COUNTIS unicast_cipher_count;
1923*5113495bSYour Name    // (Optional) Authentication suites:
1924*5113495bSYour Name    OPTIONAL auth_suite_count, 2;
1925*5113495bSYour Name    auth_suites[4][0..4] COUNTIS auth_suite_count;
1926*5113495bSYour Name    // This field is declared optional as per bugs 15234, 14755, & 14991.
1927*5113495bSYour Name    OPTIONAL caps, 2;
1928*5113495bSYour Name}
1929*5113495bSYour Name
1930*5113495bSYour NameIE WPAOpaque (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x01)
1931*5113495bSYour Name{
1932*5113495bSYour Name    data[ 2..249 ];
1933*5113495bSYour Name}
1934*5113495bSYour Name
1935*5113495bSYour NameIE WMMInfoStation (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x00)
1936*5113495bSYour Name{
1937*5113495bSYour Name    // This IE contains the QoS Info field when sent from WMM Station
1938*5113495bSYour Name    version, 1;
1939*5113495bSYour Name    {
1940*5113495bSYour Name        acvo_uapsd:    1;
1941*5113495bSYour Name        acvi_uapsd:    1;
1942*5113495bSYour Name        acbk_uapsd:    1;
1943*5113495bSYour Name        acbe_uapsd:    1;
1944*5113495bSYour Name        reserved1:     1;
1945*5113495bSYour Name        max_sp_length: 2;
1946*5113495bSYour Name        reserved2:     1;
1947*5113495bSYour Name    }
1948*5113495bSYour Name}
1949*5113495bSYour Name
1950*5113495bSYour NameIE WMMInfoAp (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x00)
1951*5113495bSYour Name{
1952*5113495bSYour Name    // This IE contains the QoS Info field when sent from WMM AP
1953*5113495bSYour Name    version, 1;
1954*5113495bSYour Name    {
1955*5113495bSYour Name        param_set_count: 4;
1956*5113495bSYour Name        reserved:        3;
1957*5113495bSYour Name        uapsd:           1;
1958*5113495bSYour Name    }
1959*5113495bSYour Name}
1960*5113495bSYour Name
1961*5113495bSYour Name
1962*5113495bSYour NameIE WMMParams (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x01)
1963*5113495bSYour Name{
1964*5113495bSYour Name    version, 1 MUSTBE 1;
1965*5113495bSYour Name    qosInfo, 1;                           // ToDo: This is actually a
1966*5113495bSYour Name                                          // bitfield, but it's format
1967*5113495bSYour Name                                          // varies depending on whether
1968*5113495bSYour Name                                          // the sender is a STA or AP...
1969*5113495bSYour Name    reserved2, 1;
1970*5113495bSYour Name    {
1971*5113495bSYour Name        acbe_aifsn: 4;
1972*5113495bSYour Name        acbe_acm: 1;
1973*5113495bSYour Name        acbe_aci: 2;
1974*5113495bSYour Name        unused1: 1;
1975*5113495bSYour Name    }
1976*5113495bSYour Name    {
1977*5113495bSYour Name        acbe_acwmin: 4;
1978*5113495bSYour Name        acbe_acwmax: 4;
1979*5113495bSYour Name    }
1980*5113495bSYour Name    acbe_txoplimit, 2;
1981*5113495bSYour Name    {
1982*5113495bSYour Name        acbk_aifsn: 4;
1983*5113495bSYour Name        acbk_acm: 1;
1984*5113495bSYour Name        acbk_aci: 2;
1985*5113495bSYour Name        unused2: 1;
1986*5113495bSYour Name    }
1987*5113495bSYour Name    {
1988*5113495bSYour Name        acbk_acwmin: 4;
1989*5113495bSYour Name        acbk_acwmax: 4;
1990*5113495bSYour Name    }
1991*5113495bSYour Name    acbk_txoplimit, 2;
1992*5113495bSYour Name    {
1993*5113495bSYour Name        acvi_aifsn: 4;
1994*5113495bSYour Name        acvi_acm: 1;
1995*5113495bSYour Name        acvi_aci: 2;
1996*5113495bSYour Name        unused3: 1;
1997*5113495bSYour Name    }
1998*5113495bSYour Name    {
1999*5113495bSYour Name        acvi_acwmin: 4;
2000*5113495bSYour Name        acvi_acwmax: 4;
2001*5113495bSYour Name    }
2002*5113495bSYour Name    acvi_txoplimit, 2;
2003*5113495bSYour Name    {
2004*5113495bSYour Name        acvo_aifsn: 4;
2005*5113495bSYour Name        acvo_acm: 1;
2006*5113495bSYour Name        acvo_aci: 2;
2007*5113495bSYour Name        unused4: 1;
2008*5113495bSYour Name    }
2009*5113495bSYour Name    {
2010*5113495bSYour Name        acvo_acwmin: 4;
2011*5113495bSYour Name        acvo_acwmax: 4;
2012*5113495bSYour Name    }
2013*5113495bSYour Name    acvo_txoplimit, 2;
2014*5113495bSYour Name}
2015*5113495bSYour Name
2016*5113495bSYour NameIE WMMTSPEC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xf2, 0x02, 0x02)
2017*5113495bSYour Name{
2018*5113495bSYour Name    version, 1 MUSTBE 1;
2019*5113495bSYour Name
2020*5113495bSYour Name    // TS Info
2021*5113495bSYour Name    {
2022*5113495bSYour Name        traffic_type:    1;
2023*5113495bSYour Name        tsid:            4;
2024*5113495bSYour Name        direction:       2;
2025*5113495bSYour Name        access_policy:   2;
2026*5113495bSYour Name        aggregation:     1;
2027*5113495bSYour Name        psb:             1;
2028*5113495bSYour Name        user_priority:   3;
2029*5113495bSYour Name        tsinfo_ack_pol:  2;
2030*5113495bSYour Name    }
2031*5113495bSYour Name    {
2032*5113495bSYour Name       tsinfo_rsvd:      7;
2033*5113495bSYour Name       burst_size_defn:  1;
2034*5113495bSYour Name    }
2035*5113495bSYour Name
2036*5113495bSYour Name    // Nominal MSDU Size
2037*5113495bSYour Name    {
2038*5113495bSYour Name        size:  15;
2039*5113495bSYour Name        fixed: 1;
2040*5113495bSYour Name    }
2041*5113495bSYour Name
2042*5113495bSYour Name    max_msdu_size,        2;
2043*5113495bSYour Name    min_service_int,      4;
2044*5113495bSYour Name    max_service_int,      4;
2045*5113495bSYour Name    inactivity_int,       4;
2046*5113495bSYour Name    suspension_int,       4;
2047*5113495bSYour Name    service_start_time,   4;
2048*5113495bSYour Name    min_data_rate,        4;
2049*5113495bSYour Name    mean_data_rate,       4;
2050*5113495bSYour Name    peak_data_rate,       4;
2051*5113495bSYour Name    burst_size,           4;
2052*5113495bSYour Name    delay_bound,          4;
2053*5113495bSYour Name    min_phy_rate,         4;
2054*5113495bSYour Name    surplus_bw_allowance, 2;
2055*5113495bSYour Name    medium_time,          2;
2056*5113495bSYour Name
2057*5113495bSYour Name} // End IE WMMTSpec.
2058*5113495bSYour Name
2059*5113495bSYour NameIE WMMCaps (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x05)
2060*5113495bSYour Name{
2061*5113495bSYour Name    version, 1 MUSTBE 1;
2062*5113495bSYour Name    {
2063*5113495bSYour Name        reserved:      4;
2064*5113495bSYour Name        qack:          1;
2065*5113495bSYour Name        queue_request: 1;
2066*5113495bSYour Name        txop_request:  1;
2067*5113495bSYour Name        more_ack:      1;
2068*5113495bSYour Name    }
2069*5113495bSYour Name}
2070*5113495bSYour Name
2071*5113495bSYour NameIE WMMTCLAS (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x06)
2072*5113495bSYour Name{
2073*5113495bSYour Name    version, 1 MUSTBE 1;
2074*5113495bSYour Name
2075*5113495bSYour Name    user_priority, 1;
2076*5113495bSYour Name    classifier_type, 1;
2077*5113495bSYour Name    classifier_mask, 1;
2078*5113495bSYour Name    UNION info (DISCRIMINATOR classifier_type)
2079*5113495bSYour Name    {
2080*5113495bSYour Name        EthParams (classifier_type IS 0)
2081*5113495bSYour Name        {
2082*5113495bSYour Name            source[6];
2083*5113495bSYour Name            dest[6];
2084*5113495bSYour Name            type, 2;
2085*5113495bSYour Name        }
2086*5113495bSYour Name        IpParams (classifier_type IS 1)
2087*5113495bSYour Name        {
2088*5113495bSYour Name            version, 1;
2089*5113495bSYour Name            UNION params (DISCRIMINATOR version)
2090*5113495bSYour Name            {
2091*5113495bSYour Name                IpV4Params (version IS 4)
2092*5113495bSYour Name                {
2093*5113495bSYour Name                    source[4];
2094*5113495bSYour Name                    dest[4];
2095*5113495bSYour Name                    src_port, 2;
2096*5113495bSYour Name                    dest_port, 2;
2097*5113495bSYour Name                    DSCP, 1;
2098*5113495bSYour Name                    proto, 1;
2099*5113495bSYour Name                    reserved, 1;
2100*5113495bSYour Name                }
2101*5113495bSYour Name                IpV6Params (version IS 6)
2102*5113495bSYour Name                {
2103*5113495bSYour Name                    source[16];
2104*5113495bSYour Name                    dest[16];
2105*5113495bSYour Name                    src_port, 2;
2106*5113495bSYour Name                    dest_port, 2;
2107*5113495bSYour Name                    flow_label[3];
2108*5113495bSYour Name                }
2109*5113495bSYour Name            };
2110*5113495bSYour Name        }
2111*5113495bSYour Name        Params8021dq (classifier_type IS 2)
2112*5113495bSYour Name        {
2113*5113495bSYour Name            tag_type, 2;
2114*5113495bSYour Name        }
2115*5113495bSYour Name    };
2116*5113495bSYour Name
2117*5113495bSYour Name}
2118*5113495bSYour Name
2119*5113495bSYour NameIE WMMTCLASPROC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x07)
2120*5113495bSYour Name{
2121*5113495bSYour Name    version, 1 MUSTBE 1;
2122*5113495bSYour Name    processing, 1;
2123*5113495bSYour Name}
2124*5113495bSYour Name
2125*5113495bSYour NameIE WMMTSDelay (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x08)
2126*5113495bSYour Name{
2127*5113495bSYour Name    version, 1 MUSTBE 1;
2128*5113495bSYour Name    delay, 4;
2129*5113495bSYour Name}
2130*5113495bSYour Name
2131*5113495bSYour NameIE WMMSchedule (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x09)
2132*5113495bSYour Name{
2133*5113495bSYour Name    version, 1 MUSTBE 1;
2134*5113495bSYour Name
2135*5113495bSYour Name    {
2136*5113495bSYour Name        aggregation: 1;
2137*5113495bSYour Name        tsid:        4;
2138*5113495bSYour Name        direction:   2;
2139*5113495bSYour Name        reserved:    9;
2140*5113495bSYour Name    }
2141*5113495bSYour Name
2142*5113495bSYour Name    service_start_time, 4;
2143*5113495bSYour Name    service_interval,   4;
2144*5113495bSYour Name    max_service_dur,    2;
2145*5113495bSYour Name    spec_interval,      2;
2146*5113495bSYour Name}
2147*5113495bSYour Name
2148*5113495bSYour NameIE ESERadMgmtCap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x01)
2149*5113495bSYour Name{
2150*5113495bSYour Name
2151*5113495bSYour Name    mgmt_state,  1;
2152*5113495bSYour Name
2153*5113495bSYour Name    {
2154*5113495bSYour Name        mbssid_mask:    3;
2155*5113495bSYour Name        reserved:       5;
2156*5113495bSYour Name    }
2157*5113495bSYour Name
2158*5113495bSYour Name}
2159*5113495bSYour Name
2160*5113495bSYour NameIE Vendor1IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x10, 0x18)
2161*5113495bSYour Name{
2162*5113495bSYour Name}
2163*5113495bSYour Name
2164*5113495bSYour NameIE Vendor3IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x16, 0x32)
2165*5113495bSYour Name{
2166*5113495bSYour Name}
2167*5113495bSYour Name
2168*5113495bSYour NameIE hs20vendor_ie (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x10)
2169*5113495bSYour Name{
2170*5113495bSYour Name    /* hotspot_configurations */
2171*5113495bSYour Name    {
2172*5113495bSYour Name        dgaf_dis:               1;
2173*5113495bSYour Name        hs_id_present:          2;
2174*5113495bSYour Name        reserved:               1;
2175*5113495bSYour Name        release_num:            4;
2176*5113495bSYour Name    }
2177*5113495bSYour Name    OPTIONAL UNION hs_id (DISCRIMINATOR hs_id_present)
2178*5113495bSYour Name    {
2179*5113495bSYour Name        pps_mo (hs_id_present IS 1)
2180*5113495bSYour Name        {
2181*5113495bSYour Name            pps_mo_id,          2;
2182*5113495bSYour Name        }
2183*5113495bSYour Name        anqp_domain (hs_id_present IS 2)
2184*5113495bSYour Name        {
2185*5113495bSYour Name            anqp_domain_id,     2;
2186*5113495bSYour Name        }
2187*5113495bSYour Name    };
2188*5113495bSYour Name}
2189*5113495bSYour Name
2190*5113495bSYour NameIE osen_ie (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x12)
2191*5113495bSYour Name{
2192*5113495bSYour Name    data[0..255];
2193*5113495bSYour Name}
2194*5113495bSYour Name
2195*5113495bSYour NameIE roaming_consortium_sel (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x1d)
2196*5113495bSYour Name{
2197*5113495bSYour Name    data[0..255];
2198*5113495bSYour Name}
2199*5113495bSYour Name
2200*5113495bSYour NameIE QComVendorIE (EID_VENDOR_SPECIFIC) OUI (0x00, 0xA0, 0xC6)
2201*5113495bSYour Name{
2202*5113495bSYour Name    type,      1;
2203*5113495bSYour Name    channel,   1;
2204*5113495bSYour Name}
2205*5113495bSYour Name
2206*5113495bSYour NameIE ESETrafStrmMet (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x07)
2207*5113495bSYour Name{
2208*5113495bSYour Name    tsid,           1;
2209*5113495bSYour Name    state,          1;
2210*5113495bSYour Name    msmt_interval,  2;
2211*5113495bSYour Name}
2212*5113495bSYour Name
2213*5113495bSYour NameIE ESETrafStrmRateSet (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x08)
2214*5113495bSYour Name{
2215*5113495bSYour Name    tsid,         1;
2216*5113495bSYour Name    tsrates[0..8];
2217*5113495bSYour Name}
2218*5113495bSYour Name
2219*5113495bSYour NameIE ESEVersion (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x03)
2220*5113495bSYour Name{
2221*5113495bSYour Name    version,           1;
2222*5113495bSYour Name}
2223*5113495bSYour Name
2224*5113495bSYour NameIE ESETxmitPower (EID_ESE_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x00)
2225*5113495bSYour Name{
2226*5113495bSYour Name    power_limit,    1;
2227*5113495bSYour Name    reserved,       1;
2228*5113495bSYour Name}
2229*5113495bSYour Name
2230*5113495bSYour NameIE ESECckmOpaque (EID_ESE_CCKM_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x00)
2231*5113495bSYour Name{
2232*5113495bSYour Name    data[ 6..20 ];
2233*5113495bSYour Name}
2234*5113495bSYour Name
2235*5113495bSYour NameIE RRMEnabledCap (EID_RRM_ENABLED_CAPS)
2236*5113495bSYour Name{
2237*5113495bSYour Name     //Capability bitmap
2238*5113495bSYour Name     {
2239*5113495bSYour Name          LinkMeasurement:         1;
2240*5113495bSYour Name          NeighborRpt:             1;
2241*5113495bSYour Name          parallel:                1;
2242*5113495bSYour Name          repeated:                1;
2243*5113495bSYour Name          BeaconPassive:           1;
2244*5113495bSYour Name          BeaconActive:            1;
2245*5113495bSYour Name          BeaconTable:             1;
2246*5113495bSYour Name          BeaconRepCond:           1;
2247*5113495bSYour Name     }
2248*5113495bSYour Name     {
2249*5113495bSYour Name          FrameMeasurement:        1;
2250*5113495bSYour Name          ChannelLoad:             1;
2251*5113495bSYour Name          NoiseHistogram:          1;
2252*5113495bSYour Name          statistics:              1;
2253*5113495bSYour Name          LCIMeasurement:          1;
2254*5113495bSYour Name          LCIAzimuth:              1;
2255*5113495bSYour Name          TCMCapability:           1;
2256*5113495bSYour Name          triggeredTCM:            1;
2257*5113495bSYour Name     }
2258*5113495bSYour Name     {
2259*5113495bSYour Name          APChanReport:            1;
2260*5113495bSYour Name          RRMMIBEnabled:           1;
2261*5113495bSYour Name          operatingChanMax:        3;
2262*5113495bSYour Name          nonOperatinChanMax:      3;
2263*5113495bSYour Name     }
2264*5113495bSYour Name     {
2265*5113495bSYour Name          MeasurementPilot:        3;
2266*5113495bSYour Name          MeasurementPilotEnabled: 1;
2267*5113495bSYour Name          NeighborTSFOffset:       1;
2268*5113495bSYour Name          RCPIMeasurement:         1;
2269*5113495bSYour Name          RSNIMeasurement:         1;
2270*5113495bSYour Name          BssAvgAccessDelay:       1;
2271*5113495bSYour Name     }
2272*5113495bSYour Name     {
2273*5113495bSYour Name          BSSAvailAdmission:       1;
2274*5113495bSYour Name          AntennaInformation:      1;
2275*5113495bSYour Name          fine_time_meas_rpt:      1;
2276*5113495bSYour Name          lci_capability:          1;
2277*5113495bSYour Name          reserved:                4;
2278*5113495bSYour Name     }
2279*5113495bSYour Name}
2280*5113495bSYour Name
2281*5113495bSYour NameIE MeasurementPilot (EID_RRM_MEAS_PILOT_TX_INFO)
2282*5113495bSYour Name{
2283*5113495bSYour Name     measurementPilot, 1;
2284*5113495bSYour Name     vendorSpecific[0..255]; //Should be an IE. But currently only one level of nesting allowed. Can ignore for now.
2285*5113495bSYour Name}
2286*5113495bSYour Name
2287*5113495bSYour NameIE MultiBssid (EID_MULTIPLE_BSSID)
2288*5113495bSYour Name{
2289*5113495bSYour Name     maxBSSIDIndicator, 1;
2290*5113495bSYour Name     vendorSpecific[0..255];
2291*5113495bSYour Name}
2292*5113495bSYour Name
2293*5113495bSYour NameIE OBSSScanParameters (EID_OBSS_SCAN_PARAMETERS)
2294*5113495bSYour Name{
2295*5113495bSYour Name    obssScanPassiveDwell, 2;
2296*5113495bSYour Name	obssScanActiveDwell, 2;
2297*5113495bSYour Name	bssChannelWidthTriggerScanInterval, 2;
2298*5113495bSYour Name	obssScanPassiveTotalPerChannel, 2;
2299*5113495bSYour Name	obssScanActiveTotalPerChannel, 2;
2300*5113495bSYour Name	bssWidthChannelTransitionDelayFactor, 2;
2301*5113495bSYour Name    obssScanActivityThreshold, 2;
2302*5113495bSYour Name}
2303*5113495bSYour Name
2304*5113495bSYour NameIE ht2040_bss_coexistence (EID_20_40_BSS_COEXISTENCE)
2305*5113495bSYour Name{
2306*5113495bSYour Name     // 20/40 BSS Coexistence Information
2307*5113495bSYour Name    {
2308*5113495bSYour Name        info_request:               1;
2309*5113495bSYour Name        forty_mhz_intolerant:       1;
2310*5113495bSYour Name        twenty_mhz_bsswidth_req:    1;
2311*5113495bSYour Name        obss_scan_exemption_req:    1;
2312*5113495bSYour Name        obss_scan_exemption_grant:  1;
2313*5113495bSYour Name        unused:                     3;
2314*5113495bSYour Name    }
2315*5113495bSYour Name}
2316*5113495bSYour Name
2317*5113495bSYour NameIE ht2040_bss_intolerant_report (EID_20_40_BSS_INTOLERANT_REPORT)
2318*5113495bSYour Name{
2319*5113495bSYour Name     operating_class, 1;
2320*5113495bSYour Name     channel_list[0..50];
2321*5113495bSYour Name}
2322*5113495bSYour Name
2323*5113495bSYour Nameconst EID_RRM_NBR_RPT_TSF              =    1;
2324*5113495bSYour Nameconst EID_RRM_NBR_CD_COUNTRY           =    2;
2325*5113495bSYour Name
2326*5113495bSYour NameIE TSFInfo (EID_RRM_NBR_RPT_TSF)
2327*5113495bSYour Name{
2328*5113495bSYour Name     TsfOffset, 2;
2329*5113495bSYour Name     BeaconIntvl, 2;
2330*5113495bSYour Name}
2331*5113495bSYour NameIE CondensedCountryStr (EID_RRM_NBR_CD_COUNTRY)
2332*5113495bSYour Name{
2333*5113495bSYour Name     countryStr[2];
2334*5113495bSYour Name}
2335*5113495bSYour Name
2336*5113495bSYour NameIE NeighborReport (EID_NEIGHBOR_REPORT)
2337*5113495bSYour Name{
2338*5113495bSYour Name     bssid[6];
2339*5113495bSYour Name     //Bssid Info
2340*5113495bSYour Name     {
2341*5113495bSYour Name          APReachability: 2;
2342*5113495bSYour Name          Security:       1;
2343*5113495bSYour Name          KeyScope:       1;
2344*5113495bSYour Name          //Capabilities
2345*5113495bSYour Name          SpecMgmtCap:    1;
2346*5113495bSYour Name          QosCap:         1;
2347*5113495bSYour Name          apsd:           1;
2348*5113495bSYour Name          rrm:            1;
2349*5113495bSYour Name     }
2350*5113495bSYour Name     //Capabilities contd.
2351*5113495bSYour Name     {
2352*5113495bSYour Name          DelayedBA:      1;
2353*5113495bSYour Name          ImmBA:          1;
2354*5113495bSYour Name     //Capabilities end.
2355*5113495bSYour Name          MobilityDomain: 1;
2356*5113495bSYour Name          reserved:       5;
2357*5113495bSYour Name     }
2358*5113495bSYour Name
2359*5113495bSYour Name          reserved1,      2; //part of BSSID Info.
2360*5113495bSYour Name
2361*5113495bSYour Name     regulatoryClass, 1;
2362*5113495bSYour Name     channel,         1;
2363*5113495bSYour Name     PhyType,         1;
2364*5113495bSYour Name     OPTIE IE TSFInfo;
2365*5113495bSYour Name     OPTIE IE CondensedCountryStr;
2366*5113495bSYour Name     OPTIE IE MeasurementPilot;
2367*5113495bSYour Name     OPTIE IE RRMEnabledCap;
2368*5113495bSYour Name     OPTIE IE MultiBssid;
2369*5113495bSYour Name     //Ignoring vendor specific.
2370*5113495bSYour Name}
2371*5113495bSYour Name
2372*5113495bSYour NameIE RCPIIE (EID_RCPI)
2373*5113495bSYour Name{
2374*5113495bSYour Name     rcpi, 1;
2375*5113495bSYour Name}
2376*5113495bSYour Name
2377*5113495bSYour NameIE RSNIIE (EID_RSNI)
2378*5113495bSYour Name{
2379*5113495bSYour Name     rsni, 1;
2380*5113495bSYour Name}
2381*5113495bSYour Name
2382*5113495bSYour NameIE WFATPC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x08, 0x00)
2383*5113495bSYour Name{
2384*5113495bSYour Name     txPower, 1;
2385*5113495bSYour Name     linkMargin, 1;
2386*5113495bSYour Name}
2387*5113495bSYour Name
2388*5113495bSYour NameIE MobilityDomain (EID_FT_MOBILITY_DOMAIN)
2389*5113495bSYour Name{
2390*5113495bSYour Name   MDID, 2;
2391*5113495bSYour Name   //FT Capability and policy
2392*5113495bSYour Name   {
2393*5113495bSYour Name      overDSCap:         1;
2394*5113495bSYour Name      resourceReqCap:    1;
2395*5113495bSYour Name      reserved:          6;
2396*5113495bSYour Name   }
2397*5113495bSYour Name}
2398*5113495bSYour Nameconst SUB_EID_FT_R1KH_ID = 1;
2399*5113495bSYour Nameconst SUB_EID_FT_GTK     = 2;
2400*5113495bSYour Nameconst SUB_EID_FT_R0KH_ID = 3;
2401*5113495bSYour Nameconst SUB_EID_FT_IGTK    = 4;
2402*5113495bSYour NameIE FTInfo (EID_FT_INFO)
2403*5113495bSYour Name{
2404*5113495bSYour Name   // MicControl, 2;
2405*5113495bSYour Name   {
2406*5113495bSYour Name      reserved: 8;
2407*5113495bSYour Name      IECount:  8;
2408*5113495bSYour Name   }
2409*5113495bSYour Name   MIC[16];
2410*5113495bSYour Name   Anonce[32];
2411*5113495bSYour Name   Snonce[32];
2412*5113495bSYour Name
2413*5113495bSYour Name   OPTIE IE R1KH_ID (SUB_EID_FT_R1KH_ID)
2414*5113495bSYour Name   {
2415*5113495bSYour Name      PMK_R1_ID[6];
2416*5113495bSYour Name   }
2417*5113495bSYour Name
2418*5113495bSYour Name   OPTIE IE GTK (SUB_EID_FT_GTK)
2419*5113495bSYour Name   {
2420*5113495bSYour Name      //Key Info
2421*5113495bSYour Name      {
2422*5113495bSYour Name         keyId: 2;
2423*5113495bSYour Name         reserved: 14;
2424*5113495bSYour Name      }
2425*5113495bSYour Name      keyLength, 1;
2426*5113495bSYour Name      RSC[8];
2427*5113495bSYour Name      key[5..32];
2428*5113495bSYour Name   }
2429*5113495bSYour Name
2430*5113495bSYour Name   OPTIE IE R0KH_ID (SUB_EID_FT_R0KH_ID)
2431*5113495bSYour Name   {
2432*5113495bSYour Name      PMK_R0_ID[1..48];
2433*5113495bSYour Name   }
2434*5113495bSYour Name
2435*5113495bSYour Name   OPTIE IE IGTK (SUB_EID_FT_IGTK)
2436*5113495bSYour Name   {
2437*5113495bSYour Name      //Key Info
2438*5113495bSYour Name      keyID[2];
2439*5113495bSYour Name      IPN[6];
2440*5113495bSYour Name      keyLength, 1;
2441*5113495bSYour Name      key[24];
2442*5113495bSYour Name   }
2443*5113495bSYour Name}
2444*5113495bSYour Name
2445*5113495bSYour NameIE TimeoutInterval (EID_TIMEOUT_INTERVAL)
2446*5113495bSYour Name{
2447*5113495bSYour Name   timeoutType, 1;
2448*5113495bSYour Name   timeoutValue, 4;
2449*5113495bSYour Name}
2450*5113495bSYour Name
2451*5113495bSYour Name//TODO: need to define this properly.
2452*5113495bSYour NameIE RICData (EID_FT_RIC_DATA)
2453*5113495bSYour Name{
2454*5113495bSYour Name   Identifier, 1;
2455*5113495bSYour Name   resourceDescCount, 1;
2456*5113495bSYour Name   statusCode, 2;
2457*5113495bSYour Name}
2458*5113495bSYour Name
2459*5113495bSYour NameIE RICDescriptor (EID_FT_RIC_DESCRIPTOR)
2460*5113495bSYour Name{
2461*5113495bSYour Name   resourceType, 1;
2462*5113495bSYour Name   variableData[0..255]; //Block ack param set...TODO:
2463*5113495bSYour Name}
2464*5113495bSYour Name
2465*5113495bSYour NameIE WscIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x00, 0x50, 0xF2, 0x04 )
2466*5113495bSYour Name{
2467*5113495bSYour Name    data[ 2..249 ];
2468*5113495bSYour Name}
2469*5113495bSYour Name
2470*5113495bSYour NameIE P2PIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x09 )
2471*5113495bSYour Name{
2472*5113495bSYour Name    data[ 2..249 ];
2473*5113495bSYour Name}
2474*5113495bSYour Name
2475*5113495bSYour NameIE WFDIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x0A )
2476*5113495bSYour Name{
2477*5113495bSYour Name    data[ 2..249 ];
2478*5113495bSYour Name}
2479*5113495bSYour Name
2480*5113495bSYour NameIE PTIControl (EID_PTI_CONTROL)                 // 7.3.2.65
2481*5113495bSYour Name{
2482*5113495bSYour Name    tid,                  1;
2483*5113495bSYour Name    sequence_control,     2;
2484*5113495bSYour Name}
2485*5113495bSYour Name
2486*5113495bSYour NameIE oci (EID_EXTN_ID_ELEMENT) OUI ( 0x36 )
2487*5113495bSYour Name{
2488*5113495bSYour Name    op_class, 1;
2489*5113495bSYour Name    prim_ch_num, 1;
2490*5113495bSYour Name    freq_seg_1_ch_num, 1;
2491*5113495bSYour Name}
2492*5113495bSYour Name
2493*5113495bSYour NameIE PUBufferStatus (EID_PU_BUFFER_STATUS)        // 7.3.2.66
2494*5113495bSYour Name{
2495*5113495bSYour Name    {
2496*5113495bSYour Name        ac_bk_traffic_aval:          1;
2497*5113495bSYour Name        ac_be_traffic_aval:          1;
2498*5113495bSYour Name        ac_vi_traffic_aval:          1;
2499*5113495bSYour Name        ac_vo_traffic_aval:          1;
2500*5113495bSYour Name        reserved:    4;
2501*5113495bSYour Name    }
2502*5113495bSYour Name}
2503*5113495bSYour Name
2504*5113495bSYour Name
2505*5113495bSYour NameIE bss_max_idle_period (EID_BSS_MAX_IDLE_PERIOD)
2506*5113495bSYour Name{
2507*5113495bSYour Name    max_idle_period,     2;
2508*5113495bSYour Name    {
2509*5113495bSYour Name        prot_keep_alive_reqd: 1;
2510*5113495bSYour Name        reserved:             7;
2511*5113495bSYour Name    }
2512*5113495bSYour Name}
2513*5113495bSYour Name
2514*5113495bSYour NameIE VHTCaps (EID_VHT_CAPABILITIES)
2515*5113495bSYour Name{
2516*5113495bSYour Name    //VHT Capability Info
2517*5113495bSYour Name    {
2518*5113495bSYour Name        maxMPDULen:               2;
2519*5113495bSYour Name        supportedChannelWidthSet: 2;
2520*5113495bSYour Name        ldpcCodingCap:            1;
2521*5113495bSYour Name        shortGI80MHz:             1;
2522*5113495bSYour Name        shortGI160and80plus80MHz: 1;
2523*5113495bSYour Name        txSTBC:                   1;
2524*5113495bSYour Name        rxSTBC:                   3;
2525*5113495bSYour Name        suBeamFormerCap:          1;
2526*5113495bSYour Name        suBeamformeeCap:          1;
2527*5113495bSYour Name        csnofBeamformerAntSup:    3;
2528*5113495bSYour Name        numSoundingDim:           3;
2529*5113495bSYour Name        muBeamformerCap:          1;
2530*5113495bSYour Name        muBeamformeeCap:          1;
2531*5113495bSYour Name        vhtTXOPPS:                1;
2532*5113495bSYour Name        htcVHTCap:                1;
2533*5113495bSYour Name        maxAMPDULenExp:           3;
2534*5113495bSYour Name        vhtLinkAdaptCap:          2;
2535*5113495bSYour Name        rxAntPattern:             1;
2536*5113495bSYour Name        txAntPattern:             1;
2537*5113495bSYour Name        extended_nss_bw_supp:     2;
2538*5113495bSYour Name    }
2539*5113495bSYour Name    rxMCSMap,                     2;
2540*5113495bSYour Name    {
2541*5113495bSYour Name         rxHighSupDataRate:       13;
2542*5113495bSYour Name         max_nsts_total:          3;
2543*5113495bSYour Name    }
2544*5113495bSYour Name    txMCSMap,                     2;
2545*5113495bSYour Name    {
2546*5113495bSYour Name        txSupDataRate:            13;
2547*5113495bSYour Name        vht_extended_nss_bw_cap:  1;
2548*5113495bSYour Name        reserved:                 2;
2549*5113495bSYour Name    }
2550*5113495bSYour Name}
2551*5113495bSYour Name
2552*5113495bSYour NameIE VHTOperation (EID_VHT_OPERATION_ELEMENT)
2553*5113495bSYour Name{
2554*5113495bSYour Name    chanWidth,             1;
2555*5113495bSYour Name    chan_center_freq_seg0, 1;
2556*5113495bSYour Name    chan_center_freq_seg1, 1;
2557*5113495bSYour Name    basicMCSSet,           2;
2558*5113495bSYour Name}
2559*5113495bSYour Name
2560*5113495bSYour NameIE VHTExtBssLoad (EID_VHT_EXT_BSS_LOAD)
2561*5113495bSYour Name{
2562*5113495bSYour Name    muMIMOCapStaCount,    1;
2563*5113495bSYour Name    ssUnderUtil,          1;
2564*5113495bSYour Name    FortyMHzUtil,         1;
2565*5113495bSYour Name    EightyMHzUtil,        1;
2566*5113495bSYour Name    OneSixtyMHzUtil,      1;
2567*5113495bSYour Name}
2568*5113495bSYour Name
2569*5113495bSYour NameIE AID (EID_AID)
2570*5113495bSYour Name{
2571*5113495bSYour Name    assocId,              2;
2572*5113495bSYour Name}
2573*5113495bSYour Name
2574*5113495bSYour NameIE WiderBWChanSwitchAnn (EID_WIDER_BW_CHANNEL_SWITCH_ANN)
2575*5113495bSYour Name{
2576*5113495bSYour Name   newChanWidth,          1;
2577*5113495bSYour Name   newCenterChanFreq0,    1;
2578*5113495bSYour Name   newCenterChanFreq1,    1;
2579*5113495bSYour Name}
2580*5113495bSYour Name
2581*5113495bSYour NameIE transmit_power_env (EID_TRANSMIT_POWER_ENVELOPE)
2582*5113495bSYour Name{
2583*5113495bSYour Name    {
2584*5113495bSYour Name        max_tx_pwr_count:             3;
2585*5113495bSYour Name        max_tx_pwr_interpret:         3;
2586*5113495bSYour Name        max_tx_pwr_category:          2;
2587*5113495bSYour Name    }
2588*5113495bSYour Name    tx_power[1..8];
2589*5113495bSYour Name    OPTIONAL UNION ext_max_tx_power (DISCRIMINATOR max_tx_pwr_interpret)
2590*5113495bSYour Name    {
2591*5113495bSYour Name       ext_max_tx_power_local_eirp (max_tx_pwr_interpret IS 0) {
2592*5113495bSYour Name               max_tx_power_for_320, 1;
2593*5113495bSYour Name       }
2594*5113495bSYour Name       ext_max_tx_power_local_psd (max_tx_pwr_interpret IS 1) {
2595*5113495bSYour Name               //ext_transmit_psd_info, 1;
2596*5113495bSYour Name               {
2597*5113495bSYour Name                       ext_count: 4;
2598*5113495bSYour Name                       reserved: 4;
2599*5113495bSYour Name               }
2600*5113495bSYour Name               max_tx_psd_power[8];
2601*5113495bSYour Name       }
2602*5113495bSYour Name       ext_max_tx_power_reg_eirp (max_tx_pwr_interpret IS 2) {
2603*5113495bSYour Name               max_tx_power_for_320, 1;
2604*5113495bSYour Name       }
2605*5113495bSYour Name       ext_max_tx_power_reg_psd (max_tx_pwr_interpret IS 3) {
2606*5113495bSYour Name               //ext_transmit_psd_info, 1;
2607*5113495bSYour Name               {
2608*5113495bSYour Name                       ext_count: 4;
2609*5113495bSYour Name                       reserved: 4;
2610*5113495bSYour Name               }
2611*5113495bSYour Name               max_tx_psd_power[8];
2612*5113495bSYour Name       }
2613*5113495bSYour Name
2614*5113495bSYour Name    };
2615*5113495bSYour Name}
2616*5113495bSYour Name
2617*5113495bSYour NameIE bw_ind_element (EID_EXTN_ID_ELEMENT) OUI (0x87)
2618*5113495bSYour Name{
2619*5113495bSYour Name   {
2620*5113495bSYour Name       reserved: 1;
2621*5113495bSYour Name       disabled_sub_chan_bitmap_present: 1;
2622*5113495bSYour Name       reserved_1: 6;
2623*5113495bSYour Name   }
2624*5113495bSYour Name   {
2625*5113495bSYour Name       channel_width: 3;
2626*5113495bSYour Name       reserved_2: 5;
2627*5113495bSYour Name   }
2628*5113495bSYour Name   ccfs0, 1;
2629*5113495bSYour Name   ccfs1, 1;
2630*5113495bSYour Name   disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present;
2631*5113495bSYour Name}
2632*5113495bSYour Name
2633*5113495bSYour NameIE ChannelSwitchWrapper (EID_CHANNEL_SWITCH_WRAPPER)
2634*5113495bSYour Name{
2635*5113495bSYour Name    OPTIE IE  WiderBWChanSwitchAnn;
2636*5113495bSYour Name    OPTIE IE  transmit_power_env;
2637*5113495bSYour Name    OPTIE IE  bw_ind_element;
2638*5113495bSYour Name}
2639*5113495bSYour Name
2640*5113495bSYour NameIE reduced_neighbor_report (EID_RNR_IE)
2641*5113495bSYour Name{
2642*5113495bSYour Name    // TBTT Information Header
2643*5113495bSYour Name    {
2644*5113495bSYour Name	tbtt_type:              2;
2645*5113495bSYour Name	filtered_neighbor_ap:   1;
2646*5113495bSYour Name	reserved:               1;
2647*5113495bSYour Name	tbtt_info_count:        4;
2648*5113495bSYour Name	tbtt_info_len:          8;
2649*5113495bSYour Name    }
2650*5113495bSYour Name    op_class, 1;
2651*5113495bSYour Name    channel_num, 1;
2652*5113495bSYour Name    // TBTT information field
2653*5113495bSYour Name    UNION tbtt_info (DISCRIMINATOR tbtt_info_len)
2654*5113495bSYour Name    {
2655*5113495bSYour Name	tbtt_info_1 (tbtt_info_len IS 1)
2656*5113495bSYour Name	{
2657*5113495bSYour Name		tbtt_offset, 1;
2658*5113495bSYour Name	}
2659*5113495bSYour Name	tbtt_info_2 (tbtt_info_len IS 2)
2660*5113495bSYour Name	{
2661*5113495bSYour Name		tbtt_offset, 1;
2662*5113495bSYour Name		bss_params, 1;
2663*5113495bSYour Name	}
2664*5113495bSYour Name	tbtt_info_5 (tbtt_info_len IS 5)
2665*5113495bSYour Name	{
2666*5113495bSYour Name		tbtt_offset, 1;
2667*5113495bSYour Name		short_ssid, 4;
2668*5113495bSYour Name	}
2669*5113495bSYour Name	tbtt_info_6 (tbtt_info_len IS 6)
2670*5113495bSYour Name	{
2671*5113495bSYour Name		tbtt_offset, 1;
2672*5113495bSYour Name		short_ssid, 4;
2673*5113495bSYour Name		bss_params, 1;
2674*5113495bSYour Name	}
2675*5113495bSYour Name	tbtt_info_7 (tbtt_info_len IS 7)
2676*5113495bSYour Name	{
2677*5113495bSYour Name		tbtt_offset, 1;
2678*5113495bSYour Name		bssid[6];
2679*5113495bSYour Name	}
2680*5113495bSYour Name	tbtt_info_8 (tbtt_info_len IS 8)
2681*5113495bSYour Name	{
2682*5113495bSYour Name		tbtt_offset, 1;
2683*5113495bSYour Name		bssid[6];
2684*5113495bSYour Name		bss_params, 1;
2685*5113495bSYour Name	}
2686*5113495bSYour Name	tbtt_info_9 (tbtt_info_len IS 9)
2687*5113495bSYour Name	{
2688*5113495bSYour Name		tbtt_offset, 1;
2689*5113495bSYour Name		bssid[6];
2690*5113495bSYour Name		bss_params, 1;
2691*5113495bSYour Name		psd_20mhz, 1;
2692*5113495bSYour Name	}
2693*5113495bSYour Name	tbtt_info_11 (tbtt_info_len IS 11)
2694*5113495bSYour Name	{
2695*5113495bSYour Name		tbtt_offset, 1;
2696*5113495bSYour Name		bssid[6];
2697*5113495bSYour Name		short_ssid, 4;
2698*5113495bSYour Name	}
2699*5113495bSYour Name	tbtt_info_12 (tbtt_info_len IS 12)
2700*5113495bSYour Name	{
2701*5113495bSYour Name		tbtt_offset, 1;
2702*5113495bSYour Name		bssid[6];
2703*5113495bSYour Name		short_ssid, 4;
2704*5113495bSYour Name		bss_params, 1;
2705*5113495bSYour Name	}
2706*5113495bSYour Name	tbtt_info_13 (tbtt_info_len IS 13)
2707*5113495bSYour Name	{
2708*5113495bSYour Name		tbtt_offset, 1;
2709*5113495bSYour Name		bssid[6];
2710*5113495bSYour Name		short_ssid, 4;
2711*5113495bSYour Name		bss_params, 1;
2712*5113495bSYour Name		psd_20mhz, 1;
2713*5113495bSYour Name	}
2714*5113495bSYour Name	tbtt_info_16 (tbtt_info_len IS 16)
2715*5113495bSYour Name	{
2716*5113495bSYour Name		tbtt_offset, 1;
2717*5113495bSYour Name		bssid[6];
2718*5113495bSYour Name		short_ssid, 4;
2719*5113495bSYour Name		bss_params, 1;
2720*5113495bSYour Name		psd_20mhz, 1;
2721*5113495bSYour Name		mld_id, 1;
2722*5113495bSYour Name		{
2723*5113495bSYour Name		     link_id:                   4;
2724*5113495bSYour Name		     bss_param_change_cnt:      8;
2725*5113495bSYour Name		     all_updates_included:      1;
2726*5113495bSYour Name		     reserved:                  3;
2727*5113495bSYour Name		}
2728*5113495bSYour Name	}
2729*5113495bSYour Name    };
2730*5113495bSYour Name}
2731*5113495bSYour Name
2732*5113495bSYour NameIE ExtCap (EID_EXT_CAP)
2733*5113495bSYour Name{
2734*5113495bSYour Name    bytes[1..15];
2735*5113495bSYour Name}
2736*5113495bSYour Name
2737*5113495bSYour NameIE HTCaps (EID_HT_CAPABILITIES)
2738*5113495bSYour Name{
2739*5113495bSYour Name    // HT Capability Info
2740*5113495bSYour Name    {
2741*5113495bSYour Name        advCodingCap:             1;
2742*5113495bSYour Name        supportedChannelWidthSet: 1;
2743*5113495bSYour Name        mimoPowerSave:            2;
2744*5113495bSYour Name        greenField:               1;
2745*5113495bSYour Name        shortGI20MHz:             1;
2746*5113495bSYour Name        shortGI40MHz:             1;
2747*5113495bSYour Name        txSTBC:                   1;
2748*5113495bSYour Name        rxSTBC:                   2;
2749*5113495bSYour Name        delayedBA:                1;
2750*5113495bSYour Name        maximalAMSDUsize:         1;
2751*5113495bSYour Name        dsssCckMode40MHz:         1;
2752*5113495bSYour Name        psmp:                     1;
2753*5113495bSYour Name        stbcControlFrame:         1;
2754*5113495bSYour Name        lsigTXOPProtection:       1;
2755*5113495bSYour Name    }
2756*5113495bSYour Name    // HT Parameters Info;
2757*5113495bSYour Name    {
2758*5113495bSYour Name        maxRxAMPDUFactor: 2;
2759*5113495bSYour Name        mpduDensity:      3;
2760*5113495bSYour Name        reserved1:        3;
2761*5113495bSYour Name    }
2762*5113495bSYour Name
2763*5113495bSYour Name    supportedMCSSet[ HT_MAX_SUPPORTED_MCS_SET ];
2764*5113495bSYour Name
2765*5113495bSYour Name    // Extended HT Capability Info
2766*5113495bSYour Name    {
2767*5113495bSYour Name        pco:            1;
2768*5113495bSYour Name        transitionTime: 2;
2769*5113495bSYour Name        reserved2:      5;
2770*5113495bSYour Name        mcsFeedback:    2;
2771*5113495bSYour Name        reserved3:      6;
2772*5113495bSYour Name    }
2773*5113495bSYour Name    // TXBF Capability Info
2774*5113495bSYour Name    {
2775*5113495bSYour Name        txBF:                                       1;
2776*5113495bSYour Name        rxStaggeredSounding:                        1;
2777*5113495bSYour Name        txStaggeredSounding:                        1;
2778*5113495bSYour Name        rxZLF:                                      1;
2779*5113495bSYour Name        txZLF:                                      1;
2780*5113495bSYour Name        implicitTxBF:                               1;
2781*5113495bSYour Name        calibration:                                2;
2782*5113495bSYour Name        explicitCSITxBF:                            1;
2783*5113495bSYour Name        explicitUncompressedSteeringMatrix:         1;
2784*5113495bSYour Name        explicitBFCSIFeedback:                      3;
2785*5113495bSYour Name        explicitUncompressedSteeringMatrixFeedback: 3;
2786*5113495bSYour Name        explicitCompressedSteeringMatrixFeedback:   3;
2787*5113495bSYour Name        csiNumBFAntennae:                           2;
2788*5113495bSYour Name        uncompressedSteeringMatrixBFAntennae:       2;
2789*5113495bSYour Name        compressedSteeringMatrixBFAntennae:         2;
2790*5113495bSYour Name        reserved4:           7;
2791*5113495bSYour Name    }
2792*5113495bSYour Name    // AS Capability Info
2793*5113495bSYour Name    {
2794*5113495bSYour Name        antennaSelection:         1;
2795*5113495bSYour Name        explicitCSIFeedbackTx:    1;
2796*5113495bSYour Name        antennaIndicesFeedbackTx: 1;
2797*5113495bSYour Name        explicitCSIFeedback:      1;
2798*5113495bSYour Name        antennaIndicesFeedback:   1;
2799*5113495bSYour Name        rxAS:                     1;
2800*5113495bSYour Name        txSoundingPPDUs:          1;
2801*5113495bSYour Name        reserved5:                1;
2802*5113495bSYour Name    }
2803*5113495bSYour Name    //TODO: take it out when generic fix to remove extra bytes in IE is available.
2804*5113495bSYour Name    //This is required to interop with Dlink AP which is sending 2 bytes extra in HTInfo IE.
2805*5113495bSYour Name    rsvd[0..32];
2806*5113495bSYour Name
2807*5113495bSYour Name} // End IE HTCaps.
2808*5113495bSYour Name
2809*5113495bSYour NameIE HTInfo (EID_HT_INFO)
2810*5113495bSYour Name{
2811*5113495bSYour Name    primaryChannel, 1;
2812*5113495bSYour Name
2813*5113495bSYour Name    // ahtInfoField1
2814*5113495bSYour Name    {
2815*5113495bSYour Name        secondaryChannelOffset:     2;
2816*5113495bSYour Name        recommendedTxWidthSet:      1;
2817*5113495bSYour Name        rifsMode:                   1;
2818*5113495bSYour Name        controlledAccessOnly:       1;
2819*5113495bSYour Name        serviceIntervalGranularity: 3;
2820*5113495bSYour Name    }
2821*5113495bSYour Name
2822*5113495bSYour Name    // ahtInfoField2
2823*5113495bSYour Name
2824*5113495bSYour Name
2825*5113495bSYour Name    // ahtInfoField2
2826*5113495bSYour Name    {
2827*5113495bSYour Name        opMode:              2;
2828*5113495bSYour Name        nonGFDevicesPresent: 1;
2829*5113495bSYour Name        transmitBurstLimit: 1;
2830*5113495bSYour Name        obssNonHTStaPresent:1;
2831*5113495bSYour Name        chan_center_freq_seg2:8;
2832*5113495bSYour Name        reserved:           3;
2833*5113495bSYour Name    }
2834*5113495bSYour Name
2835*5113495bSYour Name
2836*5113495bSYour Name    // ahtInfoField3
2837*5113495bSYour Name    {
2838*5113495bSYour Name        basicSTBCMCS:                  7;
2839*5113495bSYour Name        dualCTSProtection:             1;
2840*5113495bSYour Name        secondaryBeacon:               1;
2841*5113495bSYour Name        lsigTXOPProtectionFullSupport: 1;
2842*5113495bSYour Name        pcoActive:                     1;
2843*5113495bSYour Name        pcoPhase:                      1;
2844*5113495bSYour Name        reserved2:                     4;
2845*5113495bSYour Name    }
2846*5113495bSYour Name
2847*5113495bSYour Name    basicMCSSet[ HT_MAX_SUPPORTED_MCS_SET ];
2848*5113495bSYour Name
2849*5113495bSYour Name    //TODO: take it out when generic fix to remove extra bytes in IE is available.
2850*5113495bSYour Name    //This is required to interop with Dlink AP which is sending 2 bytes extra in HTInfo IE.
2851*5113495bSYour Name    rsvd[0..32];
2852*5113495bSYour Name
2853*5113495bSYour Name} // End IE HTInfo.
2854*5113495bSYour Name
2855*5113495bSYour Name
2856*5113495bSYour NameIE OperatingMode (EID_OPERATING_MODE)
2857*5113495bSYour Name{
2858*5113495bSYour Name    { //Operating Mode field
2859*5113495bSYour Name        chanWidth:          2;
2860*5113495bSYour Name        vht_160_80p80_supp: 1;
2861*5113495bSYour Name        no_ldpc:            1;
2862*5113495bSYour Name        rxNSS:              3;
2863*5113495bSYour Name        rxNSSType:          1;
2864*5113495bSYour Name    }
2865*5113495bSYour Name}
2866*5113495bSYour Name
2867*5113495bSYour NameIE QosMapSet (EID_QOS_MAP_SET)
2868*5113495bSYour Name{
2869*5113495bSYour Name    dscp_exceptions[QOS_DSCP_RANGE_LEN..MAX_QOS_DSCP_DATA_LEN];
2870*5113495bSYour Name}
2871*5113495bSYour Name
2872*5113495bSYour NameCONTAINERIE RICDataDesc
2873*5113495bSYour Name{
2874*5113495bSYour Name  MANDIE RICData;
2875*5113495bSYour Name  OPTIE  RICDescriptor;
2876*5113495bSYour Name  OPTIE  TSPEC;
2877*5113495bSYour Name  OPTIE  TCLAS[0..2];
2878*5113495bSYour Name  OPTIE  TCLASSPROC;
2879*5113495bSYour Name  OPTIE  TSDelay;
2880*5113495bSYour Name  OPTIE  Schedule;
2881*5113495bSYour Name  OPTIE  WMMTSPEC;
2882*5113495bSYour Name  OPTIE  WMMTCLAS[0..2];
2883*5113495bSYour Name  OPTIE  WMMTCLASPROC;
2884*5113495bSYour Name  OPTIE  WMMTSDelay;
2885*5113495bSYour Name  OPTIE  WMMSchedule;
2886*5113495bSYour Name}
2887*5113495bSYour Name
2888*5113495bSYour NameIE TimeAdvertisement (EID_TIME_ADVERTISEMENT)   // 8.4.2.63
2889*5113495bSYour Name{
2890*5113495bSYour Name    timing_capabilities, 1;
2891*5113495bSYour Name    time_value[10];
2892*5113495bSYour Name    time_error[5];
2893*5113495bSYour Name}
2894*5113495bSYour Name
2895*5113495bSYour Name/**
2896*5113495bSYour Name * This all attributes are defined under qcn_attribute_id enum of
2897*5113495bSYour Name * cmn code in wlan_cmn_ieee80211.h file.
2898*5113495bSYour Name */
2899*5113495bSYour Nameconst TLV_VERSION_ATTR_ID                 = 1;
2900*5113495bSYour Nameconst TLV_VHT_MCS_10_11_ATTR_ID           = 2;
2901*5113495bSYour Nameconst TLV_HE_400NS_SGI_SUPP_ATTR_ID       = 3;
2902*5113495bSYour Nameconst TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID = 4;
2903*5113495bSYour Nameconst TLV_HE_DL_OFDMA_SUPPP_ATTR_ID       = 5;
2904*5113495bSYour Nameconst TLV_TRANSITION_REASONP_ATTR_ID      = 6;
2905*5113495bSYour Nameconst TLV_TRANSITION_REJECTIONP_ATTR_ID   = 7;
2906*5113495bSYour Nameconst TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID      = 8;
2907*5113495bSYour Nameconst TLV_HE_MCS_11_12_ATTR_ID            = 9;
2908*5113495bSYour Nameconst TLV_EDCA_PIFS_PARAM_ATTR_ID         = 13;
2909*5113495bSYour Nameconst TLV_ECSA_TARGET_TSF_INFO_ATTR_ID    = 14;
2910*5113495bSYour Name
2911*5113495bSYour NameTLV qcn_version(TLV_VERSION_ATTR_ID) ( 1 : 1 ) LSB
2912*5113495bSYour Name{
2913*5113495bSYour Name	version, 1;
2914*5113495bSYour Name	sub_version, 1;
2915*5113495bSYour Name}
2916*5113495bSYour NameTLV vht_mcs11_attr (TLV_VHT_MCS_10_11_ATTR_ID) ( 1 : 1 ) LSB
2917*5113495bSYour Name{
2918*5113495bSYour Name      vht_mcs_10_11_supp, 1;
2919*5113495bSYour Name}
2920*5113495bSYour NameTLV he_400ns_sgi_attr (TLV_HE_400NS_SGI_SUPP_ATTR_ID) ( 1 : 1 ) LSB
2921*5113495bSYour Name{
2922*5113495bSYour Name   he_ltf1x_400ns_sgi, 1;
2923*5113495bSYour Name   he_ltf2x_400ns_sgi, 1;
2924*5113495bSYour Name   he_ltf4x_400ns_sgi, 1;
2925*5113495bSYour Name}
2926*5113495bSYour Name
2927*5113495bSYour NameTLV he_2xltf_160mhz_supp (TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID) ( 1 : 1 ) LSB
2928*5113495bSYour Name{
2929*5113495bSYour Name   he_2xltf_160MHz_supp, 1;
2930*5113495bSYour Name}
2931*5113495bSYour Name
2932*5113495bSYour NameTLV he_dl_ofdma_attr (TLV_HE_DL_OFDMA_SUPPP_ATTR_ID) ( 1 : 1 ) LSB
2933*5113495bSYour Name{
2934*5113495bSYour Name   he_dl_ofdma_supp, 1;
2935*5113495bSYour Name}
2936*5113495bSYour Name
2937*5113495bSYour NameTLV trans_reasonp_attr (TLV_TRANSITION_REASONP_ATTR_ID) ( 1 : 1 ) LSB
2938*5113495bSYour Name{
2939*5113495bSYour Name   transition_reasonp, 1;
2940*5113495bSYour Name}
2941*5113495bSYour Name
2942*5113495bSYour NameTLV trans_rejectp_attr (TLV_TRANSITION_REJECTIONP_ATTR_ID) ( 1 : 1 ) LSB
2943*5113495bSYour Name{
2944*5113495bSYour Name   transition_rejp, 1;
2945*5113495bSYour Name}
2946*5113495bSYour Name
2947*5113495bSYour NameTLV he_dl_mumimo_attr (TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID) ( 1 : 1 ) LSB
2948*5113495bSYour Name{
2949*5113495bSYour Name   he_dl_mumimo_supp, 1;
2950*5113495bSYour Name}
2951*5113495bSYour Name
2952*5113495bSYour NameTLV he_mcs13_attr (TLV_HE_MCS_11_12_ATTR_ID) ( 1 : 1 ) LSB
2953*5113495bSYour Name{
2954*5113495bSYour Name   he_mcs_12_13_supp_80,  1;
2955*5113495bSYour Name   he_mcs_12_13_supp_160, 1;
2956*5113495bSYour Name}
2957*5113495bSYour Name
2958*5113495bSYour NameTLV edca_pifs_param_attr (TLV_EDCA_PIFS_PARAM_ATTR_ID) ( 1 : 1 ) LSB
2959*5113495bSYour Name{
2960*5113495bSYour Name   // Configure EDCA or PIFS param based on edca_param_type
2961*5113495bSYour Name   edca_param_type, 1;
2962*5113495bSYour Name   data[3..4];
2963*5113495bSYour Name}
2964*5113495bSYour Name
2965*5113495bSYour NameTLV ecsa_target_tsf_info_attr (TLV_ECSA_TARGET_TSF_INFO_ATTR_ID) ( 1 : 1 ) LSB
2966*5113495bSYour Name{
2967*5113495bSYour Name    twt_ch_sw_mode, 1;
2968*5113495bSYour Name    target_tsf, 8;
2969*5113495bSYour Name}
2970*5113495bSYour Name
2971*5113495bSYour NameMULTIIE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 )
2972*5113495bSYour Name{
2973*5113495bSYour Name   OPTIONALTLV qcn_version;
2974*5113495bSYour Name   OPTIONALTLV vht_mcs11_attr;
2975*5113495bSYour Name   OPTIONALTLV he_400ns_sgi_attr;
2976*5113495bSYour Name   OPTIONALTLV he_2xltf_160mhz_supp;
2977*5113495bSYour Name   OPTIONALTLV he_dl_ofdma_attr;
2978*5113495bSYour Name   OPTIONALTLV trans_reasonp_attr;
2979*5113495bSYour Name   OPTIONALTLV trans_rejectp_attr;
2980*5113495bSYour Name   OPTIONALTLV he_dl_mumimo_attr;
2981*5113495bSYour Name   OPTIONALTLV he_mcs13_attr;
2982*5113495bSYour Name   OPTIONALTLV edca_pifs_param_attr;
2983*5113495bSYour Name   OPTIONALTLV ecsa_target_tsf_info_attr;
2984*5113495bSYour Name}
2985*5113495bSYour Name
2986*5113495bSYour NameIE esp_information (EID_EXTN_ID_ELEMENT) OUI ( 0x0B )
2987*5113495bSYour Name{
2988*5113495bSYour Name    data[0..96];
2989*5113495bSYour Name}
2990*5113495bSYour NameIE fils_indication (EID_FILS_INDICATION)
2991*5113495bSYour Name{
2992*5113495bSYour Name   // FILS Information element
2993*5113495bSYour Name   {
2994*5113495bSYour Name       public_key_identifiers_cnt     : 3;
2995*5113495bSYour Name       realm_identifiers_cnt          : 3;
2996*5113495bSYour Name       is_ip_config_supported         : 1;
2997*5113495bSYour Name       is_cache_id_present            : 1;
2998*5113495bSYour Name       is_hessid_present              : 1;
2999*5113495bSYour Name       is_fils_sk_auth_supported      : 1;
3000*5113495bSYour Name       is_fils_sk_auth_pfs_supported  : 1;
3001*5113495bSYour Name       is_pk_auth_supported           : 1;
3002*5113495bSYour Name       reserved                       : 4;
3003*5113495bSYour Name   }
3004*5113495bSYour Name   // other FILS elements
3005*5113495bSYour Name   variable_data[2..255];
3006*5113495bSYour Name}
3007*5113495bSYour Name
3008*5113495bSYour NameIE fils_assoc_delay_info (EID_EXTN_ID_ELEMENT) OUI ( 0x01 )
3009*5113495bSYour Name{
3010*5113495bSYour Name    assoc_delay_info, 1;
3011*5113495bSYour Name}
3012*5113495bSYour Name
3013*5113495bSYour NameIE fils_key_confirmation (EID_EXTN_ID_ELEMENT) OUI ( 0x03 )
3014*5113495bSYour Name{
3015*5113495bSYour Name    key_auth[0..255];
3016*5113495bSYour Name}
3017*5113495bSYour Name
3018*5113495bSYour NameIE fils_session (EID_EXTN_ID_ELEMENT) OUI ( 0x04 )
3019*5113495bSYour Name{
3020*5113495bSYour Name    session[8];
3021*5113495bSYour Name}
3022*5113495bSYour Name
3023*5113495bSYour NameIE fils_hlp_container (EID_EXTN_ID_ELEMENT) OUI ( 0x05 )
3024*5113495bSYour Name{
3025*5113495bSYour Name    dest_mac[6];
3026*5113495bSYour Name    src_mac[6];
3027*5113495bSYour Name    hlp_packet[0..255];
3028*5113495bSYour Name}
3029*5113495bSYour Name
3030*5113495bSYour NameIE fils_kde (EID_EXTN_ID_ELEMENT) OUI ( 0x07 )
3031*5113495bSYour Name{
3032*5113495bSYour Name    key_rsc[8];
3033*5113495bSYour Name    kde_list[0..255];
3034*5113495bSYour Name}
3035*5113495bSYour Name
3036*5113495bSYour NameIE fils_wrapped_data (EID_EXTN_ID_ELEMENT) OUI ( 0x08 )
3037*5113495bSYour Name{
3038*5113495bSYour Name    wrapped_data[0..255];
3039*5113495bSYour Name}
3040*5113495bSYour Name
3041*5113495bSYour NameIE fils_public_key (EID_EXTN_ID_ELEMENT) OUI ( 0x0C )
3042*5113495bSYour Name{
3043*5113495bSYour Name    key_type, 1;
3044*5113495bSYour Name    public_key[0..255];
3045*5113495bSYour Name}
3046*5113495bSYour Name
3047*5113495bSYour NameIE fils_nonce (EID_EXTN_ID_ELEMENT) OUI ( 0x0D )
3048*5113495bSYour Name{
3049*5113495bSYour Name    nonce[16];
3050*5113495bSYour Name}
3051*5113495bSYour Name
3052*5113495bSYour NameIE fragment_ie (EID_FRAGMENT_IE)
3053*5113495bSYour Name{
3054*5113495bSYour Name    data[0..255];
3055*5113495bSYour Name}
3056*5113495bSYour Name
3057*5113495bSYour NameIE dh_parameter_element (EID_EXTN_ID_ELEMENT) OUI ( 0x20 )
3058*5113495bSYour Name{
3059*5113495bSYour Name    group[2];
3060*5113495bSYour Name    public_key[0..255];
3061*5113495bSYour Name}
3062*5113495bSYour Name
3063*5113495bSYour Nameconst EID_RRM_REPORTING     = 1;
3064*5113495bSYour Nameconst EID_RRM_BCN_REPORTING_DETAIL = 2;
3065*5113495bSYour Name
3066*5113495bSYour Nameconst SUB_EID_AZIMUTH_REQ = 1;
3067*5113495bSYour Nameconst SUB_EID_REQ_MAC_ADDR = 2;
3068*5113495bSYour Nameconst SUB_EID_TGT_MAC_ADDR = 3;
3069*5113495bSYour Nameconst SUB_EID_MAX_AGE = 4;
3070*5113495bSYour Nameconst SUB_EID_NEIGHBOR_RPT = 52;
3071*5113495bSYour Name//const SUB_EID_TRIGGERED_REPORTING = 1;
3072*5113495bSYour Name
3073*5113495bSYour NameIE rrm_reporting (EID_RRM_REPORTING)
3074*5113495bSYour Name{
3075*5113495bSYour Name     reporting_condition, 1;
3076*5113495bSYour Name     threshold,           1;
3077*5113495bSYour Name}
3078*5113495bSYour Name
3079*5113495bSYour NameIE BcnReportingDetail (EID_RRM_BCN_REPORTING_DETAIL)
3080*5113495bSYour Name{
3081*5113495bSYour Name     reportingDetail, 1;
3082*5113495bSYour Name}
3083*5113495bSYour Name
3084*5113495bSYour NameIE APChannelReport (EID_AP_CHAN_REPORT)
3085*5113495bSYour Name{
3086*5113495bSYour Name     regulatoryClass, 1;
3087*5113495bSYour Name     channelList[0..50];
3088*5113495bSYour Name}
3089*5113495bSYour Name
3090*5113495bSYour NameIE azimuth_req (SUB_EID_AZIMUTH_REQ)
3091*5113495bSYour Name{
3092*5113495bSYour Name    request,    1;
3093*5113495bSYour Name}
3094*5113495bSYour Name
3095*5113495bSYour NameIE req_mac_addr (SUB_EID_REQ_MAC_ADDR)
3096*5113495bSYour Name{
3097*5113495bSYour Name    addr[6];
3098*5113495bSYour Name}
3099*5113495bSYour Name
3100*5113495bSYour NameIE tgt_mac_addr (SUB_EID_TGT_MAC_ADDR)
3101*5113495bSYour Name{
3102*5113495bSYour Name    addr[6];
3103*5113495bSYour Name}
3104*5113495bSYour Name
3105*5113495bSYour NameIE max_age (SUB_EID_MAX_AGE)
3106*5113495bSYour Name{
3107*5113495bSYour Name    max_age,     2;
3108*5113495bSYour Name}
3109*5113495bSYour Name
3110*5113495bSYour NameIE neighbor_rpt (SUB_EID_NEIGHBOR_RPT)
3111*5113495bSYour Name{
3112*5113495bSYour Name    bssid[6];
3113*5113495bSYour Name    //Bssid Info
3114*5113495bSYour Name    {
3115*5113495bSYour Name         APReachability: 2;
3116*5113495bSYour Name         Security:       1;
3117*5113495bSYour Name         KeyScope:       1;
3118*5113495bSYour Name         //Capabilities
3119*5113495bSYour Name         SpecMgmtCap:    1;
3120*5113495bSYour Name         QosCap:         1;
3121*5113495bSYour Name         apsd:           1;
3122*5113495bSYour Name         rrm:            1;
3123*5113495bSYour Name    }
3124*5113495bSYour Name    //Capabilities contd.
3125*5113495bSYour Name    {
3126*5113495bSYour Name         DelayedBA:      1;
3127*5113495bSYour Name         ImmBA:          1;
3128*5113495bSYour Name    //Capabilities end.
3129*5113495bSYour Name         MobilityDomain: 1;
3130*5113495bSYour Name         reserved:       5;
3131*5113495bSYour Name    }
3132*5113495bSYour Name         reserved1,      2; //part of BSSID Info.
3133*5113495bSYour Name    regulatoryClass, 1;
3134*5113495bSYour Name    channel,         1;
3135*5113495bSYour Name    PhyType,         1;
3136*5113495bSYour Name    OPTIE IE TSFInfo;
3137*5113495bSYour Name    OPTIE IE CondensedCountryStr;
3138*5113495bSYour Name    OPTIE IE MeasurementPilot;
3139*5113495bSYour Name    OPTIE IE RRMEnabledCap;
3140*5113495bSYour Name    OPTIE IE MultiBssid;
3141*5113495bSYour Name}
3142*5113495bSYour Name
3143*5113495bSYour NameIE MeasurementRequest (EID_MEAS_REQUEST)  // 7.3.2.21
3144*5113495bSYour Name{
3145*5113495bSYour Name    measurement_token, 1;
3146*5113495bSYour Name
3147*5113495bSYour Name    // Measurement Request Mode
3148*5113495bSYour Name    {
3149*5113495bSYour Name        parallel:          1;
3150*5113495bSYour Name        enable:            1;
3151*5113495bSYour Name        request:           1;
3152*5113495bSYour Name        report:            1;
3153*5113495bSYour Name        durationMandatory: 1;
3154*5113495bSYour Name        unused:            3;
3155*5113495bSYour Name    }
3156*5113495bSYour Name
3157*5113495bSYour Name    measurement_type, 1;
3158*5113495bSYour Name    UNION measurement_request (DISCRIMINATOR measurement_type)
3159*5113495bSYour Name    {
3160*5113495bSYour Name       Basic (measurement_type IS 0)
3161*5113495bSYour Name       {
3162*5113495bSYour Name           channel_no,       1;
3163*5113495bSYour Name           meas_start_time[8];
3164*5113495bSYour Name           meas_duration,    2;
3165*5113495bSYour Name       }
3166*5113495bSYour Name       CCA (measurement_type IS 1)
3167*5113495bSYour Name       {
3168*5113495bSYour Name           channel_no,       1;
3169*5113495bSYour Name           meas_start_time[8];
3170*5113495bSYour Name           meas_duration,    2;
3171*5113495bSYour Name       }
3172*5113495bSYour Name       RPIHistogram (measurement_type IS 2)
3173*5113495bSYour Name       {
3174*5113495bSYour Name           channel_no,       1;
3175*5113495bSYour Name           meas_start_time[8];
3176*5113495bSYour Name           meas_duration,    2;
3177*5113495bSYour Name       }
3178*5113495bSYour Name       channel_load (measurement_type IS 3)
3179*5113495bSYour Name       {
3180*5113495bSYour Name           op_class,                1;
3181*5113495bSYour Name           channel,                 1;
3182*5113495bSYour Name           randomization_intv,      2;
3183*5113495bSYour Name           meas_duration,           2;
3184*5113495bSYour Name           OPTIE rrm_reporting;
3185*5113495bSYour Name           OPTIE wide_bw_chan_switch;
3186*5113495bSYour Name           OPTIE bw_indication;
3187*5113495bSYour Name       }
3188*5113495bSYour Name       Beacon (measurement_type IS 5)
3189*5113495bSYour Name       {
3190*5113495bSYour Name          regClass,          1;
3191*5113495bSYour Name          channel,           1;
3192*5113495bSYour Name          randomization,     2;
3193*5113495bSYour Name          meas_duration,     2;
3194*5113495bSYour Name          meas_mode,         1;
3195*5113495bSYour Name          BSSID[6];
3196*5113495bSYour Name          OPTIE SSID;
3197*5113495bSYour Name          OPTIE rrm_reporting;
3198*5113495bSYour Name          OPTIE BcnReportingDetail;
3199*5113495bSYour Name          OPTIE RequestedInfo;
3200*5113495bSYour Name          OPTIE ExtRequestedInfo;
3201*5113495bSYour Name          OPTIE APChannelReport[0..2];
3202*5113495bSYour Name          OPTIE last_beacon_report_indication;
3203*5113495bSYour Name          //OPTIONAL vendor_specific[1..239];
3204*5113495bSYour Name       }
3205*5113495bSYour Name       lci (measurement_type IS 8)
3206*5113495bSYour Name       {
3207*5113495bSYour Name          loc_subject,       1;
3208*5113495bSYour Name          OPTIE azimuth_req;
3209*5113495bSYour Name          OPTIE req_mac_addr;
3210*5113495bSYour Name          OPTIE tgt_mac_addr;
3211*5113495bSYour Name          OPTIE max_age;
3212*5113495bSYour Name       }
3213*5113495bSYour Name       ftmrr (measurement_type IS 16)
3214*5113495bSYour Name       {
3215*5113495bSYour Name          random_interval,   2;
3216*5113495bSYour Name          min_ap_count,      1;
3217*5113495bSYour Name
3218*5113495bSYour Name          OPTIE neighbor_rpt;
3219*5113495bSYour Name          OPTIE max_age;
3220*5113495bSYour Name       }
3221*5113495bSYour Name       sta_stats (measurement_type IS 7)
3222*5113495bSYour Name       {
3223*5113495bSYour Name          peer_mac_addr[6];
3224*5113495bSYour Name          randomization,     2;
3225*5113495bSYour Name          meas_duration,     2;
3226*5113495bSYour Name          group_identity,    1;
3227*5113495bSYour Name          //OPTIE triggered_reporting;
3228*5113495bSYour Name         //OPTIONAL vendor_specific;
3229*5113495bSYour Name       }
3230*5113495bSYour Name
3231*5113495bSYour Name    };
3232*5113495bSYour Name}
3233*5113495bSYour Name
3234*5113495bSYour NameIE tclas_mask (EID_EXTN_ID_ELEMENT) OUI (0x59)
3235*5113495bSYour Name{
3236*5113495bSYour Name    classifier_type, 1;
3237*5113495bSYour Name    classifier_mask, 1;
3238*5113495bSYour Name    UNION info (DISCRIMINATOR classifier_type)
3239*5113495bSYour Name    {
3240*5113495bSYour Name        ip_param (classifier_type IS 4)
3241*5113495bSYour Name        {
3242*5113495bSYour Name            reserved[16];
3243*5113495bSYour Name        }
3244*5113495bSYour Name    };
3245*5113495bSYour Name}
3246*5113495bSYour Name
3247*5113495bSYour NameIE mscs_status (EID_MSCS_STATUS)
3248*5113495bSYour Name{
3249*5113495bSYour Name     status_code,        1;
3250*5113495bSYour Name}
3251*5113495bSYour Name
3252*5113495bSYour NameIE descriptor_element (EID_EXTN_ID_ELEMENT) OUI (0x58)
3253*5113495bSYour Name{
3254*5113495bSYour Name     request_type,                1;
3255*5113495bSYour Name     user_priority_control,       2;
3256*5113495bSYour Name     stream_timeout,              4;
3257*5113495bSYour Name     OPTIE IE tclas_mask;
3258*5113495bSYour Name     OPTIE IE mscs_status;
3259*5113495bSYour Name     //Optional Vendor specific IEs ... ignoring
3260*5113495bSYour Name}
3261*5113495bSYour Name
3262*5113495bSYour NameIE he_cap (EID_EXTN_ID_ELEMENT) OUI (0x23)
3263*5113495bSYour Name{
3264*5113495bSYour Name    {
3265*5113495bSYour Name      htc_he:1;
3266*5113495bSYour Name      twt_request:1;
3267*5113495bSYour Name      twt_responder:1;
3268*5113495bSYour Name      fragmentation:2;
3269*5113495bSYour Name      max_num_frag_msdu_amsdu_exp:3;
3270*5113495bSYour Name      min_frag_size:2;
3271*5113495bSYour Name      trigger_frm_mac_pad:2;
3272*5113495bSYour Name      multi_tid_aggr_rx_supp:3;
3273*5113495bSYour Name      he_link_adaptation:2;
3274*5113495bSYour Name      all_ack:1;
3275*5113495bSYour Name      trigd_rsp_sched:1;
3276*5113495bSYour Name      a_bsr:1;
3277*5113495bSYour Name      broadcast_twt:1;
3278*5113495bSYour Name      ba_32bit_bitmap:1;
3279*5113495bSYour Name      mu_cascade:1;
3280*5113495bSYour Name      ack_enabled_multitid:1;
3281*5113495bSYour Name      reserved:1;
3282*5113495bSYour Name      omi_a_ctrl:1;
3283*5113495bSYour Name      ofdma_ra:1;
3284*5113495bSYour Name      max_ampdu_len_exp_ext:2;
3285*5113495bSYour Name      amsdu_frag:1;
3286*5113495bSYour Name      flex_twt_sched:1;
3287*5113495bSYour Name      rx_ctrl_frame:1;
3288*5113495bSYour Name    }
3289*5113495bSYour Name    {
3290*5113495bSYour Name      bsrp_ampdu_aggr:1;
3291*5113495bSYour Name      qtp:1;
3292*5113495bSYour Name      a_bqr:1;
3293*5113495bSYour Name      spatial_reuse_param_rspder:1;
3294*5113495bSYour Name      ndp_feedback_supp:1;
3295*5113495bSYour Name      ops_supp:1;
3296*5113495bSYour Name      amsdu_in_ampdu:1;
3297*5113495bSYour Name      multi_tid_aggr_tx_supp:3;
3298*5113495bSYour Name      he_sub_ch_sel_tx_supp:1;
3299*5113495bSYour Name      ul_2x996_tone_ru_supp:1;
3300*5113495bSYour Name      om_ctrl_ul_mu_data_dis_rx:1;
3301*5113495bSYour Name      he_dynamic_smps:1;
3302*5113495bSYour Name      punctured_sounding_supp:1;
3303*5113495bSYour Name      ht_vht_trg_frm_rx_supp:1;
3304*5113495bSYour Name    }
3305*5113495bSYour Name    {
3306*5113495bSYour Name      reserved2:1;
3307*5113495bSYour Name      chan_width_0:1;
3308*5113495bSYour Name      chan_width_1:1;
3309*5113495bSYour Name      chan_width_2:1;
3310*5113495bSYour Name      chan_width_3:1;
3311*5113495bSYour Name      chan_width_4:1;
3312*5113495bSYour Name      chan_width_5:1;
3313*5113495bSYour Name      chan_width_6:1;
3314*5113495bSYour Name      rx_pream_puncturing:4;
3315*5113495bSYour Name      device_class:1;
3316*5113495bSYour Name      ldpc_coding:1;
3317*5113495bSYour Name      he_1x_ltf_800_gi_ppdu:1;
3318*5113495bSYour Name      midamble_tx_rx_max_nsts:2;
3319*5113495bSYour Name      he_4x_ltf_3200_gi_ndp:1;
3320*5113495bSYour Name      tb_ppdu_tx_stbc_lt_80mhz:1;
3321*5113495bSYour Name      rx_stbc_lt_80mhz:1;
3322*5113495bSYour Name      doppler:2;
3323*5113495bSYour Name      ul_mu:2;
3324*5113495bSYour Name      dcm_enc_tx:3;
3325*5113495bSYour Name      dcm_enc_rx:3;
3326*5113495bSYour Name      ul_he_mu:1;
3327*5113495bSYour Name      su_beamformer:1;
3328*5113495bSYour Name    }
3329*5113495bSYour Name    {
3330*5113495bSYour Name      su_beamformee:1;
3331*5113495bSYour Name      mu_beamformer:1;
3332*5113495bSYour Name      bfee_sts_lt_80:3;
3333*5113495bSYour Name      bfee_sts_gt_80:3;
3334*5113495bSYour Name      num_sounding_lt_80:3;
3335*5113495bSYour Name      num_sounding_gt_80:3;
3336*5113495bSYour Name      su_feedback_tone16:1;
3337*5113495bSYour Name      mu_feedback_tone16:1;
3338*5113495bSYour Name      codebook_su:1;
3339*5113495bSYour Name      codebook_mu:1;
3340*5113495bSYour Name      beamforming_feedback:3;
3341*5113495bSYour Name      he_er_su_ppdu:1;
3342*5113495bSYour Name      dl_mu_mimo_part_bw:1;
3343*5113495bSYour Name      ppet_present:1;
3344*5113495bSYour Name      srp:1;
3345*5113495bSYour Name      power_boost:1;
3346*5113495bSYour Name      he_ltf_800_gi_4x:1;
3347*5113495bSYour Name      max_nc:3;
3348*5113495bSYour Name      tb_ppdu_tx_stbc_gt_80mhz:1;
3349*5113495bSYour Name      rx_stbc_gt_80mhz:1;
3350*5113495bSYour Name    }
3351*5113495bSYour Name    {
3352*5113495bSYour Name      er_he_ltf_800_gi_4x:1;
3353*5113495bSYour Name      he_ppdu_20_in_40Mhz_2G:1;
3354*5113495bSYour Name      he_ppdu_20_in_160_80p80Mhz:1;
3355*5113495bSYour Name      he_ppdu_80_in_160_80p80Mhz:1;
3356*5113495bSYour Name      er_1x_he_ltf_gi:1;
3357*5113495bSYour Name      midamble_tx_rx_1x_he_ltf:1;
3358*5113495bSYour Name      dcm_max_bw:2;
3359*5113495bSYour Name      longer_than_16_he_sigb_ofdm_sym:1;
3360*5113495bSYour Name      non_trig_cqi_feedback:1;
3361*5113495bSYour Name      tx_1024_qam_lt_242_tone_ru:1;
3362*5113495bSYour Name      rx_1024_qam_lt_242_tone_ru:1;
3363*5113495bSYour Name      rx_full_bw_su_he_mu_compress_sigb:1;
3364*5113495bSYour Name      rx_full_bw_su_he_mu_non_cmpr_sigb:1;
3365*5113495bSYour Name      reserved3:2;
3366*5113495bSYour Name    }
3367*5113495bSYour Name    reserved4, 1;
3368*5113495bSYour Name    rx_he_mcs_map_lt_80, 2;
3369*5113495bSYour Name    tx_he_mcs_map_lt_80, 2;
3370*5113495bSYour Name    rx_he_mcs_map_160[2][0..1] COUNTIS chan_width_2;
3371*5113495bSYour Name    tx_he_mcs_map_160[2][0..1] COUNTIS chan_width_2;
3372*5113495bSYour Name    rx_he_mcs_map_80_80[2][0..1] COUNTIS chan_width_3;
3373*5113495bSYour Name    tx_he_mcs_map_80_80[2][0..1] COUNTIS chan_width_3;
3374*5113495bSYour Name    OPTIONAL UNION ppet (DISCRIMINATOR ppet_present)
3375*5113495bSYour Name    {
3376*5113495bSYour Name        ppe_threshold (ppet_present IS 1)
3377*5113495bSYour Name        {
3378*5113495bSYour Name            ppe_th[1..25];
3379*5113495bSYour Name        }
3380*5113495bSYour Name    };
3381*5113495bSYour Name}
3382*5113495bSYour Name
3383*5113495bSYour NameIE he_op (EID_EXTN_ID_ELEMENT) OUI (0x24)
3384*5113495bSYour Name{
3385*5113495bSYour Name    {
3386*5113495bSYour Name        default_pe: 3;
3387*5113495bSYour Name        twt_required: 1;
3388*5113495bSYour Name        txop_rts_threshold: 10;
3389*5113495bSYour Name        vht_oper_present: 1;
3390*5113495bSYour Name        co_located_bss: 1;
3391*5113495bSYour Name    }
3392*5113495bSYour Name    {
3393*5113495bSYour Name        er_su_disable: 1;
3394*5113495bSYour Name	oper_info_6g_present: 1;
3395*5113495bSYour Name        reserved2: 6;
3396*5113495bSYour Name    }
3397*5113495bSYour Name    {
3398*5113495bSYour Name        bss_color:6;
3399*5113495bSYour Name        partial_bss_col:1;
3400*5113495bSYour Name        bss_col_disabled:1;
3401*5113495bSYour Name    }
3402*5113495bSYour Name    basic_mcs_nss[2];
3403*5113495bSYour Name    OPTIONAL UNION vht_oper (DISCRIMINATOR vht_oper_present)
3404*5113495bSYour Name    {
3405*5113495bSYour Name        info (vht_oper_present IS 1)
3406*5113495bSYour Name        {
3407*5113495bSYour Name            chan_width, 1;
3408*5113495bSYour Name            center_freq_seg0, 1;
3409*5113495bSYour Name            center_freq_seg1, 1;
3410*5113495bSYour Name        }
3411*5113495bSYour Name    };
3412*5113495bSYour Name    OPTIONAL UNION maxbssid_ind (DISCRIMINATOR co_located_bss)
3413*5113495bSYour Name    {
3414*5113495bSYour Name        info (co_located_bss IS 1)
3415*5113495bSYour Name        {
3416*5113495bSYour Name            data, 1;
3417*5113495bSYour Name        }
3418*5113495bSYour Name    };
3419*5113495bSYour Name    OPTIONAL UNION oper_info_6g (DISCRIMINATOR oper_info_6g_present)
3420*5113495bSYour Name    {
3421*5113495bSYour Name        info (oper_info_6g_present IS 1)
3422*5113495bSYour Name        {
3423*5113495bSYour Name            primary_ch, 1;
3424*5113495bSYour Name            { // control
3425*5113495bSYour Name                ch_width: 2;
3426*5113495bSYour Name                dup_bcon: 1;
3427*5113495bSYour Name                reg_info: 3;
3428*5113495bSYour Name                reserved: 2;
3429*5113495bSYour Name            }
3430*5113495bSYour Name            center_freq_seg0, 1;
3431*5113495bSYour Name            center_freq_seg1, 1;
3432*5113495bSYour Name            min_rate, 1;
3433*5113495bSYour Name        }
3434*5113495bSYour Name    };
3435*5113495bSYour Name}
3436*5113495bSYour Name
3437*5113495bSYour NameIE spatial_reuse (EID_EXTN_ID_ELEMENT) OUI (0x27)
3438*5113495bSYour Name{
3439*5113495bSYour Name    {
3440*5113495bSYour Name        psr_disallow: 1;
3441*5113495bSYour Name        non_srg_pd_sr_disallow: 1;
3442*5113495bSYour Name        non_srg_offset_present: 1;
3443*5113495bSYour Name        srg_info_present: 1;
3444*5113495bSYour Name        sr_value15_allow: 1;
3445*5113495bSYour Name        reserved: 3;
3446*5113495bSYour Name    }
3447*5113495bSYour Name    OPTIONAL UNION non_srg_offset (DISCRIMINATOR non_srg_offset_present)
3448*5113495bSYour Name    {
3449*5113495bSYour Name        info (non_srg_offset_present IS 1)
3450*5113495bSYour Name        {
3451*5113495bSYour Name            non_srg_pd_max_offset, 1;
3452*5113495bSYour Name        }
3453*5113495bSYour Name    };
3454*5113495bSYour Name    OPTIONAL UNION srg_info (DISCRIMINATOR srg_info_present)
3455*5113495bSYour Name    {
3456*5113495bSYour Name        info (srg_info_present IS 1)
3457*5113495bSYour Name        {
3458*5113495bSYour Name            srg_pd_min_offset, 1;
3459*5113495bSYour Name            srg_pd_max_offset, 1;
3460*5113495bSYour Name            srg_color[8];
3461*5113495bSYour Name            srg_partial_bssid[8];
3462*5113495bSYour Name        }
3463*5113495bSYour Name    };
3464*5113495bSYour Name}
3465*5113495bSYour Name
3466*5113495bSYour NameIE he_6ghz_band_cap (EID_EXTN_ID_ELEMENT) OUI (0x3B)
3467*5113495bSYour Name{
3468*5113495bSYour Name    { // capabilities_information
3469*5113495bSYour Name        min_mpdu_start_spacing :3;
3470*5113495bSYour Name        max_ampdu_len_exp: 3;
3471*5113495bSYour Name        max_mpdu_len: 3;
3472*5113495bSYour Name        sm_pow_save: 2;
3473*5113495bSYour Name        rd_responder: 1;
3474*5113495bSYour Name        rx_ant_pattern_consistency: 1;
3475*5113495bSYour Name        tx_ant_pattern_consistency: 1;
3476*5113495bSYour Name        reserved: 2;
3477*5113495bSYour Name    }
3478*5113495bSYour Name}
3479*5113495bSYour Name
3480*5113495bSYour NameIE eht_cap (EID_EXTN_ID_ELEMENT) OUI (0x6C)
3481*5113495bSYour Name{
3482*5113495bSYour Name    {
3483*5113495bSYour Name	epcs_pri_access: 1;
3484*5113495bSYour Name	eht_om_ctl: 1;
3485*5113495bSYour Name	triggered_txop_sharing_mode1: 1;
3486*5113495bSYour Name	triggered_txop_sharing_mode2: 1;
3487*5113495bSYour Name	restricted_twt: 1;
3488*5113495bSYour Name	scs_traffic_desc: 1;
3489*5113495bSYour Name	max_mpdu_len: 2;
3490*5113495bSYour Name	max_a_mpdu_len_exponent_ext: 1;
3491*5113495bSYour Name	eht_trs_support: 1;
3492*5113495bSYour Name	txop_return_support_txop_share_m2: 1;
3493*5113495bSYour Name	two_bqrs_support: 1;
3494*5113495bSYour Name	eht_link_adaptation_support: 2;
3495*5113495bSYour Name	reserved: 2;
3496*5113495bSYour Name    }
3497*5113495bSYour Name    {
3498*5113495bSYour Name	reserved2: 1;
3499*5113495bSYour Name	support_320mhz_6ghz: 1;
3500*5113495bSYour Name	ru_242tone_wt_20mhz: 1;
3501*5113495bSYour Name	ndp_4x_eht_ltf_3dot2_us_gi: 1;
3502*5113495bSYour Name	partial_bw_mu_mimo: 1;
3503*5113495bSYour Name	su_beamformer: 1;
3504*5113495bSYour Name	su_beamformee: 1;
3505*5113495bSYour Name	bfee_ss_le_80mhz: 3;
3506*5113495bSYour Name	bfee_ss_160mhz: 3;
3507*5113495bSYour Name	bfee_ss_320mhz: 3;
3508*5113495bSYour Name	num_sounding_dim_le_80mhz: 3;
3509*5113495bSYour Name	num_sounding_dim_160mhz: 3;
3510*5113495bSYour Name	num_sounding_dim_320mhz: 3;
3511*5113495bSYour Name	ng_16_su_feedback: 1;
3512*5113495bSYour Name	ng_16_mu_feedback: 1;
3513*5113495bSYour Name	cb_sz_4_2_su_feedback: 1;
3514*5113495bSYour Name	cb_sz_7_5_su_feedback: 1;
3515*5113495bSYour Name	trig_su_bforming_feedback: 1;
3516*5113495bSYour Name	trig_mu_bforming_partial_bw_feedback: 1;
3517*5113495bSYour Name	triggered_cqi_feedback: 1;
3518*5113495bSYour Name    }
3519*5113495bSYour Name    {
3520*5113495bSYour Name	partial_bw_dl_mu_mimo: 1;
3521*5113495bSYour Name	psr_based_sr: 1;
3522*5113495bSYour Name	power_boost_factor: 1;
3523*5113495bSYour Name	eht_mu_ppdu_4x_ltf_0_8_us_gi: 1;
3524*5113495bSYour Name	max_nc: 4;
3525*5113495bSYour Name	non_trig_cqi_feedback: 1;
3526*5113495bSYour Name	tx_1024_4096_qam_lt_242_tone_ru: 1;
3527*5113495bSYour Name	rx_1024_4096_qam_lt_242_tone_ru: 1;
3528*5113495bSYour Name	ppet_present: 1;
3529*5113495bSYour Name	common_nominal_pkt_padding: 2;
3530*5113495bSYour Name	max_num_eht_ltf: 5;
3531*5113495bSYour Name	mcs_15: 4;
3532*5113495bSYour Name	eht_dup_6ghz: 1;
3533*5113495bSYour Name	op_sta_rx_ndp_wider_bw_20mhz: 1;
3534*5113495bSYour Name	non_ofdma_ul_mu_mimo_le_80mhz: 1;
3535*5113495bSYour Name	non_ofdma_ul_mu_mimo_160mhz: 1;
3536*5113495bSYour Name	non_ofdma_ul_mu_mimo_320mhz: 1;
3537*5113495bSYour Name	mu_bformer_le_80mhz: 1;
3538*5113495bSYour Name	mu_bformer_160mhz: 1;
3539*5113495bSYour Name	mu_bformer_320mhz: 1;
3540*5113495bSYour Name	tb_sounding_feedback_rl: 1;
3541*5113495bSYour Name    }
3542*5113495bSYour Name    {
3543*5113495bSYour Name	rx_1k_qam_in_wider_bw_dl_ofdma: 1;
3544*5113495bSYour Name	rx_4k_qam_in_wider_bw_dl_ofdma: 1;
3545*5113495bSYour Name	limited_cap_support_20mhz: 1;
3546*5113495bSYour Name	triggered_mu_bf_full_bw_fb_and_dl_mumimo: 1;
3547*5113495bSYour Name	mru_support_20mhz: 1;
3548*5113495bSYour Name	reserved3: 3;
3549*5113495bSYour Name    }
3550*5113495bSYour Name    {
3551*5113495bSYour Name	bw_20_rx_max_nss_for_mcs_0_to_7: 4;
3552*5113495bSYour Name	bw_20_tx_max_nss_for_mcs_0_to_7: 4;
3553*5113495bSYour Name	bw_20_rx_max_nss_for_mcs_8_and_9: 4;
3554*5113495bSYour Name	bw_20_tx_max_nss_for_mcs_8_and_9: 4;
3555*5113495bSYour Name	bw_20_rx_max_nss_for_mcs_10_and_11: 4;
3556*5113495bSYour Name	bw_20_tx_max_nss_for_mcs_10_and_11: 4;
3557*5113495bSYour Name	bw_20_rx_max_nss_for_mcs_12_and_13: 4;
3558*5113495bSYour Name	bw_20_tx_max_nss_for_mcs_12_and_13: 4;
3559*5113495bSYour Name
3560*5113495bSYour Name    }
3561*5113495bSYour Name    {
3562*5113495bSYour Name	bw_le_80_rx_max_nss_for_mcs_0_to_9: 4;
3563*5113495bSYour Name	bw_le_80_tx_max_nss_for_mcs_0_to_9: 4;
3564*5113495bSYour Name	bw_le_80_rx_max_nss_for_mcs_10_and_11: 4;
3565*5113495bSYour Name	bw_le_80_tx_max_nss_for_mcs_10_and_11: 4;
3566*5113495bSYour Name	bw_le_80_rx_max_nss_for_mcs_12_and_13: 4;
3567*5113495bSYour Name	bw_le_80_tx_max_nss_for_mcs_12_and_13: 4;
3568*5113495bSYour Name	bw_160_rx_max_nss_for_mcs_0_to_9: 4;
3569*5113495bSYour Name	bw_160_tx_max_nss_for_mcs_0_to_9: 4;
3570*5113495bSYour Name    }
3571*5113495bSYour Name    {
3572*5113495bSYour Name	bw_160_rx_max_nss_for_mcs_10_and_11: 4;
3573*5113495bSYour Name	bw_160_tx_max_nss_for_mcs_10_and_11: 4;
3574*5113495bSYour Name	bw_160_rx_max_nss_for_mcs_12_and_13: 4;
3575*5113495bSYour Name	bw_160_tx_max_nss_for_mcs_12_and_13: 4;
3576*5113495bSYour Name	bw_320_rx_max_nss_for_mcs_0_to_9: 4;
3577*5113495bSYour Name	bw_320_tx_max_nss_for_mcs_0_to_9: 4;
3578*5113495bSYour Name	bw_320_rx_max_nss_for_mcs_10_and_11: 4;
3579*5113495bSYour Name	bw_320_tx_max_nss_for_mcs_10_and_11: 4;
3580*5113495bSYour Name    }
3581*5113495bSYour Name    {
3582*5113495bSYour Name	bw_320_rx_max_nss_for_mcs_12_and_13: 4;
3583*5113495bSYour Name	bw_320_tx_max_nss_for_mcs_12_and_13: 4;
3584*5113495bSYour Name    }
3585*5113495bSYour Name    OPTIONAL UNION ppet (DISCRIMINATOR ppet_present)
3586*5113495bSYour Name    {
3587*5113495bSYour Name        ppe_threshold (ppet_present IS 1)
3588*5113495bSYour Name        {
3589*5113495bSYour Name            ppe_th[2..62];
3590*5113495bSYour Name        }
3591*5113495bSYour Name    };
3592*5113495bSYour Name}
3593*5113495bSYour Name
3594*5113495bSYour NameIE eht_op (EID_EXTN_ID_ELEMENT) OUI (0x6A)
3595*5113495bSYour Name{
3596*5113495bSYour Name    {
3597*5113495bSYour Name        eht_op_information_present: 1;
3598*5113495bSYour Name	disabled_sub_chan_bitmap_present: 1;
3599*5113495bSYour Name	eht_default_pe_duration: 1;
3600*5113495bSYour Name	group_addr_bu_indication_limit: 1;
3601*5113495bSYour Name	group_addr_bu_indication_exponent: 2;
3602*5113495bSYour Name	reserved: 2;
3603*5113495bSYour Name    }
3604*5113495bSYour Name    {
3605*5113495bSYour Name	basic_rx_max_nss_for_mcs_0_to_7: 4;
3606*5113495bSYour Name	basic_tx_max_nss_for_mcs_0_to_7: 4;
3607*5113495bSYour Name	basic_rx_max_nss_for_mcs_8_and_9: 4;
3608*5113495bSYour Name	basic_tx_max_nss_for_mcs_8_and_9: 4;
3609*5113495bSYour Name	basic_rx_max_nss_for_mcs_10_and_11: 4;
3610*5113495bSYour Name	basic_tx_max_nss_for_mcs_10_and_11: 4;
3611*5113495bSYour Name	basic_rx_max_nss_for_mcs_12_and_13: 4;
3612*5113495bSYour Name	basic_tx_max_nss_for_mcs_12_and_13: 4;
3613*5113495bSYour Name    }
3614*5113495bSYour Name    {
3615*5113495bSYour Name	channel_width: 3;
3616*5113495bSYour Name	reserved_1: 5;
3617*5113495bSYour Name    }
3618*5113495bSYour Name    ccfs0, 1;
3619*5113495bSYour Name    ccfs1, 1;
3620*5113495bSYour Name    disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present;
3621*5113495bSYour Name}
3622*5113495bSYour Name
3623*5113495bSYour NameIE mu_edca_param_set (EID_EXTN_ID_ELEMENT) OUI (0x26)
3624*5113495bSYour Name{
3625*5113495bSYour Name    qos, 1;
3626*5113495bSYour Name    {
3627*5113495bSYour Name        acbe_aifsn: 4;
3628*5113495bSYour Name        acbe_acm:   1;
3629*5113495bSYour Name        acbe_aci:   2;
3630*5113495bSYour Name        unused1:    1;
3631*5113495bSYour Name    }
3632*5113495bSYour Name    {
3633*5113495bSYour Name        acbe_acwmin: 4;
3634*5113495bSYour Name        acbe_acwmax: 4;
3635*5113495bSYour Name    }
3636*5113495bSYour Name    acbe_muedca_timer, 1;
3637*5113495bSYour Name    {
3638*5113495bSYour Name        acbk_aifsn: 4;
3639*5113495bSYour Name        acbk_acm:   1;
3640*5113495bSYour Name        acbk_aci:   2;
3641*5113495bSYour Name        unused2:    1;
3642*5113495bSYour Name    }
3643*5113495bSYour Name    {
3644*5113495bSYour Name        acbk_acwmin: 4;
3645*5113495bSYour Name        acbk_acwmax: 4;
3646*5113495bSYour Name    }
3647*5113495bSYour Name    acbk_muedca_timer, 1;
3648*5113495bSYour Name    {
3649*5113495bSYour Name        acvi_aifsn: 4;
3650*5113495bSYour Name        acvi_acm:   1;
3651*5113495bSYour Name        acvi_aci:   2;
3652*5113495bSYour Name        unused3:    1;
3653*5113495bSYour Name    }
3654*5113495bSYour Name    {
3655*5113495bSYour Name        acvi_acwmin: 4;
3656*5113495bSYour Name        acvi_acwmax: 4;
3657*5113495bSYour Name    }
3658*5113495bSYour Name    acvi_muedca_timer, 1;
3659*5113495bSYour Name    {
3660*5113495bSYour Name        acvo_aifsn: 4;
3661*5113495bSYour Name        acvo_acm:   1;
3662*5113495bSYour Name        acvo_aci:   2;
3663*5113495bSYour Name        unused4:    1;
3664*5113495bSYour Name    }
3665*5113495bSYour Name    {
3666*5113495bSYour Name        acvo_acwmin: 4;
3667*5113495bSYour Name        acvo_acwmax: 4;
3668*5113495bSYour Name    }
3669*5113495bSYour Name    acvo_muedca_timer, 1;
3670*5113495bSYour Name}
3671*5113495bSYour Name
3672*5113495bSYour NameIE bss_color_change (EID_EXTN_ID_ELEMENT) OUI (0x2A)
3673*5113495bSYour Name{
3674*5113495bSYour Name    countdown, 1;
3675*5113495bSYour Name    {
3676*5113495bSYour Name        new_color: 6;
3677*5113495bSYour Name        reserved: 2;
3678*5113495bSYour Name    }
3679*5113495bSYour Name}
3680*5113495bSYour Name
3681*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
3682*5113495bSYour Name//                                MULTIIEs                                 //
3683*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
3684*5113495bSYour Name
3685*5113495bSYour NameMULTIIE WSC ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3686*5113495bSYour Name{
3687*5113495bSYour Name    MANDATORYTLV Version;                               // Must be 0x10
3688*5113495bSYour Name    OPTIONALTLV  WPSState;
3689*5113495bSYour Name    OPTIONALTLV  APSetupLocked;
3690*5113495bSYour Name    OPTIONALTLV  SelectedRegistrarConfigMethods;
3691*5113495bSYour Name    OPTIONALTLV  UUID_E;
3692*5113495bSYour Name    OPTIONALTLV  UUID_R;
3693*5113495bSYour Name    OPTIONALTLV  RFBands;
3694*5113495bSYour Name    OPTIONALTLV  SelectedRegistrar;
3695*5113495bSYour Name    OPTIONALTLV  ConfigMethods;
3696*5113495bSYour Name    OPTIONALTLV  AssociationState;
3697*5113495bSYour Name    OPTIONALTLV  ConfigurationError;
3698*5113495bSYour Name    OPTIONALTLV  Manufacturer;
3699*5113495bSYour Name    OPTIONALTLV  ModelName;
3700*5113495bSYour Name    OPTIONALTLV  ModelNumber;
3701*5113495bSYour Name    OPTIONALTLV  SerialNumber;
3702*5113495bSYour Name    OPTIONALTLV  DeviceName;
3703*5113495bSYour Name    OPTIONALTLV  DevicePasswordID;
3704*5113495bSYour Name    OPTIONALTLV  PrimaryDeviceType;
3705*5113495bSYour Name    OPTIONALTLV  RequestType;
3706*5113495bSYour Name    OPTIONALTLV  ResponseType;
3707*5113495bSYour Name    OPTIONALTLV  VendorExtension;
3708*5113495bSYour Name    OPTIONALTLV  RequestDeviceType;
3709*5113495bSYour Name}
3710*5113495bSYour Name
3711*5113495bSYour NameMULTIIE WscBeacon ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3712*5113495bSYour Name{
3713*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3714*5113495bSYour Name                                                 // = version 1.1, etc.
3715*5113495bSYour Name    MANDATORYTLV WPSState;                       // 1 = unconfigured, 2 =
3716*5113495bSYour Name                                                 // configured
3717*5113495bSYour Name    OPTIONALTLV  APSetupLocked;                  // Must be included if value
3718*5113495bSYour Name                                                 // is TRUE
3719*5113495bSYour Name    OPTIONALTLV  SelectedRegistrar;              // BOOL: indicates if the
3720*5113495bSYour Name                                                 // user has recently
3721*5113495bSYour Name                                                 // activated a Registrar to
3722*5113495bSYour Name                                                 // add an Enrollee.
3723*5113495bSYour Name    OPTIONALTLV  DevicePasswordID;               // Device Password ID
3724*5113495bSYour Name                                                 // indicates the method or
3725*5113495bSYour Name                                                 // identifies the specific
3726*5113495bSYour Name                                                 // password that the
3727*5113495bSYour Name                                                 // selected Registrar
3728*5113495bSYour Name                                                 // intends to use.
3729*5113495bSYour Name    OPTIONALTLV  SelectedRegistrarConfigMethods; // This attribute contains
3730*5113495bSYour Name                                                 // the config methods active
3731*5113495bSYour Name                                                 // on the selected
3732*5113495bSYour Name                                                 // Registrar.
3733*5113495bSYour Name    OPTIONALTLV  UUID_E;                         // The AP's UUID is provided
3734*5113495bSYour Name                                                 // only when the AP is a
3735*5113495bSYour Name                                                 // dual-band AP in push
3736*5113495bSYour Name                                                 // button mode and
3737*5113495bSYour Name                                                 // indicating push button
3738*5113495bSYour Name                                                 // mode on both radios
3739*5113495bSYour Name    OPTIONALTLV  RFBands;                        // Indicates all RF bands
3740*5113495bSYour Name                                                 // available on the AP. A
3741*5113495bSYour Name                                                 // dual-band AP must provide
3742*5113495bSYour Name                                                 // this attribute.
3743*5113495bSYour Name    // WSC 2.0
3744*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2 and AuthorizedMACs
3745*5113495bSYour Name
3746*5113495bSYour Name} // End Multi-IE WscBeacon.
3747*5113495bSYour Name
3748*5113495bSYour NameMULTIIE WscAssocReq ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3749*5113495bSYour Name{
3750*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3751*5113495bSYour Name                                                 // = version 1.1, etc.
3752*5113495bSYour Name    MANDATORYTLV RequestType;                    //
3753*5113495bSYour Name                                                 //
3754*5113495bSYour Name    // WSC 2.0
3755*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2
3756*5113495bSYour Name
3757*5113495bSYour Name} // End Multi-IE WscAssocReq.
3758*5113495bSYour Name
3759*5113495bSYour Name
3760*5113495bSYour NameMULTIIE WscAssocRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3761*5113495bSYour Name{
3762*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3763*5113495bSYour Name                                                 // = version 1.1, etc.
3764*5113495bSYour Name    MANDATORYTLV ResponseType;                   //
3765*5113495bSYour Name                                                 //
3766*5113495bSYour Name    // WSC 2.0
3767*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2
3768*5113495bSYour Name
3769*5113495bSYour Name} // End Multi-IE WscAssocRes.
3770*5113495bSYour Name
3771*5113495bSYour NameMULTIIE WscReassocRes ( 221 ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3772*5113495bSYour Name{
3773*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3774*5113495bSYour Name                                                 // = version 1.1, etc.
3775*5113495bSYour Name    MANDATORYTLV ResponseType;                   //
3776*5113495bSYour Name                                                 //
3777*5113495bSYour Name    // WSC 2.0
3778*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2
3779*5113495bSYour Name
3780*5113495bSYour Name} // End Multi-IE WscReassocRes
3781*5113495bSYour Name
3782*5113495bSYour NameMULTIIE WscProbeReq ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3783*5113495bSYour Name{
3784*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3785*5113495bSYour Name                                                 // = version 1.1, etc.
3786*5113495bSYour Name    MANDATORYTLV RequestType;                    //
3787*5113495bSYour Name                                                 //
3788*5113495bSYour Name    MANDATORYTLV ConfigMethods;                  // Configuration methods the
3789*5113495bSYour Name                                                 // Enrollee or Registrar
3790*5113495bSYour Name                                                 // supports
3791*5113495bSYour Name    MANDATORYTLV UUID_E;                         // unique GUID generated by
3792*5113495bSYour Name                                                 // the Enrollee.
3793*5113495bSYour Name    MANDATORYTLV PrimaryDeviceType;
3794*5113495bSYour Name    MANDATORYTLV RFBands;                        // Specific RF bands used
3795*5113495bSYour Name                                                 // for this message
3796*5113495bSYour Name    MANDATORYTLV AssociationState;               // Configuration and previous
3797*5113495bSYour Name                                                 // association state
3798*5113495bSYour Name    MANDATORYTLV ConfigurationError;
3799*5113495bSYour Name    MANDATORYTLV DevicePasswordID;
3800*5113495bSYour Name
3801*5113495bSYour Name    // WSC 2.0
3802*5113495bSYour Name    OPTIONALTLV  Manufacturer;                   // Must be included in ver 2.0
3803*5113495bSYour Name                                                 // or higher.
3804*5113495bSYour Name    OPTIONALTLV  ModelName;                      // Must be included in ver 2.0
3805*5113495bSYour Name                                                 // or higher.
3806*5113495bSYour Name    OPTIONALTLV  ModelNumber;                    // Must be included in ver 2.0
3807*5113495bSYour Name                                                 // or higher.
3808*5113495bSYour Name    OPTIONALTLV  DeviceName;                     // Must be included in ver 2.0
3809*5113495bSYour Name                                                 // or higher.
3810*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2 and RequestToEntroll
3811*5113495bSYour Name
3812*5113495bSYour Name    OPTIONALTLV  RequestDeviceType;              // When a device receives a Probe
3813*5113495bSYour Name                                                 // Request containing this type,
3814*5113495bSYour Name                                                 // It will only respond if Primary
3815*5113495bSYour Name                                                 // or Secondary Device Type matches.
3816*5113495bSYour Name
3817*5113495bSYour Name} // End Multi-IE WscProbeReq.
3818*5113495bSYour Name
3819*5113495bSYour NameMULTIIE WscProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3820*5113495bSYour Name{
3821*5113495bSYour Name    MANDATORYTLV Version;                        // 0x10 = version 1.0, 0x11
3822*5113495bSYour Name                                                 // = version 1.1, etc.
3823*5113495bSYour Name    MANDATORYTLV WPSState;                       // 1 = unconfigured, 2 =
3824*5113495bSYour Name                                                 // configured
3825*5113495bSYour Name    OPTIONALTLV  APSetupLocked;                  // Must be included if value
3826*5113495bSYour Name                                                 // is TRUE
3827*5113495bSYour Name    OPTIONALTLV  SelectedRegistrar;              // BOOL: indicates if the
3828*5113495bSYour Name                                                 // user has recently
3829*5113495bSYour Name                                                 // activated a Registrar to
3830*5113495bSYour Name                                                 // add an Enrollee.
3831*5113495bSYour Name    OPTIONALTLV  DevicePasswordID;               // Device Password ID
3832*5113495bSYour Name                                                 // indicates the method or
3833*5113495bSYour Name                                                 // identifies the specific
3834*5113495bSYour Name                                                 // password that the
3835*5113495bSYour Name                                                 // selected Registrar
3836*5113495bSYour Name                                                 // intends to use.
3837*5113495bSYour Name    OPTIONALTLV  SelectedRegistrarConfigMethods; // This attribute contains
3838*5113495bSYour Name                                                 // the config methods active
3839*5113495bSYour Name                                                 // on the selected
3840*5113495bSYour Name                                                 // Registrar.
3841*5113495bSYour Name    MANDATORYTLV ResponseType;
3842*5113495bSYour Name    MANDATORYTLV UUID_E;                         // unique identifier of AP
3843*5113495bSYour Name    MANDATORYTLV Manufacturer;
3844*5113495bSYour Name    MANDATORYTLV ModelName;
3845*5113495bSYour Name    MANDATORYTLV ModelNumber;
3846*5113495bSYour Name    MANDATORYTLV SerialNumber;
3847*5113495bSYour Name    MANDATORYTLV PrimaryDeviceType;
3848*5113495bSYour Name    MANDATORYTLV DeviceName;                     // User-friendly description
3849*5113495bSYour Name                                                 // of device
3850*5113495bSYour Name    MANDATORYTLV ConfigMethods;                  // Config Methods corresponds
3851*5113495bSYour Name                                                 // to the methods the AP
3852*5113495bSYour Name                                                 // supports as an Enrollee
3853*5113495bSYour Name                                                 // for adding external
3854*5113495bSYour Name                                                 // Registrars.
3855*5113495bSYour Name    OPTIONALTLV RFBands;                         // Indicates all RF bands
3856*5113495bSYour Name                                                 // available on the AP. A
3857*5113495bSYour Name                                                 // dual-band AP must provide
3858*5113495bSYour Name                                                 // this attribute.
3859*5113495bSYour Name    // WSC 2.0
3860*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2 and AuthorizedMACs
3861*5113495bSYour Name
3862*5113495bSYour Name} // WscProbeRes.
3863*5113495bSYour Name
3864*5113495bSYour Name// This MULTIIE combines the fields from the WSC IEs as they appear in
3865*5113495bSYour Name// Beacons *and* in Probe Responses, with the difference that they're all
3866*5113495bSYour Name// optional.  In our device drivers, we combine Probe Responses and Beacons
3867*5113495bSYour Name// into one list, and parse their IEs later (c.f. frame BeaconIEs).  Because
3868*5113495bSYour Name// the WSC IE differs in those two frames, we'd often see warning messages
3869*5113495bSYour Name// about either unexpected fields showing up (if we thought we were parsing a
3870*5113495bSYour Name// Beacon, and we in fact had data from a Probe Response) or mandatory fields
3871*5113495bSYour Name// missing (if we thought we were parsing a Probe Response, and in fact had
3872*5113495bSYour Name// data from a Beacon).
3873*5113495bSYour Name
3874*5113495bSYour Name// I created this MULTIIE to stuff into the BeaconIEs frames to avoid this.
3875*5113495bSYour Name// It's intended to be used on unpack only, and to do so in a very forgiving
3876*5113495bSYour Name// way.
3877*5113495bSYour Name
3878*5113495bSYour NameMULTIIE WscBeaconProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 )
3879*5113495bSYour Name{
3880*5113495bSYour Name    OPTIONALTLV Version;                        // 0x10 = version 1.0, 0x11
3881*5113495bSYour Name                                                 // = version 1.1, etc.
3882*5113495bSYour Name    OPTIONALTLV WPSState;                       // 1 = unconfigured, 2 =
3883*5113495bSYour Name                                                 // configured
3884*5113495bSYour Name    OPTIONALTLV  APSetupLocked;                  // Must be included if value
3885*5113495bSYour Name                                                 // is TRUE
3886*5113495bSYour Name    OPTIONALTLV  SelectedRegistrar;              // BOOL: indicates if the
3887*5113495bSYour Name                                                 // user has recently
3888*5113495bSYour Name                                                 // activated a Registrar to
3889*5113495bSYour Name                                                 // add an Enrollee.
3890*5113495bSYour Name    OPTIONALTLV  DevicePasswordID;               // Device Password ID
3891*5113495bSYour Name                                                 // indicates the method or
3892*5113495bSYour Name                                                 // identifies the specific
3893*5113495bSYour Name                                                 // password that the
3894*5113495bSYour Name                                                 // selected Registrar
3895*5113495bSYour Name                                                 // intends to use.
3896*5113495bSYour Name    OPTIONALTLV  SelectedRegistrarConfigMethods; // This attribute contains
3897*5113495bSYour Name                                                 // the config methods active
3898*5113495bSYour Name                                                 // on the selected
3899*5113495bSYour Name                                                 // Registrar.
3900*5113495bSYour Name    OPTIONALTLV ResponseType;
3901*5113495bSYour Name    OPTIONALTLV UUID_E;                         // unique identifier of AP
3902*5113495bSYour Name    OPTIONALTLV Manufacturer;
3903*5113495bSYour Name    OPTIONALTLV ModelName;
3904*5113495bSYour Name    OPTIONALTLV ModelNumber;
3905*5113495bSYour Name    OPTIONALTLV SerialNumber;
3906*5113495bSYour Name    OPTIONALTLV PrimaryDeviceType;
3907*5113495bSYour Name    OPTIONALTLV DeviceName;                     // User-friendly description
3908*5113495bSYour Name                                                 // of device
3909*5113495bSYour Name    OPTIONALTLV ConfigMethods;                  // Config Methods corresponds
3910*5113495bSYour Name                                                 // to the methods the AP
3911*5113495bSYour Name                                                 // supports as an Enrollee
3912*5113495bSYour Name                                                 // for adding external
3913*5113495bSYour Name                                                 // Registrars.
3914*5113495bSYour Name    OPTIONALTLV RFBands;                         // Indicates all RF bands
3915*5113495bSYour Name                                                 // available on the AP. A
3916*5113495bSYour Name                                                 // dual-band AP must provide
3917*5113495bSYour Name                                                 // this attribute.
3918*5113495bSYour Name    // WSC 2.0
3919*5113495bSYour Name    OPTIONALTLV  VendorExtension;                // Version2 and AuthorizedMACs
3920*5113495bSYour Name
3921*5113495bSYour Name} // WscProbeRes.
3922*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
3923*5113495bSYour Name//                                MULTIIEs                                 //
3924*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
3925*5113495bSYour Name
3926*5113495bSYour NameMULTIIE P2PBeacon ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3927*5113495bSYour Name{
3928*5113495bSYour Name    MANDATORYTLV P2PCapability;                  // Contains P2P Device
3929*5113495bSYour Name                                                 // and P2P Group Capability
3930*5113495bSYour Name    MANDATORYTLV P2PDeviceId;                    // Contains P2P Device
3931*5113495bSYour Name                                                 // Address
3932*5113495bSYour Name    OPTIONALTLV  NoticeOfAbsence;                // Indicates Notice of
3933*5113495bSYour Name                                                 // Absence schedule and
3934*5113495bSYour Name                                                 // CT Window
3935*5113495bSYour Name
3936*5113495bSYour Name} // End P2PBeacon
3937*5113495bSYour Name
3938*5113495bSYour Name
3939*5113495bSYour NameMULTIIE P2PAssocReq ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3940*5113495bSYour Name{
3941*5113495bSYour Name    MANDATORYTLV P2PCapability;                  // Contains P2P Device
3942*5113495bSYour Name                                                 // and P2P Group Capability
3943*5113495bSYour Name    OPTIONALTLV  ExtendedListenTiming;
3944*5113495bSYour Name    MANDATORYTLV P2PDeviceInfo;
3945*5113495bSYour Name
3946*5113495bSYour Name} // End P2PAssocReq
3947*5113495bSYour Name
3948*5113495bSYour Name
3949*5113495bSYour NameMULTIIE P2PAssocRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3950*5113495bSYour Name{
3951*5113495bSYour Name    MANDATORYTLV P2PStatus;
3952*5113495bSYour Name    OPTIONALTLV  ExtendedListenTiming;
3953*5113495bSYour Name
3954*5113495bSYour Name} // End P2PAssocRes
3955*5113495bSYour Name
3956*5113495bSYour Name
3957*5113495bSYour NameMULTIIE P2PProbeReq ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3958*5113495bSYour Name{
3959*5113495bSYour Name    MANDATORYTLV P2PCapability;
3960*5113495bSYour Name    OPTIONALTLV  P2PDeviceId;
3961*5113495bSYour Name    MANDATORYTLV ListenChannel;
3962*5113495bSYour Name    OPTIONALTLV  ExtendedListenTiming;
3963*5113495bSYour Name    OPTIONALTLV  OperatingChannel;
3964*5113495bSYour Name} // End P2PProbeReq
3965*5113495bSYour Name
3966*5113495bSYour Name
3967*5113495bSYour NameMULTIIE P2PProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3968*5113495bSYour Name{
3969*5113495bSYour Name    MANDATORYTLV P2PCapability;
3970*5113495bSYour Name    OPTIONALTLV  ExtendedListenTiming;
3971*5113495bSYour Name    OPTIONALTLV  NoticeOfAbsence;
3972*5113495bSYour Name    MANDATORYTLV P2PDeviceInfo;
3973*5113495bSYour Name    OPTIONALTLV  P2PGroupInfo;
3974*5113495bSYour Name
3975*5113495bSYour Name} // End P2PProbeRes
3976*5113495bSYour Name
3977*5113495bSYour Name
3978*5113495bSYour NameMULTIIE P2PBeaconProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3979*5113495bSYour Name{
3980*5113495bSYour Name    OPTIONALTLV P2PCapability;
3981*5113495bSYour Name    OPTIONALTLV P2PDeviceId;
3982*5113495bSYour Name    OPTIONALTLV ExtendedListenTiming;
3983*5113495bSYour Name    OPTIONALTLV NoticeOfAbsence;
3984*5113495bSYour Name    OPTIONALTLV P2PDeviceInfo;
3985*5113495bSYour Name    OPTIONALTLV P2PGroupInfo;
3986*5113495bSYour Name
3987*5113495bSYour Name} // End P2PBeaconProbeRes
3988*5113495bSYour Name
3989*5113495bSYour Name
3990*5113495bSYour NameMULTIIE P2PDeAuth ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3991*5113495bSYour Name{
3992*5113495bSYour Name   MANDATORYTLV MinorReasonCode;
3993*5113495bSYour Name}
3994*5113495bSYour Name
3995*5113495bSYour Name
3996*5113495bSYour NameMULTIIE P2PDisAssoc ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 )
3997*5113495bSYour Name{
3998*5113495bSYour Name   MANDATORYTLV MinorReasonCode;
3999*5113495bSYour Name}
4000*5113495bSYour Name
4001*5113495bSYour NameMULTIIE MBO_IE (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x16 )
4002*5113495bSYour Name{
4003*5113495bSYour Name   OPTIONALTLV mbo_ap_cap;
4004*5113495bSYour Name   OPTIONALTLV non_prefferd_chan_rep;
4005*5113495bSYour Name   OPTIONALTLV cellular_data_cap ;
4006*5113495bSYour Name   OPTIONALTLV assoc_disallowed;
4007*5113495bSYour Name   OPTIONALTLV cellular_data_con_pref;
4008*5113495bSYour Name   OPTIONALTLV transition_reason;
4009*5113495bSYour Name   OPTIONALTLV transition_reject_reason;
4010*5113495bSYour Name   OPTIONALTLV assoc_retry_delay;
4011*5113495bSYour Name   OPTIONALTLV oce_cap;
4012*5113495bSYour Name   OPTIONALTLV rssi_assoc_rej;
4013*5113495bSYour Name   OPTIONALTLV reduced_wan_metrics;
4014*5113495bSYour Name}
4015*5113495bSYour Name
4016*5113495bSYour NameIE vendor_vht_ie (EID_VENDOR_SPECIFIC) OUI (0x00, 0x90, 0x4c, 0x04)
4017*5113495bSYour Name{
4018*5113495bSYour Name   sub_type, 1;
4019*5113495bSYour Name   OPTIE IE VHTCaps;
4020*5113495bSYour Name   OPTIE IE VHTOperation;
4021*5113495bSYour Name}
4022*5113495bSYour Name
4023*5113495bSYour NameIE non_inheritance (EID_EXTN_ID_ELEMENT) OUI (0x38)
4024*5113495bSYour Name{
4025*5113495bSYour Name    data[0..255];
4026*5113495bSYour Name}
4027*5113495bSYour Name
4028*5113495bSYour NameIE mlo_ie (EID_EXTN_ID_ELEMENT) OUI (0x6B)
4029*5113495bSYour Name{
4030*5113495bSYour Name    data[9..255];
4031*5113495bSYour Name}
4032*5113495bSYour Name
4033*5113495bSYour NameIE t2lm_ie (EID_EXTN_ID_ELEMENT) OUI (0x6D)
4034*5113495bSYour Name{
4035*5113495bSYour Name    data[3..255];
4036*5113495bSYour Name}
4037*5113495bSYour Name
4038*5113495bSYour Name/////////////////////////////////////////////////////////////////////////////
4039*5113495bSYour Name// Frames
4040*5113495bSYour Name
4041*5113495bSYour NameFRAME Beacon                              // C.f. Sec. 7.2.3.1
4042*5113495bSYour Name{
4043*5113495bSYour Name    FF     TimeStamp;
4044*5113495bSYour Name    FF     BeaconInterval;
4045*5113495bSYour Name    FF     Capabilities;
4046*5113495bSYour Name    MANDIE SSID;
4047*5113495bSYour Name    MANDIE SuppRates;
4048*5113495bSYour Name    OPTIE  FHParamSet;
4049*5113495bSYour Name    OPTIE  DSParams;
4050*5113495bSYour Name    OPTIE  CFParams;
4051*5113495bSYour Name    OPTIE  TIM;
4052*5113495bSYour Name    OPTIE  Country;
4053*5113495bSYour Name    OPTIE  FHParams;
4054*5113495bSYour Name    OPTIE  FHPattTable;
4055*5113495bSYour Name    OPTIE  PowerConstraints;
4056*5113495bSYour Name    OPTIE  ChanSwitchAnn;
4057*5113495bSYour Name    OPTIE  Quiet;
4058*5113495bSYour Name    OPTIE  TPCReport;
4059*5113495bSYour Name    OPTIE  ERPInfo;
4060*5113495bSYour Name    OPTIE  ExtSuppRates;
4061*5113495bSYour Name    OPTIE  RSN;
4062*5113495bSYour Name    OPTIE  QBSSLoad;
4063*5113495bSYour Name    OPTIE  EDCAParamSet;
4064*5113495bSYour Name    OPTIE  QOSCapsAp;
4065*5113495bSYour Name    OPTIE  APChannelReport;
4066*5113495bSYour Name    OPTIE  RRMEnabledCap;
4067*5113495bSYour Name    OPTIE  MobilityDomain;
4068*5113495bSYour Name    OPTIE  ext_chan_switch_ann;
4069*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4070*5113495bSYour Name    OPTIE  HTCaps;
4071*5113495bSYour Name    OPTIE  HTInfo;
4072*5113495bSYour Name    OPTIE  OBSSScanParameters;
4073*5113495bSYour Name    OPTIE  ExtCap;
4074*5113495bSYour Name    OPTIE  VHTCaps;
4075*5113495bSYour Name    OPTIE  VHTOperation;
4076*5113495bSYour Name    OPTIE  transmit_power_env[0..8];
4077*5113495bSYour Name    OPTIE  ChannelSwitchWrapper;
4078*5113495bSYour Name    OPTIE  VHTExtBssLoad;
4079*5113495bSYour Name    OPTIE  OperatingMode;
4080*5113495bSYour Name    OPTIE  fils_indication;
4081*5113495bSYour Name    OPTIE  max_chan_switch_time;
4082*5113495bSYour Name    OPTIE  esp_information;
4083*5113495bSYour Name    OPTIE  he_cap;
4084*5113495bSYour Name    OPTIE  he_op;
4085*5113495bSYour Name    OPTIE  spatial_reuse;
4086*5113495bSYour Name    OPTIE  bss_color_change;
4087*5113495bSYour Name    OPTIE  mu_edca_param_set;
4088*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4089*5113495bSYour Name
4090*5113495bSYour Name    OPTIE  sec_chan_offset_ele;
4091*5113495bSYour Name    OPTIE  WAPI;
4092*5113495bSYour Name    OPTIE  ESETxmitPower;
4093*5113495bSYour Name    OPTIE  WiderBWChanSwitchAnn;
4094*5113495bSYour Name    OPTIE  eht_cap;
4095*5113495bSYour Name    OPTIE  eht_op;
4096*5113495bSYour Name    OPTIE  mlo_ie;
4097*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4098*5113495bSYour Name
4099*5113495bSYour Name    OPTIE  WPA;
4100*5113495bSYour Name    OPTIE  WMMInfoAp;
4101*5113495bSYour Name    OPTIE  WMMParams;
4102*5113495bSYour Name    OPTIE  WMMCaps;
4103*5113495bSYour Name    OPTIE  ESEVersion;
4104*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4105*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4106*5113495bSYour Name    OPTIE  WscBeacon;
4107*5113495bSYour Name    OPTIE  P2PBeacon;
4108*5113495bSYour Name    OPTIE  Vendor1IE;
4109*5113495bSYour Name    OPTIE  vendor_vht_ie;
4110*5113495bSYour Name    OPTIE  Vendor3IE;
4111*5113495bSYour Name    OPTIE  hs20vendor_ie;
4112*5113495bSYour Name    OPTIE  QComVendorIE;
4113*5113495bSYour Name    OPTIE  MBO_IE;
4114*5113495bSYour Name    OPTIE  qcn_ie;
4115*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4116*5113495bSYour Name} // End frame Beacon.
4117*5113495bSYour Name
4118*5113495bSYour Name// Ok, here's  the story on  Beacon1 & Beacon2.   We presumably beacon  a lot
4119*5113495bSYour Name// more than we  change configuration.  So it makes sense  to keep the beacon
4120*5113495bSYour Name// we plan to send next in  serialized format.  We do this in struct schMisc.
4121*5113495bSYour Name// Whenever our  config changes in  a way that  would affect our  beacons, we
4122*5113495bSYour Name// just  update  our internal  datastructures  &  re-generate the  serialized
4123*5113495bSYour Name// beacon.
4124*5113495bSYour Name
4125*5113495bSYour Name// The problem  is that there  are *some* fields  that need to be  updated at
4126*5113495bSYour Name// send time,  specifically the CF Param  Set & the  TIM.  So, what we  do is
4127*5113495bSYour Name// this: whenever  our config changes,  call schSetFixedBeaconFields.  There,
4128*5113495bSYour Name// we serialize the following  Beacon fields into gSchBeaconFrameBegin (after
4129*5113495bSYour Name// the power template & MAC header): TimeStamp, BeaconInterval, Capabilities,
4130*5113495bSYour Name// SSID, SuppRates, DSParams.  It sets gSchBeaconOffsetBegin to
4131*5113495bSYour Name// the length of this buffer (incl. power template & MAC header).
4132*5113495bSYour Name
4133*5113495bSYour Name// Next, it serializes the following fields into gSchBeaconFrameEnd: Country,
4134*5113495bSYour Name// EDCAParamSet,   PowerConstraints,   TPCReport,  ChannelSwitchAnn,   Quiet,
4135*5113495bSYour Name// ERPInfo,      HTCaps,      HTInfo,      ExtSuppRates, WPA, RSN,  WMMInfo,
4136*5113495bSYour Name// WMMParams, WMMCaps.
4137*5113495bSYour Name// The length of *this* buffer is kept in gSchBeaconOffsetEnd.
4138*5113495bSYour Name
4139*5113495bSYour Name// Then, in 'schBeaconInterruptHandler',  we write CFParams & TIM  at the end
4140*5113495bSYour Name// of gSchBeaconFrameBegin, keeping track of the (new) size of this buffer in
4141*5113495bSYour Name// the local 'beaconSize'.
4142*5113495bSYour Name
4143*5113495bSYour Name// After  that,  we  call  'specialBeaconProcessing'.   Note  that  this  may
4144*5113495bSYour Name// actually call  schSetFixedBeaconFields repeatedly!  The  comments say they
4145*5113495bSYour Name// try to avoid this, but...
4146*5113495bSYour Name
4147*5113495bSYour Name// Finally, we call writeBeaconToTFP, where the first thing we do is copy the
4148*5113495bSYour Name// gSchBeaconFrameEnd buffer after the end of gSchBeaconFrameBegin.
4149*5113495bSYour Name
4150*5113495bSYour NameFRAME Beacon1
4151*5113495bSYour Name{
4152*5113495bSYour Name    FF     TimeStamp;
4153*5113495bSYour Name    FF     BeaconInterval;
4154*5113495bSYour Name    FF     Capabilities;
4155*5113495bSYour Name    MANDIE SSID;
4156*5113495bSYour Name    MANDIE SuppRates;
4157*5113495bSYour Name    OPTIE  DSParams;
4158*5113495bSYour Name}
4159*5113495bSYour Name
4160*5113495bSYour NameFRAME Beacon2
4161*5113495bSYour Name{
4162*5113495bSYour Name    OPTIE  Country;
4163*5113495bSYour Name    OPTIE  PowerConstraints;
4164*5113495bSYour Name    OPTIE  ChanSwitchAnn;
4165*5113495bSYour Name    OPTIE  Quiet;
4166*5113495bSYour Name    OPTIE  TPCReport;
4167*5113495bSYour Name    OPTIE  ERPInfo;
4168*5113495bSYour Name    OPTIE  ExtSuppRates;
4169*5113495bSYour Name    OPTIE  RSNOpaque;
4170*5113495bSYour Name    OPTIE  EDCAParamSet;
4171*5113495bSYour Name    OPTIE  APChannelReport;
4172*5113495bSYour Name    OPTIE  RRMEnabledCap;
4173*5113495bSYour Name    OPTIE  MobilityDomain;
4174*5113495bSYour Name    OPTIE  ext_chan_switch_ann;
4175*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4176*5113495bSYour Name    OPTIE  HTCaps;
4177*5113495bSYour Name    OPTIE  HTInfo;
4178*5113495bSYour Name    OPTIE  OBSSScanParameters;
4179*5113495bSYour Name    OPTIE  ExtCap;
4180*5113495bSYour Name    OPTIE  VHTCaps;
4181*5113495bSYour Name    OPTIE  VHTOperation;
4182*5113495bSYour Name    OPTIE  transmit_power_env[0..8];
4183*5113495bSYour Name    OPTIE  ChannelSwitchWrapper;
4184*5113495bSYour Name    OPTIE  VHTExtBssLoad;
4185*5113495bSYour Name    OPTIE  OperatingMode;
4186*5113495bSYour Name    OPTIE  fils_indication;
4187*5113495bSYour Name    OPTIE  max_chan_switch_time;
4188*5113495bSYour Name    OPTIE  esp_information;
4189*5113495bSYour Name    OPTIE  he_cap;
4190*5113495bSYour Name    OPTIE  he_op;
4191*5113495bSYour Name    OPTIE  spatial_reuse;
4192*5113495bSYour Name    OPTIE  bss_color_change;
4193*5113495bSYour Name    OPTIE  mu_edca_param_set;
4194*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4195*5113495bSYour Name
4196*5113495bSYour Name    OPTIE  sec_chan_offset_ele;
4197*5113495bSYour Name    OPTIE  WAPI;
4198*5113495bSYour Name    OPTIE  ESETxmitPower;
4199*5113495bSYour Name    OPTIE  WiderBWChanSwitchAnn;
4200*5113495bSYour Name    OPTIE  eht_cap;
4201*5113495bSYour Name    OPTIE  eht_op;
4202*5113495bSYour Name    OPTIE  mlo_ie;
4203*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4204*5113495bSYour Name
4205*5113495bSYour Name    OPTIE  WPA;
4206*5113495bSYour Name    OPTIE  WMMInfoAp;
4207*5113495bSYour Name    OPTIE  WMMParams;
4208*5113495bSYour Name    OPTIE  WMMCaps;
4209*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4210*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4211*5113495bSYour Name    OPTIE  WscBeacon;
4212*5113495bSYour Name    OPTIE  P2PBeacon;
4213*5113495bSYour Name    OPTIE  Vendor1IE;
4214*5113495bSYour Name    OPTIE  vendor_vht_ie;
4215*5113495bSYour Name    OPTIE  Vendor3IE;
4216*5113495bSYour Name    OPTIE  hs20vendor_ie;
4217*5113495bSYour Name    OPTIE  QComVendorIE;
4218*5113495bSYour Name    OPTIE  ESEVersion;
4219*5113495bSYour Name    OPTIE  qcn_ie;
4220*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4221*5113495bSYour Name}
4222*5113495bSYour Name
4223*5113495bSYour Name// This frame is just Beacon with its Fixed Fields stripped out.  It's handy
4224*5113495bSYour Name// for use with struct 'tSirBssDescription', which has members corresponding
4225*5113495bSYour Name// to some fixed fields, but keeps its IEs in un-parsed format.
4226*5113495bSYour Name
4227*5113495bSYour Name// Note that it also includes the IE 'WscBeaconProbeRes'.
4228*5113495bSYour Name
4229*5113495bSYour NameFRAME BeaconIEs
4230*5113495bSYour Name{
4231*5113495bSYour Name
4232*5113495bSYour Name    MANDIE SSID;
4233*5113495bSYour Name    MANDIE SuppRates;
4234*5113495bSYour Name    OPTIE  FHParamSet;
4235*5113495bSYour Name    OPTIE  DSParams;
4236*5113495bSYour Name    OPTIE  CFParams;
4237*5113495bSYour Name    OPTIE  TIM;
4238*5113495bSYour Name    OPTIE  Country;
4239*5113495bSYour Name    OPTIE  FHParams;
4240*5113495bSYour Name    OPTIE  FHPattTable;
4241*5113495bSYour Name    OPTIE  PowerConstraints;
4242*5113495bSYour Name    OPTIE  ChanSwitchAnn;
4243*5113495bSYour Name    OPTIE  Quiet;
4244*5113495bSYour Name    OPTIE  TPCReport;
4245*5113495bSYour Name    OPTIE  ERPInfo;
4246*5113495bSYour Name    OPTIE  ExtSuppRates;
4247*5113495bSYour Name    OPTIE  RSN;
4248*5113495bSYour Name    OPTIE  QBSSLoad;
4249*5113495bSYour Name    OPTIE  EDCAParamSet;
4250*5113495bSYour Name    OPTIE  QOSCapsAp;
4251*5113495bSYour Name    OPTIE  APChannelReport;
4252*5113495bSYour Name    OPTIE  RRMEnabledCap;
4253*5113495bSYour Name    OPTIE  MobilityDomain;
4254*5113495bSYour Name    OPTIE  ext_chan_switch_ann;
4255*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4256*5113495bSYour Name    OPTIE  HTCaps;
4257*5113495bSYour Name    OPTIE  HTInfo;
4258*5113495bSYour Name    OPTIE  OBSSScanParameters;
4259*5113495bSYour Name    OPTIE  ExtCap;
4260*5113495bSYour Name    OPTIE  VHTCaps;
4261*5113495bSYour Name    OPTIE  VHTOperation;
4262*5113495bSYour Name    OPTIE  transmit_power_env[0..8];
4263*5113495bSYour Name    OPTIE  ChannelSwitchWrapper;
4264*5113495bSYour Name    OPTIE  VHTExtBssLoad;
4265*5113495bSYour Name    OPTIE  OperatingMode;
4266*5113495bSYour Name    OPTIE  fils_indication;
4267*5113495bSYour Name    OPTIE  max_chan_switch_time;
4268*5113495bSYour Name    OPTIE  esp_information;
4269*5113495bSYour Name    OPTIE  he_cap;
4270*5113495bSYour Name    OPTIE  he_op;
4271*5113495bSYour Name    OPTIE  spatial_reuse;
4272*5113495bSYour Name    OPTIE  bss_color_change;
4273*5113495bSYour Name    OPTIE  mu_edca_param_set;
4274*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4275*5113495bSYour Name
4276*5113495bSYour Name    OPTIE  sec_chan_offset_ele;
4277*5113495bSYour Name    OPTIE  WAPI;
4278*5113495bSYour Name    OPTIE  ESETxmitPower;
4279*5113495bSYour Name    OPTIE  WiderBWChanSwitchAnn;
4280*5113495bSYour Name    OPTIE  eht_cap;
4281*5113495bSYour Name    OPTIE  eht_op;
4282*5113495bSYour Name    OPTIE  mlo_ie;
4283*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4284*5113495bSYour Name
4285*5113495bSYour Name    OPTIE  WPA;
4286*5113495bSYour Name    OPTIE  WMMInfoAp;
4287*5113495bSYour Name    OPTIE  WMMParams;
4288*5113495bSYour Name    OPTIE  WMMCaps;
4289*5113495bSYour Name    OPTIE  ESEVersion;
4290*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4291*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4292*5113495bSYour Name    OPTIE  WscBeaconProbeRes;
4293*5113495bSYour Name    OPTIE  P2PBeaconProbeRes;
4294*5113495bSYour Name    OPTIE  Vendor1IE;
4295*5113495bSYour Name    OPTIE  vendor_vht_ie;
4296*5113495bSYour Name    OPTIE  Vendor3IE;
4297*5113495bSYour Name    OPTIE  hs20vendor_ie;
4298*5113495bSYour Name    OPTIE  QComVendorIE;
4299*5113495bSYour Name    OPTIE  MBO_IE;
4300*5113495bSYour Name    OPTIE  qcn_ie;
4301*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4302*5113495bSYour Name} // End frame BeaconIEs.
4303*5113495bSYour Name
4304*5113495bSYour NameFRAME Disassociation                      // 7.3.3.3
4305*5113495bSYour Name{
4306*5113495bSYour Name    FF    Reason;
4307*5113495bSYour Name    OPTIE P2PDisAssoc;
4308*5113495bSYour Name}
4309*5113495bSYour Name
4310*5113495bSYour NameFRAME AssocRequest                        // 7.2.3.4
4311*5113495bSYour Name{
4312*5113495bSYour Name    FF     Capabilities;
4313*5113495bSYour Name    FF     ListenInterval;
4314*5113495bSYour Name    MANDIE SSID;
4315*5113495bSYour Name    MANDIE SuppRates;
4316*5113495bSYour Name    OPTIE  ExtSuppRates;
4317*5113495bSYour Name    OPTIE  PowerCaps;
4318*5113495bSYour Name    OPTIE  SuppChannels;
4319*5113495bSYour Name    OPTIE  RSNOpaque;
4320*5113495bSYour Name    OPTIE  QOSCapsStation;
4321*5113495bSYour Name    OPTIE  RRMEnabledCap;
4322*5113495bSYour Name    OPTIE  MobilityDomain;
4323*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4324*5113495bSYour Name    OPTIE  HTCaps;
4325*5113495bSYour Name    OPTIE  ExtCap;
4326*5113495bSYour Name    OPTIE  VHTCaps;
4327*5113495bSYour Name    OPTIE  OperatingMode;
4328*5113495bSYour Name    OPTIE  fils_session;
4329*5113495bSYour Name    OPTIE  fils_public_key;
4330*5113495bSYour Name    OPTIE  fils_key_confirmation;
4331*5113495bSYour Name    OPTIE  fils_hlp_container;
4332*5113495bSYour Name    OPTIE  bss_max_idle_period;
4333*5113495bSYour Name    OPTIE  FTInfo;
4334*5113495bSYour Name    OPTIE  he_cap;
4335*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4336*5113495bSYour Name
4337*5113495bSYour Name    OPTIE  WAPIOpaque;
4338*5113495bSYour Name    OPTIE  WAPI;
4339*5113495bSYour Name    OPTIE  QosMapSet;
4340*5113495bSYour Name    OPTIE  fragment_ie;
4341*5113495bSYour Name    OPTIE  dh_parameter_element;
4342*5113495bSYour Name    OPTIE  eht_cap;
4343*5113495bSYour Name    OPTIE  mlo_ie;
4344*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4345*5113495bSYour Name
4346*5113495bSYour Name    OPTIE  WPAOpaque;
4347*5113495bSYour Name    OPTIE  WMMCaps;
4348*5113495bSYour Name    OPTIE  WMMInfoStation;
4349*5113495bSYour Name    OPTIE  WscIEOpaque;
4350*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4351*5113495bSYour Name    OPTIE  ESEVersion;
4352*5113495bSYour Name    OPTIE  P2PIEOpaque;
4353*5113495bSYour Name    OPTIE  WFDIEOpaque;
4354*5113495bSYour Name    OPTIE  vendor_vht_ie;
4355*5113495bSYour Name    OPTIE  hs20vendor_ie;
4356*5113495bSYour Name    OPTIE  qcn_ie;
4357*5113495bSYour Name    OPTIE  osen_ie;
4358*5113495bSYour Name    OPTIE  roaming_consortium_sel;
4359*5113495bSYour Name} // End frame AssocRequest.
4360*5113495bSYour Name
4361*5113495bSYour NameFRAME AssocResponse                       // 7.2.3.5
4362*5113495bSYour Name{
4363*5113495bSYour Name    FF     Capabilities;
4364*5113495bSYour Name    FF     Status;
4365*5113495bSYour Name    FF     AID;
4366*5113495bSYour Name    MANDIE SuppRates;
4367*5113495bSYour Name    OPTIE  ExtSuppRates;
4368*5113495bSYour Name    OPTIE  EDCAParamSet;
4369*5113495bSYour Name    OPTIE  RCPIIE;
4370*5113495bSYour Name    OPTIE  RSNIIE;
4371*5113495bSYour Name    OPTIE  RRMEnabledCap;
4372*5113495bSYour Name    OPTIE  MobilityDomain;
4373*5113495bSYour Name    OPTIE  FTInfo;
4374*5113495bSYour Name    OPTIE  TimeoutInterval;
4375*5113495bSYour Name    OPTIE  HTCaps;
4376*5113495bSYour Name    OPTIE  HTInfo;
4377*5113495bSYour Name    OPTIE  OBSSScanParameters;
4378*5113495bSYour Name    OPTIE  ExtCap;
4379*5113495bSYour Name    OPTIE  bss_max_idle_period;
4380*5113495bSYour Name    OPTIE  QosMapSet;
4381*5113495bSYour Name    OPTIE  VHTCaps;
4382*5113495bSYour Name    OPTIE  VHTOperation;
4383*5113495bSYour Name    OPTIE  OperatingMode;
4384*5113495bSYour Name    OPTIE  fils_session;
4385*5113495bSYour Name    OPTIE  fils_public_key;
4386*5113495bSYour Name    OPTIE  fils_key_confirmation;
4387*5113495bSYour Name    OPTIE  fils_hlp_container;
4388*5113495bSYour Name    OPTIE  he_cap;
4389*5113495bSYour Name    OPTIE  he_op;
4390*5113495bSYour Name    OPTIE  spatial_reuse;
4391*5113495bSYour Name    OPTIE  bss_color_change;
4392*5113495bSYour Name    OPTIE  mu_edca_param_set;
4393*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4394*5113495bSYour Name
4395*5113495bSYour Name    OPTIE  RICDataDesc[2];
4396*5113495bSYour Name    OPTIE  ESETxmitPower;
4397*5113495bSYour Name    OPTIE  fragment_ie;
4398*5113495bSYour Name    OPTIE  fils_kde;
4399*5113495bSYour Name    OPTIE  eht_cap;
4400*5113495bSYour Name    OPTIE  eht_op;
4401*5113495bSYour Name    OPTIE  mlo_ie;
4402*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4403*5113495bSYour Name
4404*5113495bSYour Name    OPTIE  WPA;
4405*5113495bSYour Name    OPTIE  WMMParams;
4406*5113495bSYour Name    OPTIE  WMMCaps;
4407*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4408*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4409*5113495bSYour Name    OPTIE  WMMTSPEC[0..4];
4410*5113495bSYour Name    OPTIE  WscAssocRes;
4411*5113495bSYour Name    OPTIE  P2PAssocRes;
4412*5113495bSYour Name    OPTIE  vendor_vht_ie;
4413*5113495bSYour Name    OPTIE  qcn_ie;
4414*5113495bSYour Name    OPTIE  MBO_IE;
4415*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4416*5113495bSYour Name} // End frame AssocResponse.
4417*5113495bSYour Name
4418*5113495bSYour NameFRAME ReAssocRequest                      // 7.2.3.6
4419*5113495bSYour Name{
4420*5113495bSYour Name    FF     Capabilities;
4421*5113495bSYour Name    FF     ListenInterval;
4422*5113495bSYour Name    FF     CurrentAPAddress;
4423*5113495bSYour Name    MANDIE SSID;
4424*5113495bSYour Name    MANDIE SuppRates;
4425*5113495bSYour Name    OPTIE  ExtSuppRates;
4426*5113495bSYour Name    OPTIE  PowerCaps;
4427*5113495bSYour Name    OPTIE  SuppChannels;
4428*5113495bSYour Name    OPTIE  RSNOpaque;
4429*5113495bSYour Name    OPTIE  QOSCapsStation;
4430*5113495bSYour Name    OPTIE  RRMEnabledCap;
4431*5113495bSYour Name    OPTIE  MobilityDomain;
4432*5113495bSYour Name    OPTIE  FTInfo;
4433*5113495bSYour Name    OPTIE  RICDataDesc[2];
4434*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4435*5113495bSYour Name    OPTIE  HTCaps;
4436*5113495bSYour Name    OPTIE  ExtCap;
4437*5113495bSYour Name    OPTIE  VHTCaps;
4438*5113495bSYour Name    OPTIE  OperatingMode;
4439*5113495bSYour Name    OPTIE  bss_max_idle_period;
4440*5113495bSYour Name    OPTIE  he_cap;
4441*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4442*5113495bSYour Name
4443*5113495bSYour Name    OPTIE  WAPIOpaque;
4444*5113495bSYour Name    OPTIE  WAPI;
4445*5113495bSYour Name    OPTIE  QosMapSet;
4446*5113495bSYour Name    OPTIE  ESECckmOpaque;
4447*5113495bSYour Name    OPTIE  eht_cap;
4448*5113495bSYour Name    OPTIE  mlo_ie;
4449*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4450*5113495bSYour Name
4451*5113495bSYour Name    OPTIE  WPAOpaque;
4452*5113495bSYour Name    OPTIE  WMMCaps;
4453*5113495bSYour Name    OPTIE  WMMInfoStation;
4454*5113495bSYour Name    OPTIE  WscIEOpaque;
4455*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4456*5113495bSYour Name    OPTIE  ESEVersion;
4457*5113495bSYour Name    OPTIE  WMMTSPEC[0..4];
4458*5113495bSYour Name    OPTIE  ESETrafStrmRateSet;
4459*5113495bSYour Name    OPTIE  P2PIEOpaque;
4460*5113495bSYour Name    OPTIE  WFDIEOpaque;
4461*5113495bSYour Name    OPTIE  vendor_vht_ie;
4462*5113495bSYour Name    OPTIE  hs20vendor_ie;
4463*5113495bSYour Name} // End frame ReAssocRequest.
4464*5113495bSYour Name
4465*5113495bSYour NameFRAME ReAssocResponse                     // 7.2.3.7
4466*5113495bSYour Name{
4467*5113495bSYour Name    FF     Capabilities;
4468*5113495bSYour Name    FF     Status;
4469*5113495bSYour Name    FF     AID;
4470*5113495bSYour Name    MANDIE SuppRates;
4471*5113495bSYour Name    OPTIE  ExtSuppRates;
4472*5113495bSYour Name    OPTIE  EDCAParamSet;
4473*5113495bSYour Name    OPTIE  RCPIIE;
4474*5113495bSYour Name    OPTIE  RSNIIE;
4475*5113495bSYour Name    OPTIE  RRMEnabledCap;
4476*5113495bSYour Name    OPTIE  RSNOpaque;
4477*5113495bSYour Name    OPTIE  MobilityDomain;
4478*5113495bSYour Name    OPTIE  FTInfo;
4479*5113495bSYour Name    OPTIE  RICDataDesc[2];
4480*5113495bSYour Name    OPTIE  TimeoutInterval;
4481*5113495bSYour Name    OPTIE  HTCaps;
4482*5113495bSYour Name    OPTIE  HTInfo;
4483*5113495bSYour Name    OPTIE  OBSSScanParameters;
4484*5113495bSYour Name    OPTIE  ExtCap;
4485*5113495bSYour Name    OPTIE  bss_max_idle_period;
4486*5113495bSYour Name    OPTIE  VHTCaps;
4487*5113495bSYour Name    OPTIE  VHTOperation;
4488*5113495bSYour Name    OPTIE  OperatingMode;
4489*5113495bSYour Name    OPTIE  he_cap;
4490*5113495bSYour Name    OPTIE  he_op;
4491*5113495bSYour Name    OPTIE  spatial_reuse;
4492*5113495bSYour Name    OPTIE  bss_color_change;
4493*5113495bSYour Name    OPTIE  mu_edca_param_set;
4494*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4495*5113495bSYour Name
4496*5113495bSYour Name    OPTIE  QosMapSet;
4497*5113495bSYour Name    OPTIE  ESETxmitPower;
4498*5113495bSYour Name    OPTIE  eht_cap;
4499*5113495bSYour Name    OPTIE  eht_op;
4500*5113495bSYour Name    OPTIE  mlo_ie;
4501*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4502*5113495bSYour Name
4503*5113495bSYour Name    OPTIE  WPA;
4504*5113495bSYour Name    OPTIE  WMMParams;
4505*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4506*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4507*5113495bSYour Name    OPTIE  WMMTSPEC[0..4];
4508*5113495bSYour Name    OPTIE  ESETrafStrmRateSet;
4509*5113495bSYour Name    OPTIE  WscReassocRes;
4510*5113495bSYour Name    OPTIE  P2PAssocRes;
4511*5113495bSYour Name    OPTIE  vendor_vht_ie;
4512*5113495bSYour Name    OPTIE  MBO_IE;
4513*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4514*5113495bSYour Name} // End frame ReAssocResponse.
4515*5113495bSYour Name
4516*5113495bSYour NameFRAME ProbeRequest                        // 7.2.3.8
4517*5113495bSYour Name{
4518*5113495bSYour Name    MANDIE SSID;
4519*5113495bSYour Name    MANDIE SuppRates;
4520*5113495bSYour Name    OPTIE  RequestedInfo;
4521*5113495bSYour Name    OPTIE  ExtSuppRates;
4522*5113495bSYour Name    OPTIE  DSParams;
4523*5113495bSYour Name    OPTIE  HTCaps;
4524*5113495bSYour Name    OPTIE  ExtCap;
4525*5113495bSYour Name    OPTIE  VHTCaps;
4526*5113495bSYour Name    OPTIE  he_cap;
4527*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4528*5113495bSYour Name
4529*5113495bSYour Name    OPTIE  eht_cap;
4530*5113495bSYour Name    OPTIE  mlo_ie;
4531*5113495bSYour Name
4532*5113495bSYour Name    OPTIE  WscProbeReq;
4533*5113495bSYour Name    OPTIE  WFATPC;
4534*5113495bSYour Name    OPTIE  P2PProbeReq;
4535*5113495bSYour Name    OPTIE  qcn_ie;
4536*5113495bSYour Name} // End frame ProbeRequest.
4537*5113495bSYour Name
4538*5113495bSYour NameFRAME ProbeResponse                       // 7.2.3.9
4539*5113495bSYour Name{
4540*5113495bSYour Name    FF     TimeStamp;
4541*5113495bSYour Name    FF     BeaconInterval;
4542*5113495bSYour Name    FF     Capabilities;
4543*5113495bSYour Name    MANDIE SSID;
4544*5113495bSYour Name    MANDIE SuppRates;
4545*5113495bSYour Name    OPTIE  FHParamSet;
4546*5113495bSYour Name    OPTIE  DSParams;
4547*5113495bSYour Name    OPTIE  CFParams;
4548*5113495bSYour Name    OPTIE  Country;
4549*5113495bSYour Name    OPTIE  FHParams;
4550*5113495bSYour Name    OPTIE  FHPattTable;
4551*5113495bSYour Name    OPTIE  PowerConstraints;
4552*5113495bSYour Name    OPTIE  ChanSwitchAnn;
4553*5113495bSYour Name    OPTIE  Quiet;
4554*5113495bSYour Name    OPTIE  TPCReport;
4555*5113495bSYour Name    OPTIE  ERPInfo;
4556*5113495bSYour Name    OPTIE  ExtSuppRates;
4557*5113495bSYour Name    OPTIE  RSNOpaque;
4558*5113495bSYour Name    OPTIE  QBSSLoad;
4559*5113495bSYour Name    OPTIE  EDCAParamSet;
4560*5113495bSYour Name    OPTIE  RRMEnabledCap;
4561*5113495bSYour Name    OPTIE  APChannelReport;
4562*5113495bSYour Name    OPTIE  MobilityDomain;
4563*5113495bSYour Name    OPTIE  ext_chan_switch_ann;
4564*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4565*5113495bSYour Name    OPTIE  HTCaps;
4566*5113495bSYour Name    OPTIE  HTInfo;
4567*5113495bSYour Name    OPTIE  OBSSScanParameters;
4568*5113495bSYour Name    OPTIE  ExtCap;
4569*5113495bSYour Name    OPTIE  VHTCaps;
4570*5113495bSYour Name    OPTIE  VHTOperation;
4571*5113495bSYour Name    OPTIE  transmit_power_env[0..8];
4572*5113495bSYour Name    OPTIE  ChannelSwitchWrapper;
4573*5113495bSYour Name    OPTIE  VHTExtBssLoad;
4574*5113495bSYour Name    OPTIE  fils_indication;
4575*5113495bSYour Name    OPTIE  max_chan_switch_time;
4576*5113495bSYour Name    OPTIE  esp_information;
4577*5113495bSYour Name    OPTIE  he_cap;
4578*5113495bSYour Name    OPTIE  he_op;
4579*5113495bSYour Name    OPTIE  spatial_reuse;
4580*5113495bSYour Name    OPTIE  bss_color_change;
4581*5113495bSYour Name    OPTIE  mu_edca_param_set;
4582*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4583*5113495bSYour Name
4584*5113495bSYour Name    OPTIE  sec_chan_offset_ele;
4585*5113495bSYour Name    OPTIE  WAPI;
4586*5113495bSYour Name    OPTIE  ESETxmitPower;
4587*5113495bSYour Name    OPTIE  eht_cap;
4588*5113495bSYour Name    OPTIE  eht_op;
4589*5113495bSYour Name    OPTIE  mlo_ie;
4590*5113495bSYour Name    OPTIE  t2lm_ie[0..2];
4591*5113495bSYour Name
4592*5113495bSYour Name    OPTIE  WPA;
4593*5113495bSYour Name    OPTIE  WMMInfoAp;
4594*5113495bSYour Name    OPTIE  WMMParams;
4595*5113495bSYour Name    OPTIE  WMMCaps;
4596*5113495bSYour Name    OPTIE  ESEVersion;
4597*5113495bSYour Name    OPTIE  ESERadMgmtCap;
4598*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4599*5113495bSYour Name    OPTIE  WscProbeRes;
4600*5113495bSYour Name    OPTIE  P2PProbeRes;
4601*5113495bSYour Name    OPTIE  Vendor1IE;
4602*5113495bSYour Name    OPTIE  vendor_vht_ie;
4603*5113495bSYour Name    OPTIE  Vendor3IE;
4604*5113495bSYour Name    OPTIE  hs20vendor_ie;
4605*5113495bSYour Name    OPTIE  QComVendorIE;
4606*5113495bSYour Name    OPTIE  MBO_IE;
4607*5113495bSYour Name    OPTIE  qcn_ie;
4608*5113495bSYour Name    OPTIE  reduced_neighbor_report;
4609*5113495bSYour Name} // End frame ProbeResponse.
4610*5113495bSYour Name
4611*5113495bSYour NameFRAME Authentication                      // 7.2.3.10
4612*5113495bSYour Name{
4613*5113495bSYour Name    FF    AuthAlgo;
4614*5113495bSYour Name    FF    AuthSeqNo;
4615*5113495bSYour Name    FF    Status;
4616*5113495bSYour Name    OPTIE ChallengeText;
4617*5113495bSYour Name    OPTIE  RSNOpaque;
4618*5113495bSYour Name    OPTIE  MobilityDomain;
4619*5113495bSYour Name    OPTIE  FTInfo;
4620*5113495bSYour Name    OPTIE  TimeoutInterval;
4621*5113495bSYour Name    OPTIE  RICDataDesc[2];
4622*5113495bSYour Name    OPTIE  fils_nonce;
4623*5113495bSYour Name    OPTIE  fils_session;
4624*5113495bSYour Name    OPTIE  fils_wrapped_data;
4625*5113495bSYour Name    OPTIE  fils_assoc_delay_info;
4626*5113495bSYour Name    OPTIE  mlo_ie;
4627*5113495bSYour Name} // End frame Auth.
4628*5113495bSYour Name
4629*5113495bSYour NameFRAME DeAuth                              // 7.2.3.11
4630*5113495bSYour Name{
4631*5113495bSYour Name    FF    Reason;
4632*5113495bSYour Name    OPTIE P2PDeAuth;
4633*5113495bSYour Name}
4634*5113495bSYour Name
4635*5113495bSYour Name
4636*5113495bSYour NameFRAME AddTSRequest                        // 7.4.2.1
4637*5113495bSYour Name{
4638*5113495bSYour Name
4639*5113495bSYour Name    FF     Category;
4640*5113495bSYour Name    FF     Action;
4641*5113495bSYour Name    FF     DialogToken;
4642*5113495bSYour Name    MANDIE TSPEC;
4643*5113495bSYour Name    OPTIE  TCLAS[0..2];
4644*5113495bSYour Name    OPTIE  TCLASSPROC;
4645*5113495bSYour Name
4646*5113495bSYour Name    // These IEs aren't in the spec, but our extant code *will* parse them if
4647*5113495bSYour Name    // they're present.  I included them to preserve that capability
4648*5113495bSYour Name
4649*5113495bSYour Name    OPTIE  WMMTSPEC;
4650*5113495bSYour Name    OPTIE  WMMTCLAS[0..2];
4651*5113495bSYour Name    OPTIE  WMMTCLASPROC;
4652*5113495bSYour Name    OPTIE  ESETrafStrmRateSet;
4653*5113495bSYour Name
4654*5113495bSYour Name} // End frame AddTSRequest.
4655*5113495bSYour Name
4656*5113495bSYour NameFRAME WMMAddTSRequest
4657*5113495bSYour Name{
4658*5113495bSYour Name    FF     Category;
4659*5113495bSYour Name    FF     Action;
4660*5113495bSYour Name    FF     DialogToken;
4661*5113495bSYour Name    FF     StatusCode;
4662*5113495bSYour Name    MANDIE WMMTSPEC;
4663*5113495bSYour Name    OPTIE  ESETrafStrmRateSet;
4664*5113495bSYour Name} // End Frame WMMAddTSRequest
4665*5113495bSYour Name
4666*5113495bSYour NameFRAME AddTSResponse                       // 7.4.2.2
4667*5113495bSYour Name{
4668*5113495bSYour Name
4669*5113495bSYour Name    FF     Category;
4670*5113495bSYour Name    FF     Action;
4671*5113495bSYour Name    FF     DialogToken;
4672*5113495bSYour Name    FF     Status;
4673*5113495bSYour Name    MANDIE TSDelay;
4674*5113495bSYour Name    MANDIE TSPEC;
4675*5113495bSYour Name    OPTIE  TCLAS[0..2];
4676*5113495bSYour Name    OPTIE  TCLASSPROC;
4677*5113495bSYour Name    OPTIE  Schedule;
4678*5113495bSYour Name
4679*5113495bSYour Name    // These IEs aren't in the spec, but our extant code *will* parse them if
4680*5113495bSYour Name    // they're present.  I included them to preserve that capability
4681*5113495bSYour Name    OPTIE  WMMTSDelay;
4682*5113495bSYour Name    OPTIE  WMMSchedule;
4683*5113495bSYour Name    OPTIE  WMMTSPEC;
4684*5113495bSYour Name    OPTIE  WMMTCLAS[0..2];
4685*5113495bSYour Name    OPTIE  WMMTCLASPROC;
4686*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4687*5113495bSYour Name
4688*5113495bSYour Name} // End frame AddTSResponse.
4689*5113495bSYour Name
4690*5113495bSYour NameFRAME WMMAddTSResponse
4691*5113495bSYour Name{
4692*5113495bSYour Name
4693*5113495bSYour Name    FF     Category;
4694*5113495bSYour Name    FF     Action;
4695*5113495bSYour Name    FF     DialogToken;
4696*5113495bSYour Name    FF     StatusCode;
4697*5113495bSYour Name    OPTIE  WMMTSPEC;
4698*5113495bSYour Name    OPTIE  ESETrafStrmMet;
4699*5113495bSYour Name
4700*5113495bSYour Name} // End frame WMMAddTSResponse.
4701*5113495bSYour Name
4702*5113495bSYour NameFRAME DelTS                               // 7.4.2.3
4703*5113495bSYour Name{
4704*5113495bSYour Name    FF     Category;
4705*5113495bSYour Name    FF     Action;
4706*5113495bSYour Name    FF     TSInfo;
4707*5113495bSYour Name    FF     Reason;
4708*5113495bSYour Name}
4709*5113495bSYour Name
4710*5113495bSYour NameFRAME WMMDelTS
4711*5113495bSYour Name{
4712*5113495bSYour Name    FF     Category;
4713*5113495bSYour Name    FF     Action;
4714*5113495bSYour Name    FF     DialogToken;
4715*5113495bSYour Name    FF     StatusCode;
4716*5113495bSYour Name    MANDIE WMMTSPEC;
4717*5113495bSYour Name}
4718*5113495bSYour Name
4719*5113495bSYour NameFRAME TPCRequest
4720*5113495bSYour Name{
4721*5113495bSYour Name    FF     Category;
4722*5113495bSYour Name    FF     Action;
4723*5113495bSYour Name    FF     DialogToken;
4724*5113495bSYour Name    MANDIE TPCRequest;
4725*5113495bSYour Name}
4726*5113495bSYour Name
4727*5113495bSYour NameFRAME TPCReport
4728*5113495bSYour Name{
4729*5113495bSYour Name    FF     Category;
4730*5113495bSYour Name    FF     Action;
4731*5113495bSYour Name    FF     DialogToken;
4732*5113495bSYour Name    MANDIE TPCReport;
4733*5113495bSYour Name}
4734*5113495bSYour Name
4735*5113495bSYour NameFRAME ChannelSwitch
4736*5113495bSYour Name{
4737*5113495bSYour Name    FF     Category;
4738*5113495bSYour Name    FF     Action;
4739*5113495bSYour Name    MANDIE ChanSwitchAnn;
4740*5113495bSYour Name    OPTIE  sec_chan_offset_ele;
4741*5113495bSYour Name    OPTIE  WiderBWChanSwitchAnn;
4742*5113495bSYour Name}
4743*5113495bSYour Name
4744*5113495bSYour NameFRAME MeasurementRequest
4745*5113495bSYour Name{
4746*5113495bSYour Name    FF     Category;
4747*5113495bSYour Name    FF     Action;
4748*5113495bSYour Name    FF     DialogToken;
4749*5113495bSYour Name    MANDIE MeasurementRequest[1..4];
4750*5113495bSYour Name}
4751*5113495bSYour Name
4752*5113495bSYour NameFRAME MeasurementReport
4753*5113495bSYour Name{
4754*5113495bSYour Name    FF     Category;
4755*5113495bSYour Name    FF     Action;
4756*5113495bSYour Name    FF     DialogToken;
4757*5113495bSYour Name    MANDIE MeasurementReport;
4758*5113495bSYour Name}
4759*5113495bSYour Name
4760*5113495bSYour NameFRAME SMPowerSave
4761*5113495bSYour Name{
4762*5113495bSYour Name    FF    Category;
4763*5113495bSYour Name    FF    Action;
4764*5113495bSYour Name    FF    SMPowerModeSet;
4765*5113495bSYour Name}
4766*5113495bSYour Name
4767*5113495bSYour NameFRAME RadioMeasurementRequest
4768*5113495bSYour Name{
4769*5113495bSYour Name   FF    Category;
4770*5113495bSYour Name   FF    Action;
4771*5113495bSYour Name   FF    DialogToken;
4772*5113495bSYour Name   FF    NumOfRepetitions;
4773*5113495bSYour Name   //Measurement Request IE.
4774*5113495bSYour Name   MANDIE MeasurementRequest[1..5];
4775*5113495bSYour Name}
4776*5113495bSYour Name
4777*5113495bSYour NameFRAME RadioMeasurementReport
4778*5113495bSYour Name{
4779*5113495bSYour Name   FF   Category;
4780*5113495bSYour Name   FF   Action;
4781*5113495bSYour Name   FF   DialogToken;
4782*5113495bSYour Name   //Measurement Report elements.
4783*5113495bSYour Name   MANDIE MeasurementReport[1];
4784*5113495bSYour Name}
4785*5113495bSYour Name
4786*5113495bSYour NameFRAME LinkMeasurementRequest
4787*5113495bSYour Name{
4788*5113495bSYour Name   FF   Category;
4789*5113495bSYour Name   FF   Action;
4790*5113495bSYour Name   FF   DialogToken;
4791*5113495bSYour Name   FF   TxPower;
4792*5113495bSYour Name   FF   MaxTxPower;
4793*5113495bSYour Name   //Optional Sub Ies
4794*5113495bSYour Name}
4795*5113495bSYour Name
4796*5113495bSYour NameFRAME LinkMeasurementReport
4797*5113495bSYour Name{
4798*5113495bSYour Name   FF   Category;
4799*5113495bSYour Name   FF   Action;
4800*5113495bSYour Name   FF   DialogToken;
4801*5113495bSYour Name   FF   TPCEleID;
4802*5113495bSYour Name   FF   TPCEleLen;
4803*5113495bSYour Name   FF   TxPower;
4804*5113495bSYour Name   FF   LinkMargin;
4805*5113495bSYour Name   FF   RxAntennaId;
4806*5113495bSYour Name   FF   TxAntennaId;
4807*5113495bSYour Name   FF   RCPI;
4808*5113495bSYour Name   FF   RSNI;
4809*5113495bSYour Name   //Optional Vendor specific IEs ... ignoring
4810*5113495bSYour Name}
4811*5113495bSYour Name
4812*5113495bSYour NameFRAME NeighborReportRequest
4813*5113495bSYour Name{
4814*5113495bSYour Name   FF     Category;
4815*5113495bSYour Name   FF     Action;
4816*5113495bSYour Name   FF     DialogToken;
4817*5113495bSYour Name   OPTIE  SSID;
4818*5113495bSYour Name   //Optional vendor specific IE...ignoring.
4819*5113495bSYour Name}
4820*5113495bSYour Name
4821*5113495bSYour NameFRAME NeighborReportResponse
4822*5113495bSYour Name{
4823*5113495bSYour Name   FF     Category;
4824*5113495bSYour Name   FF     Action;
4825*5113495bSYour Name   FF     DialogToken;
4826*5113495bSYour Name   OPTIE  NeighborReport[1..MAX_SUPPORTED_NEIGHBOR_RPT];
4827*5113495bSYour Name}
4828*5113495bSYour Name
4829*5113495bSYour NameFRAME OperatingMode
4830*5113495bSYour Name{
4831*5113495bSYour Name    FF        Category;
4832*5113495bSYour Name    FF        Action;
4833*5113495bSYour Name    //Operating Mode field
4834*5113495bSYour Name    FF        OperatingMode;
4835*5113495bSYour Name}
4836*5113495bSYour Name
4837*5113495bSYour NameFRAME TDLSDisReq
4838*5113495bSYour Name{
4839*5113495bSYour Name    FF     Category;
4840*5113495bSYour Name    FF     Action;
4841*5113495bSYour Name    FF     DialogToken;
4842*5113495bSYour Name    MANDIE LinkIdentifier;
4843*5113495bSYour Name}
4844*5113495bSYour Name
4845*5113495bSYour NameFRAME TDLSDisRsp
4846*5113495bSYour Name{
4847*5113495bSYour Name    FF     Category;
4848*5113495bSYour Name    FF     Action;
4849*5113495bSYour Name    FF     DialogToken;
4850*5113495bSYour Name    FF     Capabilities;
4851*5113495bSYour Name    MANDIE SuppRates;
4852*5113495bSYour Name    OPTIE  ExtSuppRates;
4853*5113495bSYour Name    OPTIE  SuppChannels;
4854*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4855*5113495bSYour Name    OPTIE  RSN;
4856*5113495bSYour Name    OPTIE  ExtCap;
4857*5113495bSYour Name    OPTIE  FTInfo;
4858*5113495bSYour Name    OPTIE  TimeoutInterval;
4859*5113495bSYour Name    OPTIE  RICData;
4860*5113495bSYour Name    OPTIE  HTCaps;
4861*5113495bSYour Name    OPTIE  ht2040_bss_coexistence;
4862*5113495bSYour Name    MANDIE LinkIdentifier;
4863*5113495bSYour Name    OPTIE  VHTCaps;
4864*5113495bSYour Name    OPTIE  he_cap;
4865*5113495bSYour Name}
4866*5113495bSYour Name
4867*5113495bSYour NameFRAME TDLSSetupReq
4868*5113495bSYour Name{
4869*5113495bSYour Name    FF     Category;
4870*5113495bSYour Name    FF     Action;
4871*5113495bSYour Name    FF     DialogToken;
4872*5113495bSYour Name    FF     Capabilities;
4873*5113495bSYour Name    MANDIE SuppRates;
4874*5113495bSYour Name    OPTIE  Country;
4875*5113495bSYour Name    OPTIE  ExtSuppRates;
4876*5113495bSYour Name    OPTIE  SuppChannels;
4877*5113495bSYour Name    OPTIE  RSN;
4878*5113495bSYour Name    OPTIE  ExtCap;
4879*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4880*5113495bSYour Name    OPTIE  QOSCapsStation;
4881*5113495bSYour Name    OPTIE  FTInfo;
4882*5113495bSYour Name    OPTIE  TimeoutInterval;
4883*5113495bSYour Name    OPTIE  RICData;
4884*5113495bSYour Name    OPTIE  HTCaps;
4885*5113495bSYour Name    OPTIE  ht2040_bss_coexistence;
4886*5113495bSYour Name    MANDIE LinkIdentifier;
4887*5113495bSYour Name    OPTIE  WMMInfoStation;
4888*5113495bSYour Name    OPTIE  AID;
4889*5113495bSYour Name    OPTIE  VHTCaps;
4890*5113495bSYour Name    OPTIE  he_cap;
4891*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4892*5113495bSYour Name}
4893*5113495bSYour Name
4894*5113495bSYour NameFRAME TDLSSetupRsp
4895*5113495bSYour Name{
4896*5113495bSYour Name    FF     Category;
4897*5113495bSYour Name    FF     Action;
4898*5113495bSYour Name    FF     Status;
4899*5113495bSYour Name    FF     DialogToken;
4900*5113495bSYour Name    FF     Capabilities ;
4901*5113495bSYour Name    OPTIE  SuppRates;
4902*5113495bSYour Name    OPTIE  Country;
4903*5113495bSYour Name    OPTIE  ExtSuppRates;
4904*5113495bSYour Name    OPTIE  SuppChannels;
4905*5113495bSYour Name    OPTIE  RSN;
4906*5113495bSYour Name    OPTIE  ExtCap;
4907*5113495bSYour Name    OPTIE  SuppOperatingClasses;
4908*5113495bSYour Name    OPTIE  QOSCapsStation;
4909*5113495bSYour Name    OPTIE  FTInfo;
4910*5113495bSYour Name    OPTIE  TimeoutInterval;
4911*5113495bSYour Name    OPTIE  RICData;
4912*5113495bSYour Name    OPTIE  HTCaps;
4913*5113495bSYour Name    OPTIE  ht2040_bss_coexistence;
4914*5113495bSYour Name    OPTIE  LinkIdentifier;
4915*5113495bSYour Name    OPTIE  WMMInfoStation;
4916*5113495bSYour Name    OPTIE  AID;
4917*5113495bSYour Name    OPTIE  VHTCaps;
4918*5113495bSYour Name    OPTIE  OperatingMode;
4919*5113495bSYour Name    OPTIE  he_cap;
4920*5113495bSYour Name    OPTIE  he_6ghz_band_cap;
4921*5113495bSYour Name}
4922*5113495bSYour Name
4923*5113495bSYour NameFRAME TDLSSetupCnf
4924*5113495bSYour Name{
4925*5113495bSYour Name    FF     Category;
4926*5113495bSYour Name    FF     Action;
4927*5113495bSYour Name    FF     Status;
4928*5113495bSYour Name    FF     DialogToken;
4929*5113495bSYour Name    OPTIE  RSN;
4930*5113495bSYour Name    OPTIE  EDCAParamSet;
4931*5113495bSYour Name    OPTIE  FTInfo;
4932*5113495bSYour Name    OPTIE  TimeoutInterval;
4933*5113495bSYour Name    OPTIE  HTInfo;
4934*5113495bSYour Name    OPTIE  LinkIdentifier;
4935*5113495bSYour Name    OPTIE  WMMParams;
4936*5113495bSYour Name    OPTIE  VHTOperation;
4937*5113495bSYour Name    OPTIE  OperatingMode;
4938*5113495bSYour Name    OPTIE  he_op;
4939*5113495bSYour Name}
4940*5113495bSYour NameFRAME TDLSTeardown
4941*5113495bSYour Name{
4942*5113495bSYour Name    FF     Category;
4943*5113495bSYour Name    FF     Action;
4944*5113495bSYour Name    FF     Reason;
4945*5113495bSYour Name    OPTIE  FTInfo;
4946*5113495bSYour Name    MANDIE LinkIdentifier;
4947*5113495bSYour Name}
4948*5113495bSYour Name
4949*5113495bSYour NameFRAME TDLSPeerTrafficInd
4950*5113495bSYour Name{
4951*5113495bSYour Name    FF     Category;
4952*5113495bSYour Name    FF     Action;
4953*5113495bSYour Name    FF     DialogToken;
4954*5113495bSYour Name    MANDIE LinkIdentifier;
4955*5113495bSYour Name    OPTIE  PTIControl;
4956*5113495bSYour Name    MANDIE PUBufferStatus;
4957*5113495bSYour Name}
4958*5113495bSYour Name
4959*5113495bSYour NameFRAME TDLSPeerTrafficRsp
4960*5113495bSYour Name{
4961*5113495bSYour Name    FF     Category;
4962*5113495bSYour Name    FF     Action;
4963*5113495bSYour Name    FF     DialogToken;
4964*5113495bSYour Name    MANDIE LinkIdentifier;
4965*5113495bSYour Name}
4966*5113495bSYour Name
4967*5113495bSYour NameFRAME SaQueryReq
4968*5113495bSYour Name{
4969*5113495bSYour Name    FF     Category;
4970*5113495bSYour Name    FF     Action;
4971*5113495bSYour Name    FF     TransactionId;
4972*5113495bSYour Name    OPTIE  oci;
4973*5113495bSYour Name}
4974*5113495bSYour Name
4975*5113495bSYour NameFRAME SaQueryRsp
4976*5113495bSYour Name{
4977*5113495bSYour Name    FF     Category;
4978*5113495bSYour Name    FF     Action;
4979*5113495bSYour Name    FF     TransactionId;
4980*5113495bSYour Name    OPTIE  oci;
4981*5113495bSYour Name}
4982*5113495bSYour Name
4983*5113495bSYour NameFRAME QosMapConfigure
4984*5113495bSYour Name{
4985*5113495bSYour Name    FF     Category;
4986*5113495bSYour Name    FF     Action;
4987*5113495bSYour Name    MANDIE  QosMapSet;
4988*5113495bSYour Name}
4989*5113495bSYour Name
4990*5113495bSYour NameFRAME VHTGidManagementActionFrame
4991*5113495bSYour Name{
4992*5113495bSYour Name    FF     Category;
4993*5113495bSYour Name    FF     Action;
4994*5113495bSYour Name    FF     VhtMembershipStatusArray;
4995*5113495bSYour Name    FF     VhtUserPositionArray;
4996*5113495bSYour Name}
4997*5113495bSYour Name
4998*5113495bSYour NameFRAME ht2040_bss_coexistence_mgmt_action_frame
4999*5113495bSYour Name{
5000*5113495bSYour Name    FF     Category;
5001*5113495bSYour Name    FF     Action;
5002*5113495bSYour Name    MANDIE ht2040_bss_coexistence;
5003*5113495bSYour Name    MANDIE ht2040_bss_intolerant_report;
5004*5113495bSYour Name}
5005*5113495bSYour Name
5006*5113495bSYour NameFRAME TimingAdvertisementFrame            // 8.3.3.15
5007*5113495bSYour Name{
5008*5113495bSYour Name    FF     TimeStamp;
5009*5113495bSYour Name    FF     Capabilities;
5010*5113495bSYour Name    OPTIE  Country;
5011*5113495bSYour Name    OPTIE  PowerConstraints;
5012*5113495bSYour Name    OPTIE  TimeAdvertisement;
5013*5113495bSYour Name    OPTIE  ExtCap;
5014*5113495bSYour Name    OPTIE  Vendor1IE;
5015*5113495bSYour Name    OPTIE  Vendor3IE;
5016*5113495bSYour Name}
5017*5113495bSYour Name
5018*5113495bSYour NameFRAME ext_channel_switch_action_frame
5019*5113495bSYour Name{
5020*5113495bSYour Name    FF     Category;
5021*5113495bSYour Name    FF     Action;
5022*5113495bSYour Name    FF     ext_chan_switch_ann_action;
5023*5113495bSYour Name    OPTIE  WiderBWChanSwitchAnn;
5024*5113495bSYour Name    OPTIE  qcn_ie;
5025*5113495bSYour Name    OPTIE  bw_ind_element;
5026*5113495bSYour Name}
5027*5113495bSYour Name
5028*5113495bSYour NameFRAME p2p_oper_chan_change_confirm
5029*5113495bSYour Name{
5030*5113495bSYour Name    FF Category;
5031*5113495bSYour Name    FF p2p_action_oui;
5032*5113495bSYour Name    FF p2p_action_subtype;
5033*5113495bSYour Name    FF DialogToken;
5034*5113495bSYour Name    OPTIE HTCaps;
5035*5113495bSYour Name    OPTIE VHTCaps;
5036*5113495bSYour Name    OPTIE OperatingMode;
5037*5113495bSYour Name}
5038*5113495bSYour Name
5039*5113495bSYour NameFRAME addba_req
5040*5113495bSYour Name{
5041*5113495bSYour Name    FF    Category;
5042*5113495bSYour Name    FF    Action;
5043*5113495bSYour Name    FF    DialogToken;
5044*5113495bSYour Name    FF    addba_param_set;
5045*5113495bSYour Name    FF    ba_timeout;
5046*5113495bSYour Name    FF    ba_start_seq_ctrl;
5047*5113495bSYour Name    OPTIE addba_extn_element;
5048*5113495bSYour Name}
5049*5113495bSYour Name
5050*5113495bSYour NameFRAME addba_rsp
5051*5113495bSYour Name{
5052*5113495bSYour Name    FF    Category;
5053*5113495bSYour Name    FF    Action;
5054*5113495bSYour Name    FF    DialogToken;
5055*5113495bSYour Name    FF    Status;
5056*5113495bSYour Name    FF    addba_param_set;
5057*5113495bSYour Name    FF    ba_timeout;
5058*5113495bSYour Name    OPTIE addba_extn_element;
5059*5113495bSYour Name}
5060*5113495bSYour Name
5061*5113495bSYour NameFRAME delba_req
5062*5113495bSYour Name{
5063*5113495bSYour Name    FF    Category;
5064*5113495bSYour Name    FF    Action;
5065*5113495bSYour Name    FF    delba_param_set;
5066*5113495bSYour Name    FF    Reason;
5067*5113495bSYour Name}
5068*5113495bSYour Name
5069*5113495bSYour NameFRAME t2lm_neg_req
5070*5113495bSYour Name{
5071*5113495bSYour Name    FF    Category;
5072*5113495bSYour Name    FF    Action;
5073*5113495bSYour Name    FF    DialogToken;
5074*5113495bSYour Name    OPTIE t2lm_ie[0..2];
5075*5113495bSYour Name}
5076*5113495bSYour Name
5077*5113495bSYour NameFRAME t2lm_neg_rsp
5078*5113495bSYour Name{
5079*5113495bSYour Name    FF    Category;
5080*5113495bSYour Name    FF    Action;
5081*5113495bSYour Name    FF    DialogToken;
5082*5113495bSYour Name    FF    Status;
5083*5113495bSYour Name}
5084*5113495bSYour Name
5085*5113495bSYour NameFRAME t2lm_teardown
5086*5113495bSYour Name{
5087*5113495bSYour Name    FF    Category;
5088*5113495bSYour Name    FF    Action;
5089*5113495bSYour Name}
5090*5113495bSYour Name
5091*5113495bSYour NameFRAME vendor_action_frame
5092*5113495bSYour Name{
5093*5113495bSYour Name    FF    Category;
5094*5113495bSYour Name    FF    vendor_oui;
5095*5113495bSYour Name    FF    vendor_action_subtype;
5096*5113495bSYour Name}
5097*5113495bSYour Name
5098*5113495bSYour NameFRAME mscs_request_action_frame
5099*5113495bSYour Name{
5100*5113495bSYour Name    FF     Category;
5101*5113495bSYour Name    FF     Action;
5102*5113495bSYour Name    FF     DialogToken;
5103*5113495bSYour Name    MANDIE descriptor_element;
5104*5113495bSYour Name}
5105*5113495bSYour Name
5106*5113495bSYour NameFRAME epcs_neg_req
5107*5113495bSYour Name{
5108*5113495bSYour Name    FF    Category;
5109*5113495bSYour Name    FF    Action;
5110*5113495bSYour Name    FF    DialogToken;
5111*5113495bSYour Name}
5112*5113495bSYour Name
5113*5113495bSYour NameFRAME epcs_neg_rsp
5114*5113495bSYour Name{
5115*5113495bSYour Name    FF    Category;
5116*5113495bSYour Name    FF    Action;
5117*5113495bSYour Name    FF    DialogToken;
5118*5113495bSYour Name    FF    Status;
5119*5113495bSYour Name}
5120*5113495bSYour Name
5121*5113495bSYour NameFRAME epcs_teardown
5122*5113495bSYour Name{
5123*5113495bSYour Name    FF    Category;
5124*5113495bSYour Name    FF    Action;
5125*5113495bSYour Name}
5126*5113495bSYour Name
5127*5113495bSYour Name// Local Variables:
5128*5113495bSYour Name// mode: c++
5129*5113495bSYour Name// fill-column: 77
5130*5113495bSYour Name// comment-column: 42
5131*5113495bSYour Name// indent-tabs-mode: nil
5132*5113495bSYour Name// show-trailing-whitespace: t
5133*5113495bSYour Name// End:
5134*5113495bSYour Name
5135*5113495bSYour Name// parser.frms ends here.
5136