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