blob: c8aa6efbdc2abe06957c356d264852bce5c12292 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
Jeff Johnson295189b2012-06-20 16:38:30 -070042#ifndef DOT11F_H
43#define DOT11F_H
44/**
45 * \file dot11f.h
46 *
47 * \brief Structures, function prototypes & definitions
48 * for working with 802.11 Frames
49 *
50 *
Gopichand Nakkalacdf7cc52013-02-25 18:16:37 +053051 * Copyright (C) 2008 Airgo Networks, Incorporated.
Jeff Johnson295189b2012-06-20 16:38:30 -070052 *
53 *
54 * This file was automatically generated by 'framesc'
Gopichand Nakkalacdf7cc52013-02-25 18:16:37 +053055 * Mon Feb 25 17:00:55 2013 from the following file(s):
Jeff Johnson295189b2012-06-20 16:38:30 -070056 *
57 * dot11f.frms
58 *
59 * PLEASE DON'T EDIT THIS FILE BY HAND!
60 *
61 * Instead, please update the input files & re-run
62 * 'framesc' For more information on 'framesc' & the
63 * frames language, run 'framesc --help'.
64 *
65 *
66 */
67
68typedef tANI_U32 tDOT11F_U64[2];
69
70#if defined ( _MSC_VER )
71# pragma warning (disable: 4214) /* nonstandard extension used */
72#endif /* Microsoft C/C++ bit field types other than int */
73
74/*
75 * Frames Return Codes:
76 *
77 * Success is indicated by a return value of zero. Failure is indicated
78 * by the presence of the high bit. Warnings encountered in the course
79 * of a successful parse are indicated by various bits in the lower 31
80 * being turned on.
81 *
82 * For instance, a return value of 0x0000000a would indicate that the
83 * parse succeeded, but that a mandatory IE wasn't present, and some IE
84 * was found to be corrupt.
85 *
86 *
87 */
88
89#define DOT11F_PARSE_SUCCESS ( 0x00000000 )
90#define DOT11F_UNKNOWN_IES ( 0x00000001 )
91#define DOT11F_MANDATORY_IE_MISSING ( 0x00000002 )
92#define DOT11F_INCOMPLETE_IE ( 0x00000004 )
93#define DOT11F_SKIPPED_BAD_IE ( 0x00000008 )
94#define DOT11F_LAST_IE_TOO_LONG ( 0x00000010 )
95#define DOT11F_DUPLICATE_IE ( 0x00000020 )
96#define DOT11F_BAD_FIXED_VALUE ( 0x00000040 )
97#define DOT11F_INCOMPLETE_TLV ( 0x00000080 )
98#define DOT11F_INVALID_TLV_LENGTH ( 0x00000100 )
99#define DOT11F_SKIPPED_BAD_TLV ( 0x00000200 )
100#define DOT11F_UNKNOWN_TLVS ( 0x00000400 )
101#define DOT11F_LAST_TLV_TOO_LONG ( 0x00000800 )
102#define DOT11F_INTERNAL_ERROR ( 0x10000001 )
103#define DOT11F_MISSING_FIXED_FIELD ( 0x10000002 )
104#define DOT11F_BAD_INPUT_BUFFER ( 0x10000003 )
105#define DOT11F_BAD_OUTPUT_BUFFER ( 0x10000004 )
106#define DOT11F_BUFFER_OVERFLOW ( 0x10000005 )
107#define DOT11F_MANDATORY_TLV_MISSING ( 0x00001000 )
108#define DOT11F_FAILED(code) ( (code) & 0x10000000 )
109#define DOT11F_WARNED(code) ( ( ( 0 == (code) ) & 0x10000000 ) && code)
110#define DOT11F_SUCCEEDED(code) ( (code) == 0 )
111
112/*********************************************************************
113 * Fixed Fields *
114 ********************************************************************/
115
116typedef struct sDot11fFfAID {
117 tANI_U16 associd;
118} tDot11fFfAID;
119
120#define DOT11F_FF_AID_LEN ( 2 )
121
122void dot11fUnpackFfAID(tpAniSirGlobal, tANI_U8*, tDot11fFfAID*);
123
124void dot11fPackFfAID(tpAniSirGlobal, tDot11fFfAID*, tANI_U8*);
125
126typedef struct sDot11fFfAction {
127 tANI_U8 action;
128} tDot11fFfAction;
129
130#define DOT11F_FF_ACTION_LEN ( 1 )
131
132void dot11fUnpackFfAction(tpAniSirGlobal, tANI_U8*, tDot11fFfAction*);
133
134void dot11fPackFfAction(tpAniSirGlobal, tDot11fFfAction*, tANI_U8*);
135
136typedef struct sDot11fFfAddBAParameterSet {
137 tANI_U16 amsduSupported: 1;
138 tANI_U16 policy: 1;
139 tANI_U16 tid: 4;
140 tANI_U16 bufferSize: 10;
141} tDot11fFfAddBAParameterSet;
142
143#define DOT11F_FF_ADDBAPARAMETERSET_LEN ( 2 )
144
145void dot11fUnpackFfAddBAParameterSet(tpAniSirGlobal, tANI_U8*, tDot11fFfAddBAParameterSet*);
146
147void dot11fPackFfAddBAParameterSet(tpAniSirGlobal, tDot11fFfAddBAParameterSet*, tANI_U8*);
148
149#define ADDBAPARAMETERSET_AMSDUSUPPORTED_OFFSET 0
150#define ADDBAPARAMETERSET_AMSDUSUPPORTED_WIDTH 1
151#define ADDBAPARAMETERSET_POLICY_OFFSET 1
152#define ADDBAPARAMETERSET_POLICY_WIDTH 1
153#define ADDBAPARAMETERSET_TID_OFFSET 2
154#define ADDBAPARAMETERSET_TID_WIDTH 4
155#define ADDBAPARAMETERSET_BUFFERSIZE_OFFSET 6
156#define ADDBAPARAMETERSET_BUFFERSIZE_WIDTH 10
157
158typedef struct sDot11fFfAuthAlgo {
159 tANI_U16 algo;
160} tDot11fFfAuthAlgo;
161
162#define DOT11F_FF_AUTHALGO_LEN ( 2 )
163
164void dot11fUnpackFfAuthAlgo(tpAniSirGlobal, tANI_U8*, tDot11fFfAuthAlgo*);
165
166void dot11fPackFfAuthAlgo(tpAniSirGlobal, tDot11fFfAuthAlgo*, tANI_U8*);
167
168typedef struct sDot11fFfAuthSeqNo {
169 tANI_U16 no;
170} tDot11fFfAuthSeqNo;
171
172#define DOT11F_FF_AUTHSEQNO_LEN ( 2 )
173
174void dot11fUnpackFfAuthSeqNo(tpAniSirGlobal, tANI_U8*, tDot11fFfAuthSeqNo*);
175
176void dot11fPackFfAuthSeqNo(tpAniSirGlobal, tDot11fFfAuthSeqNo*, tANI_U8*);
177
178typedef struct sDot11fFfBAStartingSequenceControl {
179 tANI_U16 fragNumber: 4;
180 tANI_U16 ssn: 12;
181} tDot11fFfBAStartingSequenceControl;
182
183#define DOT11F_FF_BASTARTINGSEQUENCECONTROL_LEN ( 2 )
184
185void dot11fUnpackFfBAStartingSequenceControl(tpAniSirGlobal, tANI_U8*, tDot11fFfBAStartingSequenceControl*);
186
187void dot11fPackFfBAStartingSequenceControl(tpAniSirGlobal, tDot11fFfBAStartingSequenceControl*, tANI_U8*);
188
189#define BASTARTINGSEQUENCECONTROL_FRAGNUMBER_OFFSET 0
190#define BASTARTINGSEQUENCECONTROL_FRAGNUMBER_WIDTH 4
191#define BASTARTINGSEQUENCECONTROL_SSN_OFFSET 4
192#define BASTARTINGSEQUENCECONTROL_SSN_WIDTH 12
193
194typedef struct sDot11fFfBATimeout {
195 tANI_U16 timeout;
196} tDot11fFfBATimeout;
197
198#define DOT11F_FF_BATIMEOUT_LEN ( 2 )
199
200void dot11fUnpackFfBATimeout(tpAniSirGlobal, tANI_U8*, tDot11fFfBATimeout*);
201
202void dot11fPackFfBATimeout(tpAniSirGlobal, tDot11fFfBATimeout*, tANI_U8*);
203
204typedef struct sDot11fFfBeaconInterval {
205 tANI_U16 interval;
206} tDot11fFfBeaconInterval;
207
208#define DOT11F_FF_BEACONINTERVAL_LEN ( 2 )
209
210void dot11fUnpackFfBeaconInterval(tpAniSirGlobal, tANI_U8*, tDot11fFfBeaconInterval*);
211
212void dot11fPackFfBeaconInterval(tpAniSirGlobal, tDot11fFfBeaconInterval*, tANI_U8*);
213
214typedef struct sDot11fFfCapabilities {
215 tANI_U16 ess: 1;
216 tANI_U16 ibss: 1;
217 tANI_U16 cfPollable: 1;
218 tANI_U16 cfPollReq: 1;
219 tANI_U16 privacy: 1;
220 tANI_U16 shortPreamble: 1;
221 tANI_U16 pbcc: 1;
222 tANI_U16 channelAgility: 1;
223 tANI_U16 spectrumMgt: 1;
224 tANI_U16 qos: 1;
225 tANI_U16 shortSlotTime: 1;
226 tANI_U16 apsd: 1;
227 tANI_U16 rrm: 1;
228 tANI_U16 dsssOfdm: 1;
229 tANI_U16 delayedBA: 1;
230 tANI_U16 immediateBA: 1;
231} tDot11fFfCapabilities;
232
233#define DOT11F_FF_CAPABILITIES_LEN ( 2 )
234
235void dot11fUnpackFfCapabilities(tpAniSirGlobal, tANI_U8*, tDot11fFfCapabilities*);
236
237void dot11fPackFfCapabilities(tpAniSirGlobal, tDot11fFfCapabilities*, tANI_U8*);
238
239#define CAPABILITIES_ESS_OFFSET 0
240#define CAPABILITIES_ESS_WIDTH 1
241#define CAPABILITIES_IBSS_OFFSET 1
242#define CAPABILITIES_IBSS_WIDTH 1
243#define CAPABILITIES_CFPOLLABLE_OFFSET 2
244#define CAPABILITIES_CFPOLLABLE_WIDTH 1
245#define CAPABILITIES_CFPOLLREQ_OFFSET 3
246#define CAPABILITIES_CFPOLLREQ_WIDTH 1
247#define CAPABILITIES_PRIVACY_OFFSET 4
248#define CAPABILITIES_PRIVACY_WIDTH 1
249#define CAPABILITIES_SHORTPREAMBLE_OFFSET 5
250#define CAPABILITIES_SHORTPREAMBLE_WIDTH 1
251#define CAPABILITIES_PBCC_OFFSET 6
252#define CAPABILITIES_PBCC_WIDTH 1
253#define CAPABILITIES_CHANNELAGILITY_OFFSET 7
254#define CAPABILITIES_CHANNELAGILITY_WIDTH 1
255#define CAPABILITIES_SPECTRUMMGT_OFFSET 8
256#define CAPABILITIES_SPECTRUMMGT_WIDTH 1
257#define CAPABILITIES_QOS_OFFSET 9
258#define CAPABILITIES_QOS_WIDTH 1
259#define CAPABILITIES_SHORTSLOTTIME_OFFSET 10
260#define CAPABILITIES_SHORTSLOTTIME_WIDTH 1
261#define CAPABILITIES_APSD_OFFSET 11
262#define CAPABILITIES_APSD_WIDTH 1
263#define CAPABILITIES_RRM_OFFSET 12
264#define CAPABILITIES_RRM_WIDTH 1
265#define CAPABILITIES_DSSSOFDM_OFFSET 13
266#define CAPABILITIES_DSSSOFDM_WIDTH 1
267#define CAPABILITIES_DELAYEDBA_OFFSET 14
268#define CAPABILITIES_DELAYEDBA_WIDTH 1
269#define CAPABILITIES_IMMEDIATEBA_OFFSET 15
270#define CAPABILITIES_IMMEDIATEBA_WIDTH 1
271
272typedef struct sDot11fFfCategory {
273 tANI_U8 category;
274} tDot11fFfCategory;
275
276#define DOT11F_FF_CATEGORY_LEN ( 1 )
277
278void dot11fUnpackFfCategory(tpAniSirGlobal, tANI_U8*, tDot11fFfCategory*);
279
280void dot11fPackFfCategory(tpAniSirGlobal, tDot11fFfCategory*, tANI_U8*);
281
282typedef struct sDot11fFfCurrentAPAddress {
283 tANI_U8 mac[6];
284} tDot11fFfCurrentAPAddress;
285
286#define DOT11F_FF_CURRENTAPADDRESS_LEN ( 6 )
287
288void dot11fUnpackFfCurrentAPAddress(tpAniSirGlobal, tANI_U8*, tDot11fFfCurrentAPAddress*);
289
290void dot11fPackFfCurrentAPAddress(tpAniSirGlobal, tDot11fFfCurrentAPAddress*, tANI_U8*);
291
292typedef struct sDot11fFfDelBAParameterSet {
293 tANI_U16 reserved: 11;
294 tANI_U16 initiator: 1;
295 tANI_U16 tid: 4;
296} tDot11fFfDelBAParameterSet;
297
298#define DOT11F_FF_DELBAPARAMETERSET_LEN ( 2 )
299
300void dot11fUnpackFfDelBAParameterSet(tpAniSirGlobal, tANI_U8*, tDot11fFfDelBAParameterSet*);
301
302void dot11fPackFfDelBAParameterSet(tpAniSirGlobal, tDot11fFfDelBAParameterSet*, tANI_U8*);
303
304#define DELBAPARAMETERSET_RESERVED_OFFSET 0
305#define DELBAPARAMETERSET_RESERVED_WIDTH 11
306#define DELBAPARAMETERSET_INITIATOR_OFFSET 11
307#define DELBAPARAMETERSET_INITIATOR_WIDTH 1
308#define DELBAPARAMETERSET_TID_OFFSET 12
309#define DELBAPARAMETERSET_TID_WIDTH 4
310
311typedef struct sDot11fFfDialogToken {
312 tANI_U8 token;
313} tDot11fFfDialogToken;
314
315#define DOT11F_FF_DIALOGTOKEN_LEN ( 1 )
316
317void dot11fUnpackFfDialogToken(tpAniSirGlobal, tANI_U8*, tDot11fFfDialogToken*);
318
319void dot11fPackFfDialogToken(tpAniSirGlobal, tDot11fFfDialogToken*, tANI_U8*);
320
321typedef struct sDot11fFfLinkMargin {
322 tANI_U8 linkMargin;
323} tDot11fFfLinkMargin;
324
325#define DOT11F_FF_LINKMARGIN_LEN ( 1 )
326
327void dot11fUnpackFfLinkMargin(tpAniSirGlobal, tANI_U8*, tDot11fFfLinkMargin*);
328
329void dot11fPackFfLinkMargin(tpAniSirGlobal, tDot11fFfLinkMargin*, tANI_U8*);
330
331typedef struct sDot11fFfListenInterval {
332 tANI_U16 interval;
333} tDot11fFfListenInterval;
334
335#define DOT11F_FF_LISTENINTERVAL_LEN ( 2 )
336
337void dot11fUnpackFfListenInterval(tpAniSirGlobal, tANI_U8*, tDot11fFfListenInterval*);
338
339void dot11fPackFfListenInterval(tpAniSirGlobal, tDot11fFfListenInterval*, tANI_U8*);
340
341typedef struct sDot11fFfMaxTxPower {
342 tANI_U8 maxTxPower;
343} tDot11fFfMaxTxPower;
344
345#define DOT11F_FF_MAXTXPOWER_LEN ( 1 )
346
347void dot11fUnpackFfMaxTxPower(tpAniSirGlobal, tANI_U8*, tDot11fFfMaxTxPower*);
348
349void dot11fPackFfMaxTxPower(tpAniSirGlobal, tDot11fFfMaxTxPower*, tANI_U8*);
350
351typedef struct sDot11fFfNumOfRepetitions {
352 tANI_U16 repetitions;
353} tDot11fFfNumOfRepetitions;
354
355#define DOT11F_FF_NUMOFREPETITIONS_LEN ( 2 )
356
357void dot11fUnpackFfNumOfRepetitions(tpAniSirGlobal, tANI_U8*, tDot11fFfNumOfRepetitions*);
358
359void dot11fPackFfNumOfRepetitions(tpAniSirGlobal, tDot11fFfNumOfRepetitions*, tANI_U8*);
360
Mohit Khanna4a70d262012-09-11 16:30:12 -0700361typedef struct sDot11fFfOperatingMode {
362 tANI_U8 chanWidth: 2;
363 tANI_U8 reserved: 2;
364 tANI_U8 rxNSS: 3;
365 tANI_U8 rxNSSType: 1;
366} tDot11fFfOperatingMode;
367
368#define DOT11F_FF_OPERATINGMODE_LEN ( 1 )
369
370void dot11fUnpackFfOperatingMode(tpAniSirGlobal, tANI_U8*, tDot11fFfOperatingMode*);
371
372void dot11fPackFfOperatingMode(tpAniSirGlobal, tDot11fFfOperatingMode*, tANI_U8*);
373
374#define OPERATINGMODE_CHANWIDTH_OFFSET 0
375#define OPERATINGMODE_CHANWIDTH_WIDTH 2
376#define OPERATINGMODE_RESERVED_OFFSET 2
377#define OPERATINGMODE_RESERVED_WIDTH 2
378#define OPERATINGMODE_RXNSS_OFFSET 4
379#define OPERATINGMODE_RXNSS_WIDTH 3
380#define OPERATINGMODE_RXNSSTYPE_OFFSET 7
381#define OPERATINGMODE_RXNSSTYPE_WIDTH 1
382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383typedef struct sDot11fFfP2POUI {
384 tANI_U32 oui;
385} tDot11fFfP2POUI;
386
387#define DOT11F_FF_P2POUI_LEN ( 4 )
388
389void dot11fUnpackFfP2POUI(tpAniSirGlobal, tANI_U8*, tDot11fFfP2POUI*);
390
391void dot11fPackFfP2POUI(tpAniSirGlobal, tDot11fFfP2POUI*, tANI_U8*);
392
393typedef struct sDot11fFfP2POUISubType {
394 tANI_U8 ouiSubtype;
395} tDot11fFfP2POUISubType;
396
397#define DOT11F_FF_P2POUISUBTYPE_LEN ( 1 )
398
399void dot11fUnpackFfP2POUISubType(tpAniSirGlobal, tANI_U8*, tDot11fFfP2POUISubType*);
400
401void dot11fPackFfP2POUISubType(tpAniSirGlobal, tDot11fFfP2POUISubType*, tANI_U8*);
402
403typedef struct sDot11fFfRCPI {
404 tANI_U8 rcpi;
405} tDot11fFfRCPI;
406
407#define DOT11F_FF_RCPI_LEN ( 1 )
408
409void dot11fUnpackFfRCPI(tpAniSirGlobal, tANI_U8*, tDot11fFfRCPI*);
410
411void dot11fPackFfRCPI(tpAniSirGlobal, tDot11fFfRCPI*, tANI_U8*);
412
413typedef struct sDot11fFfRSNI {
414 tANI_U8 rsni;
415} tDot11fFfRSNI;
416
417#define DOT11F_FF_RSNI_LEN ( 1 )
418
419void dot11fUnpackFfRSNI(tpAniSirGlobal, tANI_U8*, tDot11fFfRSNI*);
420
421void dot11fPackFfRSNI(tpAniSirGlobal, tDot11fFfRSNI*, tANI_U8*);
422
423typedef struct sDot11fFfReason {
424 tANI_U16 code;
425} tDot11fFfReason;
426
427#define DOT11F_FF_REASON_LEN ( 2 )
428
429void dot11fUnpackFfReason(tpAniSirGlobal, tANI_U8*, tDot11fFfReason*);
430
431void dot11fPackFfReason(tpAniSirGlobal, tDot11fFfReason*, tANI_U8*);
432
433typedef struct sDot11fFfRxAntennaId {
434 tANI_U8 antennaId;
435} tDot11fFfRxAntennaId;
436
437#define DOT11F_FF_RXANTENNAID_LEN ( 1 )
438
439void dot11fUnpackFfRxAntennaId(tpAniSirGlobal, tANI_U8*, tDot11fFfRxAntennaId*);
440
441void dot11fPackFfRxAntennaId(tpAniSirGlobal, tDot11fFfRxAntennaId*, tANI_U8*);
442
443typedef struct sDot11fFfSMPowerModeSet {
444 tANI_U8 PowerSave_En: 1;
445 tANI_U8 Mode: 1;
446 tANI_U8 reserved: 6;
447} tDot11fFfSMPowerModeSet;
448
449#define DOT11F_FF_SMPOWERMODESET_LEN ( 1 )
450
451void dot11fUnpackFfSMPowerModeSet(tpAniSirGlobal, tANI_U8*, tDot11fFfSMPowerModeSet*);
452
453void dot11fPackFfSMPowerModeSet(tpAniSirGlobal, tDot11fFfSMPowerModeSet*, tANI_U8*);
454
455#define SMPOWERMODESET_POWERSAVE_EN_OFFSET 0
456#define SMPOWERMODESET_POWERSAVE_EN_WIDTH 1
457#define SMPOWERMODESET_MODE_OFFSET 1
458#define SMPOWERMODESET_MODE_WIDTH 1
459#define SMPOWERMODESET_RESERVED_OFFSET 2
460#define SMPOWERMODESET_RESERVED_WIDTH 6
461
462typedef struct sDot11fFfStatus {
463 tANI_U16 status;
464} tDot11fFfStatus;
465
466#define DOT11F_FF_STATUS_LEN ( 2 )
467
468void dot11fUnpackFfStatus(tpAniSirGlobal, tANI_U8*, tDot11fFfStatus*);
469
470void dot11fPackFfStatus(tpAniSirGlobal, tDot11fFfStatus*, tANI_U8*);
471
472typedef struct sDot11fFfStatusCode {
473 tANI_U8 statusCode;
474} tDot11fFfStatusCode;
475
476#define DOT11F_FF_STATUSCODE_LEN ( 1 )
477
478void dot11fUnpackFfStatusCode(tpAniSirGlobal, tANI_U8*, tDot11fFfStatusCode*);
479
480void dot11fPackFfStatusCode(tpAniSirGlobal, tDot11fFfStatusCode*, tANI_U8*);
481
482typedef struct sDot11fFfTPCEleID {
483 tANI_U8 TPCId;
484} tDot11fFfTPCEleID;
485
486#define DOT11F_FF_TPCELEID_LEN ( 1 )
487
488void dot11fUnpackFfTPCEleID(tpAniSirGlobal, tANI_U8*, tDot11fFfTPCEleID*);
489
490void dot11fPackFfTPCEleID(tpAniSirGlobal, tDot11fFfTPCEleID*, tANI_U8*);
491
492typedef struct sDot11fFfTPCEleLen {
493 tANI_U8 TPCLen;
494} tDot11fFfTPCEleLen;
495
496#define DOT11F_FF_TPCELELEN_LEN ( 1 )
497
498void dot11fUnpackFfTPCEleLen(tpAniSirGlobal, tANI_U8*, tDot11fFfTPCEleLen*);
499
500void dot11fPackFfTPCEleLen(tpAniSirGlobal, tDot11fFfTPCEleLen*, tANI_U8*);
501
502typedef struct sDot11fFfTSInfo {
503 tANI_U32 traffic_type: 1;
504 tANI_U32 tsid: 4;
505 tANI_U32 direction: 2;
506 tANI_U32 access_policy: 2;
507 tANI_U32 aggregation: 1;
508 tANI_U32 psb: 1;
509 tANI_U32 user_priority: 3;
510 tANI_U32 tsinfo_ack_pol: 2;
511 tANI_U32 schedule: 1;
512 tANI_U32 unused: 15;
513} tDot11fFfTSInfo;
514
515#define DOT11F_FF_TSINFO_LEN ( 3 )
516
517void dot11fUnpackFfTSInfo(tpAniSirGlobal, tANI_U8*, tDot11fFfTSInfo*);
518
519void dot11fPackFfTSInfo(tpAniSirGlobal, tDot11fFfTSInfo*, tANI_U8*);
520
521#define TSINFO_TRAFFIC_TYPE_OFFSET 0
522#define TSINFO_TRAFFIC_TYPE_WIDTH 1
523#define TSINFO_TSID_OFFSET 1
524#define TSINFO_TSID_WIDTH 4
525#define TSINFO_DIRECTION_OFFSET 5
526#define TSINFO_DIRECTION_WIDTH 2
527#define TSINFO_ACCESS_POLICY_OFFSET 7
528#define TSINFO_ACCESS_POLICY_WIDTH 2
529#define TSINFO_AGGREGATION_OFFSET 9
530#define TSINFO_AGGREGATION_WIDTH 1
531#define TSINFO_PSB_OFFSET 10
532#define TSINFO_PSB_WIDTH 1
533#define TSINFO_USER_PRIORITY_OFFSET 11
534#define TSINFO_USER_PRIORITY_WIDTH 3
535#define TSINFO_TSINFO_ACK_POL_OFFSET 14
536#define TSINFO_TSINFO_ACK_POL_WIDTH 2
537#define TSINFO_SCHEDULE_OFFSET 16
538#define TSINFO_SCHEDULE_WIDTH 1
539#define TSINFO_UNUSED_OFFSET 17
540#define TSINFO_UNUSED_WIDTH 15
541
542typedef struct sDot11fFfTimeStamp {
543 tDOT11F_U64 timestamp;
544} tDot11fFfTimeStamp;
545
546#define DOT11F_FF_TIMESTAMP_LEN ( 8 )
547
548void dot11fUnpackFfTimeStamp(tpAniSirGlobal, tANI_U8*, tDot11fFfTimeStamp*);
549
550void dot11fPackFfTimeStamp(tpAniSirGlobal, tDot11fFfTimeStamp*, tANI_U8*);
551
552typedef struct sDot11fFfTxAntennaId {
553 tANI_U8 antennaId;
554} tDot11fFfTxAntennaId;
555
556#define DOT11F_FF_TXANTENNAID_LEN ( 1 )
557
558void dot11fUnpackFfTxAntennaId(tpAniSirGlobal, tANI_U8*, tDot11fFfTxAntennaId*);
559
560void dot11fPackFfTxAntennaId(tpAniSirGlobal, tDot11fFfTxAntennaId*, tANI_U8*);
561
562typedef struct sDot11fFfTxPower {
563 tANI_U8 txPower;
564} tDot11fFfTxPower;
565
566#define DOT11F_FF_TXPOWER_LEN ( 1 )
567
568void dot11fUnpackFfTxPower(tpAniSirGlobal, tANI_U8*, tDot11fFfTxPower*);
569
570void dot11fPackFfTxPower(tpAniSirGlobal, tDot11fFfTxPower*, tANI_U8*);
571
572/*********************************************************************
573 * TLVs *
574 ********************************************************************/
575
576// ID 1 (0x0001)
577typedef struct sDot11fTLVAuthorizedMACs {
578 tANI_U8 present;
579 tANI_U8 mac[6];
580} tDot11fTLVAuthorizedMACs;
581
582#define DOT11F_TLV_AUTHORIZEDMACS ( 1 )
583
584// N.B. These #defines do *not* include the ID & length
585#define DOT11F_TLV_AUTHORIZEDMACS_MIN_LEN ( 6 )
586
587#define DOT11F_TLV_AUTHORIZEDMACS_MAX_LEN ( 6 )
588
589#ifdef __cplusplus
590extern "C" {
591#endif /* C++ */
592tANI_U32 dot11fUnpackTlvAuthorizedMACs(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAuthorizedMACs*);
593
594tANI_U32 dot11fPackTlvAuthorizedMACs(tpAniSirGlobal, tDot11fTLVAuthorizedMACs*, tANI_U8*, tANI_U32, tANI_U32*);
595
596tANI_U32 dot11fGetPackedTlvAuthorizedMACs(tpAniSirGlobal, tDot11fTLVAuthorizedMACs*, tANI_U32*);
597
598#ifdef __cplusplus
599}; /* End extern "C". */
600#endif /* C++ */
601// ID 3 (0x0003)
602typedef struct sDot11fTLVRequestToEnroll {
603 tANI_U8 present;
604 tANI_U8 req;
605} tDot11fTLVRequestToEnroll;
606
607#define DOT11F_TLV_REQUESTTOENROLL ( 3 )
608
609// N.B. These #defines do *not* include the ID & length
610#define DOT11F_TLV_REQUESTTOENROLL_MIN_LEN ( 1 )
611
612#define DOT11F_TLV_REQUESTTOENROLL_MAX_LEN ( 1 )
613
614#ifdef __cplusplus
615extern "C" {
616#endif /* C++ */
617tANI_U32 dot11fUnpackTlvRequestToEnroll(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestToEnroll*);
618
619tANI_U32 dot11fPackTlvRequestToEnroll(tpAniSirGlobal, tDot11fTLVRequestToEnroll*, tANI_U8*, tANI_U32, tANI_U32*);
620
621tANI_U32 dot11fGetPackedTlvRequestToEnroll(tpAniSirGlobal, tDot11fTLVRequestToEnroll*, tANI_U32*);
622
623#ifdef __cplusplus
624}; /* End extern "C". */
625#endif /* C++ */
626// ID 0 (0x0000)
627typedef struct sDot11fTLVVersion2 {
628 tANI_U8 present;
629 tANI_U8 minor: 4;
630 tANI_U8 major: 4;
631} tDot11fTLVVersion2;
632
633#define DOT11F_TLV_VERSION2 ( 0 )
634
635// N.B. These #defines do *not* include the ID & length
636#define DOT11F_TLV_VERSION2_MIN_LEN ( 1 )
637
638#define DOT11F_TLV_VERSION2_MAX_LEN ( 1 )
639
640#ifdef __cplusplus
641extern "C" {
642#endif /* C++ */
643tANI_U32 dot11fUnpackTlvVersion2(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVersion2*);
644
645tANI_U32 dot11fPackTlvVersion2(tpAniSirGlobal, tDot11fTLVVersion2*, tANI_U8*, tANI_U32, tANI_U32*);
646
647tANI_U32 dot11fGetPackedTlvVersion2(tpAniSirGlobal, tDot11fTLVVersion2*, tANI_U32*);
648
649#ifdef __cplusplus
650}; /* End extern "C". */
651#endif /* C++ */
652// ID 4183 (0x1057)
653typedef struct sDot11fTLVAPSetupLocked {
654 tANI_U8 present;
655 tANI_U8 fLocked;
656} tDot11fTLVAPSetupLocked;
657
658#define DOT11F_TLV_APSETUPLOCKED ( 4183 )
659
660// N.B. These #defines do *not* include the ID & length
661#define DOT11F_TLV_APSETUPLOCKED_MIN_LEN ( 3 )
662
663#define DOT11F_TLV_APSETUPLOCKED_MAX_LEN ( 3 )
664
665#ifdef __cplusplus
666extern "C" {
667#endif /* C++ */
668tANI_U32 dot11fUnpackTlvAPSetupLocked(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAPSetupLocked*);
669
670tANI_U32 dot11fPackTlvAPSetupLocked(tpAniSirGlobal, tDot11fTLVAPSetupLocked*, tANI_U8*, tANI_U32, tANI_U32*);
671
672tANI_U32 dot11fGetPackedTlvAPSetupLocked(tpAniSirGlobal, tDot11fTLVAPSetupLocked*, tANI_U32*);
673
674#ifdef __cplusplus
675}; /* End extern "C". */
676#endif /* C++ */
677// ID 4098 (0x1002)
678typedef struct sDot11fTLVAssociationState {
679 tANI_U8 present;
680 tANI_U16 state;
681} tDot11fTLVAssociationState;
682
683#define DOT11F_TLV_ASSOCIATIONSTATE ( 4098 )
684
685// N.B. These #defines do *not* include the ID & length
686#define DOT11F_TLV_ASSOCIATIONSTATE_MIN_LEN ( 4 )
687
688#define DOT11F_TLV_ASSOCIATIONSTATE_MAX_LEN ( 4 )
689
690#ifdef __cplusplus
691extern "C" {
692#endif /* C++ */
693tANI_U32 dot11fUnpackTlvAssociationState(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAssociationState*);
694
695tANI_U32 dot11fPackTlvAssociationState(tpAniSirGlobal, tDot11fTLVAssociationState*, tANI_U8*, tANI_U32, tANI_U32*);
696
697tANI_U32 dot11fGetPackedTlvAssociationState(tpAniSirGlobal, tDot11fTLVAssociationState*, tANI_U32*);
698
699#ifdef __cplusplus
700}; /* End extern "C". */
701#endif /* C++ */
702// ID 11 (0x000b)
703typedef struct sDot11fTLVChannelList {
704 tANI_U8 present;
705 tANI_U8 countryString[3];
706 tANI_U8 num_channelList;
707 tANI_U8 channelList[251];
708} tDot11fTLVChannelList;
709
710#define DOT11F_TLV_CHANNELLIST ( 11 )
711
712// N.B. These #defines do *not* include the ID & length
713#define DOT11F_TLV_CHANNELLIST_MIN_LEN ( 4 )
714
715#define DOT11F_TLV_CHANNELLIST_MAX_LEN ( 255 )
716
717#ifdef __cplusplus
718extern "C" {
719#endif /* C++ */
720tANI_U32 dot11fUnpackTlvChannelList(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVChannelList*);
721
722tANI_U32 dot11fPackTlvChannelList(tpAniSirGlobal, tDot11fTLVChannelList*, tANI_U8*, tANI_U32, tANI_U32*);
723
724tANI_U32 dot11fGetPackedTlvChannelList(tpAniSirGlobal, tDot11fTLVChannelList*, tANI_U32*);
725
726#ifdef __cplusplus
727}; /* End extern "C". */
728#endif /* C++ */
729// ID 4104 (0x1008)
730typedef struct sDot11fTLVConfigMethods {
731 tANI_U8 present;
732 tANI_U16 methods;
733} tDot11fTLVConfigMethods;
734
735#define DOT11F_TLV_CONFIGMETHODS ( 4104 )
736
737// N.B. These #defines do *not* include the ID & length
738#define DOT11F_TLV_CONFIGMETHODS_MIN_LEN ( 4 )
739
740#define DOT11F_TLV_CONFIGMETHODS_MAX_LEN ( 4 )
741
742#ifdef __cplusplus
743extern "C" {
744#endif /* C++ */
745tANI_U32 dot11fUnpackTlvConfigMethods(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigMethods*);
746
747tANI_U32 dot11fPackTlvConfigMethods(tpAniSirGlobal, tDot11fTLVConfigMethods*, tANI_U8*, tANI_U32, tANI_U32*);
748
749tANI_U32 dot11fGetPackedTlvConfigMethods(tpAniSirGlobal, tDot11fTLVConfigMethods*, tANI_U32*);
750
751#ifdef __cplusplus
752}; /* End extern "C". */
753#endif /* C++ */
754// ID 4105 (0x1009)
755typedef struct sDot11fTLVConfigurationError {
756 tANI_U8 present;
757 tANI_U16 error;
758} tDot11fTLVConfigurationError;
759
760#define DOT11F_TLV_CONFIGURATIONERROR ( 4105 )
761
762// N.B. These #defines do *not* include the ID & length
763#define DOT11F_TLV_CONFIGURATIONERROR_MIN_LEN ( 4 )
764
765#define DOT11F_TLV_CONFIGURATIONERROR_MAX_LEN ( 4 )
766
767#ifdef __cplusplus
768extern "C" {
769#endif /* C++ */
770tANI_U32 dot11fUnpackTlvConfigurationError(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigurationError*);
771
772tANI_U32 dot11fPackTlvConfigurationError(tpAniSirGlobal, tDot11fTLVConfigurationError*, tANI_U8*, tANI_U32, tANI_U32*);
773
774tANI_U32 dot11fGetPackedTlvConfigurationError(tpAniSirGlobal, tDot11fTLVConfigurationError*, tANI_U32*);
775
776#ifdef __cplusplus
777}; /* End extern "C". */
778#endif /* C++ */
779// ID 5 (0x0005)
780typedef struct sDot11fTLVConfigurationTimeout {
781 tANI_U8 present;
782 tANI_U8 GOConfigTimeout;
783 tANI_U8 CLConfigTimeout;
784} tDot11fTLVConfigurationTimeout;
785
786#define DOT11F_TLV_CONFIGURATIONTIMEOUT ( 5 )
787
788// N.B. These #defines do *not* include the ID & length
789#define DOT11F_TLV_CONFIGURATIONTIMEOUT_MIN_LEN ( 3 )
790
791#define DOT11F_TLV_CONFIGURATIONTIMEOUT_MAX_LEN ( 3 )
792
793#ifdef __cplusplus
794extern "C" {
795#endif /* C++ */
796tANI_U32 dot11fUnpackTlvConfigurationTimeout(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigurationTimeout*);
797
798tANI_U32 dot11fPackTlvConfigurationTimeout(tpAniSirGlobal, tDot11fTLVConfigurationTimeout*, tANI_U8*, tANI_U32, tANI_U32*);
799
800tANI_U32 dot11fGetPackedTlvConfigurationTimeout(tpAniSirGlobal, tDot11fTLVConfigurationTimeout*, tANI_U32*);
801
802#ifdef __cplusplus
803}; /* End extern "C". */
804#endif /* C++ */
805// ID 4113 (0x1011)
806typedef struct sDot11fTLVDeviceName {
807 tANI_U8 present;
808 tANI_U8 num_text;
809 tANI_U8 text[32];
810} tDot11fTLVDeviceName;
811
812#define DOT11F_TLV_DEVICENAME ( 4113 )
813
814// N.B. These #defines do *not* include the ID & length
815#define DOT11F_TLV_DEVICENAME_MIN_LEN ( 2 )
816
817#define DOT11F_TLV_DEVICENAME_MAX_LEN ( 34 )
818
819#ifdef __cplusplus
820extern "C" {
821#endif /* C++ */
822tANI_U32 dot11fUnpackTlvDeviceName(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVDeviceName*);
823
824tANI_U32 dot11fPackTlvDeviceName(tpAniSirGlobal, tDot11fTLVDeviceName*, tANI_U8*, tANI_U32, tANI_U32*);
825
826tANI_U32 dot11fGetPackedTlvDeviceName(tpAniSirGlobal, tDot11fTLVDeviceName*, tANI_U32*);
827
828#ifdef __cplusplus
829}; /* End extern "C". */
830#endif /* C++ */
831// ID 4114 (0x1012)
832typedef struct sDot11fTLVDevicePasswordID {
833 tANI_U8 present;
834 tANI_U16 id;
835} tDot11fTLVDevicePasswordID;
836
837#define DOT11F_TLV_DEVICEPASSWORDID ( 4114 )
838
839// N.B. These #defines do *not* include the ID & length
840#define DOT11F_TLV_DEVICEPASSWORDID_MIN_LEN ( 4 )
841
842#define DOT11F_TLV_DEVICEPASSWORDID_MAX_LEN ( 4 )
843
844#ifdef __cplusplus
845extern "C" {
846#endif /* C++ */
847tANI_U32 dot11fUnpackTlvDevicePasswordID(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVDevicePasswordID*);
848
849tANI_U32 dot11fPackTlvDevicePasswordID(tpAniSirGlobal, tDot11fTLVDevicePasswordID*, tANI_U8*, tANI_U32, tANI_U32*);
850
851tANI_U32 dot11fGetPackedTlvDevicePasswordID(tpAniSirGlobal, tDot11fTLVDevicePasswordID*, tANI_U32*);
852
853#ifdef __cplusplus
854}; /* End extern "C". */
855#endif /* C++ */
856// ID 8 (0x0008)
857typedef struct sDot11fTLVExtendedListenTiming {
858 tANI_U8 present;
859 tANI_U16 availibilityPeriod;
860 tANI_U16 availibilityInterval;
861} tDot11fTLVExtendedListenTiming;
862
863#define DOT11F_TLV_EXTENDEDLISTENTIMING ( 8 )
864
865// N.B. These #defines do *not* include the ID & length
866#define DOT11F_TLV_EXTENDEDLISTENTIMING_MIN_LEN ( 5 )
867
868#define DOT11F_TLV_EXTENDEDLISTENTIMING_MAX_LEN ( 5 )
869
870#ifdef __cplusplus
871extern "C" {
872#endif /* C++ */
873tANI_U32 dot11fUnpackTlvExtendedListenTiming(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVExtendedListenTiming*);
874
875tANI_U32 dot11fPackTlvExtendedListenTiming(tpAniSirGlobal, tDot11fTLVExtendedListenTiming*, tANI_U8*, tANI_U32, tANI_U32*);
876
877tANI_U32 dot11fGetPackedTlvExtendedListenTiming(tpAniSirGlobal, tDot11fTLVExtendedListenTiming*, tANI_U32*);
878
879#ifdef __cplusplus
880}; /* End extern "C". */
881#endif /* C++ */
882// ID 4 (0x0004)
883typedef struct sDot11fTLVGOIntent {
884 tANI_U8 present;
885 tANI_U8 GOIntent;
886} tDot11fTLVGOIntent;
887
888#define DOT11F_TLV_GOINTENT ( 4 )
889
890// N.B. These #defines do *not* include the ID & length
891#define DOT11F_TLV_GOINTENT_MIN_LEN ( 2 )
892
893#define DOT11F_TLV_GOINTENT_MAX_LEN ( 2 )
894
895#ifdef __cplusplus
896extern "C" {
897#endif /* C++ */
898tANI_U32 dot11fUnpackTlvGOIntent(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVGOIntent*);
899
900tANI_U32 dot11fPackTlvGOIntent(tpAniSirGlobal, tDot11fTLVGOIntent*, tANI_U8*, tANI_U32, tANI_U32*);
901
902tANI_U32 dot11fGetPackedTlvGOIntent(tpAniSirGlobal, tDot11fTLVGOIntent*, tANI_U32*);
903
904#ifdef __cplusplus
905}; /* End extern "C". */
906#endif /* C++ */
907// ID 9 (0x0009)
908typedef struct sDot11fTLVIntendedP2PInterfaceAddress {
909 tANI_U8 present;
910 tANI_U8 P2PInterfaceAddress[6];
911} tDot11fTLVIntendedP2PInterfaceAddress;
912
913#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS ( 9 )
914
915// N.B. These #defines do *not* include the ID & length
916#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS_MIN_LEN ( 7 )
917
918#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS_MAX_LEN ( 7 )
919
920#ifdef __cplusplus
921extern "C" {
922#endif /* C++ */
923tANI_U32 dot11fUnpackTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVIntendedP2PInterfaceAddress*);
924
925tANI_U32 dot11fPackTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tDot11fTLVIntendedP2PInterfaceAddress*, tANI_U8*, tANI_U32, tANI_U32*);
926
927tANI_U32 dot11fGetPackedTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tDot11fTLVIntendedP2PInterfaceAddress*, tANI_U32*);
928
929#ifdef __cplusplus
930}; /* End extern "C". */
931#endif /* C++ */
932// ID 18 (0x0012)
933typedef struct sDot11fTLVInvitationFlags {
934 tANI_U8 present;
935 tANI_U8 invitationFlags;
936} tDot11fTLVInvitationFlags;
937
938#define DOT11F_TLV_INVITATIONFLAGS ( 18 )
939
940// N.B. These #defines do *not* include the ID & length
941#define DOT11F_TLV_INVITATIONFLAGS_MIN_LEN ( 2 )
942
943#define DOT11F_TLV_INVITATIONFLAGS_MAX_LEN ( 2 )
944
945#ifdef __cplusplus
946extern "C" {
947#endif /* C++ */
948tANI_U32 dot11fUnpackTlvInvitationFlags(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVInvitationFlags*);
949
950tANI_U32 dot11fPackTlvInvitationFlags(tpAniSirGlobal, tDot11fTLVInvitationFlags*, tANI_U8*, tANI_U32, tANI_U32*);
951
952tANI_U32 dot11fGetPackedTlvInvitationFlags(tpAniSirGlobal, tDot11fTLVInvitationFlags*, tANI_U32*);
953
954#ifdef __cplusplus
955}; /* End extern "C". */
956#endif /* C++ */
957// ID 6 (0x0006)
958typedef struct sDot11fTLVListenChannel {
959 tANI_U8 present;
960 tANI_U8 countryString[3];
961 tANI_U8 regulatoryClass;
962 tANI_U8 channel;
963} tDot11fTLVListenChannel;
964
965#define DOT11F_TLV_LISTENCHANNEL ( 6 )
966
967// N.B. These #defines do *not* include the ID & length
968#define DOT11F_TLV_LISTENCHANNEL_MIN_LEN ( 6 )
969
970#define DOT11F_TLV_LISTENCHANNEL_MAX_LEN ( 6 )
971
972#ifdef __cplusplus
973extern "C" {
974#endif /* C++ */
975tANI_U32 dot11fUnpackTlvListenChannel(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVListenChannel*);
976
977tANI_U32 dot11fPackTlvListenChannel(tpAniSirGlobal, tDot11fTLVListenChannel*, tANI_U8*, tANI_U32, tANI_U32*);
978
979tANI_U32 dot11fGetPackedTlvListenChannel(tpAniSirGlobal, tDot11fTLVListenChannel*, tANI_U32*);
980
981#ifdef __cplusplus
982}; /* End extern "C". */
983#endif /* C++ */
984// ID 4129 (0x1021)
985typedef struct sDot11fTLVManufacturer {
986 tANI_U8 present;
987 tANI_U8 num_name;
988 tANI_U8 name[64];
989} tDot11fTLVManufacturer;
990
991#define DOT11F_TLV_MANUFACTURER ( 4129 )
992
993// N.B. These #defines do *not* include the ID & length
994#define DOT11F_TLV_MANUFACTURER_MIN_LEN ( 2 )
995
996#define DOT11F_TLV_MANUFACTURER_MAX_LEN ( 66 )
997
998#ifdef __cplusplus
999extern "C" {
1000#endif /* C++ */
1001tANI_U32 dot11fUnpackTlvManufacturer(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVManufacturer*);
1002
1003tANI_U32 dot11fPackTlvManufacturer(tpAniSirGlobal, tDot11fTLVManufacturer*, tANI_U8*, tANI_U32, tANI_U32*);
1004
1005tANI_U32 dot11fGetPackedTlvManufacturer(tpAniSirGlobal, tDot11fTLVManufacturer*, tANI_U32*);
1006
1007#ifdef __cplusplus
1008}; /* End extern "C". */
1009#endif /* C++ */
1010// ID 1 (0x0001)
1011typedef struct sDot11fTLVMinorReasonCode {
1012 tANI_U8 present;
1013 tANI_U8 minorReasonCode;
1014} tDot11fTLVMinorReasonCode;
1015
1016#define DOT11F_TLV_MINORREASONCODE ( 1 )
1017
1018// N.B. These #defines do *not* include the ID & length
1019#define DOT11F_TLV_MINORREASONCODE_MIN_LEN ( 2 )
1020
1021#define DOT11F_TLV_MINORREASONCODE_MAX_LEN ( 2 )
1022
1023#ifdef __cplusplus
1024extern "C" {
1025#endif /* C++ */
1026tANI_U32 dot11fUnpackTlvMinorReasonCode(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVMinorReasonCode*);
1027
1028tANI_U32 dot11fPackTlvMinorReasonCode(tpAniSirGlobal, tDot11fTLVMinorReasonCode*, tANI_U8*, tANI_U32, tANI_U32*);
1029
1030tANI_U32 dot11fGetPackedTlvMinorReasonCode(tpAniSirGlobal, tDot11fTLVMinorReasonCode*, tANI_U32*);
1031
1032#ifdef __cplusplus
1033}; /* End extern "C". */
1034#endif /* C++ */
1035// ID 4131 (0x1023)
1036typedef struct sDot11fTLVModelName {
1037 tANI_U8 present;
1038 tANI_U8 num_text;
1039 tANI_U8 text[32];
1040} tDot11fTLVModelName;
1041
1042#define DOT11F_TLV_MODELNAME ( 4131 )
1043
1044// N.B. These #defines do *not* include the ID & length
1045#define DOT11F_TLV_MODELNAME_MIN_LEN ( 2 )
1046
1047#define DOT11F_TLV_MODELNAME_MAX_LEN ( 34 )
1048
1049#ifdef __cplusplus
1050extern "C" {
1051#endif /* C++ */
1052tANI_U32 dot11fUnpackTlvModelName(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVModelName*);
1053
1054tANI_U32 dot11fPackTlvModelName(tpAniSirGlobal, tDot11fTLVModelName*, tANI_U8*, tANI_U32, tANI_U32*);
1055
1056tANI_U32 dot11fGetPackedTlvModelName(tpAniSirGlobal, tDot11fTLVModelName*, tANI_U32*);
1057
1058#ifdef __cplusplus
1059}; /* End extern "C". */
1060#endif /* C++ */
1061// ID 4132 (0x1024)
1062typedef struct sDot11fTLVModelNumber {
1063 tANI_U8 present;
1064 tANI_U8 num_text;
1065 tANI_U8 text[32];
1066} tDot11fTLVModelNumber;
1067
1068#define DOT11F_TLV_MODELNUMBER ( 4132 )
1069
1070// N.B. These #defines do *not* include the ID & length
1071#define DOT11F_TLV_MODELNUMBER_MIN_LEN ( 2 )
1072
1073#define DOT11F_TLV_MODELNUMBER_MAX_LEN ( 34 )
1074
1075#ifdef __cplusplus
1076extern "C" {
1077#endif /* C++ */
1078tANI_U32 dot11fUnpackTlvModelNumber(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVModelNumber*);
1079
1080tANI_U32 dot11fPackTlvModelNumber(tpAniSirGlobal, tDot11fTLVModelNumber*, tANI_U8*, tANI_U32, tANI_U32*);
1081
1082tANI_U32 dot11fGetPackedTlvModelNumber(tpAniSirGlobal, tDot11fTLVModelNumber*, tANI_U32*);
1083
1084#ifdef __cplusplus
1085}; /* End extern "C". */
1086#endif /* C++ */
1087// ID 12 (0x000c)
1088typedef struct sDot11fTLVNoticeOfAbsence {
1089 tANI_U8 present;
1090 tANI_U8 index;
1091 tANI_U8 CTSWindowOppPS;
1092 tANI_U8 num_NoADesc;
1093 tANI_U8 NoADesc[36];
1094} tDot11fTLVNoticeOfAbsence;
1095
1096#define DOT11F_TLV_NOTICEOFABSENCE ( 12 )
1097
1098// N.B. These #defines do *not* include the ID & length
1099#define DOT11F_TLV_NOTICEOFABSENCE_MIN_LEN ( 3 )
1100
1101#define DOT11F_TLV_NOTICEOFABSENCE_MAX_LEN ( 39 )
1102
1103#ifdef __cplusplus
1104extern "C" {
1105#endif /* C++ */
1106tANI_U32 dot11fUnpackTlvNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVNoticeOfAbsence*);
1107
1108tANI_U32 dot11fPackTlvNoticeOfAbsence(tpAniSirGlobal, tDot11fTLVNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
1109
1110tANI_U32 dot11fGetPackedTlvNoticeOfAbsence(tpAniSirGlobal, tDot11fTLVNoticeOfAbsence*, tANI_U32*);
1111
1112#ifdef __cplusplus
1113}; /* End extern "C". */
1114#endif /* C++ */
1115// ID 17 (0x0011)
1116typedef struct sDot11fTLVOperatingChannel {
1117 tANI_U8 present;
1118 tANI_U8 countryString[3];
1119 tANI_U8 regulatoryClass;
1120 tANI_U8 channel;
1121} tDot11fTLVOperatingChannel;
1122
1123#define DOT11F_TLV_OPERATINGCHANNEL ( 17 )
1124
1125// N.B. These #defines do *not* include the ID & length
1126#define DOT11F_TLV_OPERATINGCHANNEL_MIN_LEN ( 6 )
1127
1128#define DOT11F_TLV_OPERATINGCHANNEL_MAX_LEN ( 6 )
1129
1130#ifdef __cplusplus
1131extern "C" {
1132#endif /* C++ */
1133tANI_U32 dot11fUnpackTlvOperatingChannel(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVOperatingChannel*);
1134
1135tANI_U32 dot11fPackTlvOperatingChannel(tpAniSirGlobal, tDot11fTLVOperatingChannel*, tANI_U8*, tANI_U32, tANI_U32*);
1136
1137tANI_U32 dot11fGetPackedTlvOperatingChannel(tpAniSirGlobal, tDot11fTLVOperatingChannel*, tANI_U32*);
1138
1139#ifdef __cplusplus
1140}; /* End extern "C". */
1141#endif /* C++ */
1142// ID 2 (0x0002)
1143typedef struct sDot11fTLVP2PCapability {
1144 tANI_U8 present;
1145 tANI_U8 deviceCapability;
1146 tANI_U8 groupCapability;
1147} tDot11fTLVP2PCapability;
1148
1149#define DOT11F_TLV_P2PCAPABILITY ( 2 )
1150
1151// N.B. These #defines do *not* include the ID & length
1152#define DOT11F_TLV_P2PCAPABILITY_MIN_LEN ( 3 )
1153
1154#define DOT11F_TLV_P2PCAPABILITY_MAX_LEN ( 3 )
1155
1156#ifdef __cplusplus
1157extern "C" {
1158#endif /* C++ */
1159tANI_U32 dot11fUnpackTlvP2PCapability(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PCapability*);
1160
1161tANI_U32 dot11fPackTlvP2PCapability(tpAniSirGlobal, tDot11fTLVP2PCapability*, tANI_U8*, tANI_U32, tANI_U32*);
1162
1163tANI_U32 dot11fGetPackedTlvP2PCapability(tpAniSirGlobal, tDot11fTLVP2PCapability*, tANI_U32*);
1164
1165#ifdef __cplusplus
1166}; /* End extern "C". */
1167#endif /* C++ */
1168// ID 3 (0x0003)
1169typedef struct sDot11fTLVP2PDeviceId {
1170 tANI_U8 present;
1171 tANI_U8 P2PDeviceAddress[6];
1172} tDot11fTLVP2PDeviceId;
1173
1174#define DOT11F_TLV_P2PDEVICEID ( 3 )
1175
1176// N.B. These #defines do *not* include the ID & length
1177#define DOT11F_TLV_P2PDEVICEID_MIN_LEN ( 7 )
1178
1179#define DOT11F_TLV_P2PDEVICEID_MAX_LEN ( 7 )
1180
1181#ifdef __cplusplus
1182extern "C" {
1183#endif /* C++ */
1184tANI_U32 dot11fUnpackTlvP2PDeviceId(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PDeviceId*);
1185
1186tANI_U32 dot11fPackTlvP2PDeviceId(tpAniSirGlobal, tDot11fTLVP2PDeviceId*, tANI_U8*, tANI_U32, tANI_U32*);
1187
1188tANI_U32 dot11fGetPackedTlvP2PDeviceId(tpAniSirGlobal, tDot11fTLVP2PDeviceId*, tANI_U32*);
1189
1190#ifdef __cplusplus
1191}; /* End extern "C". */
1192#endif /* C++ */
1193// ID 13 (0x000d)
1194typedef struct sDot11fTLVP2PDeviceInfo {
1195 tANI_U8 present;
1196 tANI_U8 P2PDeviceAddress[6];
1197 tANI_U16 configMethod;
1198 tANI_U8 primaryDeviceType[8];
1199 tDot11fTLVDeviceName DeviceName;
1200} tDot11fTLVP2PDeviceInfo;
1201
1202#define DOT11F_TLV_P2PDEVICEINFO ( 13 )
1203
1204// N.B. These #defines do *not* include the ID & length
1205#define DOT11F_TLV_P2PDEVICEINFO_MIN_LEN ( 17 )
1206
1207#define DOT11F_TLV_P2PDEVICEINFO_MAX_LEN ( 53 )
1208
1209#ifdef __cplusplus
1210extern "C" {
1211#endif /* C++ */
1212tANI_U32 dot11fUnpackTlvP2PDeviceInfo(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PDeviceInfo*);
1213
1214tANI_U32 dot11fPackTlvP2PDeviceInfo(tpAniSirGlobal, tDot11fTLVP2PDeviceInfo*, tANI_U8*, tANI_U32, tANI_U32*);
1215
1216tANI_U32 dot11fGetPackedTlvP2PDeviceInfo(tpAniSirGlobal, tDot11fTLVP2PDeviceInfo*, tANI_U32*);
1217
1218#ifdef __cplusplus
1219}; /* End extern "C". */
1220#endif /* C++ */
1221// ID 7 (0x0007)
1222typedef struct sDot11fTLVP2PGroupBssid {
1223 tANI_U8 present;
1224 tANI_U8 P2PGroupBssid[6];
1225} tDot11fTLVP2PGroupBssid;
1226
1227#define DOT11F_TLV_P2PGROUPBSSID ( 7 )
1228
1229// N.B. These #defines do *not* include the ID & length
1230#define DOT11F_TLV_P2PGROUPBSSID_MIN_LEN ( 7 )
1231
1232#define DOT11F_TLV_P2PGROUPBSSID_MAX_LEN ( 7 )
1233
1234#ifdef __cplusplus
1235extern "C" {
1236#endif /* C++ */
1237tANI_U32 dot11fUnpackTlvP2PGroupBssid(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupBssid*);
1238
1239tANI_U32 dot11fPackTlvP2PGroupBssid(tpAniSirGlobal, tDot11fTLVP2PGroupBssid*, tANI_U8*, tANI_U32, tANI_U32*);
1240
1241tANI_U32 dot11fGetPackedTlvP2PGroupBssid(tpAniSirGlobal, tDot11fTLVP2PGroupBssid*, tANI_U32*);
1242
1243#ifdef __cplusplus
1244}; /* End extern "C". */
1245#endif /* C++ */
1246// ID 15 (0x000f)
1247typedef struct sDot11fTLVP2PGroupId {
1248 tANI_U8 present;
1249 tANI_U8 deviceAddress[6];
1250 tANI_U8 num_ssid;
1251 tANI_U8 ssid[32];
1252} tDot11fTLVP2PGroupId;
1253
1254#define DOT11F_TLV_P2PGROUPID ( 15 )
1255
1256// N.B. These #defines do *not* include the ID & length
1257#define DOT11F_TLV_P2PGROUPID_MIN_LEN ( 7 )
1258
1259#define DOT11F_TLV_P2PGROUPID_MAX_LEN ( 39 )
1260
1261#ifdef __cplusplus
1262extern "C" {
1263#endif /* C++ */
1264tANI_U32 dot11fUnpackTlvP2PGroupId(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupId*);
1265
1266tANI_U32 dot11fPackTlvP2PGroupId(tpAniSirGlobal, tDot11fTLVP2PGroupId*, tANI_U8*, tANI_U32, tANI_U32*);
1267
1268tANI_U32 dot11fGetPackedTlvP2PGroupId(tpAniSirGlobal, tDot11fTLVP2PGroupId*, tANI_U32*);
1269
1270#ifdef __cplusplus
1271}; /* End extern "C". */
1272#endif /* C++ */
1273// ID 14 (0x000e)
1274typedef struct sDot11fTLVP2PGroupInfo {
1275 tANI_U8 present;
1276 tANI_U8 num_P2PClientInfoDesc;
1277 tANI_U8 P2PClientInfoDesc[1024];
1278} tDot11fTLVP2PGroupInfo;
1279
1280#define DOT11F_TLV_P2PGROUPINFO ( 14 )
1281
1282// N.B. These #defines do *not* include the ID & length
1283#define DOT11F_TLV_P2PGROUPINFO_MIN_LEN ( 1 )
1284
1285#define DOT11F_TLV_P2PGROUPINFO_MAX_LEN ( 1025 )
1286
1287#ifdef __cplusplus
1288extern "C" {
1289#endif /* C++ */
1290tANI_U32 dot11fUnpackTlvP2PGroupInfo(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupInfo*);
1291
1292tANI_U32 dot11fPackTlvP2PGroupInfo(tpAniSirGlobal, tDot11fTLVP2PGroupInfo*, tANI_U8*, tANI_U32, tANI_U32*);
1293
1294tANI_U32 dot11fGetPackedTlvP2PGroupInfo(tpAniSirGlobal, tDot11fTLVP2PGroupInfo*, tANI_U32*);
1295
1296#ifdef __cplusplus
1297}; /* End extern "C". */
1298#endif /* C++ */
1299// ID 0 (0x0000)
1300typedef struct sDot11fTLVP2PStatus {
1301 tANI_U8 present;
1302 tANI_U8 status;
1303} tDot11fTLVP2PStatus;
1304
1305#define DOT11F_TLV_P2PSTATUS ( 0 )
1306
1307// N.B. These #defines do *not* include the ID & length
1308#define DOT11F_TLV_P2PSTATUS_MIN_LEN ( 2 )
1309
1310#define DOT11F_TLV_P2PSTATUS_MAX_LEN ( 2 )
1311
1312#ifdef __cplusplus
1313extern "C" {
1314#endif /* C++ */
1315tANI_U32 dot11fUnpackTlvP2PStatus(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PStatus*);
1316
1317tANI_U32 dot11fPackTlvP2PStatus(tpAniSirGlobal, tDot11fTLVP2PStatus*, tANI_U8*, tANI_U32, tANI_U32*);
1318
1319tANI_U32 dot11fGetPackedTlvP2PStatus(tpAniSirGlobal, tDot11fTLVP2PStatus*, tANI_U32*);
1320
1321#ifdef __cplusplus
1322}; /* End extern "C". */
1323#endif /* C++ */
1324// ID 4180 (0x1054)
1325typedef struct sDot11fTLVPrimaryDeviceType {
1326 tANI_U8 present;
1327 tANI_U16 primary_category;
1328 tANI_U8 oui[4];
1329 tANI_U16 sub_category;
1330} tDot11fTLVPrimaryDeviceType;
1331
1332#define DOT11F_TLV_PRIMARYDEVICETYPE ( 4180 )
1333
1334// N.B. These #defines do *not* include the ID & length
1335#define DOT11F_TLV_PRIMARYDEVICETYPE_MIN_LEN ( 10 )
1336
1337#define DOT11F_TLV_PRIMARYDEVICETYPE_MAX_LEN ( 10 )
1338
1339#ifdef __cplusplus
1340extern "C" {
1341#endif /* C++ */
1342tANI_U32 dot11fUnpackTlvPrimaryDeviceType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVPrimaryDeviceType*);
1343
1344tANI_U32 dot11fPackTlvPrimaryDeviceType(tpAniSirGlobal, tDot11fTLVPrimaryDeviceType*, tANI_U8*, tANI_U32, tANI_U32*);
1345
1346tANI_U32 dot11fGetPackedTlvPrimaryDeviceType(tpAniSirGlobal, tDot11fTLVPrimaryDeviceType*, tANI_U32*);
1347
1348#ifdef __cplusplus
1349}; /* End extern "C". */
1350#endif /* C++ */
1351// ID 4156 (0x103c)
1352typedef struct sDot11fTLVRFBands {
1353 tANI_U8 present;
1354 tANI_U8 bands;
1355} tDot11fTLVRFBands;
1356
1357#define DOT11F_TLV_RFBANDS ( 4156 )
1358
1359// N.B. These #defines do *not* include the ID & length
1360#define DOT11F_TLV_RFBANDS_MIN_LEN ( 3 )
1361
1362#define DOT11F_TLV_RFBANDS_MAX_LEN ( 3 )
1363
1364#ifdef __cplusplus
1365extern "C" {
1366#endif /* C++ */
1367tANI_U32 dot11fUnpackTlvRFBands(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRFBands*);
1368
1369tANI_U32 dot11fPackTlvRFBands(tpAniSirGlobal, tDot11fTLVRFBands*, tANI_U8*, tANI_U32, tANI_U32*);
1370
1371tANI_U32 dot11fGetPackedTlvRFBands(tpAniSirGlobal, tDot11fTLVRFBands*, tANI_U32*);
1372
1373#ifdef __cplusplus
1374}; /* End extern "C". */
1375#endif /* C++ */
1376// ID 4202 (0x106a)
1377typedef struct sDot11fTLVRequestDeviceType {
1378 tANI_U8 present;
1379 tANI_U16 primary_category;
1380 tANI_U8 oui[4];
1381 tANI_U16 sub_category;
1382} tDot11fTLVRequestDeviceType;
1383
1384#define DOT11F_TLV_REQUESTDEVICETYPE ( 4202 )
1385
1386// N.B. These #defines do *not* include the ID & length
1387#define DOT11F_TLV_REQUESTDEVICETYPE_MIN_LEN ( 10 )
1388
1389#define DOT11F_TLV_REQUESTDEVICETYPE_MAX_LEN ( 10 )
1390
1391#ifdef __cplusplus
1392extern "C" {
1393#endif /* C++ */
1394tANI_U32 dot11fUnpackTlvRequestDeviceType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestDeviceType*);
1395
1396tANI_U32 dot11fPackTlvRequestDeviceType(tpAniSirGlobal, tDot11fTLVRequestDeviceType*, tANI_U8*, tANI_U32, tANI_U32*);
1397
1398tANI_U32 dot11fGetPackedTlvRequestDeviceType(tpAniSirGlobal, tDot11fTLVRequestDeviceType*, tANI_U32*);
1399
1400#ifdef __cplusplus
1401}; /* End extern "C". */
1402#endif /* C++ */
1403// ID 4154 (0x103a)
1404typedef struct sDot11fTLVRequestType {
1405 tANI_U8 present;
1406 tANI_U8 reqType;
1407} tDot11fTLVRequestType;
1408
1409#define DOT11F_TLV_REQUESTTYPE ( 4154 )
1410
1411// N.B. These #defines do *not* include the ID & length
1412#define DOT11F_TLV_REQUESTTYPE_MIN_LEN ( 3 )
1413
1414#define DOT11F_TLV_REQUESTTYPE_MAX_LEN ( 3 )
1415
1416#ifdef __cplusplus
1417extern "C" {
1418#endif /* C++ */
1419tANI_U32 dot11fUnpackTlvRequestType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestType*);
1420
1421tANI_U32 dot11fPackTlvRequestType(tpAniSirGlobal, tDot11fTLVRequestType*, tANI_U8*, tANI_U32, tANI_U32*);
1422
1423tANI_U32 dot11fGetPackedTlvRequestType(tpAniSirGlobal, tDot11fTLVRequestType*, tANI_U32*);
1424
1425#ifdef __cplusplus
1426}; /* End extern "C". */
1427#endif /* C++ */
1428// ID 4155 (0x103b)
1429typedef struct sDot11fTLVResponseType {
1430 tANI_U8 present;
1431 tANI_U8 resType;
1432} tDot11fTLVResponseType;
1433
1434#define DOT11F_TLV_RESPONSETYPE ( 4155 )
1435
1436// N.B. These #defines do *not* include the ID & length
1437#define DOT11F_TLV_RESPONSETYPE_MIN_LEN ( 3 )
1438
1439#define DOT11F_TLV_RESPONSETYPE_MAX_LEN ( 3 )
1440
1441#ifdef __cplusplus
1442extern "C" {
1443#endif /* C++ */
1444tANI_U32 dot11fUnpackTlvResponseType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVResponseType*);
1445
1446tANI_U32 dot11fPackTlvResponseType(tpAniSirGlobal, tDot11fTLVResponseType*, tANI_U8*, tANI_U32, tANI_U32*);
1447
1448tANI_U32 dot11fGetPackedTlvResponseType(tpAniSirGlobal, tDot11fTLVResponseType*, tANI_U32*);
1449
1450#ifdef __cplusplus
1451}; /* End extern "C". */
1452#endif /* C++ */
1453// ID 4161 (0x1041)
1454typedef struct sDot11fTLVSelectedRegistrar {
1455 tANI_U8 present;
1456 tANI_U8 selected;
1457} tDot11fTLVSelectedRegistrar;
1458
1459#define DOT11F_TLV_SELECTEDREGISTRAR ( 4161 )
1460
1461// N.B. These #defines do *not* include the ID & length
1462#define DOT11F_TLV_SELECTEDREGISTRAR_MIN_LEN ( 3 )
1463
1464#define DOT11F_TLV_SELECTEDREGISTRAR_MAX_LEN ( 3 )
1465
1466#ifdef __cplusplus
1467extern "C" {
1468#endif /* C++ */
1469tANI_U32 dot11fUnpackTlvSelectedRegistrar(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSelectedRegistrar*);
1470
1471tANI_U32 dot11fPackTlvSelectedRegistrar(tpAniSirGlobal, tDot11fTLVSelectedRegistrar*, tANI_U8*, tANI_U32, tANI_U32*);
1472
1473tANI_U32 dot11fGetPackedTlvSelectedRegistrar(tpAniSirGlobal, tDot11fTLVSelectedRegistrar*, tANI_U32*);
1474
1475#ifdef __cplusplus
1476}; /* End extern "C". */
1477#endif /* C++ */
1478// ID 4179 (0x1053)
1479typedef struct sDot11fTLVSelectedRegistrarConfigMethods {
1480 tANI_U8 present;
1481 tANI_U16 methods;
1482} tDot11fTLVSelectedRegistrarConfigMethods;
1483
1484#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS ( 4179 )
1485
1486// N.B. These #defines do *not* include the ID & length
1487#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MIN_LEN ( 4 )
1488
1489#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MAX_LEN ( 4 )
1490
1491#ifdef __cplusplus
1492extern "C" {
1493#endif /* C++ */
1494tANI_U32 dot11fUnpackTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSelectedRegistrarConfigMethods*);
1495
1496tANI_U32 dot11fPackTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tDot11fTLVSelectedRegistrarConfigMethods*, tANI_U8*, tANI_U32, tANI_U32*);
1497
1498tANI_U32 dot11fGetPackedTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tDot11fTLVSelectedRegistrarConfigMethods*, tANI_U32*);
1499
1500#ifdef __cplusplus
1501}; /* End extern "C". */
1502#endif /* C++ */
1503// ID 4162 (0x1042)
1504typedef struct sDot11fTLVSerialNumber {
1505 tANI_U8 present;
1506 tANI_U8 num_text;
1507 tANI_U8 text[32];
1508} tDot11fTLVSerialNumber;
1509
1510#define DOT11F_TLV_SERIALNUMBER ( 4162 )
1511
1512// N.B. These #defines do *not* include the ID & length
1513#define DOT11F_TLV_SERIALNUMBER_MIN_LEN ( 2 )
1514
1515#define DOT11F_TLV_SERIALNUMBER_MAX_LEN ( 34 )
1516
1517#ifdef __cplusplus
1518extern "C" {
1519#endif /* C++ */
1520tANI_U32 dot11fUnpackTlvSerialNumber(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSerialNumber*);
1521
1522tANI_U32 dot11fPackTlvSerialNumber(tpAniSirGlobal, tDot11fTLVSerialNumber*, tANI_U8*, tANI_U32, tANI_U32*);
1523
1524tANI_U32 dot11fGetPackedTlvSerialNumber(tpAniSirGlobal, tDot11fTLVSerialNumber*, tANI_U32*);
1525
1526#ifdef __cplusplus
1527}; /* End extern "C". */
1528#endif /* C++ */
1529// ID 4167 (0x1047)
1530typedef struct sDot11fTLVUUID_E {
1531 tANI_U8 present;
1532 tANI_U8 uuid[16];
1533} tDot11fTLVUUID_E;
1534
1535#define DOT11F_TLV_UUID_E ( 4167 )
1536
1537// N.B. These #defines do *not* include the ID & length
1538#define DOT11F_TLV_UUID_E_MIN_LEN ( 18 )
1539
1540#define DOT11F_TLV_UUID_E_MAX_LEN ( 18 )
1541
1542#ifdef __cplusplus
1543extern "C" {
1544#endif /* C++ */
1545tANI_U32 dot11fUnpackTlvUUID_E(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVUUID_E*);
1546
1547tANI_U32 dot11fPackTlvUUID_E(tpAniSirGlobal, tDot11fTLVUUID_E*, tANI_U8*, tANI_U32, tANI_U32*);
1548
1549tANI_U32 dot11fGetPackedTlvUUID_E(tpAniSirGlobal, tDot11fTLVUUID_E*, tANI_U32*);
1550
1551#ifdef __cplusplus
1552}; /* End extern "C". */
1553#endif /* C++ */
1554// ID 4168 (0x1048)
1555typedef struct sDot11fTLVUUID_R {
1556 tANI_U8 present;
1557 tANI_U8 uuid[16];
1558} tDot11fTLVUUID_R;
1559
1560#define DOT11F_TLV_UUID_R ( 4168 )
1561
1562// N.B. These #defines do *not* include the ID & length
1563#define DOT11F_TLV_UUID_R_MIN_LEN ( 18 )
1564
1565#define DOT11F_TLV_UUID_R_MAX_LEN ( 18 )
1566
1567#ifdef __cplusplus
1568extern "C" {
1569#endif /* C++ */
1570tANI_U32 dot11fUnpackTlvUUID_R(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVUUID_R*);
1571
1572tANI_U32 dot11fPackTlvUUID_R(tpAniSirGlobal, tDot11fTLVUUID_R*, tANI_U8*, tANI_U32, tANI_U32*);
1573
1574tANI_U32 dot11fGetPackedTlvUUID_R(tpAniSirGlobal, tDot11fTLVUUID_R*, tANI_U32*);
1575
1576#ifdef __cplusplus
1577}; /* End extern "C". */
1578#endif /* C++ */
1579// ID 4169 (0x1049)
1580typedef struct sDot11fTLVVendorExtension {
1581 tANI_U8 present;
1582 tANI_U8 vendorId[3];
1583 tDot11fTLVVersion2 Version2;
1584 tDot11fTLVAuthorizedMACs AuthorizedMACs;
1585 tDot11fTLVRequestToEnroll RequestToEnroll;
1586} tDot11fTLVVendorExtension;
1587
1588#define DOT11F_TLV_VENDOREXTENSION ( 4169 )
1589
1590// N.B. These #defines do *not* include the ID & length
1591#define DOT11F_TLV_VENDOREXTENSION_MIN_LEN ( 5 )
1592
1593#define DOT11F_TLV_VENDOREXTENSION_MAX_LEN ( 19 )
1594
1595#ifdef __cplusplus
1596extern "C" {
1597#endif /* C++ */
1598tANI_U32 dot11fUnpackTlvVendorExtension(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVendorExtension*);
1599
1600tANI_U32 dot11fPackTlvVendorExtension(tpAniSirGlobal, tDot11fTLVVendorExtension*, tANI_U8*, tANI_U32, tANI_U32*);
1601
1602tANI_U32 dot11fGetPackedTlvVendorExtension(tpAniSirGlobal, tDot11fTLVVendorExtension*, tANI_U32*);
1603
1604#ifdef __cplusplus
1605}; /* End extern "C". */
1606#endif /* C++ */
1607// ID 4170 (0x104a)
1608typedef struct sDot11fTLVVersion {
1609 tANI_U8 present;
1610 tANI_U8 minor: 4;
1611 tANI_U8 major: 4;
1612} tDot11fTLVVersion;
1613
1614#define DOT11F_TLV_VERSION ( 4170 )
1615
1616// N.B. These #defines do *not* include the ID & length
1617#define DOT11F_TLV_VERSION_MIN_LEN ( 3 )
1618
1619#define DOT11F_TLV_VERSION_MAX_LEN ( 3 )
1620
1621#ifdef __cplusplus
1622extern "C" {
1623#endif /* C++ */
1624tANI_U32 dot11fUnpackTlvVersion(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVersion*);
1625
1626tANI_U32 dot11fPackTlvVersion(tpAniSirGlobal, tDot11fTLVVersion*, tANI_U8*, tANI_U32, tANI_U32*);
1627
1628tANI_U32 dot11fGetPackedTlvVersion(tpAniSirGlobal, tDot11fTLVVersion*, tANI_U32*);
1629
1630#ifdef __cplusplus
1631}; /* End extern "C". */
1632#endif /* C++ */
1633// ID 4164 (0x1044)
1634typedef struct sDot11fTLVWPSState {
1635 tANI_U8 present;
1636 tANI_U8 state;
1637} tDot11fTLVWPSState;
1638
1639#define DOT11F_TLV_WPSSTATE ( 4164 )
1640
1641// N.B. These #defines do *not* include the ID & length
1642#define DOT11F_TLV_WPSSTATE_MIN_LEN ( 3 )
1643
1644#define DOT11F_TLV_WPSSTATE_MAX_LEN ( 3 )
1645
1646#ifdef __cplusplus
1647extern "C" {
1648#endif /* C++ */
1649tANI_U32 dot11fUnpackTlvWPSState(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVWPSState*);
1650
1651tANI_U32 dot11fPackTlvWPSState(tpAniSirGlobal, tDot11fTLVWPSState*, tANI_U8*, tANI_U32, tANI_U32*);
1652
1653tANI_U32 dot11fGetPackedTlvWPSState(tpAniSirGlobal, tDot11fTLVWPSState*, tANI_U32*);
1654
1655#ifdef __cplusplus
1656}; /* End extern "C". */
1657#endif /* C++ */
1658// ID 16 (0x0010)
1659typedef struct sDot11fTLVP2PInterface {
1660 tANI_U8 present;
1661 tANI_U8 P2PDeviceAddress[6];
1662} tDot11fTLVP2PInterface;
1663
1664#define DOT11F_TLV_P2PINTERFACE ( 16 )
1665
1666// N.B. These #defines do *not* include the ID & length
1667#define DOT11F_TLV_P2PINTERFACE_MIN_LEN ( 7 )
1668
1669#define DOT11F_TLV_P2PINTERFACE_MAX_LEN ( 7 )
1670
1671#ifdef __cplusplus
1672extern "C" {
1673#endif /* C++ */
1674tANI_U32 dot11fUnpackTlvP2PInterface(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PInterface*);
1675
1676tANI_U32 dot11fPackTlvP2PInterface(tpAniSirGlobal, tDot11fTLVP2PInterface*, tANI_U8*, tANI_U32, tANI_U32*);
1677
1678tANI_U32 dot11fGetPackedTlvP2PInterface(tpAniSirGlobal, tDot11fTLVP2PInterface*, tANI_U32*);
1679
1680#ifdef __cplusplus
1681}; /* End extern "C". */
1682#endif /* C++ */
1683// ID 10 (0x000a)
1684typedef struct sDot11fTLVP2PManageability {
1685 tANI_U8 present;
1686 tANI_U8 manageability;
1687} tDot11fTLVP2PManageability;
1688
1689#define DOT11F_TLV_P2PMANAGEABILITY ( 10 )
1690
1691// N.B. These #defines do *not* include the ID & length
1692#define DOT11F_TLV_P2PMANAGEABILITY_MIN_LEN ( 2 )
1693
1694#define DOT11F_TLV_P2PMANAGEABILITY_MAX_LEN ( 2 )
1695
1696#ifdef __cplusplus
1697extern "C" {
1698#endif /* C++ */
1699tANI_U32 dot11fUnpackTlvP2PManageability(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PManageability*);
1700
1701tANI_U32 dot11fPackTlvP2PManageability(tpAniSirGlobal, tDot11fTLVP2PManageability*, tANI_U8*, tANI_U32, tANI_U32*);
1702
1703tANI_U32 dot11fGetPackedTlvP2PManageability(tpAniSirGlobal, tDot11fTLVP2PManageability*, tANI_U32*);
1704
1705#ifdef __cplusplus
1706}; /* End extern "C". */
1707#endif /* C++ */
1708/*********************************************************************
1709 * Information Elements *
1710 ********************************************************************/
1711
1712// EID 1 (0x01)
1713typedef struct sDot11fIEAPName {
1714 tANI_U8 present;
1715 tANI_U8 num_name;
1716 tANI_U8 name[32];
1717} tDot11fIEAPName;
1718
1719#define DOT11F_EID_APNAME ( 1 )
1720
1721// N.B. These #defines do *not* include the EID & length
1722#define DOT11F_IE_APNAME_MIN_LEN ( 1 )
1723
1724#define DOT11F_IE_APNAME_MAX_LEN ( 32 )
1725
1726#ifdef __cplusplus
1727extern "C" {
1728#endif /* C++ */
1729tANI_U32 dot11fUnpackIeAPName(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAPName*);
1730
1731tANI_U32 dot11fPackIeAPName(tpAniSirGlobal, tDot11fIEAPName*, tANI_U8*, tANI_U32, tANI_U32*);
1732
1733tANI_U32 dot11fGetPackedIEAPName(tpAniSirGlobal, tDot11fIEAPName*, tANI_U32*);
1734
1735#ifdef __cplusplus
1736}; /* End extern "C". */
1737#endif /* C++ */
1738// EID 4 (0x04)
1739typedef struct sDot11fIEBPIndicator {
1740 tANI_U8 present;
1741 tANI_U8 indicator;
1742 tANI_U8 type;
1743} tDot11fIEBPIndicator;
1744
1745#define DOT11F_EID_BPINDICATOR ( 4 )
1746
1747// N.B. These #defines do *not* include the EID & length
1748#define DOT11F_IE_BPINDICATOR_MIN_LEN ( 2 )
1749
1750#define DOT11F_IE_BPINDICATOR_MAX_LEN ( 2 )
1751
1752#ifdef __cplusplus
1753extern "C" {
1754#endif /* C++ */
1755tANI_U32 dot11fUnpackIeBPIndicator(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBPIndicator*);
1756
1757tANI_U32 dot11fPackIeBPIndicator(tpAniSirGlobal, tDot11fIEBPIndicator*, tANI_U8*, tANI_U32, tANI_U32*);
1758
1759tANI_U32 dot11fGetPackedIEBPIndicator(tpAniSirGlobal, tDot11fIEBPIndicator*, tANI_U32*);
1760
1761#ifdef __cplusplus
1762}; /* End extern "C". */
1763#endif /* C++ */
1764// EID 2 (0x02)
1765typedef struct sDot11fIECondensedCountryStr {
1766 tANI_U8 present;
1767 tANI_U8 countryStr[2];
1768} tDot11fIECondensedCountryStr;
1769
1770#define DOT11F_EID_CONDENSEDCOUNTRYSTR ( 2 )
1771
1772// N.B. These #defines do *not* include the EID & length
1773#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MIN_LEN ( 2 )
1774
1775#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MAX_LEN ( 2 )
1776
1777#ifdef __cplusplus
1778extern "C" {
1779#endif /* C++ */
1780tANI_U32 dot11fUnpackIeCondensedCountryStr(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECondensedCountryStr*);
1781
1782tANI_U32 dot11fPackIeCondensedCountryStr(tpAniSirGlobal, tDot11fIECondensedCountryStr*, tANI_U8*, tANI_U32, tANI_U32*);
1783
1784tANI_U32 dot11fGetPackedIECondensedCountryStr(tpAniSirGlobal, tDot11fIECondensedCountryStr*, tANI_U32*);
1785
1786#ifdef __cplusplus
1787}; /* End extern "C". */
1788#endif /* C++ */
1789// EID 2 (0x02)
1790typedef struct sDot11fIEGTK {
1791 tANI_U8 present;
1792 tANI_U16 keyId: 2;
1793 tANI_U16 reserved: 14;
1794 tANI_U8 keyLength;
1795 tANI_U8 RSC[8];
1796 tANI_U8 num_key;
1797 tANI_U8 key[32];
1798} tDot11fIEGTK;
1799
1800#define DOT11F_EID_GTK ( 2 )
1801
1802// N.B. These #defines do *not* include the EID & length
1803#define DOT11F_IE_GTK_MIN_LEN ( 16 )
1804
1805#define DOT11F_IE_GTK_MAX_LEN ( 43 )
1806
1807#ifdef __cplusplus
1808extern "C" {
1809#endif /* C++ */
1810tANI_U32 dot11fUnpackIeGTK(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEGTK*);
1811
1812tANI_U32 dot11fPackIeGTK(tpAniSirGlobal, tDot11fIEGTK*, tANI_U8*, tANI_U32, tANI_U32*);
1813
1814tANI_U32 dot11fGetPackedIEGTK(tpAniSirGlobal, tDot11fIEGTK*, tANI_U32*);
1815
1816#ifdef __cplusplus
1817}; /* End extern "C". */
1818#endif /* C++ */
1819// EID 2 (0x02)
1820typedef struct sDot11fIEHCF {
1821 tANI_U8 present;
1822 tANI_U8 enabled;
1823} tDot11fIEHCF;
1824
1825#define DOT11F_EID_HCF ( 2 )
1826
1827// N.B. These #defines do *not* include the EID & length
1828#define DOT11F_IE_HCF_MIN_LEN ( 1 )
1829
1830#define DOT11F_IE_HCF_MAX_LEN ( 1 )
1831
1832#ifdef __cplusplus
1833extern "C" {
1834#endif /* C++ */
1835tANI_U32 dot11fUnpackIeHCF(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHCF*);
1836
1837tANI_U32 dot11fPackIeHCF(tpAniSirGlobal, tDot11fIEHCF*, tANI_U8*, tANI_U32, tANI_U32*);
1838
1839tANI_U32 dot11fGetPackedIEHCF(tpAniSirGlobal, tDot11fIEHCF*, tANI_U32*);
1840
1841#ifdef __cplusplus
1842}; /* End extern "C". */
1843#endif /* C++ */
1844// EID 9 (0x09)
1845typedef struct sDot11fIELLAttr {
1846 tANI_U8 present;
1847 tANI_U32 defer_threshold;
1848} tDot11fIELLAttr;
1849
1850#define DOT11F_EID_LLATTR ( 9 )
1851
1852// N.B. These #defines do *not* include the EID & length
1853#define DOT11F_IE_LLATTR_MIN_LEN ( 4 )
1854
1855#define DOT11F_IE_LLATTR_MAX_LEN ( 4 )
1856
1857#ifdef __cplusplus
1858extern "C" {
1859#endif /* C++ */
1860tANI_U32 dot11fUnpackIeLLAttr(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELLAttr*);
1861
1862tANI_U32 dot11fPackIeLLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U8*, tANI_U32, tANI_U32*);
1863
1864tANI_U32 dot11fGetPackedIELLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U32*);
1865
1866#ifdef __cplusplus
1867}; /* End extern "C". */
1868#endif /* C++ */
1869// EID 8 (0x08)
1870typedef struct sDot11fIELoadBalance {
1871 tANI_U8 present;
1872 tANI_U8 bssid[6];
1873 tANI_U8 channel;
1874} tDot11fIELoadBalance;
1875
1876#define DOT11F_EID_LOADBALANCE ( 8 )
1877
1878// N.B. These #defines do *not* include the EID & length
1879#define DOT11F_IE_LOADBALANCE_MIN_LEN ( 7 )
1880
1881#define DOT11F_IE_LOADBALANCE_MAX_LEN ( 7 )
1882
1883#ifdef __cplusplus
1884extern "C" {
1885#endif /* C++ */
1886tANI_U32 dot11fUnpackIeLoadBalance(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadBalance*);
1887
1888tANI_U32 dot11fPackIeLoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U8*, tANI_U32, tANI_U32*);
1889
1890tANI_U32 dot11fGetPackedIELoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U32*);
1891
1892#ifdef __cplusplus
1893}; /* End extern "C". */
1894#endif /* C++ */
1895// EID 6 (0x06)
1896typedef struct sDot11fIELoadInfo {
1897 tANI_U8 present;
1898 tANI_U16 num_stas;
1899 tANI_U16 channel_util;
1900} tDot11fIELoadInfo;
1901
1902#define DOT11F_EID_LOADINFO ( 6 )
1903
1904// N.B. These #defines do *not* include the EID & length
1905#define DOT11F_IE_LOADINFO_MIN_LEN ( 4 )
1906
1907#define DOT11F_IE_LOADINFO_MAX_LEN ( 4 )
1908
1909#ifdef __cplusplus
1910extern "C" {
1911#endif /* C++ */
1912tANI_U32 dot11fUnpackIeLoadInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadInfo*);
1913
1914tANI_U32 dot11fPackIeLoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U8*, tANI_U32, tANI_U32*);
1915
1916tANI_U32 dot11fGetPackedIELoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U32*);
1917
1918#ifdef __cplusplus
1919}; /* End extern "C". */
1920#endif /* C++ */
1921// EID 7 (0x07)
1922typedef struct sDot11fIEPropAssocType {
1923 tANI_U8 present;
1924 tANI_U8 type;
1925} tDot11fIEPropAssocType;
1926
1927#define DOT11F_EID_PROPASSOCTYPE ( 7 )
1928
1929// N.B. These #defines do *not* include the EID & length
1930#define DOT11F_IE_PROPASSOCTYPE_MIN_LEN ( 1 )
1931
1932#define DOT11F_IE_PROPASSOCTYPE_MAX_LEN ( 1 )
1933
1934#ifdef __cplusplus
1935extern "C" {
1936#endif /* C++ */
1937tANI_U32 dot11fUnpackIePropAssocType(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropAssocType*);
1938
1939tANI_U32 dot11fPackIePropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U8*, tANI_U32, tANI_U32*);
1940
1941tANI_U32 dot11fGetPackedIEPropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U32*);
1942
1943#ifdef __cplusplus
1944}; /* End extern "C". */
1945#endif /* C++ */
1946// EID 10 (0x0a)
1947typedef struct sDot11fIEPropCapability {
1948 tANI_U8 present;
1949 tANI_U16 capability;
1950} tDot11fIEPropCapability;
1951
1952#define DOT11F_EID_PROPCAPABILITY ( 10 )
1953
1954// N.B. These #defines do *not* include the EID & length
1955#define DOT11F_IE_PROPCAPABILITY_MIN_LEN ( 2 )
1956
1957#define DOT11F_IE_PROPCAPABILITY_MAX_LEN ( 2 )
1958
1959#ifdef __cplusplus
1960extern "C" {
1961#endif /* C++ */
1962tANI_U32 dot11fUnpackIePropCapability(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropCapability*);
1963
1964tANI_U32 dot11fPackIePropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U8*, tANI_U32, tANI_U32*);
1965
1966tANI_U32 dot11fGetPackedIEPropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U32*);
1967
1968#ifdef __cplusplus
1969}; /* End extern "C". */
1970#endif /* C++ */
1971// EID 15 (0x0f)
1972typedef struct sDot11fIEPropChannSwitchAnn {
1973 tANI_U8 present;
1974 tANI_U8 mode;
1975 tANI_U8 primary_channel;
1976 tANI_U8 sub_band;
1977 tANI_U8 channel_switch_count;
1978} tDot11fIEPropChannSwitchAnn;
1979
1980#define DOT11F_EID_PROPCHANNSWITCHANN ( 15 )
1981
1982// N.B. These #defines do *not* include the EID & length
1983#define DOT11F_IE_PROPCHANNSWITCHANN_MIN_LEN ( 4 )
1984
1985#define DOT11F_IE_PROPCHANNSWITCHANN_MAX_LEN ( 4 )
1986
1987#ifdef __cplusplus
1988extern "C" {
1989#endif /* C++ */
1990tANI_U32 dot11fUnpackIePropChannSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropChannSwitchAnn*);
1991
1992tANI_U32 dot11fPackIePropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
1993
1994tANI_U32 dot11fGetPackedIEPropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U32*);
1995
1996#ifdef __cplusplus
1997}; /* End extern "C". */
1998#endif /* C++ */
1999// EID 12 (0x0c)
2000typedef struct sDot11fIEPropEDCAParams {
2001 tANI_U8 present;
2002 tANI_U8 qos;
2003 tANI_U8 reserved;
2004 tANI_U8 acbe_aifsn: 4;
2005 tANI_U8 acbe_acm: 1;
2006 tANI_U8 acbe_aci: 2;
2007 tANI_U8 unused1: 1;
2008 tANI_U8 acbe_min: 4;
2009 tANI_U8 acbe_max: 4;
2010 tANI_U16 acbe_txoplimit;
2011 tANI_U8 acbk_aifsn: 4;
2012 tANI_U8 acbk_acm: 1;
2013 tANI_U8 acbk_aci: 2;
2014 tANI_U8 unused2: 1;
2015 tANI_U8 acbk_min: 4;
2016 tANI_U8 acbk_max: 4;
2017 tANI_U16 acbk_txoplimit;
2018 tANI_U8 acvi_aifsn: 4;
2019 tANI_U8 acvi_acm: 1;
2020 tANI_U8 acvi_aci: 2;
2021 tANI_U8 unused3: 1;
2022 tANI_U8 acvi_min: 4;
2023 tANI_U8 acvi_max: 4;
2024 tANI_U16 acvi_txoplimit;
2025 tANI_U8 acvo_aifsn: 4;
2026 tANI_U8 acvo_acm: 1;
2027 tANI_U8 acvo_aci: 2;
2028 tANI_U8 unused4: 1;
2029 tANI_U8 acvo_min: 4;
2030 tANI_U8 acvo_max: 4;
2031 tANI_U16 acvo_txoplimit;
2032} tDot11fIEPropEDCAParams;
2033
2034#define DOT11F_EID_PROPEDCAPARAMS ( 12 )
2035
2036// N.B. These #defines do *not* include the EID & length
2037#define DOT11F_IE_PROPEDCAPARAMS_MIN_LEN ( 18 )
2038
2039#define DOT11F_IE_PROPEDCAPARAMS_MAX_LEN ( 18 )
2040
2041#ifdef __cplusplus
2042extern "C" {
2043#endif /* C++ */
2044tANI_U32 dot11fUnpackIePropEDCAParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropEDCAParams*);
2045
2046tANI_U32 dot11fPackIePropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U8*, tANI_U32, tANI_U32*);
2047
2048tANI_U32 dot11fGetPackedIEPropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U32*);
2049
2050#ifdef __cplusplus
2051}; /* End extern "C". */
2052#endif /* C++ */
2053// EID 16 (0x10)
2054typedef struct sDot11fIEPropQuietBSS {
2055 tANI_U8 present;
2056 tANI_U8 quiet_count;
2057 tANI_U8 quiet_period;
2058 tANI_U16 quiet_duration;
2059 tANI_U16 quiet_offset;
2060} tDot11fIEPropQuietBSS;
2061
2062#define DOT11F_EID_PROPQUIETBSS ( 16 )
2063
2064// N.B. These #defines do *not* include the EID & length
2065#define DOT11F_IE_PROPQUIETBSS_MIN_LEN ( 6 )
2066
2067#define DOT11F_IE_PROPQUIETBSS_MAX_LEN ( 6 )
2068
2069#ifdef __cplusplus
2070extern "C" {
2071#endif /* C++ */
2072tANI_U32 dot11fUnpackIePropQuietBSS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropQuietBSS*);
2073
2074tANI_U32 dot11fPackIePropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U8*, tANI_U32, tANI_U32*);
2075
2076tANI_U32 dot11fGetPackedIEPropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U32*);
2077
2078#ifdef __cplusplus
2079}; /* End extern "C". */
2080#endif /* C++ */
2081// EID 0 (0x00)
2082typedef struct sDot11fIEPropSuppRates {
2083 tANI_U8 present;
2084 tANI_U8 num_rates;
2085 tANI_U8 rates[12];
2086} tDot11fIEPropSuppRates;
2087
2088#define DOT11F_EID_PROPSUPPRATES ( 0 )
2089
2090// N.B. These #defines do *not* include the EID & length
2091#define DOT11F_IE_PROPSUPPRATES_MIN_LEN ( 1 )
2092
2093#define DOT11F_IE_PROPSUPPRATES_MAX_LEN ( 12 )
2094
2095#ifdef __cplusplus
2096extern "C" {
2097#endif /* C++ */
2098tANI_U32 dot11fUnpackIePropSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropSuppRates*);
2099
2100tANI_U32 dot11fPackIePropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
2101
2102tANI_U32 dot11fGetPackedIEPropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U32*);
2103
2104#ifdef __cplusplus
2105}; /* End extern "C". */
2106#endif /* C++ */
2107// EID 3 (0x03)
2108typedef struct sDot11fIER0KH_ID {
2109 tANI_U8 present;
2110 tANI_U8 num_PMK_R0_ID;
2111 tANI_U8 PMK_R0_ID[48];
2112} tDot11fIER0KH_ID;
2113
2114#define DOT11F_EID_R0KH_ID ( 3 )
2115
2116// N.B. These #defines do *not* include the EID & length
2117#define DOT11F_IE_R0KH_ID_MIN_LEN ( 1 )
2118
2119#define DOT11F_IE_R0KH_ID_MAX_LEN ( 48 )
2120
2121#ifdef __cplusplus
2122extern "C" {
2123#endif /* C++ */
2124tANI_U32 dot11fUnpackIeR0KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER0KH_ID*);
2125
2126tANI_U32 dot11fPackIeR0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
2127
2128tANI_U32 dot11fGetPackedIER0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U32*);
2129
2130#ifdef __cplusplus
2131}; /* End extern "C". */
2132#endif /* C++ */
2133// EID 1 (0x01)
2134typedef struct sDot11fIER1KH_ID {
2135 tANI_U8 present;
2136 tANI_U8 PMK_R1_ID[6];
2137} tDot11fIER1KH_ID;
2138
2139#define DOT11F_EID_R1KH_ID ( 1 )
2140
2141// N.B. These #defines do *not* include the EID & length
2142#define DOT11F_IE_R1KH_ID_MIN_LEN ( 6 )
2143
2144#define DOT11F_IE_R1KH_ID_MAX_LEN ( 6 )
2145
2146#ifdef __cplusplus
2147extern "C" {
2148#endif /* C++ */
2149tANI_U32 dot11fUnpackIeR1KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER1KH_ID*);
2150
2151tANI_U32 dot11fPackIeR1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
2152
2153tANI_U32 dot11fGetPackedIER1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U32*);
2154
2155#ifdef __cplusplus
2156}; /* End extern "C". */
2157#endif /* C++ */
2158// EID 1 (0x01)
2159typedef struct sDot11fIETSFInfo {
2160 tANI_U8 present;
2161 tANI_U16 TsfOffset;
2162 tANI_U16 BeaconIntvl;
2163} tDot11fIETSFInfo;
2164
2165#define DOT11F_EID_TSFINFO ( 1 )
2166
2167// N.B. These #defines do *not* include the EID & length
2168#define DOT11F_IE_TSFINFO_MIN_LEN ( 4 )
2169
2170#define DOT11F_IE_TSFINFO_MAX_LEN ( 4 )
2171
2172#ifdef __cplusplus
2173extern "C" {
2174#endif /* C++ */
2175tANI_U32 dot11fUnpackIeTSFInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSFInfo*);
2176
2177tANI_U32 dot11fPackIeTSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U8*, tANI_U32, tANI_U32*);
2178
2179tANI_U32 dot11fGetPackedIETSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U32*);
2180
2181#ifdef __cplusplus
2182}; /* End extern "C". */
2183#endif /* C++ */
2184// EID 18 (0x12)
2185typedef struct sDot11fIETaurus {
2186 tANI_U8 present;
2187 tANI_U16 baTIDBitmap;
2188 tANI_U16 baPolicy;
2189 tANI_U16 baBufferSize: 12;
2190 tANI_U16 rsvd: 4;
2191} tDot11fIETaurus;
2192
2193#define DOT11F_EID_TAURUS ( 18 )
2194
2195// N.B. These #defines do *not* include the EID & length
2196#define DOT11F_IE_TAURUS_MIN_LEN ( 6 )
2197
2198#define DOT11F_IE_TAURUS_MAX_LEN ( 6 )
2199
2200#ifdef __cplusplus
2201extern "C" {
2202#endif /* C++ */
2203tANI_U32 dot11fUnpackIeTaurus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETaurus*);
2204
2205tANI_U32 dot11fPackIeTaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U8*, tANI_U32, tANI_U32*);
2206
2207tANI_U32 dot11fGetPackedIETaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U32*);
2208
2209#ifdef __cplusplus
2210}; /* End extern "C". */
2211#endif /* C++ */
2212// EID 14 (0x0e)
2213typedef struct sDot11fIETitan {
2214 tANI_U8 present;
2215 tANI_U8 concat_tcid_bitmap;
2216 tANI_U8 compression_tcid_bitmap;
2217 tANI_U8 cb_state;
2218 tANI_U8 rev_fcs_state;
2219} tDot11fIETitan;
2220
2221#define DOT11F_EID_TITAN ( 14 )
2222
2223// N.B. These #defines do *not* include the EID & length
2224#define DOT11F_IE_TITAN_MIN_LEN ( 4 )
2225
2226#define DOT11F_IE_TITAN_MAX_LEN ( 4 )
2227
2228#ifdef __cplusplus
2229extern "C" {
2230#endif /* C++ */
2231tANI_U32 dot11fUnpackIeTitan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETitan*);
2232
2233tANI_U32 dot11fPackIeTitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U8*, tANI_U32, tANI_U32*);
2234
2235tANI_U32 dot11fGetPackedIETitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U32*);
2236
2237#ifdef __cplusplus
2238}; /* End extern "C". */
2239#endif /* C++ */
2240// EID 17 (0x11)
2241typedef struct sDot11fIETriggerStaBgScan {
2242 tANI_U8 present;
2243 tANI_U8 enable;
2244} tDot11fIETriggerStaBgScan;
2245
2246#define DOT11F_EID_TRIGGERSTABGSCAN ( 17 )
2247
2248// N.B. These #defines do *not* include the EID & length
2249#define DOT11F_IE_TRIGGERSTABGSCAN_MIN_LEN ( 1 )
2250
2251#define DOT11F_IE_TRIGGERSTABGSCAN_MAX_LEN ( 1 )
2252
2253#ifdef __cplusplus
2254extern "C" {
2255#endif /* C++ */
2256tANI_U32 dot11fUnpackIeTriggerStaBgScan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETriggerStaBgScan*);
2257
2258tANI_U32 dot11fPackIeTriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U8*, tANI_U32, tANI_U32*);
2259
2260tANI_U32 dot11fGetPackedIETriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U32*);
2261
2262#ifdef __cplusplus
2263}; /* End extern "C". */
2264#endif /* C++ */
2265// EID 11 (0x0b)
2266typedef struct sDot11fIEVersion {
2267 tANI_U8 present;
2268 tANI_U32 chip_rev;
2269 tANI_U8 card_type;
2270 tANI_U8 num_build_version;
2271 tANI_U8 build_version[20];
2272} tDot11fIEVersion;
2273
2274#define DOT11F_EID_VERSION ( 11 )
2275
2276// N.B. These #defines do *not* include the EID & length
2277#define DOT11F_IE_VERSION_MIN_LEN ( 5 )
2278
2279#define DOT11F_IE_VERSION_MAX_LEN ( 25 )
2280
2281#ifdef __cplusplus
2282extern "C" {
2283#endif /* C++ */
2284tANI_U32 dot11fUnpackIeVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVersion*);
2285
2286tANI_U32 dot11fPackIeVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U8*, tANI_U32, tANI_U32*);
2287
2288tANI_U32 dot11fGetPackedIEVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U32*);
2289
2290#ifdef __cplusplus
2291}; /* End extern "C". */
2292#endif /* C++ */
2293// EID 3 (0x03)
2294typedef struct sDot11fIEWDS {
2295 tANI_U8 present;
2296 tANI_U8 num_wdsData;
2297 tANI_U8 wdsData[64];
2298} tDot11fIEWDS;
2299
2300#define DOT11F_EID_WDS ( 3 )
2301
2302// N.B. These #defines do *not* include the EID & length
2303#define DOT11F_IE_WDS_MIN_LEN ( 0 )
2304
2305#define DOT11F_IE_WDS_MAX_LEN ( 64 )
2306
2307#ifdef __cplusplus
2308extern "C" {
2309#endif /* C++ */
2310tANI_U32 dot11fUnpackIeWDS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWDS*);
2311
2312tANI_U32 dot11fPackIeWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U8*, tANI_U32, tANI_U32*);
2313
2314tANI_U32 dot11fGetPackedIEWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U32*);
2315
2316#ifdef __cplusplus
2317}; /* End extern "C". */
2318#endif /* C++ */
2319// EID 51 (0x33)
2320typedef struct sDot11fIEAPChannelReport {
2321 tANI_U8 present;
2322 tANI_U8 regulatoryClass;
2323 tANI_U8 num_channelList;
2324 tANI_U8 channelList[50];
2325} tDot11fIEAPChannelReport;
2326
2327#define DOT11F_EID_APCHANNELREPORT ( 51 )
2328
2329// N.B. These #defines do *not* include the EID & length
2330#define DOT11F_IE_APCHANNELREPORT_MIN_LEN ( 1 )
2331
2332#define DOT11F_IE_APCHANNELREPORT_MAX_LEN ( 51 )
2333
2334#ifdef __cplusplus
2335extern "C" {
2336#endif /* C++ */
2337tANI_U32 dot11fUnpackIeAPChannelReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAPChannelReport*);
2338
2339tANI_U32 dot11fPackIeAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U8*, tANI_U32, tANI_U32*);
2340
2341tANI_U32 dot11fGetPackedIEAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U32*);
2342
2343#ifdef __cplusplus
2344}; /* End extern "C". */
2345#endif /* C++ */
2346// EID 2 (0x02)
2347typedef struct sDot11fIEBcnReportingDetail {
2348 tANI_U8 present;
2349 tANI_U8 reportingDetail;
2350} tDot11fIEBcnReportingDetail;
2351
2352#define DOT11F_EID_BCNREPORTINGDETAIL ( 2 )
2353
2354// N.B. These #defines do *not* include the EID & length
2355#define DOT11F_IE_BCNREPORTINGDETAIL_MIN_LEN ( 1 )
2356
2357#define DOT11F_IE_BCNREPORTINGDETAIL_MAX_LEN ( 1 )
2358
2359#ifdef __cplusplus
2360extern "C" {
2361#endif /* C++ */
2362tANI_U32 dot11fUnpackIeBcnReportingDetail(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBcnReportingDetail*);
2363
2364tANI_U32 dot11fPackIeBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U8*, tANI_U32, tANI_U32*);
2365
2366tANI_U32 dot11fGetPackedIEBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U32*);
2367
2368#ifdef __cplusplus
2369}; /* End extern "C". */
2370#endif /* C++ */
2371// EID 1 (0x01)
2372typedef struct sDot11fIEBeaconReportFrmBody {
2373 tANI_U8 present;
2374 tANI_U8 num_reportedFields;
2375 tANI_U8 reportedFields[224];
2376} tDot11fIEBeaconReportFrmBody;
2377
2378#define DOT11F_EID_BEACONREPORTFRMBODY ( 1 )
2379
2380// N.B. These #defines do *not* include the EID & length
2381#define DOT11F_IE_BEACONREPORTFRMBODY_MIN_LEN ( 0 )
2382
2383#define DOT11F_IE_BEACONREPORTFRMBODY_MAX_LEN ( 224 )
2384
2385#ifdef __cplusplus
2386extern "C" {
2387#endif /* C++ */
2388tANI_U32 dot11fUnpackIeBeaconReportFrmBody(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReportFrmBody*);
2389
2390tANI_U32 dot11fPackIeBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U8*, tANI_U32, tANI_U32*);
2391
2392tANI_U32 dot11fGetPackedIEBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U32*);
2393
2394#ifdef __cplusplus
2395}; /* End extern "C". */
2396#endif /* C++ */
2397// EID 1 (0x01)
2398typedef struct sDot11fIEBeaconReporting {
2399 tANI_U8 present;
2400 tANI_U8 reportingCondition;
2401 tANI_U8 threshold;
2402} tDot11fIEBeaconReporting;
2403
2404#define DOT11F_EID_BEACONREPORTING ( 1 )
2405
2406// N.B. These #defines do *not* include the EID & length
2407#define DOT11F_IE_BEACONREPORTING_MIN_LEN ( 2 )
2408
2409#define DOT11F_IE_BEACONREPORTING_MAX_LEN ( 2 )
2410
2411#ifdef __cplusplus
2412extern "C" {
2413#endif /* C++ */
2414tANI_U32 dot11fUnpackIeBeaconReporting(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReporting*);
2415
2416tANI_U32 dot11fPackIeBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U8*, tANI_U32, tANI_U32*);
2417
2418tANI_U32 dot11fGetPackedIEBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U32*);
2419
2420#ifdef __cplusplus
2421}; /* End extern "C". */
2422#endif /* C++ */
2423// EID 66 (0x42)
2424typedef struct sDot11fIEMeasurementPilot {
2425 tANI_U8 present;
2426 tANI_U8 measurementPilot;
2427 tANI_U8 num_vendorSpecific;
2428 tANI_U8 vendorSpecific[255];
2429} tDot11fIEMeasurementPilot;
2430
2431#define DOT11F_EID_MEASUREMENTPILOT ( 66 )
2432
2433// N.B. These #defines do *not* include the EID & length
2434#define DOT11F_IE_MEASUREMENTPILOT_MIN_LEN ( 1 )
2435
2436#define DOT11F_IE_MEASUREMENTPILOT_MAX_LEN ( 256 )
2437
2438#ifdef __cplusplus
2439extern "C" {
2440#endif /* C++ */
2441tANI_U32 dot11fUnpackIeMeasurementPilot(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementPilot*);
2442
2443tANI_U32 dot11fPackIeMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U8*, tANI_U32, tANI_U32*);
2444
2445tANI_U32 dot11fGetPackedIEMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U32*);
2446
2447#ifdef __cplusplus
2448}; /* End extern "C". */
2449#endif /* C++ */
2450// EID 71 (0x47)
2451typedef struct sDot11fIEMultiBssid {
2452 tANI_U8 present;
2453 tANI_U8 maxBSSIDIndicator;
2454 tANI_U8 num_vendorSpecific;
2455 tANI_U8 vendorSpecific[255];
2456} tDot11fIEMultiBssid;
2457
2458#define DOT11F_EID_MULTIBSSID ( 71 )
2459
2460// N.B. These #defines do *not* include the EID & length
2461#define DOT11F_IE_MULTIBSSID_MIN_LEN ( 1 )
2462
2463#define DOT11F_IE_MULTIBSSID_MAX_LEN ( 256 )
2464
2465#ifdef __cplusplus
2466extern "C" {
2467#endif /* C++ */
2468tANI_U32 dot11fUnpackIeMultiBssid(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMultiBssid*);
2469
2470tANI_U32 dot11fPackIeMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U8*, tANI_U32, tANI_U32*);
2471
2472tANI_U32 dot11fGetPackedIEMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U32*);
2473
2474#ifdef __cplusplus
2475}; /* End extern "C". */
2476#endif /* C++ */
2477// EID 57 (0x39)
2478typedef struct sDot11fIERICData {
2479 tANI_U8 present;
2480 tANI_U8 Identifier;
2481 tANI_U8 resourceDescCount;
2482 tANI_U16 statusCode;
2483} tDot11fIERICData;
2484
2485#define DOT11F_EID_RICDATA ( 57 )
2486
2487// N.B. These #defines do *not* include the EID & length
2488#define DOT11F_IE_RICDATA_MIN_LEN ( 4 )
2489
2490#define DOT11F_IE_RICDATA_MAX_LEN ( 4 )
2491
2492#ifdef __cplusplus
2493extern "C" {
2494#endif /* C++ */
2495tANI_U32 dot11fUnpackIeRICData(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICData*);
2496
2497tANI_U32 dot11fPackIeRICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U8*, tANI_U32, tANI_U32*);
2498
2499tANI_U32 dot11fGetPackedIERICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U32*);
2500
2501#ifdef __cplusplus
2502}; /* End extern "C". */
2503#endif /* C++ */
2504// EID 75 (0x4b)
2505typedef struct sDot11fIERICDescriptor {
2506 tANI_U8 present;
2507 tANI_U8 resourceType;
2508 tANI_U8 num_variableData;
2509 tANI_U8 variableData[255];
2510} tDot11fIERICDescriptor;
2511
2512#define DOT11F_EID_RICDESCRIPTOR ( 75 )
2513
2514// N.B. These #defines do *not* include the EID & length
2515#define DOT11F_IE_RICDESCRIPTOR_MIN_LEN ( 1 )
2516
2517#define DOT11F_IE_RICDESCRIPTOR_MAX_LEN ( 256 )
2518
2519#ifdef __cplusplus
2520extern "C" {
2521#endif /* C++ */
2522tANI_U32 dot11fUnpackIeRICDescriptor(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDescriptor*);
2523
2524tANI_U32 dot11fPackIeRICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U8*, tANI_U32, tANI_U32*);
2525
2526tANI_U32 dot11fGetPackedIERICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U32*);
2527
2528#ifdef __cplusplus
2529}; /* End extern "C". */
2530#endif /* C++ */
2531// EID 70 (0x46)
2532typedef struct sDot11fIERRMEnabledCap {
2533 tANI_U8 present;
2534 tANI_U8 LinkMeasurement: 1;
2535 tANI_U8 NeighborRpt: 1;
2536 tANI_U8 parallel: 1;
2537 tANI_U8 repeated: 1;
2538 tANI_U8 BeaconPassive: 1;
2539 tANI_U8 BeaconActive: 1;
2540 tANI_U8 BeaconTable: 1;
2541 tANI_U8 BeaconRepCond: 1;
2542 tANI_U8 FrameMeasurement: 1;
2543 tANI_U8 ChannelLoad: 1;
2544 tANI_U8 NoiseHistogram: 1;
2545 tANI_U8 statistics: 1;
2546 tANI_U8 LCIMeasurement: 1;
2547 tANI_U8 LCIAzimuth: 1;
2548 tANI_U8 TCMCapability: 1;
2549 tANI_U8 triggeredTCM: 1;
2550 tANI_U8 APChanReport: 1;
2551 tANI_U8 RRMMIBEnabled: 1;
2552 tANI_U8 operatingChanMax: 3;
2553 tANI_U8 nonOperatinChanMax: 3;
2554 tANI_U8 MeasurementPilot: 3;
2555 tANI_U8 MeasurementPilotEnabled: 1;
2556 tANI_U8 NeighborTSFOffset: 1;
2557 tANI_U8 RCPIMeasurement: 1;
2558 tANI_U8 RSNIMeasurement: 1;
2559 tANI_U8 BssAvgAccessDelay: 1;
2560 tANI_U8 BSSAvailAdmission: 1;
2561 tANI_U8 AntennaInformation: 1;
2562 tANI_U8 reserved: 6;
2563} tDot11fIERRMEnabledCap;
2564
2565#define DOT11F_EID_RRMENABLEDCAP ( 70 )
2566
2567// N.B. These #defines do *not* include the EID & length
2568#define DOT11F_IE_RRMENABLEDCAP_MIN_LEN ( 5 )
2569
2570#define DOT11F_IE_RRMENABLEDCAP_MAX_LEN ( 5 )
2571
2572#ifdef __cplusplus
2573extern "C" {
2574#endif /* C++ */
2575tANI_U32 dot11fUnpackIeRRMEnabledCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERRMEnabledCap*);
2576
2577tANI_U32 dot11fPackIeRRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U8*, tANI_U32, tANI_U32*);
2578
2579tANI_U32 dot11fGetPackedIERRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U32*);
2580
2581#ifdef __cplusplus
2582}; /* End extern "C". */
2583#endif /* C++ */
2584// EID 10 (0x0a)
2585typedef struct sDot11fIERequestedInfo {
2586 tANI_U8 present;
2587 tANI_U8 num_requested_eids;
2588 tANI_U8 requested_eids[255];
2589} tDot11fIERequestedInfo;
2590
2591#define DOT11F_EID_REQUESTEDINFO ( 10 )
2592
2593// N.B. These #defines do *not* include the EID & length
2594#define DOT11F_IE_REQUESTEDINFO_MIN_LEN ( 0 )
2595
2596#define DOT11F_IE_REQUESTEDINFO_MAX_LEN ( 255 )
2597
2598#ifdef __cplusplus
2599extern "C" {
2600#endif /* C++ */
2601tANI_U32 dot11fUnpackIeRequestedInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERequestedInfo*);
2602
2603tANI_U32 dot11fPackIeRequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U8*, tANI_U32, tANI_U32*);
2604
2605tANI_U32 dot11fGetPackedIERequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U32*);
2606
2607#ifdef __cplusplus
2608}; /* End extern "C". */
2609#endif /* C++ */
2610// EID 0 (0x00)
2611typedef struct sDot11fIESSID {
2612 tANI_U8 present;
2613 tANI_U8 num_ssid;
2614 tANI_U8 ssid[32];
2615} tDot11fIESSID;
2616
2617#define DOT11F_EID_SSID ( 0 )
2618
2619// N.B. These #defines do *not* include the EID & length
2620#define DOT11F_IE_SSID_MIN_LEN ( 0 )
2621
2622#define DOT11F_IE_SSID_MAX_LEN ( 32 )
2623
2624#ifdef __cplusplus
2625extern "C" {
2626#endif /* C++ */
2627tANI_U32 dot11fUnpackIeSSID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESSID*);
2628
2629tANI_U32 dot11fPackIeSSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U8*, tANI_U32, tANI_U32*);
2630
2631tANI_U32 dot11fGetPackedIESSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U32*);
2632
2633#ifdef __cplusplus
2634}; /* End extern "C". */
2635#endif /* C++ */
2636// EID 15 (0x0f)
2637typedef struct sDot11fIESchedule {
2638 tANI_U8 present;
2639 tANI_U16 aggregation: 1;
2640 tANI_U16 tsid: 4;
2641 tANI_U16 direction: 2;
2642 tANI_U16 reserved: 9;
2643 tANI_U32 service_start_time;
2644 tANI_U32 service_interval;
2645 tANI_U16 max_service_dur;
2646 tANI_U16 spec_interval;
2647} tDot11fIESchedule;
2648
2649#define DOT11F_EID_SCHEDULE ( 15 )
2650
2651// N.B. These #defines do *not* include the EID & length
2652#define DOT11F_IE_SCHEDULE_MIN_LEN ( 14 )
2653
2654#define DOT11F_IE_SCHEDULE_MAX_LEN ( 14 )
2655
2656#ifdef __cplusplus
2657extern "C" {
2658#endif /* C++ */
2659tANI_U32 dot11fUnpackIeSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESchedule*);
2660
2661tANI_U32 dot11fPackIeSchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U8*, tANI_U32, tANI_U32*);
2662
2663tANI_U32 dot11fGetPackedIESchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U32*);
2664
2665#ifdef __cplusplus
2666}; /* End extern "C". */
2667#endif /* C++ */
2668// EID 14 (0x0e)
2669typedef struct sDot11fIETCLAS {
2670 tANI_U8 present;
2671 tANI_U8 user_priority;
2672 tANI_U8 classifier_type;
2673 tANI_U8 classifier_mask;
2674 union
2675 {
2676 struct
2677 {
2678 tANI_U8 source[6];
2679 tANI_U8 dest[6];
2680 tANI_U16 type;
2681 } EthParams; /* classifier_type = 0 */
2682 struct
2683 {
2684 tANI_U8 version;
2685 union
2686 {
2687 struct
2688 {
2689 tANI_U8 source[4];
2690 tANI_U8 dest[4];
2691 tANI_U16 src_port;
2692 tANI_U16 dest_port;
2693 tANI_U8 DSCP;
2694 tANI_U8 proto;
2695 tANI_U8 reserved;
2696 } IpV4Params; /* version = 4 */
2697 struct
2698 {
2699 tANI_U8 source[16];
2700 tANI_U8 dest[16];
2701 tANI_U16 src_port;
2702 tANI_U16 dest_port;
2703 tANI_U8 flow_label[3];
2704 } IpV6Params; /* version = 6 */
2705 } params;
2706 } IpParams; /* classifier_type = 1 */
2707 struct
2708 {
2709 tANI_U16 tag_type;
2710 } Params8021dq; /* classifier_type = 2 */
2711 } info;
2712} tDot11fIETCLAS;
2713
2714#define DOT11F_EID_TCLAS ( 14 )
2715
2716// N.B. These #defines do *not* include the EID & length
2717#define DOT11F_IE_TCLAS_MIN_LEN ( 5 )
2718
2719#define DOT11F_IE_TCLAS_MAX_LEN ( 43 )
2720
2721#ifdef __cplusplus
2722extern "C" {
2723#endif /* C++ */
2724tANI_U32 dot11fUnpackIeTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLAS*);
2725
2726tANI_U32 dot11fPackIeTCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
2727
2728tANI_U32 dot11fGetPackedIETCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U32*);
2729
2730#ifdef __cplusplus
2731}; /* End extern "C". */
2732#endif /* C++ */
2733// EID 44 (0x2c)
2734typedef struct sDot11fIETCLASSPROC {
2735 tANI_U8 present;
2736 tANI_U8 processing;
2737} tDot11fIETCLASSPROC;
2738
2739#define DOT11F_EID_TCLASSPROC ( 44 )
2740
2741// N.B. These #defines do *not* include the EID & length
2742#define DOT11F_IE_TCLASSPROC_MIN_LEN ( 1 )
2743
2744#define DOT11F_IE_TCLASSPROC_MAX_LEN ( 1 )
2745
2746#ifdef __cplusplus
2747extern "C" {
2748#endif /* C++ */
2749tANI_U32 dot11fUnpackIeTCLASSPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLASSPROC*);
2750
2751tANI_U32 dot11fPackIeTCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U8*, tANI_U32, tANI_U32*);
2752
2753tANI_U32 dot11fGetPackedIETCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U32*);
2754
2755#ifdef __cplusplus
2756}; /* End extern "C". */
2757#endif /* C++ */
2758// EID 43 (0x2b)
2759typedef struct sDot11fIETSDelay {
2760 tANI_U8 present;
2761 tANI_U32 delay;
2762} tDot11fIETSDelay;
2763
2764#define DOT11F_EID_TSDELAY ( 43 )
2765
2766// N.B. These #defines do *not* include the EID & length
2767#define DOT11F_IE_TSDELAY_MIN_LEN ( 4 )
2768
2769#define DOT11F_IE_TSDELAY_MAX_LEN ( 4 )
2770
2771#ifdef __cplusplus
2772extern "C" {
2773#endif /* C++ */
2774tANI_U32 dot11fUnpackIeTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSDelay*);
2775
2776tANI_U32 dot11fPackIeTSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
2777
2778tANI_U32 dot11fGetPackedIETSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U32*);
2779
2780#ifdef __cplusplus
2781}; /* End extern "C". */
2782#endif /* C++ */
2783// EID 13 (0x0d)
2784typedef struct sDot11fIETSPEC {
2785 tANI_U8 present;
2786 tANI_U16 traffic_type: 1;
2787 tANI_U16 tsid: 4;
2788 tANI_U16 direction: 2;
2789 tANI_U16 access_policy: 2;
2790 tANI_U16 aggregation: 1;
2791 tANI_U16 psb: 1;
2792 tANI_U16 user_priority: 3;
2793 tANI_U16 tsinfo_ack_pol: 2;
2794 tANI_U8 schedule: 1;
2795 tANI_U8 unused: 7;
2796 tANI_U16 size: 15;
2797 tANI_U16 fixed: 1;
2798 tANI_U16 max_msdu_size;
2799 tANI_U32 min_service_int;
2800 tANI_U32 max_service_int;
2801 tANI_U32 inactivity_int;
2802 tANI_U32 suspension_int;
2803 tANI_U32 service_start_time;
2804 tANI_U32 min_data_rate;
2805 tANI_U32 mean_data_rate;
2806 tANI_U32 peak_data_rate;
2807 tANI_U32 burst_size;
2808 tANI_U32 delay_bound;
2809 tANI_U32 min_phy_rate;
2810 tANI_U16 surplus_bw_allowance;
2811 tANI_U16 medium_time;
2812} tDot11fIETSPEC;
2813
2814#define DOT11F_EID_TSPEC ( 13 )
2815
2816// N.B. These #defines do *not* include the EID & length
2817#define DOT11F_IE_TSPEC_MIN_LEN ( 55 )
2818
2819#define DOT11F_IE_TSPEC_MAX_LEN ( 55 )
2820
2821#ifdef __cplusplus
2822extern "C" {
2823#endif /* C++ */
2824tANI_U32 dot11fUnpackIeTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSPEC*);
2825
2826tANI_U32 dot11fPackIeTSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
2827
2828tANI_U32 dot11fGetPackedIETSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U32*);
2829
2830#ifdef __cplusplus
2831}; /* End extern "C". */
2832#endif /* C++ */
2833// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09}
2834typedef struct sDot11fIEWMMSchedule {
2835 tANI_U8 present;
2836 tANI_U8 version /* Must be 1! */;
2837 tANI_U16 aggregation: 1;
2838 tANI_U16 tsid: 4;
2839 tANI_U16 direction: 2;
2840 tANI_U16 reserved: 9;
2841 tANI_U32 service_start_time;
2842 tANI_U32 service_interval;
2843 tANI_U16 max_service_dur;
2844 tANI_U16 spec_interval;
2845} tDot11fIEWMMSchedule;
2846
2847#define DOT11F_EID_WMMSCHEDULE ( 221 )
2848
2849// N.B. These #defines do *not* include the EID & length
2850#define DOT11F_IE_WMMSCHEDULE_MIN_LEN ( 20 )
2851
2852#define DOT11F_IE_WMMSCHEDULE_MAX_LEN ( 20 )
2853
2854#ifdef __cplusplus
2855extern "C" {
2856#endif /* C++ */
2857tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMSchedule*);
2858
2859tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U8*, tANI_U32, tANI_U32*);
2860
2861tANI_U32 dot11fGetPackedIEWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U32*);
2862
2863#ifdef __cplusplus
2864}; /* End extern "C". */
2865#endif /* C++ */
2866// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x06}
2867typedef struct sDot11fIEWMMTCLAS {
2868 tANI_U8 present;
2869 tANI_U8 version /* Must be 1! */;
2870 tANI_U8 user_priority;
2871 tANI_U8 classifier_type;
2872 tANI_U8 classifier_mask;
2873 union
2874 {
2875 struct
2876 {
2877 tANI_U8 source[6];
2878 tANI_U8 dest[6];
2879 tANI_U16 type;
2880 } EthParams; /* classifier_type = 0 */
2881 struct
2882 {
2883 tANI_U8 version;
2884 union
2885 {
2886 struct
2887 {
2888 tANI_U8 source[4];
2889 tANI_U8 dest[4];
2890 tANI_U16 src_port;
2891 tANI_U16 dest_port;
2892 tANI_U8 DSCP;
2893 tANI_U8 proto;
2894 tANI_U8 reserved;
2895 } IpV4Params; /* version = 4 */
2896 struct
2897 {
2898 tANI_U8 source[16];
2899 tANI_U8 dest[16];
2900 tANI_U16 src_port;
2901 tANI_U16 dest_port;
2902 tANI_U8 flow_label[3];
2903 } IpV6Params; /* version = 6 */
2904 } params;
2905 } IpParams; /* classifier_type = 1 */
2906 struct
2907 {
2908 tANI_U16 tag_type;
2909 } Params8021dq; /* classifier_type = 2 */
2910 } info;
2911} tDot11fIEWMMTCLAS;
2912
2913#define DOT11F_EID_WMMTCLAS ( 221 )
2914
2915// N.B. These #defines do *not* include the EID & length
2916#define DOT11F_IE_WMMTCLAS_MIN_LEN ( 11 )
2917
2918#define DOT11F_IE_WMMTCLAS_MAX_LEN ( 49 )
2919
2920#ifdef __cplusplus
2921extern "C" {
2922#endif /* C++ */
2923tANI_U32 dot11fUnpackIeWMMTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLAS*);
2924
2925tANI_U32 dot11fPackIeWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
2926
2927tANI_U32 dot11fGetPackedIEWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U32*);
2928
2929#ifdef __cplusplus
2930}; /* End extern "C". */
2931#endif /* C++ */
2932// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x07}
2933typedef struct sDot11fIEWMMTCLASPROC {
2934 tANI_U8 present;
2935 tANI_U8 version /* Must be 1! */;
2936 tANI_U8 processing;
2937} tDot11fIEWMMTCLASPROC;
2938
2939#define DOT11F_EID_WMMTCLASPROC ( 221 )
2940
2941// N.B. These #defines do *not* include the EID & length
2942#define DOT11F_IE_WMMTCLASPROC_MIN_LEN ( 7 )
2943
2944#define DOT11F_IE_WMMTCLASPROC_MAX_LEN ( 7 )
2945
2946#ifdef __cplusplus
2947extern "C" {
2948#endif /* C++ */
2949tANI_U32 dot11fUnpackIeWMMTCLASPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLASPROC*);
2950
2951tANI_U32 dot11fPackIeWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U8*, tANI_U32, tANI_U32*);
2952
2953tANI_U32 dot11fGetPackedIEWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U32*);
2954
2955#ifdef __cplusplus
2956}; /* End extern "C". */
2957#endif /* C++ */
2958// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x08}
2959typedef struct sDot11fIEWMMTSDelay {
2960 tANI_U8 present;
2961 tANI_U8 version /* Must be 1! */;
2962 tANI_U32 delay;
2963} tDot11fIEWMMTSDelay;
2964
2965#define DOT11F_EID_WMMTSDELAY ( 221 )
2966
2967// N.B. These #defines do *not* include the EID & length
2968#define DOT11F_IE_WMMTSDELAY_MIN_LEN ( 10 )
2969
2970#define DOT11F_IE_WMMTSDELAY_MAX_LEN ( 10 )
2971
2972#ifdef __cplusplus
2973extern "C" {
2974#endif /* C++ */
2975tANI_U32 dot11fUnpackIeWMMTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSDelay*);
2976
2977tANI_U32 dot11fPackIeWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
2978
2979tANI_U32 dot11fGetPackedIEWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U32*);
2980
2981#ifdef __cplusplus
2982}; /* End extern "C". */
2983#endif /* C++ */
2984// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x02}
2985typedef struct sDot11fIEWMMTSPEC {
2986 tANI_U8 present;
2987 tANI_U8 version /* Must be 1! */;
2988 tANI_U16 traffic_type: 1;
2989 tANI_U16 tsid: 4;
2990 tANI_U16 direction: 2;
2991 tANI_U16 access_policy: 2;
2992 tANI_U16 aggregation: 1;
2993 tANI_U16 psb: 1;
2994 tANI_U16 user_priority: 3;
2995 tANI_U16 tsinfo_ack_pol: 2;
2996 tANI_U8 tsinfo_rsvd: 7;
2997 tANI_U8 burst_size_defn: 1;
2998 tANI_U16 size: 15;
2999 tANI_U16 fixed: 1;
3000 tANI_U16 max_msdu_size;
3001 tANI_U32 min_service_int;
3002 tANI_U32 max_service_int;
3003 tANI_U32 inactivity_int;
3004 tANI_U32 suspension_int;
3005 tANI_U32 service_start_time;
3006 tANI_U32 min_data_rate;
3007 tANI_U32 mean_data_rate;
3008 tANI_U32 peak_data_rate;
3009 tANI_U32 burst_size;
3010 tANI_U32 delay_bound;
3011 tANI_U32 min_phy_rate;
3012 tANI_U16 surplus_bw_allowance;
3013 tANI_U16 medium_time;
3014} tDot11fIEWMMTSPEC;
3015
3016#define DOT11F_EID_WMMTSPEC ( 221 )
3017
3018// N.B. These #defines do *not* include the EID & length
3019#define DOT11F_IE_WMMTSPEC_MIN_LEN ( 61 )
3020
3021#define DOT11F_IE_WMMTSPEC_MAX_LEN ( 61 )
3022
3023#ifdef __cplusplus
3024extern "C" {
3025#endif /* C++ */
3026tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSPEC*);
3027
3028tANI_U32 dot11fPackIeWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
3029
3030tANI_U32 dot11fGetPackedIEWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U32*);
3031
3032#ifdef __cplusplus
3033}; /* End extern "C". */
3034#endif /* C++ */
3035// EID 221 (0xdd) {OUI 0x00, 0x0a, 0xf5}
3036typedef struct sDot11fIEAirgo {
3037 tANI_U8 present;
3038 tDot11fIEPropSuppRates PropSuppRates;
3039 tDot11fIEAPName APName;
3040 tDot11fIEHCF HCF;
3041 tDot11fIEWDS WDS;
3042 tDot11fIEBPIndicator BPIndicator;
3043 tDot11fIELoadInfo LoadInfo;
3044 tDot11fIELoadBalance LoadBalance;
3045 tDot11fIEPropAssocType PropAssocType;
3046 tDot11fIELLAttr LLAttr;
3047 tDot11fIEPropCapability PropCapability;
3048 tDot11fIEVersion Version;
3049 tDot11fIEPropEDCAParams PropEDCAParams;
3050 tDot11fIETitan Titan;
3051 tDot11fIEPropChannSwitchAnn PropChannSwitchAnn;
3052 tDot11fIEPropQuietBSS PropQuietBSS;
3053 tDot11fIETriggerStaBgScan TriggerStaBgScan;
3054 tDot11fIETaurus Taurus;
3055} tDot11fIEAirgo;
3056
3057#define DOT11F_EID_AIRGO ( 221 )
3058
3059// N.B. These #defines do *not* include the EID & length
3060#define DOT11F_IE_AIRGO_MIN_LEN ( 3 )
3061
3062#define DOT11F_IE_AIRGO_MAX_LEN ( 230 )
3063
3064#ifdef __cplusplus
3065extern "C" {
3066#endif /* C++ */
3067tANI_U32 dot11fUnpackIeAirgo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAirgo*);
3068
3069tANI_U32 dot11fPackIeAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U8*, tANI_U32, tANI_U32*);
3070
3071tANI_U32 dot11fGetPackedIEAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U32*);
3072
3073#ifdef __cplusplus
3074}; /* End extern "C". */
3075#endif /* C++ */
3076// EID 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00}
3077typedef struct sDot11fIECCXCckmOpaque {
3078 tANI_U8 present;
3079 tANI_U8 num_data;
3080 tANI_U8 data[20];
3081} tDot11fIECCXCckmOpaque;
3082
3083#define DOT11F_EID_CCXCCKMOPAQUE ( 156 )
3084
3085// N.B. These #defines do *not* include the EID & length
3086#define DOT11F_IE_CCXCCKMOPAQUE_MIN_LEN ( 10 )
3087
3088#define DOT11F_IE_CCXCCKMOPAQUE_MAX_LEN ( 24 )
3089
3090#ifdef __cplusplus
3091extern "C" {
3092#endif /* C++ */
3093tANI_U32 dot11fUnpackIeCCXCckmOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXCckmOpaque*);
3094
3095tANI_U32 dot11fPackIeCCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
3096
3097tANI_U32 dot11fGetPackedIECCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U32*);
3098
3099#ifdef __cplusplus
3100}; /* End extern "C". */
3101#endif /* C++ */
3102// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01}
3103typedef struct sDot11fIECCXRadMgmtCap {
3104 tANI_U8 present;
3105 tANI_U8 mgmt_state;
3106 tANI_U8 mbssid_mask: 3;
3107 tANI_U8 reserved: 5;
3108} tDot11fIECCXRadMgmtCap;
3109
3110#define DOT11F_EID_CCXRADMGMTCAP ( 221 )
3111
3112// N.B. These #defines do *not* include the EID & length
3113#define DOT11F_IE_CCXRADMGMTCAP_MIN_LEN ( 6 )
3114
3115#define DOT11F_IE_CCXRADMGMTCAP_MAX_LEN ( 6 )
3116
3117#ifdef __cplusplus
3118extern "C" {
3119#endif /* C++ */
3120tANI_U32 dot11fUnpackIeCCXRadMgmtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXRadMgmtCap*);
3121
3122tANI_U32 dot11fPackIeCCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U8*, tANI_U32, tANI_U32*);
3123
3124tANI_U32 dot11fGetPackedIECCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U32*);
3125
3126#ifdef __cplusplus
3127}; /* End extern "C". */
3128#endif /* C++ */
3129// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07}
3130typedef struct sDot11fIECCXTrafStrmMet {
3131 tANI_U8 present;
3132 tANI_U8 tsid;
3133 tANI_U8 state;
3134 tANI_U16 msmt_interval;
3135} tDot11fIECCXTrafStrmMet;
3136
3137#define DOT11F_EID_CCXTRAFSTRMMET ( 221 )
3138
3139// N.B. These #defines do *not* include the EID & length
3140#define DOT11F_IE_CCXTRAFSTRMMET_MIN_LEN ( 8 )
3141
3142#define DOT11F_IE_CCXTRAFSTRMMET_MAX_LEN ( 8 )
3143
3144#ifdef __cplusplus
3145extern "C" {
3146#endif /* C++ */
3147tANI_U32 dot11fUnpackIeCCXTrafStrmMet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmMet*);
3148
3149tANI_U32 dot11fPackIeCCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U8*, tANI_U32, tANI_U32*);
3150
3151tANI_U32 dot11fGetPackedIECCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U32*);
3152
3153#ifdef __cplusplus
3154}; /* End extern "C". */
3155#endif /* C++ */
3156// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08}
3157typedef struct sDot11fIECCXTrafStrmRateSet {
3158 tANI_U8 present;
3159 tANI_U8 tsid;
3160 tANI_U8 num_tsrates;
3161 tANI_U8 tsrates[8];
3162} tDot11fIECCXTrafStrmRateSet;
3163
3164#define DOT11F_EID_CCXTRAFSTRMRATESET ( 221 )
3165
3166// N.B. These #defines do *not* include the EID & length
3167#define DOT11F_IE_CCXTRAFSTRMRATESET_MIN_LEN ( 5 )
3168
3169#define DOT11F_IE_CCXTRAFSTRMRATESET_MAX_LEN ( 13 )
3170
3171#ifdef __cplusplus
3172extern "C" {
3173#endif /* C++ */
3174tANI_U32 dot11fUnpackIeCCXTrafStrmRateSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmRateSet*);
3175
3176tANI_U32 dot11fPackIeCCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U8*, tANI_U32, tANI_U32*);
3177
3178tANI_U32 dot11fGetPackedIECCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U32*);
3179
3180#ifdef __cplusplus
3181}; /* End extern "C". */
3182#endif /* C++ */
3183// EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00}
3184typedef struct sDot11fIECCXTxmitPower {
3185 tANI_U8 present;
3186 tANI_U8 power_limit;
3187 tANI_U8 reserved;
3188} tDot11fIECCXTxmitPower;
3189
3190#define DOT11F_EID_CCXTXMITPOWER ( 150 )
3191
3192// N.B. These #defines do *not* include the EID & length
3193#define DOT11F_IE_CCXTXMITPOWER_MIN_LEN ( 6 )
3194
3195#define DOT11F_IE_CCXTXMITPOWER_MAX_LEN ( 6 )
3196
3197#ifdef __cplusplus
3198extern "C" {
3199#endif /* C++ */
3200tANI_U32 dot11fUnpackIeCCXTxmitPower(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTxmitPower*);
3201
3202tANI_U32 dot11fPackIeCCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U8*, tANI_U32, tANI_U32*);
3203
3204tANI_U32 dot11fGetPackedIECCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U32*);
3205
3206#ifdef __cplusplus
3207}; /* End extern "C". */
3208#endif /* C++ */
3209// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03}
3210typedef struct sDot11fIECCXVersion {
3211 tANI_U8 present;
3212 tANI_U8 version;
3213} tDot11fIECCXVersion;
3214
3215#define DOT11F_EID_CCXVERSION ( 221 )
3216
3217// N.B. These #defines do *not* include the EID & length
3218#define DOT11F_IE_CCXVERSION_MIN_LEN ( 5 )
3219
3220#define DOT11F_IE_CCXVERSION_MAX_LEN ( 5 )
3221
3222#ifdef __cplusplus
3223extern "C" {
3224#endif /* C++ */
3225tANI_U32 dot11fUnpackIeCCXVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXVersion*);
3226
3227tANI_U32 dot11fPackIeCCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U8*, tANI_U32, tANI_U32*);
3228
3229tANI_U32 dot11fGetPackedIECCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U32*);
3230
3231#ifdef __cplusplus
3232}; /* End extern "C". */
3233#endif /* C++ */
3234// EID 4 (0x04)
3235typedef struct sDot11fIECFParams {
3236 tANI_U8 present;
3237 tANI_U8 cfp_count;
3238 tANI_U8 cfp_period;
3239 tANI_U16 cfp_maxduration;
3240 tANI_U16 cfp_durremaining;
3241} tDot11fIECFParams;
3242
3243#define DOT11F_EID_CFPARAMS ( 4 )
3244
3245// N.B. These #defines do *not* include the EID & length
3246#define DOT11F_IE_CFPARAMS_MIN_LEN ( 6 )
3247
3248#define DOT11F_IE_CFPARAMS_MAX_LEN ( 6 )
3249
3250#ifdef __cplusplus
3251extern "C" {
3252#endif /* C++ */
3253tANI_U32 dot11fUnpackIeCFParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECFParams*);
3254
3255tANI_U32 dot11fPackIeCFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U8*, tANI_U32, tANI_U32*);
3256
3257tANI_U32 dot11fGetPackedIECFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U32*);
3258
3259#ifdef __cplusplus
3260}; /* End extern "C". */
3261#endif /* C++ */
3262// EID 16 (0x10)
3263typedef struct sDot11fIEChallengeText {
3264 tANI_U8 present;
3265 tANI_U8 num_text;
3266 tANI_U8 text[253];
3267} tDot11fIEChallengeText;
3268
3269#define DOT11F_EID_CHALLENGETEXT ( 16 )
3270
3271// N.B. These #defines do *not* include the EID & length
3272#define DOT11F_IE_CHALLENGETEXT_MIN_LEN ( 1 )
3273
3274#define DOT11F_IE_CHALLENGETEXT_MAX_LEN ( 253 )
3275
3276#ifdef __cplusplus
3277extern "C" {
3278#endif /* C++ */
3279tANI_U32 dot11fUnpackIeChallengeText(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChallengeText*);
3280
3281tANI_U32 dot11fPackIeChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U8*, tANI_U32, tANI_U32*);
3282
3283tANI_U32 dot11fGetPackedIEChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U32*);
3284
3285#ifdef __cplusplus
3286}; /* End extern "C". */
3287#endif /* C++ */
3288// EID 37 (0x25)
3289typedef struct sDot11fIEChanSwitchAnn {
3290 tANI_U8 present;
3291 tANI_U8 switchMode;
3292 tANI_U8 newChannel;
3293 tANI_U8 switchCount;
3294} tDot11fIEChanSwitchAnn;
3295
3296#define DOT11F_EID_CHANSWITCHANN ( 37 )
3297
3298// N.B. These #defines do *not* include the EID & length
3299#define DOT11F_IE_CHANSWITCHANN_MIN_LEN ( 3 )
3300
3301#define DOT11F_IE_CHANSWITCHANN_MAX_LEN ( 3 )
3302
3303#ifdef __cplusplus
3304extern "C" {
3305#endif /* C++ */
3306tANI_U32 dot11fUnpackIeChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChanSwitchAnn*);
3307
3308tANI_U32 dot11fPackIeChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
3309
3310tANI_U32 dot11fGetPackedIEChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U32*);
3311
3312#ifdef __cplusplus
3313}; /* End extern "C". */
3314#endif /* C++ */
3315// EID 7 (0x07)
3316typedef struct sDot11fIECountry {
3317 tANI_U8 present;
3318 tANI_U8 country[3];
3319 tANI_U8 num_triplets;
3320 tANI_U8 triplets[84][3];
3321} tDot11fIECountry;
3322
3323#define DOT11F_EID_COUNTRY ( 7 )
3324
3325// N.B. These #defines do *not* include the EID & length
3326#define DOT11F_IE_COUNTRY_MIN_LEN ( 3 )
3327
3328#define DOT11F_IE_COUNTRY_MAX_LEN ( 255 )
3329
3330#ifdef __cplusplus
3331extern "C" {
3332#endif /* C++ */
3333tANI_U32 dot11fUnpackIeCountry(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECountry*);
3334
3335tANI_U32 dot11fPackIeCountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U8*, tANI_U32, tANI_U32*);
3336
3337tANI_U32 dot11fGetPackedIECountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U32*);
3338
3339#ifdef __cplusplus
3340}; /* End extern "C". */
3341#endif /* C++ */
3342// EID 3 (0x03)
3343typedef struct sDot11fIEDSParams {
3344 tANI_U8 present;
3345 tANI_U8 curr_channel;
3346} tDot11fIEDSParams;
3347
3348#define DOT11F_EID_DSPARAMS ( 3 )
3349
3350// N.B. These #defines do *not* include the EID & length
3351#define DOT11F_IE_DSPARAMS_MIN_LEN ( 1 )
3352
3353#define DOT11F_IE_DSPARAMS_MAX_LEN ( 1 )
3354
3355#ifdef __cplusplus
3356extern "C" {
3357#endif /* C++ */
3358tANI_U32 dot11fUnpackIeDSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEDSParams*);
3359
3360tANI_U32 dot11fPackIeDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U8*, tANI_U32, tANI_U32*);
3361
3362tANI_U32 dot11fGetPackedIEDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U32*);
3363
3364#ifdef __cplusplus
3365}; /* End extern "C". */
3366#endif /* C++ */
3367// EID 12 (0x0c)
3368typedef struct sDot11fIEEDCAParamSet {
3369 tANI_U8 present;
3370 tANI_U8 qos;
3371 tANI_U8 reserved;
3372 tANI_U8 acbe_aifsn: 4;
3373 tANI_U8 acbe_acm: 1;
3374 tANI_U8 acbe_aci: 2;
3375 tANI_U8 unused1: 1;
3376 tANI_U8 acbe_acwmin: 4;
3377 tANI_U8 acbe_acwmax: 4;
3378 tANI_U16 acbe_txoplimit;
3379 tANI_U8 acbk_aifsn: 4;
3380 tANI_U8 acbk_acm: 1;
3381 tANI_U8 acbk_aci: 2;
3382 tANI_U8 unused2: 1;
3383 tANI_U8 acbk_acwmin: 4;
3384 tANI_U8 acbk_acwmax: 4;
3385 tANI_U16 acbk_txoplimit;
3386 tANI_U8 acvi_aifsn: 4;
3387 tANI_U8 acvi_acm: 1;
3388 tANI_U8 acvi_aci: 2;
3389 tANI_U8 unused3: 1;
3390 tANI_U8 acvi_acwmin: 4;
3391 tANI_U8 acvi_acwmax: 4;
3392 tANI_U16 acvi_txoplimit;
3393 tANI_U8 acvo_aifsn: 4;
3394 tANI_U8 acvo_acm: 1;
3395 tANI_U8 acvo_aci: 2;
3396 tANI_U8 unused4: 1;
3397 tANI_U8 acvo_acwmin: 4;
3398 tANI_U8 acvo_acwmax: 4;
3399 tANI_U16 acvo_txoplimit;
3400} tDot11fIEEDCAParamSet;
3401
3402#define DOT11F_EID_EDCAPARAMSET ( 12 )
3403
3404// N.B. These #defines do *not* include the EID & length
3405#define DOT11F_IE_EDCAPARAMSET_MIN_LEN ( 18 )
3406
3407#define DOT11F_IE_EDCAPARAMSET_MAX_LEN ( 18 )
3408
3409#ifdef __cplusplus
3410extern "C" {
3411#endif /* C++ */
3412tANI_U32 dot11fUnpackIeEDCAParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEEDCAParamSet*);
3413
3414tANI_U32 dot11fPackIeEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
3415
3416tANI_U32 dot11fGetPackedIEEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U32*);
3417
3418#ifdef __cplusplus
3419}; /* End extern "C". */
3420#endif /* C++ */
3421// EID 42 (0x2a)
3422typedef struct sDot11fIEERPInfo {
3423 tANI_U8 present;
3424 tANI_U8 non_erp_present: 1;
3425 tANI_U8 use_prot: 1;
3426 tANI_U8 barker_preamble: 1;
3427 tANI_U8 unused: 5;
3428} tDot11fIEERPInfo;
3429
3430#define DOT11F_EID_ERPINFO ( 42 )
3431
3432// N.B. These #defines do *not* include the EID & length
3433#define DOT11F_IE_ERPINFO_MIN_LEN ( 1 )
3434
3435#define DOT11F_IE_ERPINFO_MAX_LEN ( 1 )
3436
3437#ifdef __cplusplus
3438extern "C" {
3439#endif /* C++ */
3440tANI_U32 dot11fUnpackIeERPInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEERPInfo*);
3441
3442tANI_U32 dot11fPackIeERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3443
3444tANI_U32 dot11fGetPackedIEERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U32*);
3445
3446#ifdef __cplusplus
3447}; /* End extern "C". */
3448#endif /* C++ */
Mohit Khanna4a70d262012-09-11 16:30:12 -07003449// EID 127 (0x7f)
3450typedef struct sDot11fIEExtCap {
3451 tANI_U8 present;
3452 tANI_U32 bssCoexistMgmtSupport: 1;
3453 tANI_U32 reserved1: 1;
3454 tANI_U32 extChanSwitch: 1;
3455 tANI_U32 reserved2: 1;
3456 tANI_U32 psmpCap: 1;
3457 tANI_U32 reserved3: 1;
3458 tANI_U32 spsmpCap: 1;
3459 tANI_U32 event: 1;
3460 tANI_U32 diagnostics: 1;
3461 tANI_U32 multiDiagnostics: 1;
3462 tANI_U32 locTracking: 1;
3463 tANI_U32 FMS: 1;
3464 tANI_U32 proxyARPService: 1;
3465 tANI_U32 coLocIntfReporting: 1;
3466 tANI_U32 civicLoc: 1;
3467 tANI_U32 geospatialLoc: 1;
3468 tANI_U32 TFS: 1;
3469 tANI_U32 wnmSleepMode: 1;
3470 tANI_U32 timBroadcast: 1;
3471 tANI_U32 bssTransition: 1;
3472 tANI_U32 qosTrafficCap: 1;
3473 tANI_U32 acStaCnt: 1;
3474 tANI_U32 multiBSSID: 1;
3475 tANI_U32 timingMeas: 1;
3476 tANI_U32 chanUsage: 1;
3477 tANI_U32 ssidList: 1;
3478 tANI_U32 DMS: 1;
3479 tANI_U32 UTCTSFOffset: 1;
3480 tANI_U32 TDLSPeerUAPSDBufferSTA: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003481 tANI_U32 TDLSPeerPSMSupp: 1;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003482 tANI_U32 TDLSChannelSwitching: 1;
3483 tANI_U32 interworkingService: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003484 tANI_U16 qosMap: 1;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003485 tANI_U16 EBR: 1;
3486 tANI_U16 sspnInterface: 1;
3487 tANI_U16 reserved4: 1;
3488 tANI_U16 msgCFCap: 1;
3489 tANI_U16 TDLSSupport: 1;
3490 tANI_U16 TDLSProhibited: 1;
3491 tANI_U16 TDLSChanSwitProhibited: 1;
3492 tANI_U16 rejectUnadmittedTraffic: 1;
3493 tANI_U16 serviceIntervalGranularity: 3;
3494 tANI_U16 identifierLoc: 1;
3495 tANI_U16 uapsdCoexistence: 1;
3496 tANI_U16 wnmNotification: 1;
3497 tANI_U16 reserved5: 1;
3498 tANI_U16 UTF8SSID: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003499 tANI_U16 reserved6: 12;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003500 tANI_U16 TDLSWiderBW: 1;
3501 tANI_U16 operModeNotification: 1;
3502 tANI_U16 reserved7: 1;
3503} tDot11fIEExtCap;
3504
3505#define DOT11F_EID_EXTCAP ( 127 )
3506
3507// N.B. These #defines do *not* include the EID & length
3508#define DOT11F_IE_EXTCAP_MIN_LEN ( 8 )
3509
3510#define DOT11F_IE_EXTCAP_MAX_LEN ( 8 )
3511
3512#ifdef __cplusplus
3513extern "C" {
3514#endif /* C++ */
3515tANI_U32 dot11fUnpackIeExtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtCap*);
3516
3517tANI_U32 dot11fPackIeExtCap(tpAniSirGlobal, tDot11fIEExtCap*, tANI_U8*, tANI_U32, tANI_U32*);
3518
3519tANI_U32 dot11fGetPackedIEExtCap(tpAniSirGlobal, tDot11fIEExtCap*, tANI_U32*);
3520
3521#ifdef __cplusplus
3522}; /* End extern "C". */
3523#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003524// EID 62 (0x3e)
3525typedef struct sDot11fIEExtChanSwitchAnn {
3526 tANI_U8 present;
3527 tANI_U8 secondaryChannelOffset;
3528} tDot11fIEExtChanSwitchAnn;
3529
3530#define DOT11F_EID_EXTCHANSWITCHANN ( 62 )
3531
3532// N.B. These #defines do *not* include the EID & length
3533#define DOT11F_IE_EXTCHANSWITCHANN_MIN_LEN ( 1 )
3534
3535#define DOT11F_IE_EXTCHANSWITCHANN_MAX_LEN ( 1 )
3536
3537#ifdef __cplusplus
3538extern "C" {
3539#endif /* C++ */
3540tANI_U32 dot11fUnpackIeExtChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtChanSwitchAnn*);
3541
3542tANI_U32 dot11fPackIeExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
3543
3544tANI_U32 dot11fGetPackedIEExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U32*);
3545
3546#ifdef __cplusplus
3547}; /* End extern "C". */
3548#endif /* C++ */
3549// EID 50 (0x32)
3550typedef struct sDot11fIEExtSuppRates {
3551 tANI_U8 present;
3552 tANI_U8 num_rates;
3553 tANI_U8 rates[12];
3554} tDot11fIEExtSuppRates;
3555
3556#define DOT11F_EID_EXTSUPPRATES ( 50 )
3557
3558// N.B. These #defines do *not* include the EID & length
3559#define DOT11F_IE_EXTSUPPRATES_MIN_LEN ( 1 )
3560
3561#define DOT11F_IE_EXTSUPPRATES_MAX_LEN ( 12 )
3562
3563#ifdef __cplusplus
3564extern "C" {
3565#endif /* C++ */
3566tANI_U32 dot11fUnpackIeExtSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtSuppRates*);
3567
3568tANI_U32 dot11fPackIeExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
3569
3570tANI_U32 dot11fGetPackedIEExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U32*);
3571
3572#ifdef __cplusplus
3573}; /* End extern "C". */
3574#endif /* C++ */
3575// EID 2 (0x02)
3576typedef struct sDot11fIEFHParamSet {
3577 tANI_U8 present;
3578 tANI_U16 dwell_time;
3579 tANI_U8 hop_set;
3580 tANI_U8 hop_pattern;
3581 tANI_U8 hop_index;
3582} tDot11fIEFHParamSet;
3583
3584#define DOT11F_EID_FHPARAMSET ( 2 )
3585
3586// N.B. These #defines do *not* include the EID & length
3587#define DOT11F_IE_FHPARAMSET_MIN_LEN ( 5 )
3588
3589#define DOT11F_IE_FHPARAMSET_MAX_LEN ( 5 )
3590
3591#ifdef __cplusplus
3592extern "C" {
3593#endif /* C++ */
3594tANI_U32 dot11fUnpackIeFHParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParamSet*);
3595
3596tANI_U32 dot11fPackIeFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
3597
3598tANI_U32 dot11fGetPackedIEFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U32*);
3599
3600#ifdef __cplusplus
3601}; /* End extern "C". */
3602#endif /* C++ */
3603// EID 8 (0x08)
3604typedef struct sDot11fIEFHParams {
3605 tANI_U8 present;
3606 tANI_U8 radix;
3607 tANI_U8 nchannels;
3608} tDot11fIEFHParams;
3609
3610#define DOT11F_EID_FHPARAMS ( 8 )
3611
3612// N.B. These #defines do *not* include the EID & length
3613#define DOT11F_IE_FHPARAMS_MIN_LEN ( 2 )
3614
3615#define DOT11F_IE_FHPARAMS_MAX_LEN ( 2 )
3616
3617#ifdef __cplusplus
3618extern "C" {
3619#endif /* C++ */
3620tANI_U32 dot11fUnpackIeFHParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParams*);
3621
3622tANI_U32 dot11fPackIeFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U8*, tANI_U32, tANI_U32*);
3623
3624tANI_U32 dot11fGetPackedIEFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U32*);
3625
3626#ifdef __cplusplus
3627}; /* End extern "C". */
3628#endif /* C++ */
3629// EID 9 (0x09)
3630typedef struct sDot11fIEFHPattTable {
3631 tANI_U8 present;
3632 tANI_U8 flag;
3633 tANI_U8 nsets;
3634 tANI_U8 modulus;
3635 tANI_U8 offset;
3636 tANI_U8 num_randtable;
3637 tANI_U8 randtable[251];
3638} tDot11fIEFHPattTable;
3639
3640#define DOT11F_EID_FHPATTTABLE ( 9 )
3641
3642// N.B. These #defines do *not* include the EID & length
3643#define DOT11F_IE_FHPATTTABLE_MIN_LEN ( 4 )
3644
3645#define DOT11F_IE_FHPATTTABLE_MAX_LEN ( 255 )
3646
3647#ifdef __cplusplus
3648extern "C" {
3649#endif /* C++ */
3650tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHPattTable*);
3651
3652tANI_U32 dot11fPackIeFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U8*, tANI_U32, tANI_U32*);
3653
3654tANI_U32 dot11fGetPackedIEFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U32*);
3655
3656#ifdef __cplusplus
3657}; /* End extern "C". */
3658#endif /* C++ */
3659// EID 55 (0x37)
3660typedef struct sDot11fIEFTInfo {
3661 tANI_U8 present;
3662 tANI_U16 reserved: 8;
3663 tANI_U16 IECount: 8;
3664 tANI_U8 MIC[16];
3665 tANI_U8 Anonce[32];
3666 tANI_U8 Snonce[32];
3667 tDot11fIER1KH_ID R1KH_ID;
3668 tDot11fIEGTK GTK;
3669 tDot11fIER0KH_ID R0KH_ID;
3670} tDot11fIEFTInfo;
3671
3672#define DOT11F_EID_FTINFO ( 55 )
3673
3674// N.B. These #defines do *not* include the EID & length
3675#define DOT11F_IE_FTINFO_MIN_LEN ( 82 )
3676
3677#define DOT11F_IE_FTINFO_MAX_LEN ( 185 )
3678
3679#ifdef __cplusplus
3680extern "C" {
3681#endif /* C++ */
3682tANI_U32 dot11fUnpackIeFTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTInfo*);
3683
3684tANI_U32 dot11fPackIeFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3685
3686tANI_U32 dot11fGetPackedIEFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U32*);
3687
3688#ifdef __cplusplus
3689}; /* End extern "C". */
3690#endif /* C++ */
3691// EID 56 (0x38)
3692typedef struct sDot11fIEFTTimeoutInterval {
3693 tANI_U8 present;
3694 tANI_U8 timeoutType;
3695 tANI_U32 timeoutValue;
3696} tDot11fIEFTTimeoutInterval;
3697
3698#define DOT11F_EID_FTTIMEOUTINTERVAL ( 56 )
3699
3700// N.B. These #defines do *not* include the EID & length
3701#define DOT11F_IE_FTTIMEOUTINTERVAL_MIN_LEN ( 5 )
3702
3703#define DOT11F_IE_FTTIMEOUTINTERVAL_MAX_LEN ( 5 )
3704
3705#ifdef __cplusplus
3706extern "C" {
3707#endif /* C++ */
3708tANI_U32 dot11fUnpackIeFTTimeoutInterval(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTTimeoutInterval*);
3709
3710tANI_U32 dot11fPackIeFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U8*, tANI_U32, tANI_U32*);
3711
3712tANI_U32 dot11fGetPackedIEFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U32*);
3713
3714#ifdef __cplusplus
3715}; /* End extern "C". */
3716#endif /* C++ */
3717// EID 45 (0x2d)
3718typedef struct sDot11fIEHTCaps {
3719 tANI_U8 present;
3720 tANI_U16 advCodingCap: 1;
3721 tANI_U16 supportedChannelWidthSet: 1;
3722 tANI_U16 mimoPowerSave: 2;
3723 tANI_U16 greenField: 1;
3724 tANI_U16 shortGI20MHz: 1;
3725 tANI_U16 shortGI40MHz: 1;
3726 tANI_U16 txSTBC: 1;
3727 tANI_U16 rxSTBC: 2;
3728 tANI_U16 delayedBA: 1;
3729 tANI_U16 maximalAMSDUsize: 1;
3730 tANI_U16 dsssCckMode40MHz: 1;
3731 tANI_U16 psmp: 1;
3732 tANI_U16 stbcControlFrame: 1;
3733 tANI_U16 lsigTXOPProtection: 1;
3734 tANI_U8 maxRxAMPDUFactor: 2;
3735 tANI_U8 mpduDensity: 3;
3736 tANI_U8 reserved1: 3;
3737 tANI_U8 supportedMCSSet[16];
3738 tANI_U16 pco: 1;
3739 tANI_U16 transitionTime: 2;
3740 tANI_U16 reserved2: 5;
3741 tANI_U16 mcsFeedback: 2;
3742 tANI_U16 reserved3: 6;
3743 tANI_U32 txBF: 1;
3744 tANI_U32 rxStaggeredSounding: 1;
3745 tANI_U32 txStaggeredSounding: 1;
3746 tANI_U32 rxZLF: 1;
3747 tANI_U32 txZLF: 1;
3748 tANI_U32 implicitTxBF: 1;
3749 tANI_U32 calibration: 2;
3750 tANI_U32 explicitCSITxBF: 1;
3751 tANI_U32 explicitUncompressedSteeringMatrix: 1;
3752 tANI_U32 explicitBFCSIFeedback: 3;
3753 tANI_U32 explicitUncompressedSteeringMatrixFeedback: 3;
3754 tANI_U32 explicitCompressedSteeringMatrixFeedback: 3;
3755 tANI_U32 csiNumBFAntennae: 2;
3756 tANI_U32 uncompressedSteeringMatrixBFAntennae: 2;
3757 tANI_U32 compressedSteeringMatrixBFAntennae: 2;
3758 tANI_U32 reserved4: 7;
3759 tANI_U8 antennaSelection: 1;
3760 tANI_U8 explicitCSIFeedbackTx: 1;
3761 tANI_U8 antennaIndicesFeedbackTx: 1;
3762 tANI_U8 explicitCSIFeedback: 1;
3763 tANI_U8 antennaIndicesFeedback: 1;
3764 tANI_U8 rxAS: 1;
3765 tANI_U8 txSoundingPPDUs: 1;
3766 tANI_U8 reserved5: 1;
3767 tANI_U8 num_rsvd;
3768 tANI_U8 rsvd[32];
3769} tDot11fIEHTCaps;
3770
3771#define DOT11F_EID_HTCAPS ( 45 )
3772
3773// N.B. These #defines do *not* include the EID & length
3774#define DOT11F_IE_HTCAPS_MIN_LEN ( 26 )
3775
3776#define DOT11F_IE_HTCAPS_MAX_LEN ( 58 )
3777
3778#ifdef __cplusplus
3779extern "C" {
3780#endif /* C++ */
3781tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTCaps*);
3782
3783tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
3784
3785tANI_U32 dot11fGetPackedIEHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U32*);
3786
3787#ifdef __cplusplus
3788}; /* End extern "C". */
3789#endif /* C++ */
3790// EID 61 (0x3d)
3791typedef struct sDot11fIEHTInfo {
3792 tANI_U8 present;
3793 tANI_U8 primaryChannel;
3794 tANI_U8 secondaryChannelOffset: 2;
3795 tANI_U8 recommendedTxWidthSet: 1;
3796 tANI_U8 rifsMode: 1;
3797 tANI_U8 controlledAccessOnly: 1;
3798 tANI_U8 serviceIntervalGranularity: 3;
3799 tANI_U16 opMode: 2;
3800 tANI_U16 nonGFDevicesPresent: 1;
3801 tANI_U16 transmitBurstLimit: 1;
3802 tANI_U16 obssNonHTStaPresent: 1;
3803 tANI_U16 reserved: 11;
3804 tANI_U16 basicSTBCMCS: 7;
3805 tANI_U16 dualCTSProtection: 1;
3806 tANI_U16 secondaryBeacon: 1;
3807 tANI_U16 lsigTXOPProtectionFullSupport: 1;
3808 tANI_U16 pcoActive: 1;
3809 tANI_U16 pcoPhase: 1;
3810 tANI_U16 reserved2: 4;
3811 tANI_U8 basicMCSSet[16];
3812 tANI_U8 num_rsvd;
3813 tANI_U8 rsvd[32];
3814} tDot11fIEHTInfo;
3815
3816#define DOT11F_EID_HTINFO ( 61 )
3817
3818// N.B. These #defines do *not* include the EID & length
3819#define DOT11F_IE_HTINFO_MIN_LEN ( 22 )
3820
3821#define DOT11F_IE_HTINFO_MAX_LEN ( 54 )
3822
3823#ifdef __cplusplus
3824extern "C" {
3825#endif /* C++ */
3826tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTInfo*);
3827
3828tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3829
3830tANI_U32 dot11fGetPackedIEHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U32*);
3831
3832#ifdef __cplusplus
3833}; /* End extern "C". */
3834#endif /* C++ */
3835// EID 6 (0x06)
3836typedef struct sDot11fIEIBSSParams {
3837 tANI_U8 present;
3838 tANI_U16 atim;
3839} tDot11fIEIBSSParams;
3840
3841#define DOT11F_EID_IBSSPARAMS ( 6 )
3842
3843// N.B. These #defines do *not* include the EID & length
3844#define DOT11F_IE_IBSSPARAMS_MIN_LEN ( 2 )
3845
3846#define DOT11F_IE_IBSSPARAMS_MAX_LEN ( 2 )
3847
3848#ifdef __cplusplus
3849extern "C" {
3850#endif /* C++ */
3851tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEIBSSParams*);
3852
3853tANI_U32 dot11fPackIeIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U8*, tANI_U32, tANI_U32*);
3854
3855tANI_U32 dot11fGetPackedIEIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U32*);
3856
3857#ifdef __cplusplus
3858}; /* End extern "C". */
3859#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003860// EID 101 (0x65)
3861typedef struct sDot11fIELinkIdentifier {
3862 tANI_U8 present;
3863 tANI_U8 bssid[6];
3864 tANI_U8 InitStaAddr[6];
3865 tANI_U8 RespStaAddr[6];
3866} tDot11fIELinkIdentifier;
3867
3868#define DOT11F_EID_LINKIDENTIFIER ( 101 )
3869
3870// N.B. These #defines do *not* include the EID & length
3871#define DOT11F_IE_LINKIDENTIFIER_MIN_LEN ( 18 )
3872
3873#define DOT11F_IE_LINKIDENTIFIER_MAX_LEN ( 18 )
3874
3875#ifdef __cplusplus
3876extern "C" {
3877#endif /* C++ */
3878tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELinkIdentifier*);
3879
3880tANI_U32 dot11fPackIeLinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U8*, tANI_U32, tANI_U32*);
3881
3882tANI_U32 dot11fGetPackedIELinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U32*);
3883
3884#ifdef __cplusplus
3885}; /* End extern "C". */
3886#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003887// EID 39 (0x27)
3888typedef struct sDot11fIEMeasurementReport {
3889 tANI_U8 present;
3890 tANI_U8 token;
3891 tANI_U8 late: 1;
3892 tANI_U8 incapable: 1;
3893 tANI_U8 refused: 1;
3894 tANI_U8 unused: 5;
3895 tANI_U8 type;
3896 union
3897 {
3898 struct
3899 {
3900 tANI_U8 channel;
3901 tDOT11F_U64 meas_start_time;
3902 tANI_U16 meas_duration;
3903 tANI_U8 bss: 1;
3904 tANI_U8 ofdm_preamble: 1;
3905 tANI_U8 unid_signal: 1;
3906 tANI_U8 rader: 1;
3907 tANI_U8 unmeasured: 1;
3908 tANI_U8 unused: 3;
3909 } Basic; /* type = 0 */
3910 struct
3911 {
3912 tANI_U8 channel;
3913 tDOT11F_U64 meas_start_time;
3914 tANI_U16 meas_duration;
3915 tANI_U8 cca_busy_fraction;
3916 } CCA; /* type = 1 */
3917 struct
3918 {
3919 tANI_U8 channel;
3920 tDOT11F_U64 meas_start_time;
3921 tANI_U16 meas_duration;
3922 tANI_U8 rpi0_density;
3923 tANI_U8 rpi1_density;
3924 tANI_U8 rpi2_density;
3925 tANI_U8 rpi3_density;
3926 tANI_U8 rpi4_density;
3927 tANI_U8 rpi5_density;
3928 tANI_U8 rpi6_density;
3929 tANI_U8 rpi7_density;
3930 } RPIHistogram; /* type = 2 */
3931 struct
3932 {
3933 tANI_U8 regClass;
3934 tANI_U8 channel;
3935 tDOT11F_U64 meas_start_time;
3936 tANI_U16 meas_duration;
3937 tANI_U8 condensed_PHY: 7;
3938 tANI_U8 reported_frame_type: 1;
3939 tANI_U8 RCPI;
3940 tANI_U8 RSNI;
3941 tANI_U8 BSSID[6];
3942 tANI_U8 antenna_id;
3943 tANI_U32 parent_TSF;
3944 tDot11fIEBeaconReportFrmBody BeaconReportFrmBody;
3945 } Beacon; /* type = 5 */
3946 } report;
3947} tDot11fIEMeasurementReport;
3948
3949#define DOT11F_EID_MEASUREMENTREPORT ( 39 )
3950
3951// N.B. These #defines do *not* include the EID & length
3952#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN ( 3 )
3953
3954#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN ( 29 )
3955
3956#ifdef __cplusplus
3957extern "C" {
3958#endif /* C++ */
3959tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementReport*);
3960
3961tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U8*, tANI_U32, tANI_U32*);
3962
3963tANI_U32 dot11fGetPackedIEMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U32*);
3964
3965#ifdef __cplusplus
3966}; /* End extern "C". */
3967#endif /* C++ */
3968// EID 38 (0x26)
3969typedef struct sDot11fIEMeasurementRequest {
3970 tANI_U8 present;
3971 tANI_U8 measurement_token;
3972 tANI_U8 parallel: 1;
3973 tANI_U8 enable: 1;
3974 tANI_U8 request: 1;
3975 tANI_U8 report: 1;
3976 tANI_U8 durationMandatory: 1;
3977 tANI_U8 unused: 3;
3978 tANI_U8 measurement_type;
3979 union
3980 {
3981 struct
3982 {
3983 tANI_U8 channel_no;
3984 tANI_U8 meas_start_time[8];
3985 tANI_U16 meas_duration;
3986 } Basic; /* measurement_type = 0 */
3987 struct
3988 {
3989 tANI_U8 channel_no;
3990 tANI_U8 meas_start_time[8];
3991 tANI_U16 meas_duration;
3992 } CCA; /* measurement_type = 1 */
3993 struct
3994 {
3995 tANI_U8 channel_no;
3996 tANI_U8 meas_start_time[8];
3997 tANI_U16 meas_duration;
3998 } RPIHistogram; /* measurement_type = 2 */
3999 struct
4000 {
4001 tANI_U8 regClass;
4002 tANI_U8 channel;
4003 tANI_U16 randomization;
4004 tANI_U16 meas_duration;
4005 tANI_U8 meas_mode;
4006 tANI_U8 BSSID[6];
4007 tDot11fIESSID SSID;
4008 tDot11fIEBeaconReporting BeaconReporting;
4009 tDot11fIEBcnReportingDetail BcnReportingDetail;
4010 tDot11fIERequestedInfo RequestedInfo;
4011 tANI_U16 num_APChannelReport;
4012 tDot11fIEAPChannelReport APChannelReport[2];
4013 } Beacon; /* measurement_type = 5 */
4014 } measurement_request;
4015} tDot11fIEMeasurementRequest;
4016
4017#define DOT11F_EID_MEASUREMENTREQUEST ( 38 )
4018
4019// N.B. These #defines do *not* include the EID & length
4020#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN ( 14 )
4021
4022#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN ( 16 )
4023
4024#ifdef __cplusplus
4025extern "C" {
4026#endif /* C++ */
4027tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementRequest*);
4028
4029tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U8*, tANI_U32, tANI_U32*);
4030
4031tANI_U32 dot11fGetPackedIEMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U32*);
4032
4033#ifdef __cplusplus
4034}; /* End extern "C". */
4035#endif /* C++ */
4036// EID 54 (0x36)
4037typedef struct sDot11fIEMobilityDomain {
4038 tANI_U8 present;
4039 tANI_U16 MDID;
4040 tANI_U8 overDSCap: 1;
4041 tANI_U8 resourceReqCap: 1;
4042 tANI_U8 reserved: 6;
4043} tDot11fIEMobilityDomain;
4044
4045#define DOT11F_EID_MOBILITYDOMAIN ( 54 )
4046
4047// N.B. These #defines do *not* include the EID & length
4048#define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN ( 3 )
4049
4050#define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN ( 3 )
4051
4052#ifdef __cplusplus
4053extern "C" {
4054#endif /* C++ */
4055tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMobilityDomain*);
4056
4057tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U8*, tANI_U32, tANI_U32*);
4058
4059tANI_U32 dot11fGetPackedIEMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U32*);
4060
4061#ifdef __cplusplus
4062}; /* End extern "C". */
4063#endif /* C++ */
4064// EID 52 (0x34)
4065typedef struct sDot11fIENeighborReport {
4066 tANI_U8 present;
4067 tANI_U8 bssid[6];
4068 tANI_U8 APReachability: 2;
4069 tANI_U8 Security: 1;
4070 tANI_U8 KeyScope: 1;
4071 tANI_U8 SpecMgmtCap: 1;
4072 tANI_U8 QosCap: 1;
4073 tANI_U8 apsd: 1;
4074 tANI_U8 rrm: 1;
4075 tANI_U8 DelayedBA: 1;
4076 tANI_U8 ImmBA: 1;
4077 tANI_U8 MobilityDomain: 1;
4078 tANI_U8 reserved: 5;
4079 tANI_U16 reserved1;
4080 tANI_U8 regulatoryClass;
4081 tANI_U8 channel;
4082 tANI_U8 PhyType;
4083 tDot11fIETSFInfo TSFInfo;
4084 tDot11fIECondensedCountryStr CondensedCountryStr;
4085 tDot11fIEMeasurementPilot MeasurementPilot;
4086 tDot11fIERRMEnabledCap RRMEnabledCap;
4087 tDot11fIEMultiBssid MultiBssid;
4088} tDot11fIENeighborReport;
4089
4090#define DOT11F_EID_NEIGHBORREPORT ( 52 )
4091
4092// N.B. These #defines do *not* include the EID & length
4093#define DOT11F_IE_NEIGHBORREPORT_MIN_LEN ( 13 )
4094
4095#define DOT11F_IE_NEIGHBORREPORT_MAX_LEN ( 546 )
4096
4097#ifdef __cplusplus
4098extern "C" {
4099#endif /* C++ */
4100tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIENeighborReport*);
4101
4102tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U8*, tANI_U32, tANI_U32*);
4103
4104tANI_U32 dot11fGetPackedIENeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U32*);
4105
4106#ifdef __cplusplus
4107}; /* End extern "C". */
4108#endif /* C++ */
Mohit Khanna4a70d262012-09-11 16:30:12 -07004109// EID 199 (0xc7)
4110typedef struct sDot11fIEOperatingMode {
4111 tANI_U8 present;
4112 tANI_U8 chanWidth: 2;
4113 tANI_U8 reserved: 2;
4114 tANI_U8 rxNSS: 3;
4115 tANI_U8 rxNSSType: 1;
4116} tDot11fIEOperatingMode;
4117
4118#define DOT11F_EID_OPERATINGMODE ( 199 )
4119
4120// N.B. These #defines do *not* include the EID & length
4121#define DOT11F_IE_OPERATINGMODE_MIN_LEN ( 1 )
4122
4123#define DOT11F_IE_OPERATINGMODE_MAX_LEN ( 1 )
4124
4125#ifdef __cplusplus
4126extern "C" {
4127#endif /* C++ */
4128tANI_U32 dot11fUnpackIeOperatingMode(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOperatingMode*);
4129
4130tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U8*, tANI_U32, tANI_U32*);
4131
4132tANI_U32 dot11fGetPackedIEOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U32*);
4133
4134#ifdef __cplusplus
4135}; /* End extern "C". */
4136#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004137// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4138typedef struct sDot11fIEP2PAssocReq {
4139 tANI_U8 present;
4140 tDot11fTLVP2PCapability P2PCapability;
4141 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4142 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4143} tDot11fIEP2PAssocReq;
4144
4145#define DOT11F_EID_P2PASSOCREQ ( 221 )
4146
4147// N.B. These #defines do *not* include the EID & length
4148#define DOT11F_IE_P2PASSOCREQ_MIN_LEN ( 4 )
4149
4150#define DOT11F_IE_P2PASSOCREQ_MAX_LEN ( 71 )
4151
4152#ifdef __cplusplus
4153extern "C" {
4154#endif /* C++ */
4155tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocReq*);
4156
4157tANI_U32 dot11fPackIeP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
4158
4159tANI_U32 dot11fGetPackedIEP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U32*);
4160
4161#ifdef __cplusplus
4162}; /* End extern "C". */
4163#endif /* C++ */
4164// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4165typedef struct sDot11fIEP2PAssocRes {
4166 tANI_U8 present;
4167 tDot11fTLVP2PStatus P2PStatus;
4168 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4169} tDot11fIEP2PAssocRes;
4170
4171#define DOT11F_EID_P2PASSOCRES ( 221 )
4172
4173// N.B. These #defines do *not* include the EID & length
4174#define DOT11F_IE_P2PASSOCRES_MIN_LEN ( 4 )
4175
4176#define DOT11F_IE_P2PASSOCRES_MAX_LEN ( 15 )
4177
4178#ifdef __cplusplus
4179extern "C" {
4180#endif /* C++ */
4181tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocRes*);
4182
4183tANI_U32 dot11fPackIeP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
4184
4185tANI_U32 dot11fGetPackedIEP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U32*);
4186
4187#ifdef __cplusplus
4188}; /* End extern "C". */
4189#endif /* C++ */
4190// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4191typedef struct sDot11fIEP2PBeacon {
4192 tANI_U8 present;
4193 tDot11fTLVP2PCapability P2PCapability;
4194 tDot11fTLVP2PDeviceId P2PDeviceId;
4195 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4196} tDot11fIEP2PBeacon;
4197
4198#define DOT11F_EID_P2PBEACON ( 221 )
4199
4200// N.B. These #defines do *not* include the EID & length
4201#define DOT11F_IE_P2PBEACON_MIN_LEN ( 4 )
4202
4203#define DOT11F_IE_P2PBEACON_MAX_LEN ( 59 )
4204
4205#ifdef __cplusplus
4206extern "C" {
4207#endif /* C++ */
4208tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeacon*);
4209
4210tANI_U32 dot11fPackIeP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
4211
4212tANI_U32 dot11fGetPackedIEP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U32*);
4213
4214#ifdef __cplusplus
4215}; /* End extern "C". */
4216#endif /* C++ */
4217// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4218typedef struct sDot11fIEP2PBeaconProbeRes {
4219 tANI_U8 present;
4220 tDot11fTLVP2PCapability P2PCapability;
4221 tDot11fTLVP2PDeviceId P2PDeviceId;
4222 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4223 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4224 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4225 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4226} tDot11fIEP2PBeaconProbeRes;
4227
4228#define DOT11F_EID_P2PBEACONPROBERES ( 221 )
4229
4230// N.B. These #defines do *not* include the EID & length
4231#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN ( 4 )
4232
4233#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN ( 1148 )
4234
4235#ifdef __cplusplus
4236extern "C" {
4237#endif /* C++ */
4238tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeaconProbeRes*);
4239
4240tANI_U32 dot11fPackIeP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4241
4242tANI_U32 dot11fGetPackedIEP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U32*);
4243
4244#ifdef __cplusplus
4245}; /* End extern "C". */
4246#endif /* C++ */
4247// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4248typedef struct sDot11fIEP2PDeAuth {
4249 tANI_U8 present;
4250 tDot11fTLVMinorReasonCode MinorReasonCode;
4251} tDot11fIEP2PDeAuth;
4252
4253#define DOT11F_EID_P2PDEAUTH ( 221 )
4254
4255// N.B. These #defines do *not* include the EID & length
4256#define DOT11F_IE_P2PDEAUTH_MIN_LEN ( 4 )
4257
4258#define DOT11F_IE_P2PDEAUTH_MAX_LEN ( 8 )
4259
4260#ifdef __cplusplus
4261extern "C" {
4262#endif /* C++ */
4263tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeAuth*);
4264
4265tANI_U32 dot11fPackIeP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U8*, tANI_U32, tANI_U32*);
4266
4267tANI_U32 dot11fGetPackedIEP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U32*);
4268
4269#ifdef __cplusplus
4270}; /* End extern "C". */
4271#endif /* C++ */
4272// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4273typedef struct sDot11fIEP2PDeviceDiscoverabilityReq {
4274 tANI_U8 present;
4275 tDot11fTLVP2PDeviceId P2PDeviceId;
4276 tDot11fTLVP2PGroupId P2PGroupId;
4277} tDot11fIEP2PDeviceDiscoverabilityReq;
4278
4279#define DOT11F_EID_P2PDEVICEDISCOVERABILITYREQ ( 221 )
4280
4281// N.B. These #defines do *not* include the EID & length
4282#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MIN_LEN ( 4 )
4283
4284#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MAX_LEN ( 54 )
4285
4286#ifdef __cplusplus
4287extern "C" {
4288#endif /* C++ */
4289tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityReq*);
4290
4291tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U8*, tANI_U32, tANI_U32*);
4292
4293tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U32*);
4294
4295#ifdef __cplusplus
4296}; /* End extern "C". */
4297#endif /* C++ */
4298// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4299typedef struct sDot11fIEP2PDeviceDiscoverabilityRes {
4300 tANI_U8 present;
4301 tDot11fTLVP2PStatus P2PStatus;
4302} tDot11fIEP2PDeviceDiscoverabilityRes;
4303
4304#define DOT11F_EID_P2PDEVICEDISCOVERABILITYRES ( 221 )
4305
4306// N.B. These #defines do *not* include the EID & length
4307#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MIN_LEN ( 4 )
4308
4309#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MAX_LEN ( 8 )
4310
4311#ifdef __cplusplus
4312extern "C" {
4313#endif /* C++ */
4314tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityRes*);
4315
4316tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U8*, tANI_U32, tANI_U32*);
4317
4318tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U32*);
4319
4320#ifdef __cplusplus
4321}; /* End extern "C". */
4322#endif /* C++ */
4323// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4324typedef struct sDot11fIEP2PDisAssoc {
4325 tANI_U8 present;
4326 tDot11fTLVMinorReasonCode MinorReasonCode;
4327} tDot11fIEP2PDisAssoc;
4328
4329#define DOT11F_EID_P2PDISASSOC ( 221 )
4330
4331// N.B. These #defines do *not* include the EID & length
4332#define DOT11F_IE_P2PDISASSOC_MIN_LEN ( 4 )
4333
4334#define DOT11F_IE_P2PDISASSOC_MAX_LEN ( 8 )
4335
4336#ifdef __cplusplus
4337extern "C" {
4338#endif /* C++ */
4339tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDisAssoc*);
4340
4341tANI_U32 dot11fPackIeP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U8*, tANI_U32, tANI_U32*);
4342
4343tANI_U32 dot11fGetPackedIEP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U32*);
4344
4345#ifdef __cplusplus
4346}; /* End extern "C". */
4347#endif /* C++ */
4348// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4349typedef struct sDot11fIEP2PGONegCnf {
4350 tANI_U8 present;
4351 tDot11fTLVP2PStatus P2PStatus;
4352 tDot11fTLVP2PCapability P2PCapability;
4353 tDot11fTLVOperatingChannel OperatingChannel;
4354 tDot11fTLVChannelList ChannelList;
4355 tDot11fTLVP2PGroupId P2PGroupId;
4356} tDot11fIEP2PGONegCnf;
4357
4358#define DOT11F_EID_P2PGONEGCNF ( 221 )
4359
4360// N.B. These #defines do *not* include the EID & length
4361#define DOT11F_IE_P2PGONEGCNF_MIN_LEN ( 4 )
4362
4363#define DOT11F_IE_P2PGONEGCNF_MAX_LEN ( 319 )
4364
4365#ifdef __cplusplus
4366extern "C" {
4367#endif /* C++ */
4368tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegCnf*);
4369
4370tANI_U32 dot11fPackIeP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U8*, tANI_U32, tANI_U32*);
4371
4372tANI_U32 dot11fGetPackedIEP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U32*);
4373
4374#ifdef __cplusplus
4375}; /* End extern "C". */
4376#endif /* C++ */
4377// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4378typedef struct sDot11fIEP2PGONegReq {
4379 tANI_U8 present;
4380 tDot11fTLVP2PCapability P2PCapability;
4381 tDot11fTLVGOIntent GOIntent;
4382 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4383 tDot11fTLVListenChannel ListenChannel;
4384 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4385 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4386 tDot11fTLVChannelList ChannelList;
4387 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4388 tDot11fTLVOperatingChannel OperatingChannel;
4389} tDot11fIEP2PGONegReq;
4390
4391#define DOT11F_EID_P2PGONEGREQ ( 221 )
4392
4393// N.B. These #defines do *not* include the EID & length
4394#define DOT11F_IE_P2PGONEGREQ_MIN_LEN ( 4 )
4395
4396#define DOT11F_IE_P2PGONEGREQ_MAX_LEN ( 362 )
4397
4398#ifdef __cplusplus
4399extern "C" {
4400#endif /* C++ */
4401tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegReq*);
4402
4403tANI_U32 dot11fPackIeP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U8*, tANI_U32, tANI_U32*);
4404
4405tANI_U32 dot11fGetPackedIEP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U32*);
4406
4407#ifdef __cplusplus
4408}; /* End extern "C". */
4409#endif /* C++ */
4410// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4411typedef struct sDot11fIEP2PGONegRes {
4412 tANI_U8 present;
4413 tDot11fTLVP2PStatus P2PStatus;
4414 tDot11fTLVP2PCapability P2PCapability;
4415 tDot11fTLVGOIntent GOIntent;
4416 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4417 tDot11fTLVOperatingChannel OperatingChannel;
4418 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4419 tDot11fTLVChannelList ChannelList;
4420 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4421 tDot11fTLVP2PGroupId P2PGroupId;
4422} tDot11fIEP2PGONegRes;
4423
4424#define DOT11F_EID_P2PGONEGRES ( 221 )
4425
4426// N.B. These #defines do *not* include the EID & length
4427#define DOT11F_IE_P2PGONEGRES_MIN_LEN ( 4 )
4428
4429#define DOT11F_IE_P2PGONEGRES_MAX_LEN ( 392 )
4430
4431#ifdef __cplusplus
4432extern "C" {
4433#endif /* C++ */
4434tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegRes*);
4435
4436tANI_U32 dot11fPackIeP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U8*, tANI_U32, tANI_U32*);
4437
4438tANI_U32 dot11fGetPackedIEP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U32*);
4439
4440#ifdef __cplusplus
4441}; /* End extern "C". */
4442#endif /* C++ */
4443// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4444typedef struct sDot11fIEP2PGONegWPS {
4445 tANI_U8 present;
4446 tDot11fTLVVersion Version;
4447 tDot11fTLVDevicePasswordID DevicePasswordID;
4448} tDot11fIEP2PGONegWPS;
4449
4450#define DOT11F_EID_P2PGONEGWPS ( 221 )
4451
4452// N.B. These #defines do *not* include the EID & length
4453#define DOT11F_IE_P2PGONEGWPS_MIN_LEN ( 4 )
4454
4455#define DOT11F_IE_P2PGONEGWPS_MAX_LEN ( 15 )
4456
4457#ifdef __cplusplus
4458extern "C" {
4459#endif /* C++ */
4460tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegWPS*);
4461
4462tANI_U32 dot11fPackIeP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U8*, tANI_U32, tANI_U32*);
4463
4464tANI_U32 dot11fGetPackedIEP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U32*);
4465
4466#ifdef __cplusplus
4467}; /* End extern "C". */
4468#endif /* C++ */
4469// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09}
4470typedef struct sDot11fIEP2PIEOpaque {
4471 tANI_U8 present;
4472 tANI_U8 num_data;
4473 tANI_U8 data[249];
4474} tDot11fIEP2PIEOpaque;
4475
4476#define DOT11F_EID_P2PIEOPAQUE ( 221 )
4477
4478// N.B. These #defines do *not* include the EID & length
4479#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN ( 6 )
4480
4481#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN ( 253 )
4482
4483#ifdef __cplusplus
4484extern "C" {
4485#endif /* C++ */
4486tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PIEOpaque*);
4487
4488tANI_U32 dot11fPackIeP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
4489
4490tANI_U32 dot11fGetPackedIEP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U32*);
4491
4492#ifdef __cplusplus
4493}; /* End extern "C". */
4494#endif /* C++ */
4495// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4496typedef struct sDot11fIEP2PInvitationReq {
4497 tANI_U8 present;
4498 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4499 tDot11fTLVInvitationFlags InvitationFlags;
4500 tDot11fTLVOperatingChannel OperatingChannel;
4501 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4502 tDot11fTLVChannelList ChannelList;
4503 tDot11fTLVP2PGroupId P2PGroupId;
4504 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4505} tDot11fIEP2PInvitationReq;
4506
4507#define DOT11F_EID_P2PINVITATIONREQ ( 221 )
4508
4509// N.B. These #defines do *not* include the EID & length
4510#define DOT11F_IE_P2PINVITATIONREQ_MIN_LEN ( 4 )
4511
4512#define DOT11F_IE_P2PINVITATIONREQ_MAX_LEN ( 383 )
4513
4514#ifdef __cplusplus
4515extern "C" {
4516#endif /* C++ */
4517tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationReq*);
4518
4519tANI_U32 dot11fPackIeP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U8*, tANI_U32, tANI_U32*);
4520
4521tANI_U32 dot11fGetPackedIEP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U32*);
4522
4523#ifdef __cplusplus
4524}; /* End extern "C". */
4525#endif /* C++ */
4526// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4527typedef struct sDot11fIEP2PInvitationRes {
4528 tANI_U8 present;
4529 tDot11fTLVP2PStatus P2PStatus;
4530 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4531 tDot11fTLVOperatingChannel OperatingChannel;
4532 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4533 tDot11fTLVChannelList ChannelList;
4534} tDot11fIEP2PInvitationRes;
4535
4536#define DOT11F_EID_P2PINVITATIONRES ( 221 )
4537
4538// N.B. These #defines do *not* include the EID & length
4539#define DOT11F_IE_P2PINVITATIONRES_MIN_LEN ( 4 )
4540
4541#define DOT11F_IE_P2PINVITATIONRES_MAX_LEN ( 287 )
4542
4543#ifdef __cplusplus
4544extern "C" {
4545#endif /* C++ */
4546tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationRes*);
4547
4548tANI_U32 dot11fPackIeP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U8*, tANI_U32, tANI_U32*);
4549
4550tANI_U32 dot11fGetPackedIEP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U32*);
4551
4552#ifdef __cplusplus
4553}; /* End extern "C". */
4554#endif /* C++ */
4555// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4556typedef struct sDot11fIEP2PNoticeOfAbsence {
4557 tANI_U8 present;
4558 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4559} tDot11fIEP2PNoticeOfAbsence;
4560
4561#define DOT11F_EID_P2PNOTICEOFABSENCE ( 221 )
4562
4563// N.B. These #defines do *not* include the EID & length
4564#define DOT11F_IE_P2PNOTICEOFABSENCE_MIN_LEN ( 4 )
4565
4566#define DOT11F_IE_P2PNOTICEOFABSENCE_MAX_LEN ( 45 )
4567
4568#ifdef __cplusplus
4569extern "C" {
4570#endif /* C++ */
4571tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PNoticeOfAbsence*);
4572
4573tANI_U32 dot11fPackIeP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
4574
4575tANI_U32 dot11fGetPackedIEP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U32*);
4576
4577#ifdef __cplusplus
4578}; /* End extern "C". */
4579#endif /* C++ */
4580// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4581typedef struct sDot11fIEP2PPresenceResponse {
4582 tANI_U8 present;
4583 tDot11fTLVP2PStatus P2PStatus;
4584 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4585} tDot11fIEP2PPresenceResponse;
4586
4587#define DOT11F_EID_P2PPRESENCERESPONSE ( 221 )
4588
4589// N.B. These #defines do *not* include the EID & length
4590#define DOT11F_IE_P2PPRESENCERESPONSE_MIN_LEN ( 4 )
4591
4592#define DOT11F_IE_P2PPRESENCERESPONSE_MAX_LEN ( 49 )
4593
4594#ifdef __cplusplus
4595extern "C" {
4596#endif /* C++ */
4597tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PPresenceResponse*);
4598
4599tANI_U32 dot11fPackIeP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U8*, tANI_U32, tANI_U32*);
4600
4601tANI_U32 dot11fGetPackedIEP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U32*);
4602
4603#ifdef __cplusplus
4604}; /* End extern "C". */
4605#endif /* C++ */
4606// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4607typedef struct sDot11fIEP2PProbeReq {
4608 tANI_U8 present;
4609 tDot11fTLVP2PCapability P2PCapability;
4610 tDot11fTLVP2PDeviceId P2PDeviceId;
4611 tDot11fTLVListenChannel ListenChannel;
4612 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4613 tDot11fTLVOperatingChannel OperatingChannel;
4614} tDot11fIEP2PProbeReq;
4615
4616#define DOT11F_EID_P2PPROBEREQ ( 221 )
4617
4618// N.B. These #defines do *not* include the EID & length
4619#define DOT11F_IE_P2PPROBEREQ_MIN_LEN ( 4 )
4620
4621#define DOT11F_IE_P2PPROBEREQ_MAX_LEN ( 41 )
4622
4623#ifdef __cplusplus
4624extern "C" {
4625#endif /* C++ */
4626tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeReq*);
4627
4628tANI_U32 dot11fPackIeP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
4629
4630tANI_U32 dot11fGetPackedIEP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U32*);
4631
4632#ifdef __cplusplus
4633}; /* End extern "C". */
4634#endif /* C++ */
4635// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4636typedef struct sDot11fIEP2PProbeRes {
4637 tANI_U8 present;
4638 tDot11fTLVP2PCapability P2PCapability;
4639 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4640 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4641 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4642 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4643} tDot11fIEP2PProbeRes;
4644
4645#define DOT11F_EID_P2PPROBERES ( 221 )
4646
4647// N.B. These #defines do *not* include the EID & length
4648#define DOT11F_IE_P2PPROBERES_MIN_LEN ( 4 )
4649
4650#define DOT11F_IE_P2PPROBERES_MAX_LEN ( 1139 )
4651
4652#ifdef __cplusplus
4653extern "C" {
4654#endif /* C++ */
4655tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeRes*);
4656
4657tANI_U32 dot11fPackIeP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4658
4659tANI_U32 dot11fGetPackedIEP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U32*);
4660
4661#ifdef __cplusplus
4662}; /* End extern "C". */
4663#endif /* C++ */
4664// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4665typedef struct sDot11fIEP2PProvisionDiscoveryReq {
4666 tANI_U8 present;
4667 tDot11fTLVP2PCapability P2PCapability;
4668 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4669 tDot11fTLVP2PGroupId P2PGroupId;
4670} tDot11fIEP2PProvisionDiscoveryReq;
4671
4672#define DOT11F_EID_P2PPROVISIONDISCOVERYREQ ( 221 )
4673
4674// N.B. These #defines do *not* include the EID & length
4675#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MIN_LEN ( 4 )
4676
4677#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MAX_LEN ( 105 )
4678
4679#ifdef __cplusplus
4680extern "C" {
4681#endif /* C++ */
4682tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProvisionDiscoveryReq*);
4683
4684tANI_U32 dot11fPackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U8*, tANI_U32, tANI_U32*);
4685
4686tANI_U32 dot11fGetPackedIEP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U32*);
4687
4688#ifdef __cplusplus
4689}; /* End extern "C". */
4690#endif /* C++ */
4691// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4692typedef struct sDot11fIEP2PWSCProvisionDiscoveryRes {
4693 tANI_U8 present;
4694 tDot11fTLVConfigMethods ConfigMethods;
4695} tDot11fIEP2PWSCProvisionDiscoveryRes;
4696
4697#define DOT11F_EID_P2PWSCPROVISIONDISCOVERYRES ( 221 )
4698
4699// N.B. These #defines do *not* include the EID & length
4700#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MIN_LEN ( 4 )
4701
4702#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MAX_LEN ( 10 )
4703
4704#ifdef __cplusplus
4705extern "C" {
4706#endif /* C++ */
4707tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PWSCProvisionDiscoveryRes*);
4708
4709tANI_U32 dot11fPackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U8*, tANI_U32, tANI_U32*);
4710
4711tANI_U32 dot11fGetPackedIEP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U32*);
4712
4713#ifdef __cplusplus
4714}; /* End extern "C". */
4715#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004716// EID 105 (0x69)
4717typedef struct sDot11fIEPTIControl {
4718 tANI_U8 present;
4719 tANI_U8 tid;
4720 tANI_U16 sequence_control;
4721} tDot11fIEPTIControl;
4722
4723#define DOT11F_EID_PTICONTROL ( 105 )
4724
4725// N.B. These #defines do *not* include the EID & length
4726#define DOT11F_IE_PTICONTROL_MIN_LEN ( 3 )
4727
4728#define DOT11F_IE_PTICONTROL_MAX_LEN ( 3 )
4729
4730#ifdef __cplusplus
4731extern "C" {
4732#endif /* C++ */
4733tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPTIControl*);
4734
4735tANI_U32 dot11fPackIePTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U8*, tANI_U32, tANI_U32*);
4736
4737tANI_U32 dot11fGetPackedIEPTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U32*);
4738
4739#ifdef __cplusplus
4740}; /* End extern "C". */
4741#endif /* C++ */
4742// EID 106 (0x6a)
4743typedef struct sDot11fIEPUBufferStatus {
4744 tANI_U8 present;
4745 tANI_U8 ac_bk_traffic_aval: 1;
4746 tANI_U8 ac_be_traffic_aval: 1;
4747 tANI_U8 ac_vi_traffic_aval: 1;
4748 tANI_U8 ac_vo_traffic_aval: 1;
4749 tANI_U8 reserved: 4;
4750} tDot11fIEPUBufferStatus;
4751
4752#define DOT11F_EID_PUBUFFERSTATUS ( 106 )
4753
4754// N.B. These #defines do *not* include the EID & length
4755#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN ( 1 )
4756
4757#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN ( 1 )
4758
4759#ifdef __cplusplus
4760extern "C" {
4761#endif /* C++ */
4762tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPUBufferStatus*);
4763
4764tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U8*, tANI_U32, tANI_U32*);
4765
4766tANI_U32 dot11fGetPackedIEPUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U32*);
4767
4768#ifdef __cplusplus
4769}; /* End extern "C". */
4770#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004771// EID 33 (0x21)
4772typedef struct sDot11fIEPowerCaps {
4773 tANI_U8 present;
4774 tANI_U8 minTxPower;
4775 tANI_U8 maxTxPower;
4776} tDot11fIEPowerCaps;
4777
4778#define DOT11F_EID_POWERCAPS ( 33 )
4779
4780// N.B. These #defines do *not* include the EID & length
4781#define DOT11F_IE_POWERCAPS_MIN_LEN ( 2 )
4782
4783#define DOT11F_IE_POWERCAPS_MAX_LEN ( 2 )
4784
4785#ifdef __cplusplus
4786extern "C" {
4787#endif /* C++ */
4788tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerCaps*);
4789
4790tANI_U32 dot11fPackIePowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U8*, tANI_U32, tANI_U32*);
4791
4792tANI_U32 dot11fGetPackedIEPowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U32*);
4793
4794#ifdef __cplusplus
4795}; /* End extern "C". */
4796#endif /* C++ */
4797// EID 32 (0x20)
4798typedef struct sDot11fIEPowerConstraints {
4799 tANI_U8 present;
4800 tANI_U8 localPowerConstraints;
4801} tDot11fIEPowerConstraints;
4802
4803#define DOT11F_EID_POWERCONSTRAINTS ( 32 )
4804
4805// N.B. These #defines do *not* include the EID & length
4806#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN ( 1 )
4807
4808#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN ( 1 )
4809
4810#ifdef __cplusplus
4811extern "C" {
4812#endif /* C++ */
4813tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerConstraints*);
4814
4815tANI_U32 dot11fPackIePowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U8*, tANI_U32, tANI_U32*);
4816
4817tANI_U32 dot11fGetPackedIEPowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U32*);
4818
4819#ifdef __cplusplus
4820}; /* End extern "C". */
4821#endif /* C++ */
4822// EID 11 (0x0b)
4823typedef struct sDot11fIEQBSSLoad {
4824 tANI_U8 present;
4825 tANI_U16 stacount;
4826 tANI_U8 chautil;
4827 tANI_U16 avail;
4828} tDot11fIEQBSSLoad;
4829
4830#define DOT11F_EID_QBSSLOAD ( 11 )
4831
4832// N.B. These #defines do *not* include the EID & length
4833#define DOT11F_IE_QBSSLOAD_MIN_LEN ( 5 )
4834
4835#define DOT11F_IE_QBSSLOAD_MAX_LEN ( 5 )
4836
4837#ifdef __cplusplus
4838extern "C" {
4839#endif /* C++ */
4840tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQBSSLoad*);
4841
4842tANI_U32 dot11fPackIeQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U8*, tANI_U32, tANI_U32*);
4843
4844tANI_U32 dot11fGetPackedIEQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U32*);
4845
4846#ifdef __cplusplus
4847}; /* End extern "C". */
4848#endif /* C++ */
4849// EID 46 (0x2e)
4850typedef struct sDot11fIEQOSCapsAp {
4851 tANI_U8 present;
4852 tANI_U8 reserved: 1;
4853 tANI_U8 txopreq: 1;
4854 tANI_U8 qreq: 1;
4855 tANI_U8 qack: 1;
4856 tANI_U8 count: 4;
4857} tDot11fIEQOSCapsAp;
4858
4859#define DOT11F_EID_QOSCAPSAP ( 46 )
4860
4861// N.B. These #defines do *not* include the EID & length
4862#define DOT11F_IE_QOSCAPSAP_MIN_LEN ( 1 )
4863
4864#define DOT11F_IE_QOSCAPSAP_MAX_LEN ( 1 )
4865
4866#ifdef __cplusplus
4867extern "C" {
4868#endif /* C++ */
4869tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsAp*);
4870
4871tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U8*, tANI_U32, tANI_U32*);
4872
4873tANI_U32 dot11fGetPackedIEQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U32*);
4874
4875#ifdef __cplusplus
4876}; /* End extern "C". */
4877#endif /* C++ */
4878// EID 46 (0x2e)
4879typedef struct sDot11fIEQOSCapsStation {
4880 tANI_U8 present;
4881 tANI_U8 more_data_ack: 1;
4882 tANI_U8 max_sp_length: 2;
4883 tANI_U8 qack: 1;
4884 tANI_U8 acbe_uapsd: 1;
4885 tANI_U8 acbk_uapsd: 1;
4886 tANI_U8 acvi_uapsd: 1;
4887 tANI_U8 acvo_uapsd: 1;
4888} tDot11fIEQOSCapsStation;
4889
4890#define DOT11F_EID_QOSCAPSSTATION ( 46 )
4891
4892// N.B. These #defines do *not* include the EID & length
4893#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN ( 1 )
4894
4895#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN ( 1 )
4896
4897#ifdef __cplusplus
4898extern "C" {
4899#endif /* C++ */
4900tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsStation*);
4901
4902tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U8*, tANI_U32, tANI_U32*);
4903
4904tANI_U32 dot11fGetPackedIEQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U32*);
4905
4906#ifdef __cplusplus
4907}; /* End extern "C". */
4908#endif /* C++ */
4909// EID 40 (0x28)
4910typedef struct sDot11fIEQuiet {
4911 tANI_U8 present;
4912 tANI_U8 count;
4913 tANI_U8 period;
4914 tANI_U16 duration;
4915 tANI_U16 offset;
4916} tDot11fIEQuiet;
4917
4918#define DOT11F_EID_QUIET ( 40 )
4919
4920// N.B. These #defines do *not* include the EID & length
4921#define DOT11F_IE_QUIET_MIN_LEN ( 6 )
4922
4923#define DOT11F_IE_QUIET_MAX_LEN ( 6 )
4924
4925#ifdef __cplusplus
4926extern "C" {
4927#endif /* C++ */
4928tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQuiet*);
4929
4930tANI_U32 dot11fPackIeQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U8*, tANI_U32, tANI_U32*);
4931
4932tANI_U32 dot11fGetPackedIEQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U32*);
4933
4934#ifdef __cplusplus
4935}; /* End extern "C". */
4936#endif /* C++ */
4937// EID 53 (0x35)
4938typedef struct sDot11fIERCPIIE {
4939 tANI_U8 present;
4940 tANI_U8 rcpi;
4941} tDot11fIERCPIIE;
4942
4943#define DOT11F_EID_RCPIIE ( 53 )
4944
4945// N.B. These #defines do *not* include the EID & length
4946#define DOT11F_IE_RCPIIE_MIN_LEN ( 1 )
4947
4948#define DOT11F_IE_RCPIIE_MAX_LEN ( 1 )
4949
4950#ifdef __cplusplus
4951extern "C" {
4952#endif /* C++ */
4953tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERCPIIE*);
4954
4955tANI_U32 dot11fPackIeRCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U8*, tANI_U32, tANI_U32*);
4956
4957tANI_U32 dot11fGetPackedIERCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U32*);
4958
4959#ifdef __cplusplus
4960}; /* End extern "C". */
4961#endif /* C++ */
4962// EID 57 (0x39)
4963typedef struct sDot11fIERICDataDesc {
4964 tANI_U8 present;
4965 tDot11fIERICData RICData;
4966 tDot11fIERICDescriptor RICDescriptor;
4967 tDot11fIETSPEC TSPEC;
4968 tANI_U16 num_TCLAS;
4969 tDot11fIETCLAS TCLAS[2];
4970 tDot11fIETCLASSPROC TCLASSPROC;
4971 tDot11fIETSDelay TSDelay;
4972 tDot11fIESchedule Schedule;
4973 tDot11fIEWMMTSPEC WMMTSPEC;
4974 tANI_U16 num_WMMTCLAS;
4975 tDot11fIEWMMTCLAS WMMTCLAS[2];
4976 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
4977 tDot11fIEWMMTSDelay WMMTSDelay;
4978 tDot11fIEWMMSchedule WMMSchedule;
4979} tDot11fIERICDataDesc;
4980
4981#define DOT11F_EID_RICDATADESC ( 57 )
4982
4983// N.B. These #defines do *not* include the EID & length
4984#define DOT11F_IE_RICDATADESC_MIN_LEN ( 0 )
4985
4986#define DOT11F_IE_RICDATADESC_MAX_LEN ( 548 )
4987
4988#ifdef __cplusplus
4989extern "C" {
4990#endif /* C++ */
4991tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDataDesc*);
4992
4993tANI_U32 dot11fPackIeRICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U8*, tANI_U32, tANI_U32*);
4994
4995tANI_U32 dot11fGetPackedIERICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U32*);
4996
4997#ifdef __cplusplus
4998}; /* End extern "C". */
4999#endif /* C++ */
5000// EID 48 (0x30)
5001typedef struct sDot11fIERSN {
5002 tANI_U8 present;
5003 tANI_U16 version /* Must be 1! */;
5004 tANI_U8 gp_cipher_suite[4];
5005 tANI_U16 pwise_cipher_suite_count;
5006 tANI_U8 pwise_cipher_suites[4][4];
5007 tANI_U16 akm_suite_count;
5008 tANI_U8 akm_suites[4][4];
5009 tANI_U16 preauth: 1;
5010 tANI_U16 no_pwise: 1;
5011 tANI_U16 PTKSA_replay_counter: 2;
5012 tANI_U16 GTKSA_replay_counter: 2;
5013 tANI_U16 reserved: 10;
5014 tANI_U16 pmkid_count;
5015 tANI_U8 pmkid[4][16];
5016} tDot11fIERSN;
5017
5018#define DOT11F_EID_RSN ( 48 )
5019
5020// N.B. These #defines do *not* include the EID & length
5021#define DOT11F_IE_RSN_MIN_LEN ( 6 )
5022
5023#define DOT11F_IE_RSN_MAX_LEN ( 110 )
5024
5025#ifdef __cplusplus
5026extern "C" {
5027#endif /* C++ */
5028tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSN*);
5029
5030tANI_U32 dot11fPackIeRSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U8*, tANI_U32, tANI_U32*);
5031
5032tANI_U32 dot11fGetPackedIERSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U32*);
5033
5034#ifdef __cplusplus
5035}; /* End extern "C". */
5036#endif /* C++ */
5037// EID 65 (0x41)
5038typedef struct sDot11fIERSNIIE {
5039 tANI_U8 present;
5040 tANI_U8 rsni;
5041} tDot11fIERSNIIE;
5042
5043#define DOT11F_EID_RSNIIE ( 65 )
5044
5045// N.B. These #defines do *not* include the EID & length
5046#define DOT11F_IE_RSNIIE_MIN_LEN ( 1 )
5047
5048#define DOT11F_IE_RSNIIE_MAX_LEN ( 1 )
5049
5050#ifdef __cplusplus
5051extern "C" {
5052#endif /* C++ */
5053tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNIIE*);
5054
5055tANI_U32 dot11fPackIeRSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5056
5057tANI_U32 dot11fGetPackedIERSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U32*);
5058
5059#ifdef __cplusplus
5060}; /* End extern "C". */
5061#endif /* C++ */
5062// EID 48 (0x30)
5063typedef struct sDot11fIERSNOpaque {
5064 tANI_U8 present;
5065 tANI_U8 num_data;
5066 tANI_U8 data[253];
5067} tDot11fIERSNOpaque;
5068
5069#define DOT11F_EID_RSNOPAQUE ( 48 )
5070
5071// N.B. These #defines do *not* include the EID & length
5072#define DOT11F_IE_RSNOPAQUE_MIN_LEN ( 6 )
5073
5074#define DOT11F_IE_RSNOPAQUE_MAX_LEN ( 253 )
5075
5076#ifdef __cplusplus
5077extern "C" {
5078#endif /* C++ */
5079tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNOpaque*);
5080
5081tANI_U32 dot11fPackIeRSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5082
5083tANI_U32 dot11fGetPackedIERSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U32*);
5084
5085#ifdef __cplusplus
5086}; /* End extern "C". */
5087#endif /* C++ */
5088// EID 36 (0x24)
5089typedef struct sDot11fIESuppChannels {
5090 tANI_U8 present;
5091 tANI_U8 num_bands;
5092 tANI_U8 bands[48][2];
5093} tDot11fIESuppChannels;
5094
5095#define DOT11F_EID_SUPPCHANNELS ( 36 )
5096
5097// N.B. These #defines do *not* include the EID & length
5098#define DOT11F_IE_SUPPCHANNELS_MIN_LEN ( 2 )
5099
5100#define DOT11F_IE_SUPPCHANNELS_MAX_LEN ( 96 )
5101
5102#ifdef __cplusplus
5103extern "C" {
5104#endif /* C++ */
5105tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppChannels*);
5106
5107tANI_U32 dot11fPackIeSuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U8*, tANI_U32, tANI_U32*);
5108
5109tANI_U32 dot11fGetPackedIESuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U32*);
5110
5111#ifdef __cplusplus
5112}; /* End extern "C". */
5113#endif /* C++ */
5114// EID 1 (0x01)
5115typedef struct sDot11fIESuppRates {
5116 tANI_U8 present;
5117 tANI_U8 num_rates;
5118 tANI_U8 rates[12];
5119} tDot11fIESuppRates;
5120
5121#define DOT11F_EID_SUPPRATES ( 1 )
5122
5123// N.B. These #defines do *not* include the EID & length
5124#define DOT11F_IE_SUPPRATES_MIN_LEN ( 0 )
5125
5126#define DOT11F_IE_SUPPRATES_MAX_LEN ( 12 )
5127
5128#define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \
5129 ((_x) == 04) || \
5130 ((_x) == 11) || \
5131 ((_x) == 22) || \
5132 ((_x) == 12) || \
5133 ((_x) == 18) || \
5134 ((_x) == 24) || \
5135 ((_x) == 36) || \
5136 ((_x) == 48) || \
5137 ((_x) == 72) || \
5138 ((_x) == 96) || \
5139 ((_x) == 108))
5140
5141#ifdef __cplusplus
5142extern "C" {
5143#endif /* C++ */
5144tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppRates*);
5145
5146tANI_U32 dot11fPackIeSuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
5147
5148tANI_U32 dot11fGetPackedIESuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U32*);
5149
5150#ifdef __cplusplus
5151}; /* End extern "C". */
5152#endif /* C++ */
5153// EID 5 (0x05)
5154typedef struct sDot11fIETIM {
5155 tANI_U8 present;
5156 tANI_U8 dtim_count;
5157 tANI_U8 dtim_period;
5158 tANI_U8 bmpctl;
5159 tANI_U8 num_vbmp;
5160 tANI_U8 vbmp[251];
5161} tDot11fIETIM;
5162
5163#define DOT11F_EID_TIM ( 5 )
5164
5165// N.B. These #defines do *not* include the EID & length
5166#define DOT11F_IE_TIM_MIN_LEN ( 4 )
5167
5168#define DOT11F_IE_TIM_MAX_LEN ( 254 )
5169
5170#ifdef __cplusplus
5171extern "C" {
5172#endif /* C++ */
5173tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETIM*);
5174
5175tANI_U32 dot11fPackIeTIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U8*, tANI_U32, tANI_U32*);
5176
5177tANI_U32 dot11fGetPackedIETIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U32*);
5178
5179#ifdef __cplusplus
5180}; /* End extern "C". */
5181#endif /* C++ */
5182// EID 35 (0x23)
5183typedef struct sDot11fIETPCReport {
5184 tANI_U8 present;
5185 tANI_U8 tx_power;
5186 tANI_U8 link_margin;
5187} tDot11fIETPCReport;
5188
5189#define DOT11F_EID_TPCREPORT ( 35 )
5190
5191// N.B. These #defines do *not* include the EID & length
5192#define DOT11F_IE_TPCREPORT_MIN_LEN ( 2 )
5193
5194#define DOT11F_IE_TPCREPORT_MAX_LEN ( 2 )
5195
5196#ifdef __cplusplus
5197extern "C" {
5198#endif /* C++ */
5199tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCReport*);
5200
5201tANI_U32 dot11fPackIeTPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U8*, tANI_U32, tANI_U32*);
5202
5203tANI_U32 dot11fGetPackedIETPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U32*);
5204
5205#ifdef __cplusplus
5206}; /* End extern "C". */
5207#endif /* C++ */
5208// EID 34 (0x22)
5209typedef struct sDot11fIETPCRequest {
5210 tANI_U8 present;
5211} tDot11fIETPCRequest;
5212
5213#define DOT11F_EID_TPCREQUEST ( 34 )
5214
5215// N.B. These #defines do *not* include the EID & length
5216#define DOT11F_IE_TPCREQUEST_MIN_LEN ( 0 )
5217
5218#define DOT11F_IE_TPCREQUEST_MAX_LEN ( 0 )
5219
5220#ifdef __cplusplus
5221extern "C" {
5222#endif /* C++ */
5223tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCRequest*);
5224
5225tANI_U32 dot11fPackIeTPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U8*, tANI_U32, tANI_U32*);
5226
5227tANI_U32 dot11fGetPackedIETPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U32*);
5228
5229#ifdef __cplusplus
5230}; /* End extern "C". */
5231#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005232// EID 191 (0xbf)
5233typedef struct sDot11fIEVHTCaps {
5234 tANI_U8 present;
5235 tANI_U32 maxMPDULen: 2;
5236 tANI_U32 supportedChannelWidthSet: 2;
5237 tANI_U32 ldpcCodingCap: 1;
5238 tANI_U32 shortGI80MHz: 1;
5239 tANI_U32 shortGI160and80plus80MHz: 1;
5240 tANI_U32 txSTBC: 1;
5241 tANI_U32 rxSTBC: 3;
5242 tANI_U32 suBeamFormerCap: 1;
5243 tANI_U32 suBeamformeeCap: 1;
5244 tANI_U32 csnofBeamformerAntSup: 3;
5245 tANI_U32 numSoundingDim: 3;
5246 tANI_U32 muBeamformerCap: 1;
5247 tANI_U32 muBeamformeeCap: 1;
5248 tANI_U32 vhtTXOPPS: 1;
5249 tANI_U32 htcVHTCap: 1;
5250 tANI_U32 maxAMPDULenExp: 3;
5251 tANI_U32 vhtLinkAdaptCap: 2;
5252 tANI_U32 rxAntPattern: 1;
5253 tANI_U32 txAntPattern: 1;
5254 tANI_U32 reserved1: 2;
5255 tANI_U16 rxMCSMap;
5256 tANI_U16 rxHighSupDataRate: 13;
5257 tANI_U16 reserved2: 3;
5258 tANI_U16 txMCSMap;
5259 tANI_U16 txSupDataRate: 13;
5260 tANI_U16 reserved3: 3;
5261} tDot11fIEVHTCaps;
5262
5263#define DOT11F_EID_VHTCAPS ( 191 )
5264
5265// N.B. These #defines do *not* include the EID & length
5266#define DOT11F_IE_VHTCAPS_MIN_LEN ( 12 )
5267
5268#define DOT11F_IE_VHTCAPS_MAX_LEN ( 12 )
5269
5270#ifdef __cplusplus
5271extern "C" {
5272#endif /* C++ */
5273tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTCaps*);
5274
5275tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5276
5277tANI_U32 dot11fGetPackedIEVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U32*);
5278
5279#ifdef __cplusplus
5280}; /* End extern "C". */
5281#endif /* C++ */
5282// EID 193 (0xc1)
5283typedef struct sDot11fIEVHTExtBssLoad {
5284 tANI_U8 present;
5285 tANI_U8 muMIMOCapStaCount;
5286 tANI_U8 ssUnderUtil;
5287 tANI_U8 FortyMHzUtil;
5288 tANI_U8 EightyMHzUtil;
5289 tANI_U8 OneSixtyMHzUtil;
5290} tDot11fIEVHTExtBssLoad;
5291
5292#define DOT11F_EID_VHTEXTBSSLOAD ( 193 )
5293
5294// N.B. These #defines do *not* include the EID & length
5295#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN ( 5 )
5296
5297#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN ( 5 )
5298
5299#ifdef __cplusplus
5300extern "C" {
5301#endif /* C++ */
5302tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTExtBssLoad*);
5303
5304tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U8*, tANI_U32, tANI_U32*);
5305
5306tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U32*);
5307
5308#ifdef __cplusplus
5309}; /* End extern "C". */
5310#endif /* C++ */
5311// EID 192 (0xc0)
5312typedef struct sDot11fIEVHTOperation {
5313 tANI_U8 present;
5314 tANI_U8 chanWidth;
5315 tANI_U8 chanCenterFreqSeg1;
5316 tANI_U8 chanCenterFreqSeg2;
5317 tANI_U16 basicMCSSet;
5318} tDot11fIEVHTOperation;
5319
5320#define DOT11F_EID_VHTOPERATION ( 192 )
5321
5322// N.B. These #defines do *not* include the EID & length
5323#define DOT11F_IE_VHTOPERATION_MIN_LEN ( 5 )
5324
5325#define DOT11F_IE_VHTOPERATION_MAX_LEN ( 5 )
5326
5327#ifdef __cplusplus
5328extern "C" {
5329#endif /* C++ */
5330tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTOperation*);
5331
5332tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U8*, tANI_U32, tANI_U32*);
5333
5334tANI_U32 dot11fGetPackedIEVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U32*);
5335
5336#ifdef __cplusplus
5337}; /* End extern "C". */
5338#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005339// EID 68 (0x44)
5340typedef struct sDot11fIEWAPI {
5341 tANI_U8 present;
5342 tANI_U16 version /* Must be 1! */;
5343 tANI_U16 akm_suite_count;
5344 tANI_U8 akm_suites[4][4];
5345 tANI_U16 unicast_cipher_suite_count;
5346 tANI_U8 unicast_cipher_suites[4][4];
5347 tANI_U8 multicast_cipher_suite[4];
5348 tANI_U16 preauth: 1;
5349 tANI_U16 reserved: 15;
5350 tANI_U16 bkid_count;
5351 tANI_U8 bkid[4][16];
5352} tDot11fIEWAPI;
5353
5354#define DOT11F_EID_WAPI ( 68 )
5355
5356// N.B. These #defines do *not* include the EID & length
5357#define DOT11F_IE_WAPI_MIN_LEN ( 12 )
5358
5359#define DOT11F_IE_WAPI_MAX_LEN ( 110 )
5360
5361#ifdef __cplusplus
5362extern "C" {
5363#endif /* C++ */
5364tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPI*);
5365
5366tANI_U32 dot11fPackIeWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U8*, tANI_U32, tANI_U32*);
5367
5368tANI_U32 dot11fGetPackedIEWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U32*);
5369
5370#ifdef __cplusplus
5371}; /* End extern "C". */
5372#endif /* C++ */
5373// EID 68 (0x44)
5374typedef struct sDot11fIEWAPIOpaque {
5375 tANI_U8 present;
5376 tANI_U8 num_data;
5377 tANI_U8 data[253];
5378} tDot11fIEWAPIOpaque;
5379
5380#define DOT11F_EID_WAPIOPAQUE ( 68 )
5381
5382// N.B. These #defines do *not* include the EID & length
5383#define DOT11F_IE_WAPIOPAQUE_MIN_LEN ( 6 )
5384
5385#define DOT11F_IE_WAPIOPAQUE_MAX_LEN ( 253 )
5386
5387#ifdef __cplusplus
5388extern "C" {
5389#endif /* C++ */
5390tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPIOpaque*);
5391
5392tANI_U32 dot11fPackIeWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5393
5394tANI_U32 dot11fGetPackedIEWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U32*);
5395
5396#ifdef __cplusplus
5397}; /* End extern "C". */
5398#endif /* C++ */
5399// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00}
5400typedef struct sDot11fIEWFATPC {
5401 tANI_U8 present;
5402 tANI_U8 txPower;
5403 tANI_U8 linkMargin;
5404} tDot11fIEWFATPC;
5405
5406#define DOT11F_EID_WFATPC ( 221 )
5407
5408// N.B. These #defines do *not* include the EID & length
5409#define DOT11F_IE_WFATPC_MIN_LEN ( 7 )
5410
5411#define DOT11F_IE_WFATPC_MAX_LEN ( 7 )
5412
5413#ifdef __cplusplus
5414extern "C" {
5415#endif /* C++ */
5416tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFATPC*);
5417
5418tANI_U32 dot11fPackIeWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U8*, tANI_U32, tANI_U32*);
5419
5420tANI_U32 dot11fGetPackedIEWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U32*);
5421
5422#ifdef __cplusplus
5423}; /* End extern "C". */
5424#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005425// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a}
5426typedef struct sDot11fIEWFDIEOpaque {
5427 tANI_U8 present;
5428 tANI_U8 num_data;
5429 tANI_U8 data[249];
5430} tDot11fIEWFDIEOpaque;
5431
5432#define DOT11F_EID_WFDIEOPAQUE ( 221 )
5433
5434// N.B. These #defines do *not* include the EID & length
5435#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN ( 6 )
5436
5437#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN ( 253 )
5438
5439#ifdef __cplusplus
5440extern "C" {
5441#endif /* C++ */
5442tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFDIEOpaque*);
5443
5444tANI_U32 dot11fPackIeWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5445
5446tANI_U32 dot11fGetPackedIEWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U32*);
5447
5448#ifdef __cplusplus
5449}; /* End extern "C". */
5450#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005451// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05}
5452typedef struct sDot11fIEWMMCaps {
5453 tANI_U8 present;
5454 tANI_U8 version /* Must be 1! */;
5455 tANI_U8 reserved: 4;
5456 tANI_U8 qack: 1;
5457 tANI_U8 queue_request: 1;
5458 tANI_U8 txop_request: 1;
5459 tANI_U8 more_ack: 1;
5460} tDot11fIEWMMCaps;
5461
5462#define DOT11F_EID_WMMCAPS ( 221 )
5463
5464// N.B. These #defines do *not* include the EID & length
5465#define DOT11F_IE_WMMCAPS_MIN_LEN ( 7 )
5466
5467#define DOT11F_IE_WMMCAPS_MAX_LEN ( 7 )
5468
5469#ifdef __cplusplus
5470extern "C" {
5471#endif /* C++ */
5472tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMCaps*);
5473
5474tANI_U32 dot11fPackIeWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5475
5476tANI_U32 dot11fGetPackedIEWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U32*);
5477
5478#ifdef __cplusplus
5479}; /* End extern "C". */
5480#endif /* C++ */
5481// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5482typedef struct sDot11fIEWMMInfoAp {
5483 tANI_U8 present;
5484 tANI_U8 version;
5485 tANI_U8 param_set_count: 4;
5486 tANI_U8 reserved: 3;
5487 tANI_U8 uapsd: 1;
5488} tDot11fIEWMMInfoAp;
5489
5490#define DOT11F_EID_WMMINFOAP ( 221 )
5491
5492// N.B. These #defines do *not* include the EID & length
5493#define DOT11F_IE_WMMINFOAP_MIN_LEN ( 7 )
5494
5495#define DOT11F_IE_WMMINFOAP_MAX_LEN ( 7 )
5496
5497#ifdef __cplusplus
5498extern "C" {
5499#endif /* C++ */
5500tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoAp*);
5501
5502tANI_U32 dot11fPackIeWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U8*, tANI_U32, tANI_U32*);
5503
5504tANI_U32 dot11fGetPackedIEWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U32*);
5505
5506#ifdef __cplusplus
5507}; /* End extern "C". */
5508#endif /* C++ */
5509// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5510typedef struct sDot11fIEWMMInfoStation {
5511 tANI_U8 present;
5512 tANI_U8 version;
5513 tANI_U8 acvo_uapsd: 1;
5514 tANI_U8 acvi_uapsd: 1;
5515 tANI_U8 acbk_uapsd: 1;
5516 tANI_U8 acbe_uapsd: 1;
5517 tANI_U8 reserved1: 1;
5518 tANI_U8 max_sp_length: 2;
5519 tANI_U8 reserved2: 1;
5520} tDot11fIEWMMInfoStation;
5521
5522#define DOT11F_EID_WMMINFOSTATION ( 221 )
5523
5524// N.B. These #defines do *not* include the EID & length
5525#define DOT11F_IE_WMMINFOSTATION_MIN_LEN ( 7 )
5526
5527#define DOT11F_IE_WMMINFOSTATION_MAX_LEN ( 7 )
5528
5529#ifdef __cplusplus
5530extern "C" {
5531#endif /* C++ */
5532tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoStation*);
5533
5534tANI_U32 dot11fPackIeWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U8*, tANI_U32, tANI_U32*);
5535
5536tANI_U32 dot11fGetPackedIEWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U32*);
5537
5538#ifdef __cplusplus
5539}; /* End extern "C". */
5540#endif /* C++ */
5541// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01}
5542typedef struct sDot11fIEWMMParams {
5543 tANI_U8 present;
5544 tANI_U8 version /* Must be 1! */;
5545 tANI_U8 qosInfo;
5546 tANI_U8 reserved2;
5547 tANI_U8 acbe_aifsn: 4;
5548 tANI_U8 acbe_acm: 1;
5549 tANI_U8 acbe_aci: 2;
5550 tANI_U8 unused1: 1;
5551 tANI_U8 acbe_acwmin: 4;
5552 tANI_U8 acbe_acwmax: 4;
5553 tANI_U16 acbe_txoplimit;
5554 tANI_U8 acbk_aifsn: 4;
5555 tANI_U8 acbk_acm: 1;
5556 tANI_U8 acbk_aci: 2;
5557 tANI_U8 unused2: 1;
5558 tANI_U8 acbk_acwmin: 4;
5559 tANI_U8 acbk_acwmax: 4;
5560 tANI_U16 acbk_txoplimit;
5561 tANI_U8 acvi_aifsn: 4;
5562 tANI_U8 acvi_acm: 1;
5563 tANI_U8 acvi_aci: 2;
5564 tANI_U8 unused3: 1;
5565 tANI_U8 acvi_acwmin: 4;
5566 tANI_U8 acvi_acwmax: 4;
5567 tANI_U16 acvi_txoplimit;
5568 tANI_U8 acvo_aifsn: 4;
5569 tANI_U8 acvo_acm: 1;
5570 tANI_U8 acvo_aci: 2;
5571 tANI_U8 unused4: 1;
5572 tANI_U8 acvo_acwmin: 4;
5573 tANI_U8 acvo_acwmax: 4;
5574 tANI_U16 acvo_txoplimit;
5575} tDot11fIEWMMParams;
5576
5577#define DOT11F_EID_WMMPARAMS ( 221 )
5578
5579// N.B. These #defines do *not* include the EID & length
5580#define DOT11F_IE_WMMPARAMS_MIN_LEN ( 24 )
5581
5582#define DOT11F_IE_WMMPARAMS_MAX_LEN ( 24 )
5583
5584#ifdef __cplusplus
5585extern "C" {
5586#endif /* C++ */
5587tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMParams*);
5588
5589tANI_U32 dot11fPackIeWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U8*, tANI_U32, tANI_U32*);
5590
5591tANI_U32 dot11fGetPackedIEWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U32*);
5592
5593#ifdef __cplusplus
5594}; /* End extern "C". */
5595#endif /* C++ */
5596// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5597typedef struct sDot11fIEWPA {
5598 tANI_U8 present;
5599 tANI_U16 version /* Must be 1! */;
5600 tANI_U8 multicast_cipher_present; //field added to fix the bug in dot11fPackIEWPA
5601 tANI_U8 multicast_cipher[4];
5602 tANI_U16 unicast_cipher_count;
5603 tANI_U8 unicast_ciphers[4][4];
5604 tANI_U16 auth_suite_count;
5605 tANI_U8 auth_suites[4][4];
5606 tANI_U16 caps;
5607} tDot11fIEWPA;
5608
5609#define DOT11F_EID_WPA ( 221 )
5610
5611// N.B. These #defines do *not* include the EID & length
5612#define DOT11F_IE_WPA_MIN_LEN ( 6 )
5613
5614#define DOT11F_IE_WPA_MAX_LEN ( 48 )
5615
5616#ifdef __cplusplus
5617extern "C" {
5618#endif /* C++ */
5619tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPA*);
5620
5621tANI_U32 dot11fPackIeWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U8*, tANI_U32, tANI_U32*);
5622
5623tANI_U32 dot11fGetPackedIEWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U32*);
5624
5625#ifdef __cplusplus
5626}; /* End extern "C". */
5627#endif /* C++ */
5628// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5629typedef struct sDot11fIEWPAOpaque {
5630 tANI_U8 present;
5631 tANI_U8 num_data;
5632 tANI_U8 data[249];
5633} tDot11fIEWPAOpaque;
5634
5635#define DOT11F_EID_WPAOPAQUE ( 221 )
5636
5637// N.B. These #defines do *not* include the EID & length
5638#define DOT11F_IE_WPAOPAQUE_MIN_LEN ( 6 )
5639
5640#define DOT11F_IE_WPAOPAQUE_MAX_LEN ( 253 )
5641
5642#ifdef __cplusplus
5643extern "C" {
5644#endif /* C++ */
5645tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPAOpaque*);
5646
5647tANI_U32 dot11fPackIeWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5648
5649tANI_U32 dot11fGetPackedIEWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U32*);
5650
5651#ifdef __cplusplus
5652}; /* End extern "C". */
5653#endif /* C++ */
5654// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5655typedef struct sDot11fIEWSC {
5656 tANI_U8 present;
5657 tDot11fTLVVersion Version;
5658 tDot11fTLVWPSState WPSState;
5659 tDot11fTLVAPSetupLocked APSetupLocked;
5660 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5661 tDot11fTLVUUID_E UUID_E;
5662 tDot11fTLVUUID_R UUID_R;
5663 tDot11fTLVRFBands RFBands;
5664 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5665 tDot11fTLVConfigMethods ConfigMethods;
5666 tDot11fTLVAssociationState AssociationState;
5667 tDot11fTLVConfigurationError ConfigurationError;
5668 tDot11fTLVManufacturer Manufacturer;
5669 tDot11fTLVModelName ModelName;
5670 tDot11fTLVModelNumber ModelNumber;
5671 tDot11fTLVSerialNumber SerialNumber;
5672 tDot11fTLVDeviceName DeviceName;
5673 tDot11fTLVDevicePasswordID DevicePasswordID;
5674 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5675 tDot11fTLVRequestType RequestType;
5676 tDot11fTLVResponseType ResponseType;
5677 tDot11fTLVVendorExtension VendorExtension;
5678 tDot11fTLVRequestDeviceType RequestDeviceType;
5679} tDot11fIEWSC;
5680
5681#define DOT11F_EID_WSC ( 221 )
5682
5683// N.B. These #defines do *not* include the EID & length
5684#define DOT11F_IE_WSC_MIN_LEN ( 4 )
5685
5686#define DOT11F_IE_WSC_MAX_LEN ( 366 )
5687
5688#ifdef __cplusplus
5689extern "C" {
5690#endif /* C++ */
5691tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWSC*);
5692
5693tANI_U32 dot11fPackIeWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U8*, tANI_U32, tANI_U32*);
5694
5695tANI_U32 dot11fGetPackedIEWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U32*);
5696
5697#ifdef __cplusplus
5698}; /* End extern "C". */
5699#endif /* C++ */
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07005700// EID 194 (0xc2)
5701typedef struct sDot11fIEWiderBWChanSwitchAnn {
5702 tANI_U8 present;
5703 tANI_U8 newChanWidth;
5704 tANI_U8 newCenterChanFreq0;
5705 tANI_U8 newCenterChanFreq1;
5706} tDot11fIEWiderBWChanSwitchAnn;
5707
5708#define DOT11F_EID_WIDERBWCHANSWITCHANN ( 194 )
5709
5710// N.B. These #defines do *not* include the EID & length
5711#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN ( 3 )
5712
5713#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN ( 3 )
5714
5715#ifdef __cplusplus
5716extern "C" {
5717#endif /* C++ */
5718tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWiderBWChanSwitchAnn*);
5719
5720tANI_U32 dot11fPackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
5721
5722tANI_U32 dot11fGetPackedIEWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U32*);
5723
5724#ifdef __cplusplus
5725}; /* End extern "C". */
5726#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005727// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5728typedef struct sDot11fIEWscAssocReq {
5729 tANI_U8 present;
5730 tDot11fTLVVersion Version;
5731 tDot11fTLVRequestType RequestType;
5732 tDot11fTLVVendorExtension VendorExtension;
5733} tDot11fIEWscAssocReq;
5734
5735#define DOT11F_EID_WSCASSOCREQ ( 221 )
5736
5737// N.B. These #defines do *not* include the EID & length
5738#define DOT11F_IE_WSCASSOCREQ_MIN_LEN ( 4 )
5739
5740#define DOT11F_IE_WSCASSOCREQ_MAX_LEN ( 35 )
5741
5742#ifdef __cplusplus
5743extern "C" {
5744#endif /* C++ */
5745tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocReq*);
5746
5747tANI_U32 dot11fPackIeWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
5748
5749tANI_U32 dot11fGetPackedIEWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U32*);
5750
5751#ifdef __cplusplus
5752}; /* End extern "C". */
5753#endif /* C++ */
5754// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5755typedef struct sDot11fIEWscAssocRes {
5756 tANI_U8 present;
5757 tDot11fTLVVersion Version;
5758 tDot11fTLVResponseType ResponseType;
5759 tDot11fTLVVendorExtension VendorExtension;
5760} tDot11fIEWscAssocRes;
5761
5762#define DOT11F_EID_WSCASSOCRES ( 221 )
5763
5764// N.B. These #defines do *not* include the EID & length
5765#define DOT11F_IE_WSCASSOCRES_MIN_LEN ( 4 )
5766
5767#define DOT11F_IE_WSCASSOCRES_MAX_LEN ( 35 )
5768
5769#ifdef __cplusplus
5770extern "C" {
5771#endif /* C++ */
5772tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocRes*);
5773
5774tANI_U32 dot11fPackIeWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
5775
5776tANI_U32 dot11fGetPackedIEWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U32*);
5777
5778#ifdef __cplusplus
5779}; /* End extern "C". */
5780#endif /* C++ */
5781// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5782typedef struct sDot11fIEWscBeacon {
5783 tANI_U8 present;
5784 tDot11fTLVVersion Version;
5785 tDot11fTLVWPSState WPSState;
5786 tDot11fTLVAPSetupLocked APSetupLocked;
5787 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5788 tDot11fTLVDevicePasswordID DevicePasswordID;
5789 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5790 tDot11fTLVUUID_E UUID_E;
5791 tDot11fTLVRFBands RFBands;
5792 tDot11fTLVVendorExtension VendorExtension;
5793} tDot11fIEWscBeacon;
5794
5795#define DOT11F_EID_WSCBEACON ( 221 )
5796
5797// N.B. These #defines do *not* include the EID & length
5798#define DOT11F_IE_WSCBEACON_MIN_LEN ( 4 )
5799
5800#define DOT11F_IE_WSCBEACON_MAX_LEN ( 82 )
5801
5802#ifdef __cplusplus
5803extern "C" {
5804#endif /* C++ */
5805tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeacon*);
5806
5807tANI_U32 dot11fPackIeWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
5808
5809tANI_U32 dot11fGetPackedIEWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U32*);
5810
5811#ifdef __cplusplus
5812}; /* End extern "C". */
5813#endif /* C++ */
5814// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5815typedef struct sDot11fIEWscBeaconProbeRes {
5816 tANI_U8 present;
5817 tDot11fTLVVersion Version;
5818 tDot11fTLVWPSState WPSState;
5819 tDot11fTLVAPSetupLocked APSetupLocked;
5820 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5821 tDot11fTLVDevicePasswordID DevicePasswordID;
5822 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5823 tDot11fTLVResponseType ResponseType;
5824 tDot11fTLVUUID_E UUID_E;
5825 tDot11fTLVManufacturer Manufacturer;
5826 tDot11fTLVModelName ModelName;
5827 tDot11fTLVModelNumber ModelNumber;
5828 tDot11fTLVSerialNumber SerialNumber;
5829 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5830 tDot11fTLVDeviceName DeviceName;
5831 tDot11fTLVConfigMethods ConfigMethods;
5832 tDot11fTLVRFBands RFBands;
5833 tDot11fTLVVendorExtension VendorExtension;
5834} tDot11fIEWscBeaconProbeRes;
5835
5836#define DOT11F_EID_WSCBEACONPROBERES ( 221 )
5837
5838// N.B. These #defines do *not* include the EID & length
5839#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN ( 4 )
5840
5841#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN ( 317 )
5842
5843#ifdef __cplusplus
5844extern "C" {
5845#endif /* C++ */
5846tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeaconProbeRes*);
5847
5848tANI_U32 dot11fPackIeWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
5849
5850tANI_U32 dot11fGetPackedIEWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U32*);
5851
5852#ifdef __cplusplus
5853}; /* End extern "C". */
5854#endif /* C++ */
5855// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04}
5856typedef struct sDot11fIEWscIEOpaque {
5857 tANI_U8 present;
5858 tANI_U8 num_data;
5859 tANI_U8 data[249];
5860} tDot11fIEWscIEOpaque;
5861
5862#define DOT11F_EID_WSCIEOPAQUE ( 221 )
5863
5864// N.B. These #defines do *not* include the EID & length
5865#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN ( 6 )
5866
5867#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN ( 253 )
5868
5869#ifdef __cplusplus
5870extern "C" {
5871#endif /* C++ */
5872tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscIEOpaque*);
5873
5874tANI_U32 dot11fPackIeWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5875
5876tANI_U32 dot11fGetPackedIEWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U32*);
5877
5878#ifdef __cplusplus
5879}; /* End extern "C". */
5880#endif /* C++ */
5881// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5882typedef struct sDot11fIEWscProbeReq {
5883 tANI_U8 present;
5884 tDot11fTLVVersion Version;
5885 tDot11fTLVRequestType RequestType;
5886 tDot11fTLVConfigMethods ConfigMethods;
5887 tDot11fTLVUUID_E UUID_E;
5888 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5889 tDot11fTLVRFBands RFBands;
5890 tDot11fTLVAssociationState AssociationState;
5891 tDot11fTLVConfigurationError ConfigurationError;
5892 tDot11fTLVDevicePasswordID DevicePasswordID;
5893 tDot11fTLVManufacturer Manufacturer;
5894 tDot11fTLVModelName ModelName;
5895 tDot11fTLVModelNumber ModelNumber;
5896 tDot11fTLVDeviceName DeviceName;
5897 tDot11fTLVVendorExtension VendorExtension;
5898 tDot11fTLVRequestDeviceType RequestDeviceType;
5899} tDot11fIEWscProbeReq;
5900
5901#define DOT11F_EID_WSCPROBEREQ ( 221 )
5902
5903// N.B. These #defines do *not* include the EID & length
5904#define DOT11F_IE_WSCPROBEREQ_MIN_LEN ( 4 )
5905
5906#define DOT11F_IE_WSCPROBEREQ_MAX_LEN ( 284 )
5907
5908#ifdef __cplusplus
5909extern "C" {
5910#endif /* C++ */
5911tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeReq*);
5912
5913tANI_U32 dot11fPackIeWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
5914
5915tANI_U32 dot11fGetPackedIEWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U32*);
5916
5917#ifdef __cplusplus
5918}; /* End extern "C". */
5919#endif /* C++ */
5920// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5921typedef struct sDot11fIEWscProbeRes {
5922 tANI_U8 present;
5923 tDot11fTLVVersion Version;
5924 tDot11fTLVWPSState WPSState;
5925 tDot11fTLVAPSetupLocked APSetupLocked;
5926 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5927 tDot11fTLVDevicePasswordID DevicePasswordID;
5928 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5929 tDot11fTLVResponseType ResponseType;
5930 tDot11fTLVUUID_E UUID_E;
5931 tDot11fTLVManufacturer Manufacturer;
5932 tDot11fTLVModelName ModelName;
5933 tDot11fTLVModelNumber ModelNumber;
5934 tDot11fTLVSerialNumber SerialNumber;
5935 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5936 tDot11fTLVDeviceName DeviceName;
5937 tDot11fTLVConfigMethods ConfigMethods;
5938 tDot11fTLVRFBands RFBands;
5939 tDot11fTLVVendorExtension VendorExtension;
5940} tDot11fIEWscProbeRes;
5941
5942#define DOT11F_EID_WSCPROBERES ( 221 )
5943
5944// N.B. These #defines do *not* include the EID & length
5945#define DOT11F_IE_WSCPROBERES_MIN_LEN ( 4 )
5946
5947#define DOT11F_IE_WSCPROBERES_MAX_LEN ( 317 )
5948
5949#ifdef __cplusplus
5950extern "C" {
5951#endif /* C++ */
5952tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeRes*);
5953
5954tANI_U32 dot11fPackIeWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
5955
5956tANI_U32 dot11fGetPackedIEWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U32*);
5957
5958#ifdef __cplusplus
5959}; /* End extern "C". */
5960#endif /* C++ */
5961// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5962typedef struct sDot11fIEWscReassocRes {
5963 tANI_U8 present;
5964 tDot11fTLVVersion Version;
5965 tDot11fTLVResponseType ResponseType;
5966 tDot11fTLVVendorExtension VendorExtension;
5967} tDot11fIEWscReassocRes;
5968
5969#define DOT11F_EID_WSCREASSOCRES ( 221 )
5970
5971// N.B. These #defines do *not* include the EID & length
5972#define DOT11F_IE_WSCREASSOCRES_MIN_LEN ( 4 )
5973
5974#define DOT11F_IE_WSCREASSOCRES_MAX_LEN ( 35 )
5975
5976#ifdef __cplusplus
5977extern "C" {
5978#endif /* C++ */
5979tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscReassocRes*);
5980
5981tANI_U32 dot11fPackIeWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U8*, tANI_U32, tANI_U32*);
5982
5983tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U32*);
5984
5985#ifdef __cplusplus
5986}; /* End extern "C". */
5987#endif /* C++ */
5988/************************************************************************
5989 * Frames
5990 **********************************************************************/
5991
5992typedef struct sDot11fAddBAReq{
5993 tDot11fFfCategory Category;
5994 tDot11fFfAction Action;
5995 tDot11fFfDialogToken DialogToken;
5996 tDot11fFfAddBAParameterSet AddBAParameterSet;
5997 tDot11fFfBATimeout BATimeout;
5998 tDot11fFfBAStartingSequenceControl BAStartingSequenceControl;
5999} tDot11fAddBAReq;
6000
6001#define DOT11F_ADDBAREQ ( 1 )
6002
6003#ifdef __cplusplus
6004extern "C" {
6005#endif /* C++ */
6006
6007tANI_U32 dot11fUnpackAddBAReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBAReq *pFrm);
6008tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6009tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded);
6010
6011#ifdef __cplusplus
6012} /* End extern "C". */
6013#endif /* C++ */
6014
6015typedef struct sDot11fAddBARsp{
6016 tDot11fFfCategory Category;
6017 tDot11fFfAction Action;
6018 tDot11fFfDialogToken DialogToken;
6019 tDot11fFfStatus Status;
6020 tDot11fFfAddBAParameterSet AddBAParameterSet;
6021 tDot11fFfBATimeout BATimeout;
6022} tDot11fAddBARsp;
6023
6024#define DOT11F_ADDBARSP ( 2 )
6025
6026#ifdef __cplusplus
6027extern "C" {
6028#endif /* C++ */
6029
6030tANI_U32 dot11fUnpackAddBARsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBARsp *pFrm);
6031tANI_U32 dot11fPackAddBARsp(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6032tANI_U32 dot11fGetPackedAddBARspSize(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U32 *pnNeeded);
6033
6034#ifdef __cplusplus
6035} /* End extern "C". */
6036#endif /* C++ */
6037
6038typedef struct sDot11fAddTSRequest{
6039 tDot11fFfCategory Category;
6040 tDot11fFfAction Action;
6041 tDot11fFfDialogToken DialogToken;
6042 tDot11fIETSPEC TSPEC;
6043 tANI_U16 num_TCLAS;
6044 tDot11fIETCLAS TCLAS[2];
6045 tDot11fIETCLASSPROC TCLASSPROC;
6046 tDot11fIEWMMTSPEC WMMTSPEC;
6047 tANI_U16 num_WMMTCLAS;
6048 tDot11fIEWMMTCLAS WMMTCLAS[2];
6049 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6050 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
6051} tDot11fAddTSRequest;
6052
6053#define DOT11F_ADDTSREQUEST ( 3 )
6054
6055#ifdef __cplusplus
6056extern "C" {
6057#endif /* C++ */
6058
6059tANI_U32 dot11fUnpackAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSRequest *pFrm);
6060tANI_U32 dot11fPackAddTSRequest(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6061tANI_U32 dot11fGetPackedAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U32 *pnNeeded);
6062
6063#ifdef __cplusplus
6064} /* End extern "C". */
6065#endif /* C++ */
6066
6067typedef struct sDot11fAddTSResponse{
6068 tDot11fFfCategory Category;
6069 tDot11fFfAction Action;
6070 tDot11fFfDialogToken DialogToken;
6071 tDot11fFfStatus Status;
6072 tDot11fIETSDelay TSDelay;
6073 tDot11fIETSPEC TSPEC;
6074 tANI_U16 num_TCLAS;
6075 tDot11fIETCLAS TCLAS[2];
6076 tDot11fIETCLASSPROC TCLASSPROC;
6077 tDot11fIESchedule Schedule;
6078 tDot11fIEWMMTSDelay WMMTSDelay;
6079 tDot11fIEWMMSchedule WMMSchedule;
6080 tDot11fIEWMMTSPEC WMMTSPEC;
6081 tANI_U16 num_WMMTCLAS;
6082 tDot11fIEWMMTCLAS WMMTCLAS[2];
6083 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6084 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6085} tDot11fAddTSResponse;
6086
6087#define DOT11F_ADDTSRESPONSE ( 4 )
6088
6089#ifdef __cplusplus
6090extern "C" {
6091#endif /* C++ */
6092
6093tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSResponse *pFrm);
6094tANI_U32 dot11fPackAddTSResponse(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6095tANI_U32 dot11fGetPackedAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U32 *pnNeeded);
6096
6097#ifdef __cplusplus
6098} /* End extern "C". */
6099#endif /* C++ */
6100
6101typedef struct sDot11fAssocRequest{
6102 tDot11fFfCapabilities Capabilities;
6103 tDot11fFfListenInterval ListenInterval;
6104 tDot11fIESSID SSID;
6105 tDot11fIESuppRates SuppRates;
6106 tDot11fIEExtSuppRates ExtSuppRates;
6107 tDot11fIEPowerCaps PowerCaps;
6108 tDot11fIESuppChannels SuppChannels;
6109 tDot11fIERSNOpaque RSNOpaque;
6110 tDot11fIEQOSCapsStation QOSCapsStation;
6111 tDot11fIERRMEnabledCap RRMEnabledCap;
6112 tDot11fIEMobilityDomain MobilityDomain;
6113 tDot11fIEWPAOpaque WPAOpaque;
6114 tDot11fIEHTCaps HTCaps;
6115 tDot11fIEWMMCaps WMMCaps;
6116 tDot11fIEWMMInfoStation WMMInfoStation;
6117 tDot11fIEAirgo Airgo;
6118 tDot11fIEWscIEOpaque WscIEOpaque;
6119 tDot11fIEWAPIOpaque WAPIOpaque;
6120 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6121 tDot11fIECCXVersion CCXVersion;
6122 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07006123 tDot11fIEWFDIEOpaque WFDIEOpaque;
6124 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006125 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07006126 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07006127} tDot11fAssocRequest;
6128
6129#define DOT11F_ASSOCREQUEST ( 5 )
6130
6131#ifdef __cplusplus
6132extern "C" {
6133#endif /* C++ */
6134
6135tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm);
6136tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6137tANI_U32 dot11fGetPackedAssocRequestSize(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U32 *pnNeeded);
6138
6139#ifdef __cplusplus
6140} /* End extern "C". */
6141#endif /* C++ */
6142
6143typedef struct sDot11fAssocResponse{
6144 tDot11fFfCapabilities Capabilities;
6145 tDot11fFfStatus Status;
6146 tDot11fFfAID AID;
6147 tDot11fIESuppRates SuppRates;
6148 tDot11fIEExtSuppRates ExtSuppRates;
6149 tDot11fIEEDCAParamSet EDCAParamSet;
6150 tDot11fIERCPIIE RCPIIE;
6151 tDot11fIERSNIIE RSNIIE;
6152 tDot11fIERRMEnabledCap RRMEnabledCap;
6153 tDot11fIEMobilityDomain MobilityDomain;
6154 tDot11fIEFTInfo FTInfo;
6155 tANI_U16 num_RICDataDesc;
6156 tDot11fIERICDataDesc RICDataDesc[2];
6157 tDot11fIEWPA WPA;
6158 tDot11fIEHTCaps HTCaps;
6159 tDot11fIEHTInfo HTInfo;
6160 tDot11fIEWMMParams WMMParams;
6161 tDot11fIEWMMCaps WMMCaps;
6162 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6163 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6164 tDot11fIECCXTxmitPower CCXTxmitPower;
6165 tANI_U16 num_WMMTSPEC;
6166 tDot11fIEWMMTSPEC WMMTSPEC[4];
6167 tDot11fIEAirgo Airgo;
6168 tDot11fIEWscAssocRes WscAssocRes;
6169 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07006170 tDot11fIEVHTCaps VHTCaps;
6171 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006172 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07006173} tDot11fAssocResponse;
6174
6175#define DOT11F_ASSOCRESPONSE ( 6 )
6176
6177#ifdef __cplusplus
6178extern "C" {
6179#endif /* C++ */
6180
6181tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm);
6182tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6183tANI_U32 dot11fGetPackedAssocResponseSize(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U32 *pnNeeded);
6184
6185#ifdef __cplusplus
6186} /* End extern "C". */
6187#endif /* C++ */
6188
6189typedef struct sDot11fAuthentication{
6190 tDot11fFfAuthAlgo AuthAlgo;
6191 tDot11fFfAuthSeqNo AuthSeqNo;
6192 tDot11fFfStatus Status;
6193 tDot11fIEChallengeText ChallengeText;
6194 tDot11fIERSNOpaque RSNOpaque;
6195 tDot11fIEMobilityDomain MobilityDomain;
6196 tDot11fIEFTInfo FTInfo;
6197 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
6198 tANI_U16 num_RICDataDesc;
6199 tDot11fIERICDataDesc RICDataDesc[2];
6200} tDot11fAuthentication;
6201
6202#define DOT11F_AUTHENTICATION ( 7 )
6203
6204#ifdef __cplusplus
6205extern "C" {
6206#endif /* C++ */
6207
6208tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAuthentication *pFrm);
6209tANI_U32 dot11fPackAuthentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6210tANI_U32 dot11fGetPackedAuthenticationSize(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U32 *pnNeeded);
6211
6212#ifdef __cplusplus
6213} /* End extern "C". */
6214#endif /* C++ */
6215
6216typedef struct sDot11fBeacon{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006217 tDot11fFfTimeStamp TimeStamp;
6218 tDot11fFfBeaconInterval BeaconInterval;
6219 tDot11fFfCapabilities Capabilities;
6220 tDot11fIESSID SSID;
6221 tDot11fIESuppRates SuppRates;
6222 tDot11fIEFHParamSet FHParamSet;
6223 tDot11fIEDSParams DSParams;
6224 tDot11fIECFParams CFParams;
6225 tDot11fIEIBSSParams IBSSParams;
6226 tDot11fIETIM TIM;
6227 tDot11fIECountry Country;
6228 tDot11fIEFHParams FHParams;
6229 tDot11fIEFHPattTable FHPattTable;
6230 tDot11fIEPowerConstraints PowerConstraints;
6231 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6232 tDot11fIEQuiet Quiet;
6233 tDot11fIETPCReport TPCReport;
6234 tDot11fIEERPInfo ERPInfo;
6235 tDot11fIEExtSuppRates ExtSuppRates;
6236 tDot11fIERSN RSN;
6237 tDot11fIEQBSSLoad QBSSLoad;
6238 tDot11fIEEDCAParamSet EDCAParamSet;
6239 tDot11fIEQOSCapsAp QOSCapsAp;
6240 tDot11fIEAPChannelReport APChannelReport;
6241 tDot11fIERRMEnabledCap RRMEnabledCap;
6242 tDot11fIEMobilityDomain MobilityDomain;
6243 tDot11fIEWPA WPA;
6244 tDot11fIEHTCaps HTCaps;
6245 tDot11fIEHTInfo HTInfo;
6246 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6247 tDot11fIEWMMInfoAp WMMInfoAp;
6248 tDot11fIEWMMParams WMMParams;
6249 tDot11fIEWMMCaps WMMCaps;
6250 tDot11fIEWAPI WAPI;
6251 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6252 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6253 tDot11fIECCXTxmitPower CCXTxmitPower;
6254 tDot11fIEAirgo Airgo;
6255 tDot11fIEWscBeacon WscBeacon;
6256 tDot11fIEP2PBeacon P2PBeacon;
6257 tDot11fIEVHTCaps VHTCaps;
6258 tDot11fIEVHTOperation VHTOperation;
6259 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6260 tDot11fIEExtCap ExtCap;
6261 tDot11fIEOperatingMode OperatingMode;
6262 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006263} tDot11fBeacon;
6264
6265#define DOT11F_BEACON ( 8 )
6266
6267#ifdef __cplusplus
6268extern "C" {
6269#endif /* C++ */
6270
6271tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon *pFrm);
6272tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6273tANI_U32 dot11fGetPackedBeaconSize(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U32 *pnNeeded);
6274
6275#ifdef __cplusplus
6276} /* End extern "C". */
6277#endif /* C++ */
6278
6279typedef struct sDot11fBeacon1{
6280 tDot11fFfTimeStamp TimeStamp;
6281 tDot11fFfBeaconInterval BeaconInterval;
6282 tDot11fFfCapabilities Capabilities;
6283 tDot11fIESSID SSID;
6284 tDot11fIESuppRates SuppRates;
6285 tDot11fIEDSParams DSParams;
6286 tDot11fIEIBSSParams IBSSParams;
6287} tDot11fBeacon1;
6288
6289#define DOT11F_BEACON1 ( 9 )
6290
6291#ifdef __cplusplus
6292extern "C" {
6293#endif /* C++ */
6294
6295tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon1 *pFrm);
6296tANI_U32 dot11fPackBeacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6297tANI_U32 dot11fGetPackedBeacon1Size(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U32 *pnNeeded);
6298
6299#ifdef __cplusplus
6300} /* End extern "C". */
6301#endif /* C++ */
6302
6303typedef struct sDot11fBeacon2{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006304 tDot11fIECountry Country;
6305 tDot11fIEPowerConstraints PowerConstraints;
6306 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6307 tDot11fIEQuiet Quiet;
6308 tDot11fIETPCReport TPCReport;
6309 tDot11fIEERPInfo ERPInfo;
6310 tDot11fIEExtSuppRates ExtSuppRates;
6311 tDot11fIERSN RSN;
6312 tDot11fIEEDCAParamSet EDCAParamSet;
6313 tDot11fIEAPChannelReport APChannelReport;
6314 tDot11fIERRMEnabledCap RRMEnabledCap;
6315 tDot11fIEMobilityDomain MobilityDomain;
6316 tDot11fIEWPA WPA;
6317 tDot11fIEHTCaps HTCaps;
6318 tDot11fIEHTInfo HTInfo;
6319 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6320 tDot11fIEWMMInfoAp WMMInfoAp;
6321 tDot11fIEWMMParams WMMParams;
6322 tDot11fIEWMMCaps WMMCaps;
6323 tDot11fIEAirgo Airgo;
6324 tDot11fIEWscBeacon WscBeacon;
6325 tDot11fIEWAPI WAPI;
6326 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6327 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6328 tDot11fIECCXTxmitPower CCXTxmitPower;
6329 tDot11fIEP2PBeacon P2PBeacon;
6330 tDot11fIEVHTCaps VHTCaps;
6331 tDot11fIEVHTOperation VHTOperation;
6332 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6333 tDot11fIEExtCap ExtCap;
6334 tDot11fIEOperatingMode OperatingMode;
6335 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006336} tDot11fBeacon2;
6337
6338#define DOT11F_BEACON2 ( 10 )
6339
6340#ifdef __cplusplus
6341extern "C" {
6342#endif /* C++ */
6343
6344tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon2 *pFrm);
6345tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6346tANI_U32 dot11fGetPackedBeacon2Size(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U32 *pnNeeded);
6347
6348#ifdef __cplusplus
6349} /* End extern "C". */
6350#endif /* C++ */
6351
6352typedef struct sDot11fBeaconIEs{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006353 tDot11fIESSID SSID;
6354 tDot11fIESuppRates SuppRates;
6355 tDot11fIEFHParamSet FHParamSet;
6356 tDot11fIEDSParams DSParams;
6357 tDot11fIECFParams CFParams;
6358 tDot11fIEIBSSParams IBSSParams;
6359 tDot11fIETIM TIM;
6360 tDot11fIECountry Country;
6361 tDot11fIEFHParams FHParams;
6362 tDot11fIEFHPattTable FHPattTable;
6363 tDot11fIEPowerConstraints PowerConstraints;
6364 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6365 tDot11fIEQuiet Quiet;
6366 tDot11fIETPCReport TPCReport;
6367 tDot11fIEERPInfo ERPInfo;
6368 tDot11fIEExtSuppRates ExtSuppRates;
6369 tDot11fIERSN RSN;
6370 tDot11fIEQBSSLoad QBSSLoad;
6371 tDot11fIEEDCAParamSet EDCAParamSet;
6372 tDot11fIEQOSCapsAp QOSCapsAp;
6373 tDot11fIEAPChannelReport APChannelReport;
6374 tDot11fIERRMEnabledCap RRMEnabledCap;
6375 tDot11fIEMobilityDomain MobilityDomain;
6376 tDot11fIEWPA WPA;
6377 tDot11fIEHTCaps HTCaps;
6378 tDot11fIEHTInfo HTInfo;
6379 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6380 tDot11fIEWMMInfoAp WMMInfoAp;
6381 tDot11fIEWMMParams WMMParams;
6382 tDot11fIEWMMCaps WMMCaps;
6383 tDot11fIEWAPI WAPI;
6384 tDot11fIECCXVersion CCXVersion;
6385 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6386 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6387 tDot11fIECCXTxmitPower CCXTxmitPower;
6388 tDot11fIEAirgo Airgo;
6389 tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
6390 tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
6391 tDot11fIEVHTCaps VHTCaps;
6392 tDot11fIEVHTOperation VHTOperation;
6393 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6394 tDot11fIEExtCap ExtCap;
6395 tDot11fIEOperatingMode OperatingMode;
6396 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006397} tDot11fBeaconIEs;
6398
6399#define DOT11F_BEACONIES ( 11 )
6400
6401#ifdef __cplusplus
6402extern "C" {
6403#endif /* C++ */
6404
6405tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeaconIEs *pFrm);
6406tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6407tANI_U32 dot11fGetPackedBeaconIEsSize(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U32 *pnNeeded);
6408
6409#ifdef __cplusplus
6410} /* End extern "C". */
6411#endif /* C++ */
6412
6413typedef struct sDot11fChannelSwitch{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006414 tDot11fFfCategory Category;
6415 tDot11fFfAction Action;
6416 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6417 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6418 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006419} tDot11fChannelSwitch;
6420
6421#define DOT11F_CHANNELSWITCH ( 12 )
6422
6423#ifdef __cplusplus
6424extern "C" {
6425#endif /* C++ */
6426
6427tANI_U32 dot11fUnpackChannelSwitch(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fChannelSwitch *pFrm);
6428tANI_U32 dot11fPackChannelSwitch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6429tANI_U32 dot11fGetPackedChannelSwitchSize(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U32 *pnNeeded);
6430
6431#ifdef __cplusplus
6432} /* End extern "C". */
6433#endif /* C++ */
6434
6435typedef struct sDot11fDeAuth{
6436 tDot11fFfReason Reason;
6437 tDot11fIEP2PDeAuth P2PDeAuth;
6438} tDot11fDeAuth;
6439
6440#define DOT11F_DEAUTH ( 13 )
6441
6442#ifdef __cplusplus
6443extern "C" {
6444#endif /* C++ */
6445
6446tANI_U32 dot11fUnpackDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeAuth *pFrm);
6447tANI_U32 dot11fPackDeAuth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6448tANI_U32 dot11fGetPackedDeAuthSize(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U32 *pnNeeded);
6449
6450#ifdef __cplusplus
6451} /* End extern "C". */
6452#endif /* C++ */
6453
6454typedef struct sDot11fDelBAInd{
6455 tDot11fFfCategory Category;
6456 tDot11fFfAction Action;
6457 tDot11fFfDelBAParameterSet DelBAParameterSet;
6458 tDot11fFfReason Reason;
6459} tDot11fDelBAInd;
6460
6461#define DOT11F_DELBAIND ( 14 )
6462
6463#ifdef __cplusplus
6464extern "C" {
6465#endif /* C++ */
6466
6467tANI_U32 dot11fUnpackDelBAInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelBAInd *pFrm);
6468tANI_U32 dot11fPackDelBAInd(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6469tANI_U32 dot11fGetPackedDelBAIndSize(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U32 *pnNeeded);
6470
6471#ifdef __cplusplus
6472} /* End extern "C". */
6473#endif /* C++ */
6474
6475typedef struct sDot11fDelTS{
6476 tDot11fFfCategory Category;
6477 tDot11fFfAction Action;
6478 tDot11fFfTSInfo TSInfo;
6479 tDot11fFfReason Reason;
6480} tDot11fDelTS;
6481
6482#define DOT11F_DELTS ( 15 )
6483
6484#ifdef __cplusplus
6485extern "C" {
6486#endif /* C++ */
6487
6488tANI_U32 dot11fUnpackDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelTS *pFrm);
6489tANI_U32 dot11fPackDelTS(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6490tANI_U32 dot11fGetPackedDelTSSize(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U32 *pnNeeded);
6491
6492#ifdef __cplusplus
6493} /* End extern "C". */
6494#endif /* C++ */
6495
6496typedef struct sDot11fDeviceDiscoverabilityReq{
6497 tDot11fFfCategory Category;
6498 tDot11fFfAction Action;
6499 tDot11fFfP2POUI P2POUI;
6500 tDot11fFfP2POUISubType P2POUISubType;
6501 tDot11fFfDialogToken DialogToken;
6502 tDot11fIEP2PDeviceDiscoverabilityReq P2PDeviceDiscoverabilityReq;
6503} tDot11fDeviceDiscoverabilityReq;
6504
6505#define DOT11F_DEVICEDISCOVERABILITYREQ ( 16 )
6506
6507#ifdef __cplusplus
6508extern "C" {
6509#endif /* C++ */
6510
6511tANI_U32 dot11fUnpackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityReq *pFrm);
6512tANI_U32 dot11fPackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6513tANI_U32 dot11fGetPackedDeviceDiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6514
6515#ifdef __cplusplus
6516} /* End extern "C". */
6517#endif /* C++ */
6518
6519typedef struct sDot11fDeviceDiscoverabilityRes{
6520 tDot11fFfCategory Category;
6521 tDot11fFfAction Action;
6522 tDot11fFfP2POUI P2POUI;
6523 tDot11fFfP2POUISubType P2POUISubType;
6524 tDot11fFfDialogToken DialogToken;
6525 tDot11fIEP2PDeviceDiscoverabilityRes P2PDeviceDiscoverabilityRes;
6526} tDot11fDeviceDiscoverabilityRes;
6527
6528#define DOT11F_DEVICEDISCOVERABILITYRES ( 17 )
6529
6530#ifdef __cplusplus
6531extern "C" {
6532#endif /* C++ */
6533
6534tANI_U32 dot11fUnpackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityRes *pFrm);
6535tANI_U32 dot11fPackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6536tANI_U32 dot11fGetPackedDeviceDiscoverabilityResSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U32 *pnNeeded);
6537
6538#ifdef __cplusplus
6539} /* End extern "C". */
6540#endif /* C++ */
6541
6542typedef struct sDot11fDisassociation{
6543 tDot11fFfReason Reason;
6544 tDot11fIEP2PDisAssoc P2PDisAssoc;
6545} tDot11fDisassociation;
6546
6547#define DOT11F_DISASSOCIATION ( 18 )
6548
6549#ifdef __cplusplus
6550extern "C" {
6551#endif /* C++ */
6552
6553tANI_U32 dot11fUnpackDisassociation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDisassociation *pFrm);
6554tANI_U32 dot11fPackDisassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6555tANI_U32 dot11fGetPackedDisassociationSize(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U32 *pnNeeded);
6556
6557#ifdef __cplusplus
6558} /* End extern "C". */
6559#endif /* C++ */
6560
6561typedef struct sDot11fGODiscoverabilityReq{
6562 tDot11fFfCategory Category;
6563 tDot11fFfP2POUI P2POUI;
6564 tDot11fFfP2POUISubType P2POUISubType;
6565 tDot11fFfDialogToken DialogToken;
6566} tDot11fGODiscoverabilityReq;
6567
6568#define DOT11F_GODISCOVERABILITYREQ ( 19 )
6569
6570#ifdef __cplusplus
6571extern "C" {
6572#endif /* C++ */
6573
6574tANI_U32 dot11fUnpackGODiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGODiscoverabilityReq *pFrm);
6575tANI_U32 dot11fPackGODiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6576tANI_U32 dot11fGetPackedGODiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6577
6578#ifdef __cplusplus
6579} /* End extern "C". */
6580#endif /* C++ */
6581
6582typedef struct sDot11fGONegCnf{
6583 tDot11fFfCategory Category;
6584 tDot11fFfAction Action;
6585 tDot11fFfP2POUI P2POUI;
6586 tDot11fFfP2POUISubType P2POUISubType;
6587 tDot11fFfDialogToken DialogToken;
6588 tDot11fIEP2PGONegCnf P2PGONegCnf;
6589} tDot11fGONegCnf;
6590
6591#define DOT11F_GONEGCNF ( 20 )
6592
6593#ifdef __cplusplus
6594extern "C" {
6595#endif /* C++ */
6596
6597tANI_U32 dot11fUnpackGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegCnf *pFrm);
6598tANI_U32 dot11fPackGONegCnf(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6599tANI_U32 dot11fGetPackedGONegCnfSize(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U32 *pnNeeded);
6600
6601#ifdef __cplusplus
6602} /* End extern "C". */
6603#endif /* C++ */
6604
6605typedef struct sDot11fGONegReq{
6606 tDot11fFfCategory Category;
6607 tDot11fFfAction Action;
6608 tDot11fFfP2POUI P2POUI;
6609 tDot11fFfP2POUISubType P2POUISubType;
6610 tDot11fFfDialogToken DialogToken;
6611 tDot11fIEP2PGONegWPS P2PGONegWPS;
6612 tDot11fIEP2PGONegReq P2PGONegReq;
6613} tDot11fGONegReq;
6614
6615#define DOT11F_GONEGREQ ( 21 )
6616
6617#ifdef __cplusplus
6618extern "C" {
6619#endif /* C++ */
6620
6621tANI_U32 dot11fUnpackGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegReq *pFrm);
6622tANI_U32 dot11fPackGONegReq(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6623tANI_U32 dot11fGetPackedGONegReqSize(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U32 *pnNeeded);
6624
6625#ifdef __cplusplus
6626} /* End extern "C". */
6627#endif /* C++ */
6628
6629typedef struct sDot11fGONegRes{
6630 tDot11fFfCategory Category;
6631 tDot11fFfAction Action;
6632 tDot11fFfP2POUI P2POUI;
6633 tDot11fFfP2POUISubType P2POUISubType;
6634 tDot11fFfDialogToken DialogToken;
6635 tDot11fIEP2PGONegWPS P2PGONegWPS;
6636 tDot11fIEP2PGONegRes P2PGONegRes;
6637} tDot11fGONegRes;
6638
6639#define DOT11F_GONEGRES ( 22 )
6640
6641#ifdef __cplusplus
6642extern "C" {
6643#endif /* C++ */
6644
6645tANI_U32 dot11fUnpackGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegRes *pFrm);
6646tANI_U32 dot11fPackGONegRes(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6647tANI_U32 dot11fGetPackedGONegResSize(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U32 *pnNeeded);
6648
6649#ifdef __cplusplus
6650} /* End extern "C". */
6651#endif /* C++ */
6652
6653typedef struct sDot11fInvitationReq{
6654 tDot11fFfCategory Category;
6655 tDot11fFfAction Action;
6656 tDot11fFfP2POUI P2POUI;
6657 tDot11fFfP2POUISubType P2POUISubType;
6658 tDot11fFfDialogToken DialogToken;
6659 tDot11fIEP2PInvitationReq P2PInvitationReq;
6660} tDot11fInvitationReq;
6661
6662#define DOT11F_INVITATIONREQ ( 23 )
6663
6664#ifdef __cplusplus
6665extern "C" {
6666#endif /* C++ */
6667
6668tANI_U32 dot11fUnpackInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationReq *pFrm);
6669tANI_U32 dot11fPackInvitationReq(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6670tANI_U32 dot11fGetPackedInvitationReqSize(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U32 *pnNeeded);
6671
6672#ifdef __cplusplus
6673} /* End extern "C". */
6674#endif /* C++ */
6675
6676typedef struct sDot11fInvitationRes{
6677 tDot11fFfCategory Category;
6678 tDot11fFfAction Action;
6679 tDot11fFfP2POUI P2POUI;
6680 tDot11fFfP2POUISubType P2POUISubType;
6681 tDot11fFfDialogToken DialogToken;
6682 tDot11fIEP2PInvitationRes P2PInvitationRes;
6683} tDot11fInvitationRes;
6684
6685#define DOT11F_INVITATIONRES ( 24 )
6686
6687#ifdef __cplusplus
6688extern "C" {
6689#endif /* C++ */
6690
6691tANI_U32 dot11fUnpackInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationRes *pFrm);
6692tANI_U32 dot11fPackInvitationRes(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6693tANI_U32 dot11fGetPackedInvitationResSize(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U32 *pnNeeded);
6694
6695#ifdef __cplusplus
6696} /* End extern "C". */
6697#endif /* C++ */
6698
6699typedef struct sDot11fLinkMeasurementReport{
6700 tDot11fFfCategory Category;
6701 tDot11fFfAction Action;
6702 tDot11fFfDialogToken DialogToken;
6703 tDot11fFfTPCEleID TPCEleID;
6704 tDot11fFfTPCEleLen TPCEleLen;
6705 tDot11fFfTxPower TxPower;
6706 tDot11fFfLinkMargin LinkMargin;
6707 tDot11fFfRxAntennaId RxAntennaId;
6708 tDot11fFfTxAntennaId TxAntennaId;
6709 tDot11fFfRCPI RCPI;
6710 tDot11fFfRSNI RSNI;
6711} tDot11fLinkMeasurementReport;
6712
6713#define DOT11F_LINKMEASUREMENTREPORT ( 25 )
6714
6715#ifdef __cplusplus
6716extern "C" {
6717#endif /* C++ */
6718
6719tANI_U32 dot11fUnpackLinkMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementReport *pFrm);
6720tANI_U32 dot11fPackLinkMeasurementReport(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6721tANI_U32 dot11fGetPackedLinkMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6722
6723#ifdef __cplusplus
6724} /* End extern "C". */
6725#endif /* C++ */
6726
6727typedef struct sDot11fLinkMeasurementRequest{
6728 tDot11fFfCategory Category;
6729 tDot11fFfAction Action;
6730 tDot11fFfDialogToken DialogToken;
6731 tDot11fFfTxPower TxPower;
6732 tDot11fFfMaxTxPower MaxTxPower;
6733} tDot11fLinkMeasurementRequest;
6734
6735#define DOT11F_LINKMEASUREMENTREQUEST ( 26 )
6736
6737#ifdef __cplusplus
6738extern "C" {
6739#endif /* C++ */
6740
6741tANI_U32 dot11fUnpackLinkMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementRequest *pFrm);
6742tANI_U32 dot11fPackLinkMeasurementRequest(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6743tANI_U32 dot11fGetPackedLinkMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6744
6745#ifdef __cplusplus
6746} /* End extern "C". */
6747#endif /* C++ */
6748
6749typedef struct sDot11fMeasurementReport{
6750 tDot11fFfCategory Category;
6751 tDot11fFfAction Action;
6752 tDot11fFfDialogToken DialogToken;
6753 tDot11fIEMeasurementReport MeasurementReport;
6754} tDot11fMeasurementReport;
6755
6756#define DOT11F_MEASUREMENTREPORT ( 27 )
6757
6758#ifdef __cplusplus
6759extern "C" {
6760#endif /* C++ */
6761
6762tANI_U32 dot11fUnpackMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementReport *pFrm);
6763tANI_U32 dot11fPackMeasurementReport(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6764tANI_U32 dot11fGetPackedMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6765
6766#ifdef __cplusplus
6767} /* End extern "C". */
6768#endif /* C++ */
6769
6770typedef struct sDot11fMeasurementRequest{
6771 tDot11fFfCategory Category;
6772 tDot11fFfAction Action;
6773 tDot11fFfDialogToken DialogToken;
6774 tANI_U16 num_MeasurementRequest;
6775 tDot11fIEMeasurementRequest MeasurementRequest[4];
6776} tDot11fMeasurementRequest;
6777
6778#define DOT11F_MEASUREMENTREQUEST ( 28 )
6779
6780#ifdef __cplusplus
6781extern "C" {
6782#endif /* C++ */
6783
6784tANI_U32 dot11fUnpackMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementRequest *pFrm);
6785tANI_U32 dot11fPackMeasurementRequest(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6786tANI_U32 dot11fGetPackedMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6787
6788#ifdef __cplusplus
6789} /* End extern "C". */
6790#endif /* C++ */
6791
6792typedef struct sDot11fNeighborReportRequest{
6793 tDot11fFfCategory Category;
6794 tDot11fFfAction Action;
6795 tDot11fFfDialogToken DialogToken;
6796 tDot11fIESSID SSID;
6797} tDot11fNeighborReportRequest;
6798
6799#define DOT11F_NEIGHBORREPORTREQUEST ( 29 )
6800
6801#ifdef __cplusplus
6802extern "C" {
6803#endif /* C++ */
6804
6805tANI_U32 dot11fUnpackNeighborReportRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportRequest *pFrm);
6806tANI_U32 dot11fPackNeighborReportRequest(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6807tANI_U32 dot11fGetPackedNeighborReportRequestSize(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U32 *pnNeeded);
6808
6809#ifdef __cplusplus
6810} /* End extern "C". */
6811#endif /* C++ */
6812
6813typedef struct sDot11fNeighborReportResponse{
6814 tDot11fFfCategory Category;
6815 tDot11fFfAction Action;
6816 tDot11fFfDialogToken DialogToken;
6817 tANI_U16 num_NeighborReport;
6818 tDot11fIENeighborReport NeighborReport[4];
6819} tDot11fNeighborReportResponse;
6820
6821#define DOT11F_NEIGHBORREPORTRESPONSE ( 30 )
6822
6823#ifdef __cplusplus
6824extern "C" {
6825#endif /* C++ */
6826
6827tANI_U32 dot11fUnpackNeighborReportResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportResponse *pFrm);
6828tANI_U32 dot11fPackNeighborReportResponse(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6829tANI_U32 dot11fGetPackedNeighborReportResponseSize(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U32 *pnNeeded);
6830
6831#ifdef __cplusplus
6832} /* End extern "C". */
6833#endif /* C++ */
6834
6835typedef struct sDot11fNoticeOfAbs{
6836 tDot11fFfCategory Category;
6837 tDot11fFfP2POUI P2POUI;
6838 tDot11fFfP2POUISubType P2POUISubType;
6839 tDot11fFfDialogToken DialogToken;
6840 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6841} tDot11fNoticeOfAbs;
6842
6843#define DOT11F_NOTICEOFABS ( 31 )
6844
6845#ifdef __cplusplus
6846extern "C" {
6847#endif /* C++ */
6848
6849tANI_U32 dot11fUnpackNoticeOfAbs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNoticeOfAbs *pFrm);
6850tANI_U32 dot11fPackNoticeOfAbs(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6851tANI_U32 dot11fGetPackedNoticeOfAbsSize(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U32 *pnNeeded);
6852
6853#ifdef __cplusplus
6854} /* End extern "C". */
6855#endif /* C++ */
6856
Mohit Khanna4a70d262012-09-11 16:30:12 -07006857typedef struct sDot11fOperatingMode{
6858 tDot11fFfCategory Category;
6859 tDot11fFfAction Action;
6860 tDot11fFfOperatingMode OperatingMode;
6861} tDot11fOperatingMode;
6862
6863#define DOT11F_OPERATINGMODE ( 32 )
6864
6865#ifdef __cplusplus
6866extern "C" {
6867#endif /* C++ */
6868
6869tANI_U32 dot11fUnpackOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fOperatingMode *pFrm);
6870tANI_U32 dot11fPackOperatingMode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6871tANI_U32 dot11fGetPackedOperatingModeSize(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U32 *pnNeeded);
6872
6873#ifdef __cplusplus
6874} /* End extern "C". */
6875#endif /* C++ */
6876
Jeff Johnson295189b2012-06-20 16:38:30 -07006877typedef struct sDot11fPresenceReq{
6878 tDot11fFfCategory Category;
6879 tDot11fFfP2POUI P2POUI;
6880 tDot11fFfP2POUISubType P2POUISubType;
6881 tDot11fFfDialogToken DialogToken;
6882 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6883} tDot11fPresenceReq;
6884
Mohit Khanna4a70d262012-09-11 16:30:12 -07006885#define DOT11F_PRESENCEREQ ( 33 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006886
6887#ifdef __cplusplus
6888extern "C" {
6889#endif /* C++ */
6890
6891tANI_U32 dot11fUnpackPresenceReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceReq *pFrm);
6892tANI_U32 dot11fPackPresenceReq(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6893tANI_U32 dot11fGetPackedPresenceReqSize(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U32 *pnNeeded);
6894
6895#ifdef __cplusplus
6896} /* End extern "C". */
6897#endif /* C++ */
6898
6899typedef struct sDot11fPresenceRes{
6900 tDot11fFfCategory Category;
6901 tDot11fFfP2POUI P2POUI;
6902 tDot11fFfP2POUISubType P2POUISubType;
6903 tDot11fFfDialogToken DialogToken;
6904 tDot11fIEP2PPresenceResponse P2PPresenceResponse;
6905} tDot11fPresenceRes;
6906
Mohit Khanna4a70d262012-09-11 16:30:12 -07006907#define DOT11F_PRESENCERES ( 34 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006908
6909#ifdef __cplusplus
6910extern "C" {
6911#endif /* C++ */
6912
6913tANI_U32 dot11fUnpackPresenceRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceRes *pFrm);
6914tANI_U32 dot11fPackPresenceRes(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6915tANI_U32 dot11fGetPackedPresenceResSize(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U32 *pnNeeded);
6916
6917#ifdef __cplusplus
6918} /* End extern "C". */
6919#endif /* C++ */
6920
6921typedef struct sDot11fProbeRequest{
6922 tDot11fIESSID SSID;
6923 tDot11fIESuppRates SuppRates;
6924 tDot11fIERequestedInfo RequestedInfo;
6925 tDot11fIEExtSuppRates ExtSuppRates;
6926 tDot11fIEDSParams DSParams;
6927 tDot11fIEHTCaps HTCaps;
6928 tDot11fIEWscProbeReq WscProbeReq;
6929 tDot11fIEWFATPC WFATPC;
6930 tDot11fIEP2PProbeReq P2PProbeReq;
Jeff Johnsone7245742012-09-05 17:12:55 -07006931 tDot11fIEVHTCaps VHTCaps;
Jeff Johnson295189b2012-06-20 16:38:30 -07006932} tDot11fProbeRequest;
6933
Mohit Khanna4a70d262012-09-11 16:30:12 -07006934#define DOT11F_PROBEREQUEST ( 35 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006935
6936#ifdef __cplusplus
6937extern "C" {
6938#endif /* C++ */
6939
6940tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeRequest *pFrm);
6941tANI_U32 dot11fPackProbeRequest(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6942tANI_U32 dot11fGetPackedProbeRequestSize(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U32 *pnNeeded);
6943
6944#ifdef __cplusplus
6945} /* End extern "C". */
6946#endif /* C++ */
6947
6948typedef struct sDot11fProbeResponse{
6949 tDot11fFfTimeStamp TimeStamp;
6950 tDot11fFfBeaconInterval BeaconInterval;
6951 tDot11fFfCapabilities Capabilities;
6952 tDot11fIESSID SSID;
6953 tDot11fIESuppRates SuppRates;
6954 tDot11fIEFHParamSet FHParamSet;
6955 tDot11fIEDSParams DSParams;
6956 tDot11fIECFParams CFParams;
6957 tDot11fIEIBSSParams IBSSParams;
6958 tDot11fIECountry Country;
6959 tDot11fIEFHParams FHParams;
6960 tDot11fIEFHPattTable FHPattTable;
6961 tDot11fIEPowerConstraints PowerConstraints;
6962 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6963 tDot11fIEQuiet Quiet;
6964 tDot11fIETPCReport TPCReport;
6965 tDot11fIEERPInfo ERPInfo;
6966 tDot11fIEExtSuppRates ExtSuppRates;
6967 tDot11fIERSN RSN;
6968 tDot11fIEQBSSLoad QBSSLoad;
6969 tDot11fIEEDCAParamSet EDCAParamSet;
6970 tDot11fIERRMEnabledCap RRMEnabledCap;
6971 tDot11fIEAPChannelReport APChannelReport;
6972 tDot11fIEMobilityDomain MobilityDomain;
6973 tDot11fIEWPA WPA;
6974 tDot11fIEHTCaps HTCaps;
6975 tDot11fIEHTInfo HTInfo;
6976 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6977 tDot11fIEWMMInfoAp WMMInfoAp;
6978 tDot11fIEWMMParams WMMParams;
6979 tDot11fIEWMMCaps WMMCaps;
6980 tDot11fIEWAPI WAPI;
6981 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6982 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6983 tDot11fIECCXTxmitPower CCXTxmitPower;
6984 tDot11fIEAirgo Airgo;
6985 tDot11fIEWscProbeRes WscProbeRes;
6986 tDot11fIEP2PProbeRes P2PProbeRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07006987 tDot11fIEVHTCaps VHTCaps;
6988 tDot11fIEVHTOperation VHTOperation;
6989 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006990 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07006991} tDot11fProbeResponse;
6992
Mohit Khanna4a70d262012-09-11 16:30:12 -07006993#define DOT11F_PROBERESPONSE ( 36 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006994
6995#ifdef __cplusplus
6996extern "C" {
6997#endif /* C++ */
6998
6999tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeResponse *pFrm);
7000tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7001tANI_U32 dot11fGetPackedProbeResponseSize(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U32 *pnNeeded);
7002
7003#ifdef __cplusplus
7004} /* End extern "C". */
7005#endif /* C++ */
7006
7007typedef struct sDot11fProvisionDiscoveryReq{
7008 tDot11fFfCategory Category;
7009 tDot11fFfAction Action;
7010 tDot11fFfP2POUI P2POUI;
7011 tDot11fFfP2POUISubType P2POUISubType;
7012 tDot11fFfDialogToken DialogToken;
7013 tDot11fIEP2PProvisionDiscoveryReq P2PProvisionDiscoveryReq;
7014} tDot11fProvisionDiscoveryReq;
7015
Mohit Khanna4a70d262012-09-11 16:30:12 -07007016#define DOT11F_PROVISIONDISCOVERYREQ ( 37 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007017
7018#ifdef __cplusplus
7019extern "C" {
7020#endif /* C++ */
7021
7022tANI_U32 dot11fUnpackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryReq *pFrm);
7023tANI_U32 dot11fPackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7024tANI_U32 dot11fGetPackedProvisionDiscoveryReqSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U32 *pnNeeded);
7025
7026#ifdef __cplusplus
7027} /* End extern "C". */
7028#endif /* C++ */
7029
7030typedef struct sDot11fProvisionDiscoveryRes{
7031 tDot11fFfCategory Category;
7032 tDot11fFfAction Action;
7033 tDot11fFfP2POUI P2POUI;
7034 tDot11fFfP2POUISubType P2POUISubType;
7035 tDot11fFfDialogToken DialogToken;
7036 tDot11fIEP2PWSCProvisionDiscoveryRes P2PWSCProvisionDiscoveryRes;
7037} tDot11fProvisionDiscoveryRes;
7038
Mohit Khanna4a70d262012-09-11 16:30:12 -07007039#define DOT11F_PROVISIONDISCOVERYRES ( 38 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007040
7041#ifdef __cplusplus
7042extern "C" {
7043#endif /* C++ */
7044
7045tANI_U32 dot11fUnpackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryRes *pFrm);
7046tANI_U32 dot11fPackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7047tANI_U32 dot11fGetPackedProvisionDiscoveryResSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U32 *pnNeeded);
7048
7049#ifdef __cplusplus
7050} /* End extern "C". */
7051#endif /* C++ */
7052
7053typedef struct sDot11fRadioMeasurementReport{
7054 tDot11fFfCategory Category;
7055 tDot11fFfAction Action;
7056 tDot11fFfDialogToken DialogToken;
7057 tANI_U16 num_MeasurementReport;
7058 tDot11fIEMeasurementReport MeasurementReport[4];
7059} tDot11fRadioMeasurementReport;
7060
Mohit Khanna4a70d262012-09-11 16:30:12 -07007061#define DOT11F_RADIOMEASUREMENTREPORT ( 39 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007062
7063#ifdef __cplusplus
7064extern "C" {
7065#endif /* C++ */
7066
7067tANI_U32 dot11fUnpackRadioMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementReport *pFrm);
7068tANI_U32 dot11fPackRadioMeasurementReport(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7069tANI_U32 dot11fGetPackedRadioMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U32 *pnNeeded);
7070
7071#ifdef __cplusplus
7072} /* End extern "C". */
7073#endif /* C++ */
7074
7075typedef struct sDot11fRadioMeasurementRequest{
7076 tDot11fFfCategory Category;
7077 tDot11fFfAction Action;
7078 tDot11fFfDialogToken DialogToken;
7079 tDot11fFfNumOfRepetitions NumOfRepetitions;
7080 tANI_U16 num_MeasurementRequest;
7081 tDot11fIEMeasurementRequest MeasurementRequest[2];
7082} tDot11fRadioMeasurementRequest;
7083
Mohit Khanna4a70d262012-09-11 16:30:12 -07007084#define DOT11F_RADIOMEASUREMENTREQUEST ( 40 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007085
7086#ifdef __cplusplus
7087extern "C" {
7088#endif /* C++ */
7089
7090tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementRequest *pFrm);
7091tANI_U32 dot11fPackRadioMeasurementRequest(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7092tANI_U32 dot11fGetPackedRadioMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
7093
7094#ifdef __cplusplus
7095} /* End extern "C". */
7096#endif /* C++ */
7097
7098typedef struct sDot11fReAssocRequest{
7099 tDot11fFfCapabilities Capabilities;
7100 tDot11fFfListenInterval ListenInterval;
7101 tDot11fFfCurrentAPAddress CurrentAPAddress;
7102 tDot11fIESSID SSID;
7103 tDot11fIESuppRates SuppRates;
7104 tDot11fIEExtSuppRates ExtSuppRates;
7105 tDot11fIEPowerCaps PowerCaps;
7106 tDot11fIESuppChannels SuppChannels;
7107 tDot11fIERSNOpaque RSNOpaque;
7108 tDot11fIEQOSCapsStation QOSCapsStation;
7109 tDot11fIERRMEnabledCap RRMEnabledCap;
7110 tDot11fIEMobilityDomain MobilityDomain;
7111 tDot11fIEFTInfo FTInfo;
7112 tANI_U16 num_RICDataDesc;
7113 tDot11fIERICDataDesc RICDataDesc[2];
7114 tDot11fIEWPAOpaque WPAOpaque;
7115 tDot11fIEHTCaps HTCaps;
7116 tDot11fIEWMMCaps WMMCaps;
7117 tDot11fIEWMMInfoStation WMMInfoStation;
7118 tDot11fIEAirgo Airgo;
7119 tDot11fIEWscIEOpaque WscIEOpaque;
7120 tDot11fIEWAPIOpaque WAPIOpaque;
7121 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7122 tDot11fIECCXVersion CCXVersion;
7123 tDot11fIECCXCckmOpaque CCXCckmOpaque;
7124 tANI_U16 num_WMMTSPEC;
7125 tDot11fIEWMMTSPEC WMMTSPEC[4];
7126 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7127 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07007128 tDot11fIEWFDIEOpaque WFDIEOpaque;
7129 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007130 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07007131 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07007132} tDot11fReAssocRequest;
7133
Mohit Khanna4a70d262012-09-11 16:30:12 -07007134#define DOT11F_REASSOCREQUEST ( 41 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007135
7136#ifdef __cplusplus
7137extern "C" {
7138#endif /* C++ */
7139
7140tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm);
7141tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7142tANI_U32 dot11fGetPackedReAssocRequestSize(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U32 *pnNeeded);
7143
7144#ifdef __cplusplus
7145} /* End extern "C". */
7146#endif /* C++ */
7147
7148typedef struct sDot11fReAssocResponse{
7149 tDot11fFfCapabilities Capabilities;
7150 tDot11fFfStatus Status;
7151 tDot11fFfAID AID;
7152 tDot11fIESuppRates SuppRates;
7153 tDot11fIEExtSuppRates ExtSuppRates;
7154 tDot11fIEEDCAParamSet EDCAParamSet;
7155 tDot11fIERCPIIE RCPIIE;
7156 tDot11fIERSNIIE RSNIIE;
7157 tDot11fIERRMEnabledCap RRMEnabledCap;
7158 tDot11fIERSNOpaque RSNOpaque;
7159 tDot11fIEMobilityDomain MobilityDomain;
7160 tDot11fIEFTInfo FTInfo;
7161 tANI_U16 num_RICDataDesc;
7162 tDot11fIERICDataDesc RICDataDesc[2];
7163 tDot11fIEWPA WPA;
7164 tDot11fIEHTCaps HTCaps;
7165 tDot11fIEHTInfo HTInfo;
7166 tDot11fIEWMMParams WMMParams;
7167 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7168 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7169 tDot11fIECCXTxmitPower CCXTxmitPower;
7170 tANI_U16 num_WMMTSPEC;
7171 tDot11fIEWMMTSPEC WMMTSPEC[4];
7172 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7173 tDot11fIEAirgo Airgo;
7174 tDot11fIEWscReassocRes WscReassocRes;
7175 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007176 tDot11fIEVHTCaps VHTCaps;
7177 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007178 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07007179} tDot11fReAssocResponse;
7180
Mohit Khanna4a70d262012-09-11 16:30:12 -07007181#define DOT11F_REASSOCRESPONSE ( 42 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007182
7183#ifdef __cplusplus
7184extern "C" {
7185#endif /* C++ */
7186
7187tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm);
7188tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7189tANI_U32 dot11fGetPackedReAssocResponseSize(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U32 *pnNeeded);
7190
7191#ifdef __cplusplus
7192} /* End extern "C". */
7193#endif /* C++ */
7194
7195typedef struct sDot11fSMPowerSave{
7196 tDot11fFfCategory Category;
7197 tDot11fFfAction Action;
7198 tDot11fFfSMPowerModeSet SMPowerModeSet;
7199} tDot11fSMPowerSave;
7200
Mohit Khanna4a70d262012-09-11 16:30:12 -07007201#define DOT11F_SMPOWERSAVE ( 43 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007202
7203#ifdef __cplusplus
7204extern "C" {
7205#endif /* C++ */
7206
7207tANI_U32 dot11fUnpackSMPowerSave(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSMPowerSave *pFrm);
7208tANI_U32 dot11fPackSMPowerSave(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7209tANI_U32 dot11fGetPackedSMPowerSaveSize(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U32 *pnNeeded);
7210
7211#ifdef __cplusplus
7212} /* End extern "C". */
7213#endif /* C++ */
7214
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007215typedef struct sDot11fTDLSDisReq{
7216 tDot11fFfCategory Category;
7217 tDot11fFfAction Action;
7218 tDot11fFfDialogToken DialogToken;
7219 tDot11fIELinkIdentifier LinkIdentifier;
7220} tDot11fTDLSDisReq;
7221
7222#define DOT11F_TDLSDISREQ ( 44 )
7223
7224#ifdef __cplusplus
7225extern "C" {
7226#endif /* C++ */
7227
7228tANI_U32 dot11fUnpackTDLSDisReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisReq *pFrm);
7229tANI_U32 dot11fPackTDLSDisReq(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7230tANI_U32 dot11fGetPackedTDLSDisReqSize(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U32 *pnNeeded);
7231
7232#ifdef __cplusplus
7233} /* End extern "C". */
7234#endif /* C++ */
7235
7236typedef struct sDot11fTDLSDisRsp{
7237 tDot11fFfCategory Category;
7238 tDot11fFfAction Action;
7239 tDot11fFfDialogToken DialogToken;
7240 tDot11fFfCapabilities Capabilities;
7241 tDot11fIESuppRates SuppRates;
7242 tDot11fIEExtSuppRates ExtSuppRates;
7243 tDot11fIESuppChannels SuppChannels;
7244 tDot11fIERSN RSN;
7245 tDot11fIEExtCap ExtCap;
7246 tDot11fIEFTInfo FTInfo;
7247 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7248 tDot11fIERICData RICData;
7249 tDot11fIEHTCaps HTCaps;
7250 tDot11fIELinkIdentifier LinkIdentifier;
7251} tDot11fTDLSDisRsp;
7252
7253#define DOT11F_TDLSDISRSP ( 45 )
7254
7255#ifdef __cplusplus
7256extern "C" {
7257#endif /* C++ */
7258
7259tANI_U32 dot11fUnpackTDLSDisRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisRsp *pFrm);
7260tANI_U32 dot11fPackTDLSDisRsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7261tANI_U32 dot11fGetPackedTDLSDisRspSize(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U32 *pnNeeded);
7262
7263#ifdef __cplusplus
7264} /* End extern "C". */
7265#endif /* C++ */
7266
7267typedef struct sDot11fTDLSPeerTrafficInd{
7268 tDot11fFfCategory Category;
7269 tDot11fFfAction Action;
7270 tDot11fFfDialogToken DialogToken;
7271 tDot11fIELinkIdentifier LinkIdentifier;
7272 tDot11fIEPTIControl PTIControl;
7273 tDot11fIEPUBufferStatus PUBufferStatus;
7274} tDot11fTDLSPeerTrafficInd;
7275
7276#define DOT11F_TDLSPEERTRAFFICIND ( 46 )
7277
7278#ifdef __cplusplus
7279extern "C" {
7280#endif /* C++ */
7281
7282tANI_U32 dot11fUnpackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficInd *pFrm);
7283tANI_U32 dot11fPackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7284tANI_U32 dot11fGetPackedTDLSPeerTrafficIndSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U32 *pnNeeded);
7285
7286#ifdef __cplusplus
7287} /* End extern "C". */
7288#endif /* C++ */
7289
7290typedef struct sDot11fTDLSPeerTrafficRsp{
7291 tDot11fFfCategory Category;
7292 tDot11fFfAction Action;
7293 tDot11fFfDialogToken DialogToken;
7294 tDot11fIELinkIdentifier LinkIdentifier;
7295} tDot11fTDLSPeerTrafficRsp;
7296
7297#define DOT11F_TDLSPEERTRAFFICRSP ( 47 )
7298
7299#ifdef __cplusplus
7300extern "C" {
7301#endif /* C++ */
7302
7303tANI_U32 dot11fUnpackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficRsp *pFrm);
7304tANI_U32 dot11fPackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7305tANI_U32 dot11fGetPackedTDLSPeerTrafficRspSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U32 *pnNeeded);
7306
7307#ifdef __cplusplus
7308} /* End extern "C". */
7309#endif /* C++ */
7310
7311typedef struct sDot11fTDLSSetupCnf{
7312 tDot11fFfCategory Category;
7313 tDot11fFfAction Action;
7314 tDot11fFfStatus Status;
7315 tDot11fFfDialogToken DialogToken;
7316 tDot11fIERSN RSN;
7317 tDot11fIEEDCAParamSet EDCAParamSet;
7318 tDot11fIEFTInfo FTInfo;
7319 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7320 tDot11fIEHTInfo HTInfo;
7321 tDot11fIELinkIdentifier LinkIdentifier;
7322 tDot11fIEWMMInfoStation WMMInfoStation;
7323} tDot11fTDLSSetupCnf;
7324
7325#define DOT11F_TDLSSETUPCNF ( 48 )
7326
7327#ifdef __cplusplus
7328extern "C" {
7329#endif /* C++ */
7330
7331tANI_U32 dot11fUnpackTDLSSetupCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupCnf *pFrm);
7332tANI_U32 dot11fPackTDLSSetupCnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7333tANI_U32 dot11fGetPackedTDLSSetupCnfSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U32 *pnNeeded);
7334
7335#ifdef __cplusplus
7336} /* End extern "C". */
7337#endif /* C++ */
7338
7339typedef struct sDot11fTDLSSetupReq{
7340 tDot11fFfCategory Category;
7341 tDot11fFfAction Action;
7342 tDot11fFfDialogToken DialogToken;
7343 tDot11fFfCapabilities Capabilities;
7344 tDot11fIESuppRates SuppRates;
7345 tDot11fIECountry Country;
7346 tDot11fIEExtSuppRates ExtSuppRates;
7347 tDot11fIESuppChannels SuppChannels;
7348 tDot11fIERSN RSN;
7349 tDot11fIEExtCap ExtCap;
7350 tDot11fIEQOSCapsStation QOSCapsStation;
7351 tDot11fIEFTInfo FTInfo;
7352 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7353 tDot11fIERICData RICData;
7354 tDot11fIEHTCaps HTCaps;
7355 tDot11fIELinkIdentifier LinkIdentifier;
7356 tDot11fIEWMMInfoStation WMMInfoStation;
7357} tDot11fTDLSSetupReq;
7358
7359#define DOT11F_TDLSSETUPREQ ( 49 )
7360
7361#ifdef __cplusplus
7362extern "C" {
7363#endif /* C++ */
7364
7365tANI_U32 dot11fUnpackTDLSSetupReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupReq *pFrm);
7366tANI_U32 dot11fPackTDLSSetupReq(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7367tANI_U32 dot11fGetPackedTDLSSetupReqSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U32 *pnNeeded);
7368
7369#ifdef __cplusplus
7370} /* End extern "C". */
7371#endif /* C++ */
7372
7373typedef struct sDot11fTDLSSetupRsp{
7374 tDot11fFfCategory Category;
7375 tDot11fFfAction Action;
7376 tDot11fFfStatus Status;
7377 tDot11fFfDialogToken DialogToken;
7378 tDot11fFfCapabilities Capabilities;
7379 tDot11fIESuppRates SuppRates;
7380 tDot11fIECountry Country;
7381 tDot11fIEExtSuppRates ExtSuppRates;
7382 tDot11fIESuppChannels SuppChannels;
7383 tDot11fIERSN RSN;
7384 tDot11fIEExtCap ExtCap;
7385 tDot11fIEQOSCapsStation QOSCapsStation;
7386 tDot11fIEFTInfo FTInfo;
7387 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7388 tDot11fIERICData RICData;
7389 tDot11fIEHTCaps HTCaps;
7390 tDot11fIELinkIdentifier LinkIdentifier;
7391 tDot11fIEWMMInfoStation WMMInfoStation;
7392} tDot11fTDLSSetupRsp;
7393
7394#define DOT11F_TDLSSETUPRSP ( 50 )
7395
7396#ifdef __cplusplus
7397extern "C" {
7398#endif /* C++ */
7399
7400tANI_U32 dot11fUnpackTDLSSetupRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupRsp *pFrm);
7401tANI_U32 dot11fPackTDLSSetupRsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7402tANI_U32 dot11fGetPackedTDLSSetupRspSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U32 *pnNeeded);
7403
7404#ifdef __cplusplus
7405} /* End extern "C". */
7406#endif /* C++ */
7407
7408typedef struct sDot11fTDLSTeardown{
7409 tDot11fFfCategory Category;
7410 tDot11fFfAction Action;
7411 tDot11fFfReason Reason;
7412 tDot11fIEFTInfo FTInfo;
7413 tDot11fIELinkIdentifier LinkIdentifier;
7414} tDot11fTDLSTeardown;
7415
7416#define DOT11F_TDLSTEARDOWN ( 51 )
7417
7418#ifdef __cplusplus
7419extern "C" {
7420#endif /* C++ */
7421
7422tANI_U32 dot11fUnpackTDLSTeardown(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSTeardown *pFrm);
7423tANI_U32 dot11fPackTDLSTeardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7424tANI_U32 dot11fGetPackedTDLSTeardownSize(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U32 *pnNeeded);
7425
7426#ifdef __cplusplus
7427} /* End extern "C". */
7428#endif /* C++ */
7429
Jeff Johnson295189b2012-06-20 16:38:30 -07007430typedef struct sDot11fTPCReport{
7431 tDot11fFfCategory Category;
7432 tDot11fFfAction Action;
7433 tDot11fFfDialogToken DialogToken;
7434 tDot11fIETPCReport TPCReport;
7435} tDot11fTPCReport;
7436
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007437#define DOT11F_TPCREPORT ( 52 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007438
7439#ifdef __cplusplus
7440extern "C" {
7441#endif /* C++ */
7442
7443tANI_U32 dot11fUnpackTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCReport *pFrm);
7444tANI_U32 dot11fPackTPCReport(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7445tANI_U32 dot11fGetPackedTPCReportSize(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U32 *pnNeeded);
7446
7447#ifdef __cplusplus
7448} /* End extern "C". */
7449#endif /* C++ */
7450
7451typedef struct sDot11fTPCRequest{
7452 tDot11fFfCategory Category;
7453 tDot11fFfAction Action;
7454 tDot11fFfDialogToken DialogToken;
7455 tDot11fIETPCRequest TPCRequest;
7456} tDot11fTPCRequest;
7457
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007458#define DOT11F_TPCREQUEST ( 53 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007459
7460#ifdef __cplusplus
7461extern "C" {
7462#endif /* C++ */
7463
7464tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCRequest *pFrm);
7465tANI_U32 dot11fPackTPCRequest(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7466tANI_U32 dot11fGetPackedTPCRequestSize(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U32 *pnNeeded);
7467
7468#ifdef __cplusplus
7469} /* End extern "C". */
7470#endif /* C++ */
7471
7472typedef struct sDot11fWMMAddTSRequest{
7473 tDot11fFfCategory Category;
7474 tDot11fFfAction Action;
7475 tDot11fFfDialogToken DialogToken;
7476 tDot11fFfStatusCode StatusCode;
7477 tDot11fIEWMMTSPEC WMMTSPEC;
7478 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7479} tDot11fWMMAddTSRequest;
7480
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007481#define DOT11F_WMMADDTSREQUEST ( 54 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007482
7483#ifdef __cplusplus
7484extern "C" {
7485#endif /* C++ */
7486
7487tANI_U32 dot11fUnpackWMMAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSRequest *pFrm);
7488tANI_U32 dot11fPackWMMAddTSRequest(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7489tANI_U32 dot11fGetPackedWMMAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U32 *pnNeeded);
7490
7491#ifdef __cplusplus
7492} /* End extern "C". */
7493#endif /* C++ */
7494
7495typedef struct sDot11fWMMAddTSResponse{
7496 tDot11fFfCategory Category;
7497 tDot11fFfAction Action;
7498 tDot11fFfDialogToken DialogToken;
7499 tDot11fFfStatusCode StatusCode;
7500 tDot11fIEWMMTSPEC WMMTSPEC;
7501 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7502} tDot11fWMMAddTSResponse;
7503
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007504#define DOT11F_WMMADDTSRESPONSE ( 55 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007505
7506#ifdef __cplusplus
7507extern "C" {
7508#endif /* C++ */
7509
7510tANI_U32 dot11fUnpackWMMAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSResponse *pFrm);
7511tANI_U32 dot11fPackWMMAddTSResponse(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7512tANI_U32 dot11fGetPackedWMMAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U32 *pnNeeded);
7513
7514#ifdef __cplusplus
7515} /* End extern "C". */
7516#endif /* C++ */
7517
7518typedef struct sDot11fWMMDelTS{
7519 tDot11fFfCategory Category;
7520 tDot11fFfAction Action;
7521 tDot11fFfDialogToken DialogToken;
7522 tDot11fFfStatusCode StatusCode;
7523 tDot11fIEWMMTSPEC WMMTSPEC;
7524} tDot11fWMMDelTS;
7525
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007526#define DOT11F_WMMDELTS ( 56 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007527
7528#ifdef __cplusplus
7529extern "C" {
7530#endif /* C++ */
7531
7532tANI_U32 dot11fUnpackWMMDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMDelTS *pFrm);
7533tANI_U32 dot11fPackWMMDelTS(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7534tANI_U32 dot11fGetPackedWMMDelTSSize(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U32 *pnNeeded);
7535
7536#ifdef __cplusplus
7537} /* End extern "C". */
7538#endif /* C++ */
7539
7540#endif /* DOT11F_H */