blob: 198b259c4f5494650388d815b2a873f7c70293d0 [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++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004201// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4202typedef struct sDot11fIEP2PAssocReq {
4203 tANI_U8 present;
4204 tDot11fTLVP2PCapability P2PCapability;
4205 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4206 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4207} tDot11fIEP2PAssocReq;
4208
4209#define DOT11F_EID_P2PASSOCREQ ( 221 )
4210
4211// N.B. These #defines do *not* include the EID & length
4212#define DOT11F_IE_P2PASSOCREQ_MIN_LEN ( 4 )
4213
4214#define DOT11F_IE_P2PASSOCREQ_MAX_LEN ( 71 )
4215
4216#ifdef __cplusplus
4217extern "C" {
4218#endif /* C++ */
4219tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocReq*);
4220
4221tANI_U32 dot11fPackIeP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
4222
4223tANI_U32 dot11fGetPackedIEP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U32*);
4224
4225#ifdef __cplusplus
4226}; /* End extern "C". */
4227#endif /* C++ */
4228// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4229typedef struct sDot11fIEP2PAssocRes {
4230 tANI_U8 present;
4231 tDot11fTLVP2PStatus P2PStatus;
4232 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4233} tDot11fIEP2PAssocRes;
4234
4235#define DOT11F_EID_P2PASSOCRES ( 221 )
4236
4237// N.B. These #defines do *not* include the EID & length
4238#define DOT11F_IE_P2PASSOCRES_MIN_LEN ( 4 )
4239
4240#define DOT11F_IE_P2PASSOCRES_MAX_LEN ( 15 )
4241
4242#ifdef __cplusplus
4243extern "C" {
4244#endif /* C++ */
4245tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocRes*);
4246
4247tANI_U32 dot11fPackIeP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
4248
4249tANI_U32 dot11fGetPackedIEP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U32*);
4250
4251#ifdef __cplusplus
4252}; /* End extern "C". */
4253#endif /* C++ */
4254// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4255typedef struct sDot11fIEP2PBeacon {
4256 tANI_U8 present;
4257 tDot11fTLVP2PCapability P2PCapability;
4258 tDot11fTLVP2PDeviceId P2PDeviceId;
4259 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4260} tDot11fIEP2PBeacon;
4261
4262#define DOT11F_EID_P2PBEACON ( 221 )
4263
4264// N.B. These #defines do *not* include the EID & length
4265#define DOT11F_IE_P2PBEACON_MIN_LEN ( 4 )
4266
4267#define DOT11F_IE_P2PBEACON_MAX_LEN ( 59 )
4268
4269#ifdef __cplusplus
4270extern "C" {
4271#endif /* C++ */
4272tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeacon*);
4273
4274tANI_U32 dot11fPackIeP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
4275
4276tANI_U32 dot11fGetPackedIEP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U32*);
4277
4278#ifdef __cplusplus
4279}; /* End extern "C". */
4280#endif /* C++ */
4281// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4282typedef struct sDot11fIEP2PBeaconProbeRes {
4283 tANI_U8 present;
4284 tDot11fTLVP2PCapability P2PCapability;
4285 tDot11fTLVP2PDeviceId P2PDeviceId;
4286 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4287 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4288 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4289 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4290} tDot11fIEP2PBeaconProbeRes;
4291
4292#define DOT11F_EID_P2PBEACONPROBERES ( 221 )
4293
4294// N.B. These #defines do *not* include the EID & length
4295#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN ( 4 )
4296
4297#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN ( 1148 )
4298
4299#ifdef __cplusplus
4300extern "C" {
4301#endif /* C++ */
4302tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeaconProbeRes*);
4303
4304tANI_U32 dot11fPackIeP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4305
4306tANI_U32 dot11fGetPackedIEP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U32*);
4307
4308#ifdef __cplusplus
4309}; /* End extern "C". */
4310#endif /* C++ */
4311// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4312typedef struct sDot11fIEP2PDeAuth {
4313 tANI_U8 present;
4314 tDot11fTLVMinorReasonCode MinorReasonCode;
4315} tDot11fIEP2PDeAuth;
4316
4317#define DOT11F_EID_P2PDEAUTH ( 221 )
4318
4319// N.B. These #defines do *not* include the EID & length
4320#define DOT11F_IE_P2PDEAUTH_MIN_LEN ( 4 )
4321
4322#define DOT11F_IE_P2PDEAUTH_MAX_LEN ( 8 )
4323
4324#ifdef __cplusplus
4325extern "C" {
4326#endif /* C++ */
4327tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeAuth*);
4328
4329tANI_U32 dot11fPackIeP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U8*, tANI_U32, tANI_U32*);
4330
4331tANI_U32 dot11fGetPackedIEP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, 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 sDot11fIEP2PDeviceDiscoverabilityReq {
4338 tANI_U8 present;
4339 tDot11fTLVP2PDeviceId P2PDeviceId;
4340 tDot11fTLVP2PGroupId P2PGroupId;
4341} tDot11fIEP2PDeviceDiscoverabilityReq;
4342
4343#define DOT11F_EID_P2PDEVICEDISCOVERABILITYREQ ( 221 )
4344
4345// N.B. These #defines do *not* include the EID & length
4346#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MIN_LEN ( 4 )
4347
4348#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MAX_LEN ( 54 )
4349
4350#ifdef __cplusplus
4351extern "C" {
4352#endif /* C++ */
4353tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityReq*);
4354
4355tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U8*, tANI_U32, tANI_U32*);
4356
4357tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U32*);
4358
4359#ifdef __cplusplus
4360}; /* End extern "C". */
4361#endif /* C++ */
4362// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4363typedef struct sDot11fIEP2PDeviceDiscoverabilityRes {
4364 tANI_U8 present;
4365 tDot11fTLVP2PStatus P2PStatus;
4366} tDot11fIEP2PDeviceDiscoverabilityRes;
4367
4368#define DOT11F_EID_P2PDEVICEDISCOVERABILITYRES ( 221 )
4369
4370// N.B. These #defines do *not* include the EID & length
4371#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MIN_LEN ( 4 )
4372
4373#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MAX_LEN ( 8 )
4374
4375#ifdef __cplusplus
4376extern "C" {
4377#endif /* C++ */
4378tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityRes*);
4379
4380tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U8*, tANI_U32, tANI_U32*);
4381
4382tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, 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 sDot11fIEP2PDisAssoc {
4389 tANI_U8 present;
4390 tDot11fTLVMinorReasonCode MinorReasonCode;
4391} tDot11fIEP2PDisAssoc;
4392
4393#define DOT11F_EID_P2PDISASSOC ( 221 )
4394
4395// N.B. These #defines do *not* include the EID & length
4396#define DOT11F_IE_P2PDISASSOC_MIN_LEN ( 4 )
4397
4398#define DOT11F_IE_P2PDISASSOC_MAX_LEN ( 8 )
4399
4400#ifdef __cplusplus
4401extern "C" {
4402#endif /* C++ */
4403tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDisAssoc*);
4404
4405tANI_U32 dot11fPackIeP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U8*, tANI_U32, tANI_U32*);
4406
4407tANI_U32 dot11fGetPackedIEP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, 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 sDot11fIEP2PGONegCnf {
4414 tANI_U8 present;
4415 tDot11fTLVP2PStatus P2PStatus;
4416 tDot11fTLVP2PCapability P2PCapability;
4417 tDot11fTLVOperatingChannel OperatingChannel;
4418 tDot11fTLVChannelList ChannelList;
4419 tDot11fTLVP2PGroupId P2PGroupId;
4420} tDot11fIEP2PGONegCnf;
4421
4422#define DOT11F_EID_P2PGONEGCNF ( 221 )
4423
4424// N.B. These #defines do *not* include the EID & length
4425#define DOT11F_IE_P2PGONEGCNF_MIN_LEN ( 4 )
4426
4427#define DOT11F_IE_P2PGONEGCNF_MAX_LEN ( 319 )
4428
4429#ifdef __cplusplus
4430extern "C" {
4431#endif /* C++ */
4432tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegCnf*);
4433
4434tANI_U32 dot11fPackIeP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U8*, tANI_U32, tANI_U32*);
4435
4436tANI_U32 dot11fGetPackedIEP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U32*);
4437
4438#ifdef __cplusplus
4439}; /* End extern "C". */
4440#endif /* C++ */
4441// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4442typedef struct sDot11fIEP2PGONegReq {
4443 tANI_U8 present;
4444 tDot11fTLVP2PCapability P2PCapability;
4445 tDot11fTLVGOIntent GOIntent;
4446 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4447 tDot11fTLVListenChannel ListenChannel;
4448 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4449 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4450 tDot11fTLVChannelList ChannelList;
4451 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4452 tDot11fTLVOperatingChannel OperatingChannel;
4453} tDot11fIEP2PGONegReq;
4454
4455#define DOT11F_EID_P2PGONEGREQ ( 221 )
4456
4457// N.B. These #defines do *not* include the EID & length
4458#define DOT11F_IE_P2PGONEGREQ_MIN_LEN ( 4 )
4459
4460#define DOT11F_IE_P2PGONEGREQ_MAX_LEN ( 362 )
4461
4462#ifdef __cplusplus
4463extern "C" {
4464#endif /* C++ */
4465tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegReq*);
4466
4467tANI_U32 dot11fPackIeP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U8*, tANI_U32, tANI_U32*);
4468
4469tANI_U32 dot11fGetPackedIEP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U32*);
4470
4471#ifdef __cplusplus
4472}; /* End extern "C". */
4473#endif /* C++ */
4474// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4475typedef struct sDot11fIEP2PGONegRes {
4476 tANI_U8 present;
4477 tDot11fTLVP2PStatus P2PStatus;
4478 tDot11fTLVP2PCapability P2PCapability;
4479 tDot11fTLVGOIntent GOIntent;
4480 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4481 tDot11fTLVOperatingChannel OperatingChannel;
4482 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4483 tDot11fTLVChannelList ChannelList;
4484 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4485 tDot11fTLVP2PGroupId P2PGroupId;
4486} tDot11fIEP2PGONegRes;
4487
4488#define DOT11F_EID_P2PGONEGRES ( 221 )
4489
4490// N.B. These #defines do *not* include the EID & length
4491#define DOT11F_IE_P2PGONEGRES_MIN_LEN ( 4 )
4492
4493#define DOT11F_IE_P2PGONEGRES_MAX_LEN ( 392 )
4494
4495#ifdef __cplusplus
4496extern "C" {
4497#endif /* C++ */
4498tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegRes*);
4499
4500tANI_U32 dot11fPackIeP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U8*, tANI_U32, tANI_U32*);
4501
4502tANI_U32 dot11fGetPackedIEP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U32*);
4503
4504#ifdef __cplusplus
4505}; /* End extern "C". */
4506#endif /* C++ */
4507// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4508typedef struct sDot11fIEP2PGONegWPS {
4509 tANI_U8 present;
4510 tDot11fTLVVersion Version;
4511 tDot11fTLVDevicePasswordID DevicePasswordID;
4512} tDot11fIEP2PGONegWPS;
4513
4514#define DOT11F_EID_P2PGONEGWPS ( 221 )
4515
4516// N.B. These #defines do *not* include the EID & length
4517#define DOT11F_IE_P2PGONEGWPS_MIN_LEN ( 4 )
4518
4519#define DOT11F_IE_P2PGONEGWPS_MAX_LEN ( 15 )
4520
4521#ifdef __cplusplus
4522extern "C" {
4523#endif /* C++ */
4524tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegWPS*);
4525
4526tANI_U32 dot11fPackIeP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U8*, tANI_U32, tANI_U32*);
4527
4528tANI_U32 dot11fGetPackedIEP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U32*);
4529
4530#ifdef __cplusplus
4531}; /* End extern "C". */
4532#endif /* C++ */
4533// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09}
4534typedef struct sDot11fIEP2PIEOpaque {
4535 tANI_U8 present;
4536 tANI_U8 num_data;
4537 tANI_U8 data[249];
4538} tDot11fIEP2PIEOpaque;
4539
4540#define DOT11F_EID_P2PIEOPAQUE ( 221 )
4541
4542// N.B. These #defines do *not* include the EID & length
4543#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN ( 6 )
4544
4545#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN ( 253 )
4546
4547#ifdef __cplusplus
4548extern "C" {
4549#endif /* C++ */
4550tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PIEOpaque*);
4551
4552tANI_U32 dot11fPackIeP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
4553
4554tANI_U32 dot11fGetPackedIEP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U32*);
4555
4556#ifdef __cplusplus
4557}; /* End extern "C". */
4558#endif /* C++ */
4559// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4560typedef struct sDot11fIEP2PInvitationReq {
4561 tANI_U8 present;
4562 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4563 tDot11fTLVInvitationFlags InvitationFlags;
4564 tDot11fTLVOperatingChannel OperatingChannel;
4565 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4566 tDot11fTLVChannelList ChannelList;
4567 tDot11fTLVP2PGroupId P2PGroupId;
4568 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4569} tDot11fIEP2PInvitationReq;
4570
4571#define DOT11F_EID_P2PINVITATIONREQ ( 221 )
4572
4573// N.B. These #defines do *not* include the EID & length
4574#define DOT11F_IE_P2PINVITATIONREQ_MIN_LEN ( 4 )
4575
4576#define DOT11F_IE_P2PINVITATIONREQ_MAX_LEN ( 383 )
4577
4578#ifdef __cplusplus
4579extern "C" {
4580#endif /* C++ */
4581tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationReq*);
4582
4583tANI_U32 dot11fPackIeP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U8*, tANI_U32, tANI_U32*);
4584
4585tANI_U32 dot11fGetPackedIEP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U32*);
4586
4587#ifdef __cplusplus
4588}; /* End extern "C". */
4589#endif /* C++ */
4590// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4591typedef struct sDot11fIEP2PInvitationRes {
4592 tANI_U8 present;
4593 tDot11fTLVP2PStatus P2PStatus;
4594 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4595 tDot11fTLVOperatingChannel OperatingChannel;
4596 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4597 tDot11fTLVChannelList ChannelList;
4598} tDot11fIEP2PInvitationRes;
4599
4600#define DOT11F_EID_P2PINVITATIONRES ( 221 )
4601
4602// N.B. These #defines do *not* include the EID & length
4603#define DOT11F_IE_P2PINVITATIONRES_MIN_LEN ( 4 )
4604
4605#define DOT11F_IE_P2PINVITATIONRES_MAX_LEN ( 287 )
4606
4607#ifdef __cplusplus
4608extern "C" {
4609#endif /* C++ */
4610tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationRes*);
4611
4612tANI_U32 dot11fPackIeP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U8*, tANI_U32, tANI_U32*);
4613
4614tANI_U32 dot11fGetPackedIEP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U32*);
4615
4616#ifdef __cplusplus
4617}; /* End extern "C". */
4618#endif /* C++ */
4619// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4620typedef struct sDot11fIEP2PNoticeOfAbsence {
4621 tANI_U8 present;
4622 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4623} tDot11fIEP2PNoticeOfAbsence;
4624
4625#define DOT11F_EID_P2PNOTICEOFABSENCE ( 221 )
4626
4627// N.B. These #defines do *not* include the EID & length
4628#define DOT11F_IE_P2PNOTICEOFABSENCE_MIN_LEN ( 4 )
4629
4630#define DOT11F_IE_P2PNOTICEOFABSENCE_MAX_LEN ( 45 )
4631
4632#ifdef __cplusplus
4633extern "C" {
4634#endif /* C++ */
4635tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PNoticeOfAbsence*);
4636
4637tANI_U32 dot11fPackIeP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
4638
4639tANI_U32 dot11fGetPackedIEP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, 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 sDot11fIEP2PPresenceResponse {
4646 tANI_U8 present;
4647 tDot11fTLVP2PStatus P2PStatus;
4648 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4649} tDot11fIEP2PPresenceResponse;
4650
4651#define DOT11F_EID_P2PPRESENCERESPONSE ( 221 )
4652
4653// N.B. These #defines do *not* include the EID & length
4654#define DOT11F_IE_P2PPRESENCERESPONSE_MIN_LEN ( 4 )
4655
4656#define DOT11F_IE_P2PPRESENCERESPONSE_MAX_LEN ( 49 )
4657
4658#ifdef __cplusplus
4659extern "C" {
4660#endif /* C++ */
4661tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PPresenceResponse*);
4662
4663tANI_U32 dot11fPackIeP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U8*, tANI_U32, tANI_U32*);
4664
4665tANI_U32 dot11fGetPackedIEP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U32*);
4666
4667#ifdef __cplusplus
4668}; /* End extern "C". */
4669#endif /* C++ */
4670// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4671typedef struct sDot11fIEP2PProbeReq {
4672 tANI_U8 present;
4673 tDot11fTLVP2PCapability P2PCapability;
4674 tDot11fTLVP2PDeviceId P2PDeviceId;
4675 tDot11fTLVListenChannel ListenChannel;
4676 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4677 tDot11fTLVOperatingChannel OperatingChannel;
4678} tDot11fIEP2PProbeReq;
4679
4680#define DOT11F_EID_P2PPROBEREQ ( 221 )
4681
4682// N.B. These #defines do *not* include the EID & length
4683#define DOT11F_IE_P2PPROBEREQ_MIN_LEN ( 4 )
4684
4685#define DOT11F_IE_P2PPROBEREQ_MAX_LEN ( 41 )
4686
4687#ifdef __cplusplus
4688extern "C" {
4689#endif /* C++ */
4690tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeReq*);
4691
4692tANI_U32 dot11fPackIeP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
4693
4694tANI_U32 dot11fGetPackedIEP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U32*);
4695
4696#ifdef __cplusplus
4697}; /* End extern "C". */
4698#endif /* C++ */
4699// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4700typedef struct sDot11fIEP2PProbeRes {
4701 tANI_U8 present;
4702 tDot11fTLVP2PCapability P2PCapability;
4703 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4704 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4705 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4706 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4707} tDot11fIEP2PProbeRes;
4708
4709#define DOT11F_EID_P2PPROBERES ( 221 )
4710
4711// N.B. These #defines do *not* include the EID & length
4712#define DOT11F_IE_P2PPROBERES_MIN_LEN ( 4 )
4713
4714#define DOT11F_IE_P2PPROBERES_MAX_LEN ( 1139 )
4715
4716#ifdef __cplusplus
4717extern "C" {
4718#endif /* C++ */
4719tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeRes*);
4720
4721tANI_U32 dot11fPackIeP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4722
4723tANI_U32 dot11fGetPackedIEP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U32*);
4724
4725#ifdef __cplusplus
4726}; /* End extern "C". */
4727#endif /* C++ */
4728// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4729typedef struct sDot11fIEP2PProvisionDiscoveryReq {
4730 tANI_U8 present;
4731 tDot11fTLVP2PCapability P2PCapability;
4732 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4733 tDot11fTLVP2PGroupId P2PGroupId;
4734} tDot11fIEP2PProvisionDiscoveryReq;
4735
4736#define DOT11F_EID_P2PPROVISIONDISCOVERYREQ ( 221 )
4737
4738// N.B. These #defines do *not* include the EID & length
4739#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MIN_LEN ( 4 )
4740
4741#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MAX_LEN ( 105 )
4742
4743#ifdef __cplusplus
4744extern "C" {
4745#endif /* C++ */
4746tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProvisionDiscoveryReq*);
4747
4748tANI_U32 dot11fPackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U8*, tANI_U32, tANI_U32*);
4749
4750tANI_U32 dot11fGetPackedIEP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U32*);
4751
4752#ifdef __cplusplus
4753}; /* End extern "C". */
4754#endif /* C++ */
4755// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4756typedef struct sDot11fIEP2PWSCProvisionDiscoveryRes {
4757 tANI_U8 present;
4758 tDot11fTLVConfigMethods ConfigMethods;
4759} tDot11fIEP2PWSCProvisionDiscoveryRes;
4760
4761#define DOT11F_EID_P2PWSCPROVISIONDISCOVERYRES ( 221 )
4762
4763// N.B. These #defines do *not* include the EID & length
4764#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MIN_LEN ( 4 )
4765
4766#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MAX_LEN ( 10 )
4767
4768#ifdef __cplusplus
4769extern "C" {
4770#endif /* C++ */
4771tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PWSCProvisionDiscoveryRes*);
4772
4773tANI_U32 dot11fPackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U8*, tANI_U32, tANI_U32*);
4774
4775tANI_U32 dot11fGetPackedIEP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U32*);
4776
4777#ifdef __cplusplus
4778}; /* End extern "C". */
4779#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004780// EID 105 (0x69)
4781typedef struct sDot11fIEPTIControl {
4782 tANI_U8 present;
4783 tANI_U8 tid;
4784 tANI_U16 sequence_control;
4785} tDot11fIEPTIControl;
4786
4787#define DOT11F_EID_PTICONTROL ( 105 )
4788
4789// N.B. These #defines do *not* include the EID & length
4790#define DOT11F_IE_PTICONTROL_MIN_LEN ( 3 )
4791
4792#define DOT11F_IE_PTICONTROL_MAX_LEN ( 3 )
4793
4794#ifdef __cplusplus
4795extern "C" {
4796#endif /* C++ */
4797tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPTIControl*);
4798
4799tANI_U32 dot11fPackIePTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U8*, tANI_U32, tANI_U32*);
4800
4801tANI_U32 dot11fGetPackedIEPTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U32*);
4802
4803#ifdef __cplusplus
4804}; /* End extern "C". */
4805#endif /* C++ */
4806// EID 106 (0x6a)
4807typedef struct sDot11fIEPUBufferStatus {
4808 tANI_U8 present;
4809 tANI_U8 ac_bk_traffic_aval: 1;
4810 tANI_U8 ac_be_traffic_aval: 1;
4811 tANI_U8 ac_vi_traffic_aval: 1;
4812 tANI_U8 ac_vo_traffic_aval: 1;
4813 tANI_U8 reserved: 4;
4814} tDot11fIEPUBufferStatus;
4815
4816#define DOT11F_EID_PUBUFFERSTATUS ( 106 )
4817
4818// N.B. These #defines do *not* include the EID & length
4819#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN ( 1 )
4820
4821#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN ( 1 )
4822
4823#ifdef __cplusplus
4824extern "C" {
4825#endif /* C++ */
4826tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPUBufferStatus*);
4827
4828tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U8*, tANI_U32, tANI_U32*);
4829
4830tANI_U32 dot11fGetPackedIEPUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U32*);
4831
4832#ifdef __cplusplus
4833}; /* End extern "C". */
4834#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004835// EID 33 (0x21)
4836typedef struct sDot11fIEPowerCaps {
4837 tANI_U8 present;
4838 tANI_U8 minTxPower;
4839 tANI_U8 maxTxPower;
4840} tDot11fIEPowerCaps;
4841
4842#define DOT11F_EID_POWERCAPS ( 33 )
4843
4844// N.B. These #defines do *not* include the EID & length
4845#define DOT11F_IE_POWERCAPS_MIN_LEN ( 2 )
4846
4847#define DOT11F_IE_POWERCAPS_MAX_LEN ( 2 )
4848
4849#ifdef __cplusplus
4850extern "C" {
4851#endif /* C++ */
4852tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerCaps*);
4853
4854tANI_U32 dot11fPackIePowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U8*, tANI_U32, tANI_U32*);
4855
4856tANI_U32 dot11fGetPackedIEPowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U32*);
4857
4858#ifdef __cplusplus
4859}; /* End extern "C". */
4860#endif /* C++ */
4861// EID 32 (0x20)
4862typedef struct sDot11fIEPowerConstraints {
4863 tANI_U8 present;
4864 tANI_U8 localPowerConstraints;
4865} tDot11fIEPowerConstraints;
4866
4867#define DOT11F_EID_POWERCONSTRAINTS ( 32 )
4868
4869// N.B. These #defines do *not* include the EID & length
4870#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN ( 1 )
4871
4872#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN ( 1 )
4873
4874#ifdef __cplusplus
4875extern "C" {
4876#endif /* C++ */
4877tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerConstraints*);
4878
4879tANI_U32 dot11fPackIePowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U8*, tANI_U32, tANI_U32*);
4880
4881tANI_U32 dot11fGetPackedIEPowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U32*);
4882
4883#ifdef __cplusplus
4884}; /* End extern "C". */
4885#endif /* C++ */
4886// EID 11 (0x0b)
4887typedef struct sDot11fIEQBSSLoad {
4888 tANI_U8 present;
4889 tANI_U16 stacount;
4890 tANI_U8 chautil;
4891 tANI_U16 avail;
4892} tDot11fIEQBSSLoad;
4893
4894#define DOT11F_EID_QBSSLOAD ( 11 )
4895
4896// N.B. These #defines do *not* include the EID & length
4897#define DOT11F_IE_QBSSLOAD_MIN_LEN ( 5 )
4898
4899#define DOT11F_IE_QBSSLOAD_MAX_LEN ( 5 )
4900
4901#ifdef __cplusplus
4902extern "C" {
4903#endif /* C++ */
4904tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQBSSLoad*);
4905
4906tANI_U32 dot11fPackIeQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U8*, tANI_U32, tANI_U32*);
4907
4908tANI_U32 dot11fGetPackedIEQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U32*);
4909
4910#ifdef __cplusplus
4911}; /* End extern "C". */
4912#endif /* C++ */
4913// EID 46 (0x2e)
4914typedef struct sDot11fIEQOSCapsAp {
4915 tANI_U8 present;
Jeff Johnson295189b2012-06-20 16:38:30 -07004916 tANI_U8 count: 4;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05304917 tANI_U8 qack: 1;
4918 tANI_U8 qreq: 1;
4919 tANI_U8 txopreq: 1;
4920 tANI_U8 reserved: 1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004921} tDot11fIEQOSCapsAp;
4922
4923#define DOT11F_EID_QOSCAPSAP ( 46 )
4924
4925// N.B. These #defines do *not* include the EID & length
4926#define DOT11F_IE_QOSCAPSAP_MIN_LEN ( 1 )
4927
4928#define DOT11F_IE_QOSCAPSAP_MAX_LEN ( 1 )
4929
4930#ifdef __cplusplus
4931extern "C" {
4932#endif /* C++ */
4933tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsAp*);
4934
4935tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U8*, tANI_U32, tANI_U32*);
4936
4937tANI_U32 dot11fGetPackedIEQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U32*);
4938
4939#ifdef __cplusplus
4940}; /* End extern "C". */
4941#endif /* C++ */
4942// EID 46 (0x2e)
4943typedef struct sDot11fIEQOSCapsStation {
4944 tANI_U8 present;
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 tANI_U8 acvo_uapsd: 1;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05304946 tANI_U8 acvi_uapsd: 1;
4947 tANI_U8 acbk_uapsd: 1;
4948 tANI_U8 acbe_uapsd: 1;
4949 tANI_U8 qack: 1;
4950 tANI_U8 max_sp_length: 2;
4951 tANI_U8 more_data_ack: 1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004952} tDot11fIEQOSCapsStation;
4953
4954#define DOT11F_EID_QOSCAPSSTATION ( 46 )
4955
4956// N.B. These #defines do *not* include the EID & length
4957#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN ( 1 )
4958
4959#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN ( 1 )
4960
4961#ifdef __cplusplus
4962extern "C" {
4963#endif /* C++ */
4964tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsStation*);
4965
4966tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U8*, tANI_U32, tANI_U32*);
4967
4968tANI_U32 dot11fGetPackedIEQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U32*);
4969
4970#ifdef __cplusplus
4971}; /* End extern "C". */
4972#endif /* C++ */
4973// EID 40 (0x28)
4974typedef struct sDot11fIEQuiet {
4975 tANI_U8 present;
4976 tANI_U8 count;
4977 tANI_U8 period;
4978 tANI_U16 duration;
4979 tANI_U16 offset;
4980} tDot11fIEQuiet;
4981
4982#define DOT11F_EID_QUIET ( 40 )
4983
4984// N.B. These #defines do *not* include the EID & length
4985#define DOT11F_IE_QUIET_MIN_LEN ( 6 )
4986
4987#define DOT11F_IE_QUIET_MAX_LEN ( 6 )
4988
4989#ifdef __cplusplus
4990extern "C" {
4991#endif /* C++ */
4992tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQuiet*);
4993
4994tANI_U32 dot11fPackIeQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U8*, tANI_U32, tANI_U32*);
4995
4996tANI_U32 dot11fGetPackedIEQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U32*);
4997
4998#ifdef __cplusplus
4999}; /* End extern "C". */
5000#endif /* C++ */
5001// EID 53 (0x35)
5002typedef struct sDot11fIERCPIIE {
5003 tANI_U8 present;
5004 tANI_U8 rcpi;
5005} tDot11fIERCPIIE;
5006
5007#define DOT11F_EID_RCPIIE ( 53 )
5008
5009// N.B. These #defines do *not* include the EID & length
5010#define DOT11F_IE_RCPIIE_MIN_LEN ( 1 )
5011
5012#define DOT11F_IE_RCPIIE_MAX_LEN ( 1 )
5013
5014#ifdef __cplusplus
5015extern "C" {
5016#endif /* C++ */
5017tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERCPIIE*);
5018
5019tANI_U32 dot11fPackIeRCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5020
5021tANI_U32 dot11fGetPackedIERCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U32*);
5022
5023#ifdef __cplusplus
5024}; /* End extern "C". */
5025#endif /* C++ */
5026// EID 57 (0x39)
5027typedef struct sDot11fIERICDataDesc {
5028 tANI_U8 present;
5029 tDot11fIERICData RICData;
5030 tDot11fIERICDescriptor RICDescriptor;
5031 tDot11fIETSPEC TSPEC;
5032 tANI_U16 num_TCLAS;
5033 tDot11fIETCLAS TCLAS[2];
5034 tDot11fIETCLASSPROC TCLASSPROC;
5035 tDot11fIETSDelay TSDelay;
5036 tDot11fIESchedule Schedule;
5037 tDot11fIEWMMTSPEC WMMTSPEC;
5038 tANI_U16 num_WMMTCLAS;
5039 tDot11fIEWMMTCLAS WMMTCLAS[2];
5040 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
5041 tDot11fIEWMMTSDelay WMMTSDelay;
5042 tDot11fIEWMMSchedule WMMSchedule;
5043} tDot11fIERICDataDesc;
5044
5045#define DOT11F_EID_RICDATADESC ( 57 )
5046
5047// N.B. These #defines do *not* include the EID & length
5048#define DOT11F_IE_RICDATADESC_MIN_LEN ( 0 )
5049
5050#define DOT11F_IE_RICDATADESC_MAX_LEN ( 548 )
5051
5052#ifdef __cplusplus
5053extern "C" {
5054#endif /* C++ */
5055tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDataDesc*);
5056
5057tANI_U32 dot11fPackIeRICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U8*, tANI_U32, tANI_U32*);
5058
5059tANI_U32 dot11fGetPackedIERICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U32*);
5060
5061#ifdef __cplusplus
5062}; /* End extern "C". */
5063#endif /* C++ */
5064// EID 48 (0x30)
5065typedef struct sDot11fIERSN {
5066 tANI_U8 present;
5067 tANI_U16 version /* Must be 1! */;
5068 tANI_U8 gp_cipher_suite[4];
5069 tANI_U16 pwise_cipher_suite_count;
5070 tANI_U8 pwise_cipher_suites[4][4];
5071 tANI_U16 akm_suite_count;
5072 tANI_U8 akm_suites[4][4];
Venkata Prathyusha Kuntupalliea7098e2013-01-31 16:08:13 -08005073 tANI_U8 RSN_Cap[2];
Jeff Johnson295189b2012-06-20 16:38:30 -07005074 tANI_U16 pmkid_count;
5075 tANI_U8 pmkid[4][16];
Chet Lanctot4b9abd72013-06-27 11:14:56 -07005076 tANI_U8 gp_mgmt_cipher_suite[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005077} tDot11fIERSN;
5078
5079#define DOT11F_EID_RSN ( 48 )
5080
5081// N.B. These #defines do *not* include the EID & length
5082#define DOT11F_IE_RSN_MIN_LEN ( 6 )
5083
Chet Lanctot4b9abd72013-06-27 11:14:56 -07005084#define DOT11F_IE_RSN_MAX_LEN ( 114 )
Jeff Johnson295189b2012-06-20 16:38:30 -07005085
5086#ifdef __cplusplus
5087extern "C" {
5088#endif /* C++ */
5089tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSN*);
5090
5091tANI_U32 dot11fPackIeRSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U8*, tANI_U32, tANI_U32*);
5092
5093tANI_U32 dot11fGetPackedIERSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U32*);
5094
5095#ifdef __cplusplus
5096}; /* End extern "C". */
5097#endif /* C++ */
5098// EID 65 (0x41)
5099typedef struct sDot11fIERSNIIE {
5100 tANI_U8 present;
5101 tANI_U8 rsni;
5102} tDot11fIERSNIIE;
5103
5104#define DOT11F_EID_RSNIIE ( 65 )
5105
5106// N.B. These #defines do *not* include the EID & length
5107#define DOT11F_IE_RSNIIE_MIN_LEN ( 1 )
5108
5109#define DOT11F_IE_RSNIIE_MAX_LEN ( 1 )
5110
5111#ifdef __cplusplus
5112extern "C" {
5113#endif /* C++ */
5114tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNIIE*);
5115
5116tANI_U32 dot11fPackIeRSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5117
5118tANI_U32 dot11fGetPackedIERSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U32*);
5119
5120#ifdef __cplusplus
5121}; /* End extern "C". */
5122#endif /* C++ */
5123// EID 48 (0x30)
5124typedef struct sDot11fIERSNOpaque {
5125 tANI_U8 present;
5126 tANI_U8 num_data;
5127 tANI_U8 data[253];
5128} tDot11fIERSNOpaque;
5129
5130#define DOT11F_EID_RSNOPAQUE ( 48 )
5131
5132// N.B. These #defines do *not* include the EID & length
5133#define DOT11F_IE_RSNOPAQUE_MIN_LEN ( 6 )
5134
5135#define DOT11F_IE_RSNOPAQUE_MAX_LEN ( 253 )
5136
5137#ifdef __cplusplus
5138extern "C" {
5139#endif /* C++ */
5140tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNOpaque*);
5141
5142tANI_U32 dot11fPackIeRSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5143
5144tANI_U32 dot11fGetPackedIERSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U32*);
5145
5146#ifdef __cplusplus
5147}; /* End extern "C". */
5148#endif /* C++ */
5149// EID 36 (0x24)
5150typedef struct sDot11fIESuppChannels {
5151 tANI_U8 present;
5152 tANI_U8 num_bands;
5153 tANI_U8 bands[48][2];
5154} tDot11fIESuppChannels;
5155
5156#define DOT11F_EID_SUPPCHANNELS ( 36 )
5157
5158// N.B. These #defines do *not* include the EID & length
5159#define DOT11F_IE_SUPPCHANNELS_MIN_LEN ( 2 )
5160
5161#define DOT11F_IE_SUPPCHANNELS_MAX_LEN ( 96 )
5162
5163#ifdef __cplusplus
5164extern "C" {
5165#endif /* C++ */
5166tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppChannels*);
5167
5168tANI_U32 dot11fPackIeSuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U8*, tANI_U32, tANI_U32*);
5169
5170tANI_U32 dot11fGetPackedIESuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U32*);
5171
5172#ifdef __cplusplus
5173}; /* End extern "C". */
5174#endif /* C++ */
5175// EID 1 (0x01)
5176typedef struct sDot11fIESuppRates {
5177 tANI_U8 present;
5178 tANI_U8 num_rates;
5179 tANI_U8 rates[12];
5180} tDot11fIESuppRates;
5181
5182#define DOT11F_EID_SUPPRATES ( 1 )
5183
5184// N.B. These #defines do *not* include the EID & length
5185#define DOT11F_IE_SUPPRATES_MIN_LEN ( 0 )
5186
5187#define DOT11F_IE_SUPPRATES_MAX_LEN ( 12 )
5188
5189#define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \
5190 ((_x) == 04) || \
5191 ((_x) == 11) || \
5192 ((_x) == 22) || \
5193 ((_x) == 12) || \
5194 ((_x) == 18) || \
5195 ((_x) == 24) || \
5196 ((_x) == 36) || \
5197 ((_x) == 48) || \
5198 ((_x) == 72) || \
5199 ((_x) == 96) || \
5200 ((_x) == 108))
5201
5202#ifdef __cplusplus
5203extern "C" {
5204#endif /* C++ */
5205tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppRates*);
5206
5207tANI_U32 dot11fPackIeSuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
5208
5209tANI_U32 dot11fGetPackedIESuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U32*);
5210
5211#ifdef __cplusplus
5212}; /* End extern "C". */
5213#endif /* C++ */
5214// EID 5 (0x05)
5215typedef struct sDot11fIETIM {
5216 tANI_U8 present;
5217 tANI_U8 dtim_count;
5218 tANI_U8 dtim_period;
5219 tANI_U8 bmpctl;
5220 tANI_U8 num_vbmp;
5221 tANI_U8 vbmp[251];
5222} tDot11fIETIM;
5223
5224#define DOT11F_EID_TIM ( 5 )
5225
5226// N.B. These #defines do *not* include the EID & length
5227#define DOT11F_IE_TIM_MIN_LEN ( 4 )
5228
5229#define DOT11F_IE_TIM_MAX_LEN ( 254 )
5230
5231#ifdef __cplusplus
5232extern "C" {
5233#endif /* C++ */
5234tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETIM*);
5235
5236tANI_U32 dot11fPackIeTIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U8*, tANI_U32, tANI_U32*);
5237
5238tANI_U32 dot11fGetPackedIETIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U32*);
5239
5240#ifdef __cplusplus
5241}; /* End extern "C". */
5242#endif /* C++ */
5243// EID 35 (0x23)
5244typedef struct sDot11fIETPCReport {
5245 tANI_U8 present;
5246 tANI_U8 tx_power;
5247 tANI_U8 link_margin;
5248} tDot11fIETPCReport;
5249
5250#define DOT11F_EID_TPCREPORT ( 35 )
5251
5252// N.B. These #defines do *not* include the EID & length
5253#define DOT11F_IE_TPCREPORT_MIN_LEN ( 2 )
5254
5255#define DOT11F_IE_TPCREPORT_MAX_LEN ( 2 )
5256
5257#ifdef __cplusplus
5258extern "C" {
5259#endif /* C++ */
5260tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCReport*);
5261
5262tANI_U32 dot11fPackIeTPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U8*, tANI_U32, tANI_U32*);
5263
5264tANI_U32 dot11fGetPackedIETPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U32*);
5265
5266#ifdef __cplusplus
5267}; /* End extern "C". */
5268#endif /* C++ */
5269// EID 34 (0x22)
5270typedef struct sDot11fIETPCRequest {
5271 tANI_U8 present;
5272} tDot11fIETPCRequest;
5273
5274#define DOT11F_EID_TPCREQUEST ( 34 )
5275
5276// N.B. These #defines do *not* include the EID & length
5277#define DOT11F_IE_TPCREQUEST_MIN_LEN ( 0 )
5278
5279#define DOT11F_IE_TPCREQUEST_MAX_LEN ( 0 )
5280
5281#ifdef __cplusplus
5282extern "C" {
5283#endif /* C++ */
5284tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCRequest*);
5285
5286tANI_U32 dot11fPackIeTPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U8*, tANI_U32, tANI_U32*);
5287
5288tANI_U32 dot11fGetPackedIETPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U32*);
5289
5290#ifdef __cplusplus
5291}; /* End extern "C". */
5292#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005293// EID 191 (0xbf)
5294typedef struct sDot11fIEVHTCaps {
5295 tANI_U8 present;
5296 tANI_U32 maxMPDULen: 2;
5297 tANI_U32 supportedChannelWidthSet: 2;
5298 tANI_U32 ldpcCodingCap: 1;
5299 tANI_U32 shortGI80MHz: 1;
5300 tANI_U32 shortGI160and80plus80MHz: 1;
5301 tANI_U32 txSTBC: 1;
5302 tANI_U32 rxSTBC: 3;
5303 tANI_U32 suBeamFormerCap: 1;
5304 tANI_U32 suBeamformeeCap: 1;
5305 tANI_U32 csnofBeamformerAntSup: 3;
5306 tANI_U32 numSoundingDim: 3;
5307 tANI_U32 muBeamformerCap: 1;
5308 tANI_U32 muBeamformeeCap: 1;
5309 tANI_U32 vhtTXOPPS: 1;
5310 tANI_U32 htcVHTCap: 1;
5311 tANI_U32 maxAMPDULenExp: 3;
5312 tANI_U32 vhtLinkAdaptCap: 2;
5313 tANI_U32 rxAntPattern: 1;
5314 tANI_U32 txAntPattern: 1;
5315 tANI_U32 reserved1: 2;
5316 tANI_U16 rxMCSMap;
5317 tANI_U16 rxHighSupDataRate: 13;
5318 tANI_U16 reserved2: 3;
5319 tANI_U16 txMCSMap;
5320 tANI_U16 txSupDataRate: 13;
5321 tANI_U16 reserved3: 3;
5322} tDot11fIEVHTCaps;
5323
5324#define DOT11F_EID_VHTCAPS ( 191 )
5325
5326// N.B. These #defines do *not* include the EID & length
5327#define DOT11F_IE_VHTCAPS_MIN_LEN ( 12 )
5328
5329#define DOT11F_IE_VHTCAPS_MAX_LEN ( 12 )
5330
5331#ifdef __cplusplus
5332extern "C" {
5333#endif /* C++ */
5334tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTCaps*);
5335
5336tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5337
5338tANI_U32 dot11fGetPackedIEVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U32*);
5339
5340#ifdef __cplusplus
5341}; /* End extern "C". */
5342#endif /* C++ */
5343// EID 193 (0xc1)
5344typedef struct sDot11fIEVHTExtBssLoad {
5345 tANI_U8 present;
5346 tANI_U8 muMIMOCapStaCount;
5347 tANI_U8 ssUnderUtil;
5348 tANI_U8 FortyMHzUtil;
5349 tANI_U8 EightyMHzUtil;
5350 tANI_U8 OneSixtyMHzUtil;
5351} tDot11fIEVHTExtBssLoad;
5352
5353#define DOT11F_EID_VHTEXTBSSLOAD ( 193 )
5354
5355// N.B. These #defines do *not* include the EID & length
5356#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN ( 5 )
5357
5358#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN ( 5 )
5359
5360#ifdef __cplusplus
5361extern "C" {
5362#endif /* C++ */
5363tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTExtBssLoad*);
5364
5365tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U8*, tANI_U32, tANI_U32*);
5366
5367tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U32*);
5368
5369#ifdef __cplusplus
5370}; /* End extern "C". */
5371#endif /* C++ */
5372// EID 192 (0xc0)
5373typedef struct sDot11fIEVHTOperation {
5374 tANI_U8 present;
5375 tANI_U8 chanWidth;
5376 tANI_U8 chanCenterFreqSeg1;
5377 tANI_U8 chanCenterFreqSeg2;
5378 tANI_U16 basicMCSSet;
5379} tDot11fIEVHTOperation;
5380
5381#define DOT11F_EID_VHTOPERATION ( 192 )
5382
5383// N.B. These #defines do *not* include the EID & length
5384#define DOT11F_IE_VHTOPERATION_MIN_LEN ( 5 )
5385
5386#define DOT11F_IE_VHTOPERATION_MAX_LEN ( 5 )
5387
5388#ifdef __cplusplus
5389extern "C" {
5390#endif /* C++ */
5391tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTOperation*);
5392
5393tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U8*, tANI_U32, tANI_U32*);
5394
5395tANI_U32 dot11fGetPackedIEVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U32*);
5396
5397#ifdef __cplusplus
5398}; /* End extern "C". */
5399#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005400// EID 68 (0x44)
5401typedef struct sDot11fIEWAPI {
5402 tANI_U8 present;
5403 tANI_U16 version /* Must be 1! */;
5404 tANI_U16 akm_suite_count;
5405 tANI_U8 akm_suites[4][4];
5406 tANI_U16 unicast_cipher_suite_count;
5407 tANI_U8 unicast_cipher_suites[4][4];
5408 tANI_U8 multicast_cipher_suite[4];
5409 tANI_U16 preauth: 1;
5410 tANI_U16 reserved: 15;
5411 tANI_U16 bkid_count;
5412 tANI_U8 bkid[4][16];
5413} tDot11fIEWAPI;
5414
5415#define DOT11F_EID_WAPI ( 68 )
5416
5417// N.B. These #defines do *not* include the EID & length
5418#define DOT11F_IE_WAPI_MIN_LEN ( 12 )
5419
5420#define DOT11F_IE_WAPI_MAX_LEN ( 110 )
5421
5422#ifdef __cplusplus
5423extern "C" {
5424#endif /* C++ */
5425tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPI*);
5426
5427tANI_U32 dot11fPackIeWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U8*, tANI_U32, tANI_U32*);
5428
5429tANI_U32 dot11fGetPackedIEWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U32*);
5430
5431#ifdef __cplusplus
5432}; /* End extern "C". */
5433#endif /* C++ */
5434// EID 68 (0x44)
5435typedef struct sDot11fIEWAPIOpaque {
5436 tANI_U8 present;
5437 tANI_U8 num_data;
5438 tANI_U8 data[253];
5439} tDot11fIEWAPIOpaque;
5440
5441#define DOT11F_EID_WAPIOPAQUE ( 68 )
5442
5443// N.B. These #defines do *not* include the EID & length
5444#define DOT11F_IE_WAPIOPAQUE_MIN_LEN ( 6 )
5445
5446#define DOT11F_IE_WAPIOPAQUE_MAX_LEN ( 253 )
5447
5448#ifdef __cplusplus
5449extern "C" {
5450#endif /* C++ */
5451tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPIOpaque*);
5452
5453tANI_U32 dot11fPackIeWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5454
5455tANI_U32 dot11fGetPackedIEWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U32*);
5456
5457#ifdef __cplusplus
5458}; /* End extern "C". */
5459#endif /* C++ */
5460// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00}
5461typedef struct sDot11fIEWFATPC {
5462 tANI_U8 present;
5463 tANI_U8 txPower;
5464 tANI_U8 linkMargin;
5465} tDot11fIEWFATPC;
5466
5467#define DOT11F_EID_WFATPC ( 221 )
5468
5469// N.B. These #defines do *not* include the EID & length
5470#define DOT11F_IE_WFATPC_MIN_LEN ( 7 )
5471
5472#define DOT11F_IE_WFATPC_MAX_LEN ( 7 )
5473
5474#ifdef __cplusplus
5475extern "C" {
5476#endif /* C++ */
5477tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFATPC*);
5478
5479tANI_U32 dot11fPackIeWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U8*, tANI_U32, tANI_U32*);
5480
5481tANI_U32 dot11fGetPackedIEWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U32*);
5482
5483#ifdef __cplusplus
5484}; /* End extern "C". */
5485#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005486// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a}
5487typedef struct sDot11fIEWFDIEOpaque {
5488 tANI_U8 present;
5489 tANI_U8 num_data;
5490 tANI_U8 data[249];
5491} tDot11fIEWFDIEOpaque;
5492
5493#define DOT11F_EID_WFDIEOPAQUE ( 221 )
5494
5495// N.B. These #defines do *not* include the EID & length
5496#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN ( 6 )
5497
5498#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN ( 253 )
5499
5500#ifdef __cplusplus
5501extern "C" {
5502#endif /* C++ */
5503tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFDIEOpaque*);
5504
5505tANI_U32 dot11fPackIeWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5506
5507tANI_U32 dot11fGetPackedIEWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U32*);
5508
5509#ifdef __cplusplus
5510}; /* End extern "C". */
5511#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005512// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05}
5513typedef struct sDot11fIEWMMCaps {
5514 tANI_U8 present;
5515 tANI_U8 version /* Must be 1! */;
5516 tANI_U8 reserved: 4;
5517 tANI_U8 qack: 1;
5518 tANI_U8 queue_request: 1;
5519 tANI_U8 txop_request: 1;
5520 tANI_U8 more_ack: 1;
5521} tDot11fIEWMMCaps;
5522
5523#define DOT11F_EID_WMMCAPS ( 221 )
5524
5525// N.B. These #defines do *not* include the EID & length
5526#define DOT11F_IE_WMMCAPS_MIN_LEN ( 7 )
5527
5528#define DOT11F_IE_WMMCAPS_MAX_LEN ( 7 )
5529
5530#ifdef __cplusplus
5531extern "C" {
5532#endif /* C++ */
5533tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMCaps*);
5534
5535tANI_U32 dot11fPackIeWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5536
5537tANI_U32 dot11fGetPackedIEWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U32*);
5538
5539#ifdef __cplusplus
5540}; /* End extern "C". */
5541#endif /* C++ */
5542// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5543typedef struct sDot11fIEWMMInfoAp {
5544 tANI_U8 present;
5545 tANI_U8 version;
5546 tANI_U8 param_set_count: 4;
5547 tANI_U8 reserved: 3;
5548 tANI_U8 uapsd: 1;
5549} tDot11fIEWMMInfoAp;
5550
5551#define DOT11F_EID_WMMINFOAP ( 221 )
5552
5553// N.B. These #defines do *not* include the EID & length
5554#define DOT11F_IE_WMMINFOAP_MIN_LEN ( 7 )
5555
5556#define DOT11F_IE_WMMINFOAP_MAX_LEN ( 7 )
5557
5558#ifdef __cplusplus
5559extern "C" {
5560#endif /* C++ */
5561tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoAp*);
5562
5563tANI_U32 dot11fPackIeWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U8*, tANI_U32, tANI_U32*);
5564
5565tANI_U32 dot11fGetPackedIEWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U32*);
5566
5567#ifdef __cplusplus
5568}; /* End extern "C". */
5569#endif /* C++ */
5570// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5571typedef struct sDot11fIEWMMInfoStation {
5572 tANI_U8 present;
5573 tANI_U8 version;
5574 tANI_U8 acvo_uapsd: 1;
5575 tANI_U8 acvi_uapsd: 1;
5576 tANI_U8 acbk_uapsd: 1;
5577 tANI_U8 acbe_uapsd: 1;
5578 tANI_U8 reserved1: 1;
5579 tANI_U8 max_sp_length: 2;
5580 tANI_U8 reserved2: 1;
5581} tDot11fIEWMMInfoStation;
5582
5583#define DOT11F_EID_WMMINFOSTATION ( 221 )
5584
5585// N.B. These #defines do *not* include the EID & length
5586#define DOT11F_IE_WMMINFOSTATION_MIN_LEN ( 7 )
5587
5588#define DOT11F_IE_WMMINFOSTATION_MAX_LEN ( 7 )
5589
5590#ifdef __cplusplus
5591extern "C" {
5592#endif /* C++ */
5593tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoStation*);
5594
5595tANI_U32 dot11fPackIeWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U8*, tANI_U32, tANI_U32*);
5596
5597tANI_U32 dot11fGetPackedIEWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U32*);
5598
5599#ifdef __cplusplus
5600}; /* End extern "C". */
5601#endif /* C++ */
5602// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01}
5603typedef struct sDot11fIEWMMParams {
5604 tANI_U8 present;
5605 tANI_U8 version /* Must be 1! */;
5606 tANI_U8 qosInfo;
5607 tANI_U8 reserved2;
5608 tANI_U8 acbe_aifsn: 4;
5609 tANI_U8 acbe_acm: 1;
5610 tANI_U8 acbe_aci: 2;
5611 tANI_U8 unused1: 1;
5612 tANI_U8 acbe_acwmin: 4;
5613 tANI_U8 acbe_acwmax: 4;
5614 tANI_U16 acbe_txoplimit;
5615 tANI_U8 acbk_aifsn: 4;
5616 tANI_U8 acbk_acm: 1;
5617 tANI_U8 acbk_aci: 2;
5618 tANI_U8 unused2: 1;
5619 tANI_U8 acbk_acwmin: 4;
5620 tANI_U8 acbk_acwmax: 4;
5621 tANI_U16 acbk_txoplimit;
5622 tANI_U8 acvi_aifsn: 4;
5623 tANI_U8 acvi_acm: 1;
5624 tANI_U8 acvi_aci: 2;
5625 tANI_U8 unused3: 1;
5626 tANI_U8 acvi_acwmin: 4;
5627 tANI_U8 acvi_acwmax: 4;
5628 tANI_U16 acvi_txoplimit;
5629 tANI_U8 acvo_aifsn: 4;
5630 tANI_U8 acvo_acm: 1;
5631 tANI_U8 acvo_aci: 2;
5632 tANI_U8 unused4: 1;
5633 tANI_U8 acvo_acwmin: 4;
5634 tANI_U8 acvo_acwmax: 4;
5635 tANI_U16 acvo_txoplimit;
5636} tDot11fIEWMMParams;
5637
5638#define DOT11F_EID_WMMPARAMS ( 221 )
5639
5640// N.B. These #defines do *not* include the EID & length
5641#define DOT11F_IE_WMMPARAMS_MIN_LEN ( 24 )
5642
5643#define DOT11F_IE_WMMPARAMS_MAX_LEN ( 24 )
5644
5645#ifdef __cplusplus
5646extern "C" {
5647#endif /* C++ */
5648tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMParams*);
5649
5650tANI_U32 dot11fPackIeWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U8*, tANI_U32, tANI_U32*);
5651
5652tANI_U32 dot11fGetPackedIEWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U32*);
5653
5654#ifdef __cplusplus
5655}; /* End extern "C". */
5656#endif /* C++ */
5657// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5658typedef struct sDot11fIEWPA {
5659 tANI_U8 present;
5660 tANI_U16 version /* Must be 1! */;
5661 tANI_U8 multicast_cipher_present; //field added to fix the bug in dot11fPackIEWPA
5662 tANI_U8 multicast_cipher[4];
5663 tANI_U16 unicast_cipher_count;
5664 tANI_U8 unicast_ciphers[4][4];
5665 tANI_U16 auth_suite_count;
5666 tANI_U8 auth_suites[4][4];
5667 tANI_U16 caps;
5668} tDot11fIEWPA;
5669
5670#define DOT11F_EID_WPA ( 221 )
5671
5672// N.B. These #defines do *not* include the EID & length
5673#define DOT11F_IE_WPA_MIN_LEN ( 6 )
5674
5675#define DOT11F_IE_WPA_MAX_LEN ( 48 )
5676
5677#ifdef __cplusplus
5678extern "C" {
5679#endif /* C++ */
5680tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPA*);
5681
5682tANI_U32 dot11fPackIeWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U8*, tANI_U32, tANI_U32*);
5683
5684tANI_U32 dot11fGetPackedIEWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U32*);
5685
5686#ifdef __cplusplus
5687}; /* End extern "C". */
5688#endif /* C++ */
5689// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5690typedef struct sDot11fIEWPAOpaque {
5691 tANI_U8 present;
5692 tANI_U8 num_data;
5693 tANI_U8 data[249];
5694} tDot11fIEWPAOpaque;
5695
5696#define DOT11F_EID_WPAOPAQUE ( 221 )
5697
5698// N.B. These #defines do *not* include the EID & length
5699#define DOT11F_IE_WPAOPAQUE_MIN_LEN ( 6 )
5700
5701#define DOT11F_IE_WPAOPAQUE_MAX_LEN ( 253 )
5702
5703#ifdef __cplusplus
5704extern "C" {
5705#endif /* C++ */
5706tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPAOpaque*);
5707
5708tANI_U32 dot11fPackIeWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5709
5710tANI_U32 dot11fGetPackedIEWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U32*);
5711
5712#ifdef __cplusplus
5713}; /* End extern "C". */
5714#endif /* C++ */
5715// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5716typedef struct sDot11fIEWSC {
5717 tANI_U8 present;
5718 tDot11fTLVVersion Version;
5719 tDot11fTLVWPSState WPSState;
5720 tDot11fTLVAPSetupLocked APSetupLocked;
5721 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5722 tDot11fTLVUUID_E UUID_E;
5723 tDot11fTLVUUID_R UUID_R;
5724 tDot11fTLVRFBands RFBands;
5725 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5726 tDot11fTLVConfigMethods ConfigMethods;
5727 tDot11fTLVAssociationState AssociationState;
5728 tDot11fTLVConfigurationError ConfigurationError;
5729 tDot11fTLVManufacturer Manufacturer;
5730 tDot11fTLVModelName ModelName;
5731 tDot11fTLVModelNumber ModelNumber;
5732 tDot11fTLVSerialNumber SerialNumber;
5733 tDot11fTLVDeviceName DeviceName;
5734 tDot11fTLVDevicePasswordID DevicePasswordID;
5735 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5736 tDot11fTLVRequestType RequestType;
5737 tDot11fTLVResponseType ResponseType;
5738 tDot11fTLVVendorExtension VendorExtension;
5739 tDot11fTLVRequestDeviceType RequestDeviceType;
5740} tDot11fIEWSC;
5741
5742#define DOT11F_EID_WSC ( 221 )
5743
5744// N.B. These #defines do *not* include the EID & length
5745#define DOT11F_IE_WSC_MIN_LEN ( 4 )
5746
5747#define DOT11F_IE_WSC_MAX_LEN ( 366 )
5748
5749#ifdef __cplusplus
5750extern "C" {
5751#endif /* C++ */
5752tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWSC*);
5753
5754tANI_U32 dot11fPackIeWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U8*, tANI_U32, tANI_U32*);
5755
5756tANI_U32 dot11fGetPackedIEWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U32*);
5757
5758#ifdef __cplusplus
5759}; /* End extern "C". */
5760#endif /* C++ */
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07005761// EID 194 (0xc2)
5762typedef struct sDot11fIEWiderBWChanSwitchAnn {
5763 tANI_U8 present;
5764 tANI_U8 newChanWidth;
5765 tANI_U8 newCenterChanFreq0;
5766 tANI_U8 newCenterChanFreq1;
5767} tDot11fIEWiderBWChanSwitchAnn;
5768
5769#define DOT11F_EID_WIDERBWCHANSWITCHANN ( 194 )
5770
5771// N.B. These #defines do *not* include the EID & length
5772#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN ( 3 )
5773
5774#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN ( 3 )
5775
5776#ifdef __cplusplus
5777extern "C" {
5778#endif /* C++ */
5779tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWiderBWChanSwitchAnn*);
5780
5781tANI_U32 dot11fPackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
5782
5783tANI_U32 dot11fGetPackedIEWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U32*);
5784
5785#ifdef __cplusplus
5786}; /* End extern "C". */
5787#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005788// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5789typedef struct sDot11fIEWscAssocReq {
5790 tANI_U8 present;
5791 tDot11fTLVVersion Version;
5792 tDot11fTLVRequestType RequestType;
5793 tDot11fTLVVendorExtension VendorExtension;
5794} tDot11fIEWscAssocReq;
5795
5796#define DOT11F_EID_WSCASSOCREQ ( 221 )
5797
5798// N.B. These #defines do *not* include the EID & length
5799#define DOT11F_IE_WSCASSOCREQ_MIN_LEN ( 4 )
5800
5801#define DOT11F_IE_WSCASSOCREQ_MAX_LEN ( 35 )
5802
5803#ifdef __cplusplus
5804extern "C" {
5805#endif /* C++ */
5806tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocReq*);
5807
5808tANI_U32 dot11fPackIeWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
5809
5810tANI_U32 dot11fGetPackedIEWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U32*);
5811
5812#ifdef __cplusplus
5813}; /* End extern "C". */
5814#endif /* C++ */
5815// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5816typedef struct sDot11fIEWscAssocRes {
5817 tANI_U8 present;
5818 tDot11fTLVVersion Version;
5819 tDot11fTLVResponseType ResponseType;
5820 tDot11fTLVVendorExtension VendorExtension;
5821} tDot11fIEWscAssocRes;
5822
5823#define DOT11F_EID_WSCASSOCRES ( 221 )
5824
5825// N.B. These #defines do *not* include the EID & length
5826#define DOT11F_IE_WSCASSOCRES_MIN_LEN ( 4 )
5827
5828#define DOT11F_IE_WSCASSOCRES_MAX_LEN ( 35 )
5829
5830#ifdef __cplusplus
5831extern "C" {
5832#endif /* C++ */
5833tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocRes*);
5834
5835tANI_U32 dot11fPackIeWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
5836
5837tANI_U32 dot11fGetPackedIEWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U32*);
5838
5839#ifdef __cplusplus
5840}; /* End extern "C". */
5841#endif /* C++ */
5842// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5843typedef struct sDot11fIEWscBeacon {
5844 tANI_U8 present;
5845 tDot11fTLVVersion Version;
5846 tDot11fTLVWPSState WPSState;
5847 tDot11fTLVAPSetupLocked APSetupLocked;
5848 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5849 tDot11fTLVDevicePasswordID DevicePasswordID;
5850 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5851 tDot11fTLVUUID_E UUID_E;
5852 tDot11fTLVRFBands RFBands;
5853 tDot11fTLVVendorExtension VendorExtension;
5854} tDot11fIEWscBeacon;
5855
5856#define DOT11F_EID_WSCBEACON ( 221 )
5857
5858// N.B. These #defines do *not* include the EID & length
5859#define DOT11F_IE_WSCBEACON_MIN_LEN ( 4 )
5860
5861#define DOT11F_IE_WSCBEACON_MAX_LEN ( 82 )
5862
5863#ifdef __cplusplus
5864extern "C" {
5865#endif /* C++ */
5866tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeacon*);
5867
5868tANI_U32 dot11fPackIeWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
5869
5870tANI_U32 dot11fGetPackedIEWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U32*);
5871
5872#ifdef __cplusplus
5873}; /* End extern "C". */
5874#endif /* C++ */
5875// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5876typedef struct sDot11fIEWscBeaconProbeRes {
5877 tANI_U8 present;
5878 tDot11fTLVVersion Version;
5879 tDot11fTLVWPSState WPSState;
5880 tDot11fTLVAPSetupLocked APSetupLocked;
5881 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5882 tDot11fTLVDevicePasswordID DevicePasswordID;
5883 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5884 tDot11fTLVResponseType ResponseType;
5885 tDot11fTLVUUID_E UUID_E;
5886 tDot11fTLVManufacturer Manufacturer;
5887 tDot11fTLVModelName ModelName;
5888 tDot11fTLVModelNumber ModelNumber;
5889 tDot11fTLVSerialNumber SerialNumber;
5890 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5891 tDot11fTLVDeviceName DeviceName;
5892 tDot11fTLVConfigMethods ConfigMethods;
5893 tDot11fTLVRFBands RFBands;
5894 tDot11fTLVVendorExtension VendorExtension;
5895} tDot11fIEWscBeaconProbeRes;
5896
5897#define DOT11F_EID_WSCBEACONPROBERES ( 221 )
5898
5899// N.B. These #defines do *not* include the EID & length
5900#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN ( 4 )
5901
5902#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN ( 317 )
5903
5904#ifdef __cplusplus
5905extern "C" {
5906#endif /* C++ */
5907tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeaconProbeRes*);
5908
5909tANI_U32 dot11fPackIeWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
5910
5911tANI_U32 dot11fGetPackedIEWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U32*);
5912
5913#ifdef __cplusplus
5914}; /* End extern "C". */
5915#endif /* C++ */
5916// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04}
5917typedef struct sDot11fIEWscIEOpaque {
5918 tANI_U8 present;
5919 tANI_U8 num_data;
5920 tANI_U8 data[249];
5921} tDot11fIEWscIEOpaque;
5922
5923#define DOT11F_EID_WSCIEOPAQUE ( 221 )
5924
5925// N.B. These #defines do *not* include the EID & length
5926#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN ( 6 )
5927
5928#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN ( 253 )
5929
5930#ifdef __cplusplus
5931extern "C" {
5932#endif /* C++ */
5933tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscIEOpaque*);
5934
5935tANI_U32 dot11fPackIeWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5936
5937tANI_U32 dot11fGetPackedIEWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U32*);
5938
5939#ifdef __cplusplus
5940}; /* End extern "C". */
5941#endif /* C++ */
5942// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5943typedef struct sDot11fIEWscProbeReq {
5944 tANI_U8 present;
5945 tDot11fTLVVersion Version;
5946 tDot11fTLVRequestType RequestType;
5947 tDot11fTLVConfigMethods ConfigMethods;
5948 tDot11fTLVUUID_E UUID_E;
5949 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5950 tDot11fTLVRFBands RFBands;
5951 tDot11fTLVAssociationState AssociationState;
5952 tDot11fTLVConfigurationError ConfigurationError;
5953 tDot11fTLVDevicePasswordID DevicePasswordID;
5954 tDot11fTLVManufacturer Manufacturer;
5955 tDot11fTLVModelName ModelName;
5956 tDot11fTLVModelNumber ModelNumber;
5957 tDot11fTLVDeviceName DeviceName;
5958 tDot11fTLVVendorExtension VendorExtension;
5959 tDot11fTLVRequestDeviceType RequestDeviceType;
5960} tDot11fIEWscProbeReq;
5961
5962#define DOT11F_EID_WSCPROBEREQ ( 221 )
5963
5964// N.B. These #defines do *not* include the EID & length
5965#define DOT11F_IE_WSCPROBEREQ_MIN_LEN ( 4 )
5966
5967#define DOT11F_IE_WSCPROBEREQ_MAX_LEN ( 284 )
5968
5969#ifdef __cplusplus
5970extern "C" {
5971#endif /* C++ */
5972tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeReq*);
5973
5974tANI_U32 dot11fPackIeWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
5975
5976tANI_U32 dot11fGetPackedIEWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U32*);
5977
5978#ifdef __cplusplus
5979}; /* End extern "C". */
5980#endif /* C++ */
5981// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5982typedef struct sDot11fIEWscProbeRes {
5983 tANI_U8 present;
5984 tDot11fTLVVersion Version;
5985 tDot11fTLVWPSState WPSState;
5986 tDot11fTLVAPSetupLocked APSetupLocked;
5987 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5988 tDot11fTLVDevicePasswordID DevicePasswordID;
5989 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5990 tDot11fTLVResponseType ResponseType;
5991 tDot11fTLVUUID_E UUID_E;
5992 tDot11fTLVManufacturer Manufacturer;
5993 tDot11fTLVModelName ModelName;
5994 tDot11fTLVModelNumber ModelNumber;
5995 tDot11fTLVSerialNumber SerialNumber;
5996 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5997 tDot11fTLVDeviceName DeviceName;
5998 tDot11fTLVConfigMethods ConfigMethods;
5999 tDot11fTLVRFBands RFBands;
6000 tDot11fTLVVendorExtension VendorExtension;
6001} tDot11fIEWscProbeRes;
6002
6003#define DOT11F_EID_WSCPROBERES ( 221 )
6004
6005// N.B. These #defines do *not* include the EID & length
6006#define DOT11F_IE_WSCPROBERES_MIN_LEN ( 4 )
6007
6008#define DOT11F_IE_WSCPROBERES_MAX_LEN ( 317 )
6009
6010#ifdef __cplusplus
6011extern "C" {
6012#endif /* C++ */
6013tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeRes*);
6014
6015tANI_U32 dot11fPackIeWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
6016
6017tANI_U32 dot11fGetPackedIEWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U32*);
6018
6019#ifdef __cplusplus
6020}; /* End extern "C". */
6021#endif /* C++ */
6022// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
6023typedef struct sDot11fIEWscReassocRes {
6024 tANI_U8 present;
6025 tDot11fTLVVersion Version;
6026 tDot11fTLVResponseType ResponseType;
6027 tDot11fTLVVendorExtension VendorExtension;
6028} tDot11fIEWscReassocRes;
6029
6030#define DOT11F_EID_WSCREASSOCRES ( 221 )
6031
6032// N.B. These #defines do *not* include the EID & length
6033#define DOT11F_IE_WSCREASSOCRES_MIN_LEN ( 4 )
6034
6035#define DOT11F_IE_WSCREASSOCRES_MAX_LEN ( 35 )
6036
6037#ifdef __cplusplus
6038extern "C" {
6039#endif /* C++ */
6040tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscReassocRes*);
6041
6042tANI_U32 dot11fPackIeWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U8*, tANI_U32, tANI_U32*);
6043
6044tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U32*);
6045
6046#ifdef __cplusplus
6047}; /* End extern "C". */
6048#endif /* C++ */
6049/************************************************************************
6050 * Frames
6051 **********************************************************************/
6052
6053typedef struct sDot11fAddBAReq{
6054 tDot11fFfCategory Category;
6055 tDot11fFfAction Action;
6056 tDot11fFfDialogToken DialogToken;
6057 tDot11fFfAddBAParameterSet AddBAParameterSet;
6058 tDot11fFfBATimeout BATimeout;
6059 tDot11fFfBAStartingSequenceControl BAStartingSequenceControl;
6060} tDot11fAddBAReq;
6061
6062#define DOT11F_ADDBAREQ ( 1 )
6063
6064#ifdef __cplusplus
6065extern "C" {
6066#endif /* C++ */
6067
6068tANI_U32 dot11fUnpackAddBAReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBAReq *pFrm);
6069tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6070tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded);
6071
6072#ifdef __cplusplus
6073} /* End extern "C". */
6074#endif /* C++ */
6075
6076typedef struct sDot11fAddBARsp{
6077 tDot11fFfCategory Category;
6078 tDot11fFfAction Action;
6079 tDot11fFfDialogToken DialogToken;
6080 tDot11fFfStatus Status;
6081 tDot11fFfAddBAParameterSet AddBAParameterSet;
6082 tDot11fFfBATimeout BATimeout;
6083} tDot11fAddBARsp;
6084
6085#define DOT11F_ADDBARSP ( 2 )
6086
6087#ifdef __cplusplus
6088extern "C" {
6089#endif /* C++ */
6090
6091tANI_U32 dot11fUnpackAddBARsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBARsp *pFrm);
6092tANI_U32 dot11fPackAddBARsp(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6093tANI_U32 dot11fGetPackedAddBARspSize(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U32 *pnNeeded);
6094
6095#ifdef __cplusplus
6096} /* End extern "C". */
6097#endif /* C++ */
6098
6099typedef struct sDot11fAddTSRequest{
6100 tDot11fFfCategory Category;
6101 tDot11fFfAction Action;
6102 tDot11fFfDialogToken DialogToken;
6103 tDot11fIETSPEC TSPEC;
6104 tANI_U16 num_TCLAS;
6105 tDot11fIETCLAS TCLAS[2];
6106 tDot11fIETCLASSPROC TCLASSPROC;
6107 tDot11fIEWMMTSPEC WMMTSPEC;
6108 tANI_U16 num_WMMTCLAS;
6109 tDot11fIEWMMTCLAS WMMTCLAS[2];
6110 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6111 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
6112} tDot11fAddTSRequest;
6113
6114#define DOT11F_ADDTSREQUEST ( 3 )
6115
6116#ifdef __cplusplus
6117extern "C" {
6118#endif /* C++ */
6119
6120tANI_U32 dot11fUnpackAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSRequest *pFrm);
6121tANI_U32 dot11fPackAddTSRequest(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6122tANI_U32 dot11fGetPackedAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U32 *pnNeeded);
6123
6124#ifdef __cplusplus
6125} /* End extern "C". */
6126#endif /* C++ */
6127
6128typedef struct sDot11fAddTSResponse{
6129 tDot11fFfCategory Category;
6130 tDot11fFfAction Action;
6131 tDot11fFfDialogToken DialogToken;
6132 tDot11fFfStatus Status;
6133 tDot11fIETSDelay TSDelay;
6134 tDot11fIETSPEC TSPEC;
6135 tANI_U16 num_TCLAS;
6136 tDot11fIETCLAS TCLAS[2];
6137 tDot11fIETCLASSPROC TCLASSPROC;
6138 tDot11fIESchedule Schedule;
6139 tDot11fIEWMMTSDelay WMMTSDelay;
6140 tDot11fIEWMMSchedule WMMSchedule;
6141 tDot11fIEWMMTSPEC WMMTSPEC;
6142 tANI_U16 num_WMMTCLAS;
6143 tDot11fIEWMMTCLAS WMMTCLAS[2];
6144 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6145 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6146} tDot11fAddTSResponse;
6147
6148#define DOT11F_ADDTSRESPONSE ( 4 )
6149
6150#ifdef __cplusplus
6151extern "C" {
6152#endif /* C++ */
6153
6154tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSResponse *pFrm);
6155tANI_U32 dot11fPackAddTSResponse(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6156tANI_U32 dot11fGetPackedAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U32 *pnNeeded);
6157
6158#ifdef __cplusplus
6159} /* End extern "C". */
6160#endif /* C++ */
6161
6162typedef struct sDot11fAssocRequest{
6163 tDot11fFfCapabilities Capabilities;
6164 tDot11fFfListenInterval ListenInterval;
6165 tDot11fIESSID SSID;
6166 tDot11fIESuppRates SuppRates;
6167 tDot11fIEExtSuppRates ExtSuppRates;
6168 tDot11fIEPowerCaps PowerCaps;
6169 tDot11fIESuppChannels SuppChannels;
6170 tDot11fIERSNOpaque RSNOpaque;
6171 tDot11fIEQOSCapsStation QOSCapsStation;
6172 tDot11fIERRMEnabledCap RRMEnabledCap;
6173 tDot11fIEMobilityDomain MobilityDomain;
6174 tDot11fIEWPAOpaque WPAOpaque;
6175 tDot11fIEHTCaps HTCaps;
6176 tDot11fIEWMMCaps WMMCaps;
6177 tDot11fIEWMMInfoStation WMMInfoStation;
6178 tDot11fIEAirgo Airgo;
6179 tDot11fIEWscIEOpaque WscIEOpaque;
6180 tDot11fIEWAPIOpaque WAPIOpaque;
6181 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6182 tDot11fIECCXVersion CCXVersion;
6183 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07006184 tDot11fIEWFDIEOpaque WFDIEOpaque;
6185 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006186 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07006187 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07006188} tDot11fAssocRequest;
6189
6190#define DOT11F_ASSOCREQUEST ( 5 )
6191
6192#ifdef __cplusplus
6193extern "C" {
6194#endif /* C++ */
6195
6196tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm);
6197tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6198tANI_U32 dot11fGetPackedAssocRequestSize(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U32 *pnNeeded);
6199
6200#ifdef __cplusplus
6201} /* End extern "C". */
6202#endif /* C++ */
6203
6204typedef struct sDot11fAssocResponse{
6205 tDot11fFfCapabilities Capabilities;
6206 tDot11fFfStatus Status;
6207 tDot11fFfAID AID;
6208 tDot11fIESuppRates SuppRates;
6209 tDot11fIEExtSuppRates ExtSuppRates;
6210 tDot11fIEEDCAParamSet EDCAParamSet;
6211 tDot11fIERCPIIE RCPIIE;
6212 tDot11fIERSNIIE RSNIIE;
6213 tDot11fIERRMEnabledCap RRMEnabledCap;
6214 tDot11fIEMobilityDomain MobilityDomain;
6215 tDot11fIEFTInfo FTInfo;
6216 tANI_U16 num_RICDataDesc;
6217 tDot11fIERICDataDesc RICDataDesc[2];
6218 tDot11fIEWPA WPA;
6219 tDot11fIEHTCaps HTCaps;
6220 tDot11fIEHTInfo HTInfo;
6221 tDot11fIEWMMParams WMMParams;
6222 tDot11fIEWMMCaps WMMCaps;
6223 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6224 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6225 tDot11fIECCXTxmitPower CCXTxmitPower;
6226 tANI_U16 num_WMMTSPEC;
6227 tDot11fIEWMMTSPEC WMMTSPEC[4];
6228 tDot11fIEAirgo Airgo;
6229 tDot11fIEWscAssocRes WscAssocRes;
6230 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07006231 tDot11fIEVHTCaps VHTCaps;
6232 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006233 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07006234} tDot11fAssocResponse;
6235
6236#define DOT11F_ASSOCRESPONSE ( 6 )
6237
6238#ifdef __cplusplus
6239extern "C" {
6240#endif /* C++ */
6241
6242tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm);
6243tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6244tANI_U32 dot11fGetPackedAssocResponseSize(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U32 *pnNeeded);
6245
6246#ifdef __cplusplus
6247} /* End extern "C". */
6248#endif /* C++ */
6249
6250typedef struct sDot11fAuthentication{
6251 tDot11fFfAuthAlgo AuthAlgo;
6252 tDot11fFfAuthSeqNo AuthSeqNo;
6253 tDot11fFfStatus Status;
6254 tDot11fIEChallengeText ChallengeText;
6255 tDot11fIERSNOpaque RSNOpaque;
6256 tDot11fIEMobilityDomain MobilityDomain;
6257 tDot11fIEFTInfo FTInfo;
6258 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
6259 tANI_U16 num_RICDataDesc;
6260 tDot11fIERICDataDesc RICDataDesc[2];
6261} tDot11fAuthentication;
6262
6263#define DOT11F_AUTHENTICATION ( 7 )
6264
6265#ifdef __cplusplus
6266extern "C" {
6267#endif /* C++ */
6268
6269tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAuthentication *pFrm);
6270tANI_U32 dot11fPackAuthentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6271tANI_U32 dot11fGetPackedAuthenticationSize(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U32 *pnNeeded);
6272
6273#ifdef __cplusplus
6274} /* End extern "C". */
6275#endif /* C++ */
6276
6277typedef struct sDot11fBeacon{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006278 tDot11fFfTimeStamp TimeStamp;
6279 tDot11fFfBeaconInterval BeaconInterval;
6280 tDot11fFfCapabilities Capabilities;
6281 tDot11fIESSID SSID;
6282 tDot11fIESuppRates SuppRates;
6283 tDot11fIEFHParamSet FHParamSet;
6284 tDot11fIEDSParams DSParams;
6285 tDot11fIECFParams CFParams;
6286 tDot11fIEIBSSParams IBSSParams;
6287 tDot11fIETIM TIM;
6288 tDot11fIECountry Country;
6289 tDot11fIEFHParams FHParams;
6290 tDot11fIEFHPattTable FHPattTable;
6291 tDot11fIEPowerConstraints PowerConstraints;
6292 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6293 tDot11fIEQuiet Quiet;
6294 tDot11fIETPCReport TPCReport;
6295 tDot11fIEERPInfo ERPInfo;
6296 tDot11fIEExtSuppRates ExtSuppRates;
6297 tDot11fIERSN RSN;
6298 tDot11fIEQBSSLoad QBSSLoad;
6299 tDot11fIEEDCAParamSet EDCAParamSet;
6300 tDot11fIEQOSCapsAp QOSCapsAp;
6301 tDot11fIEAPChannelReport APChannelReport;
6302 tDot11fIERRMEnabledCap RRMEnabledCap;
6303 tDot11fIEMobilityDomain MobilityDomain;
6304 tDot11fIEWPA WPA;
6305 tDot11fIEHTCaps HTCaps;
6306 tDot11fIEHTInfo HTInfo;
6307 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6308 tDot11fIEWMMInfoAp WMMInfoAp;
6309 tDot11fIEWMMParams WMMParams;
6310 tDot11fIEWMMCaps WMMCaps;
6311 tDot11fIEWAPI WAPI;
6312 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6313 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6314 tDot11fIECCXTxmitPower CCXTxmitPower;
6315 tDot11fIEAirgo Airgo;
6316 tDot11fIEWscBeacon WscBeacon;
6317 tDot11fIEP2PBeacon P2PBeacon;
6318 tDot11fIEVHTCaps VHTCaps;
6319 tDot11fIEVHTOperation VHTOperation;
6320 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6321 tDot11fIEExtCap ExtCap;
6322 tDot11fIEOperatingMode OperatingMode;
6323 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006324} tDot11fBeacon;
6325
6326#define DOT11F_BEACON ( 8 )
6327
6328#ifdef __cplusplus
6329extern "C" {
6330#endif /* C++ */
6331
6332tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon *pFrm);
6333tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6334tANI_U32 dot11fGetPackedBeaconSize(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U32 *pnNeeded);
6335
6336#ifdef __cplusplus
6337} /* End extern "C". */
6338#endif /* C++ */
6339
6340typedef struct sDot11fBeacon1{
6341 tDot11fFfTimeStamp TimeStamp;
6342 tDot11fFfBeaconInterval BeaconInterval;
6343 tDot11fFfCapabilities Capabilities;
6344 tDot11fIESSID SSID;
6345 tDot11fIESuppRates SuppRates;
6346 tDot11fIEDSParams DSParams;
6347 tDot11fIEIBSSParams IBSSParams;
6348} tDot11fBeacon1;
6349
6350#define DOT11F_BEACON1 ( 9 )
6351
6352#ifdef __cplusplus
6353extern "C" {
6354#endif /* C++ */
6355
6356tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon1 *pFrm);
6357tANI_U32 dot11fPackBeacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6358tANI_U32 dot11fGetPackedBeacon1Size(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U32 *pnNeeded);
6359
6360#ifdef __cplusplus
6361} /* End extern "C". */
6362#endif /* C++ */
6363
6364typedef struct sDot11fBeacon2{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006365 tDot11fIECountry Country;
6366 tDot11fIEPowerConstraints PowerConstraints;
6367 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6368 tDot11fIEQuiet Quiet;
6369 tDot11fIETPCReport TPCReport;
6370 tDot11fIEERPInfo ERPInfo;
6371 tDot11fIEExtSuppRates ExtSuppRates;
Chet Lanctot4b9abd72013-06-27 11:14:56 -07006372 tDot11fIERSNOpaque RSNOpaque;
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006373 tDot11fIEEDCAParamSet EDCAParamSet;
6374 tDot11fIEAPChannelReport APChannelReport;
6375 tDot11fIERRMEnabledCap RRMEnabledCap;
6376 tDot11fIEMobilityDomain MobilityDomain;
6377 tDot11fIEWPA WPA;
6378 tDot11fIEHTCaps HTCaps;
6379 tDot11fIEHTInfo HTInfo;
6380 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6381 tDot11fIEWMMInfoAp WMMInfoAp;
6382 tDot11fIEWMMParams WMMParams;
6383 tDot11fIEWMMCaps WMMCaps;
6384 tDot11fIEAirgo Airgo;
6385 tDot11fIEWscBeacon WscBeacon;
6386 tDot11fIEWAPI WAPI;
6387 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6388 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6389 tDot11fIECCXTxmitPower CCXTxmitPower;
6390 tDot11fIEP2PBeacon P2PBeacon;
6391 tDot11fIEVHTCaps VHTCaps;
6392 tDot11fIEVHTOperation VHTOperation;
6393 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6394 tDot11fIEExtCap ExtCap;
6395 tDot11fIEOperatingMode OperatingMode;
6396 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006397} tDot11fBeacon2;
6398
6399#define DOT11F_BEACON2 ( 10 )
6400
6401#ifdef __cplusplus
6402extern "C" {
6403#endif /* C++ */
6404
6405tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon2 *pFrm);
6406tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6407tANI_U32 dot11fGetPackedBeacon2Size(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U32 *pnNeeded);
6408
6409#ifdef __cplusplus
6410} /* End extern "C". */
6411#endif /* C++ */
6412
6413typedef struct sDot11fBeaconIEs{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006414 tDot11fIESSID SSID;
6415 tDot11fIESuppRates SuppRates;
6416 tDot11fIEFHParamSet FHParamSet;
6417 tDot11fIEDSParams DSParams;
6418 tDot11fIECFParams CFParams;
6419 tDot11fIEIBSSParams IBSSParams;
6420 tDot11fIETIM TIM;
6421 tDot11fIECountry Country;
6422 tDot11fIEFHParams FHParams;
6423 tDot11fIEFHPattTable FHPattTable;
6424 tDot11fIEPowerConstraints PowerConstraints;
6425 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6426 tDot11fIEQuiet Quiet;
6427 tDot11fIETPCReport TPCReport;
6428 tDot11fIEERPInfo ERPInfo;
6429 tDot11fIEExtSuppRates ExtSuppRates;
6430 tDot11fIERSN RSN;
6431 tDot11fIEQBSSLoad QBSSLoad;
6432 tDot11fIEEDCAParamSet EDCAParamSet;
6433 tDot11fIEQOSCapsAp QOSCapsAp;
6434 tDot11fIEAPChannelReport APChannelReport;
6435 tDot11fIERRMEnabledCap RRMEnabledCap;
6436 tDot11fIEMobilityDomain MobilityDomain;
6437 tDot11fIEWPA WPA;
6438 tDot11fIEHTCaps HTCaps;
6439 tDot11fIEHTInfo HTInfo;
6440 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6441 tDot11fIEWMMInfoAp WMMInfoAp;
6442 tDot11fIEWMMParams WMMParams;
6443 tDot11fIEWMMCaps WMMCaps;
6444 tDot11fIEWAPI WAPI;
6445 tDot11fIECCXVersion CCXVersion;
6446 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6447 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6448 tDot11fIECCXTxmitPower CCXTxmitPower;
6449 tDot11fIEAirgo Airgo;
6450 tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
6451 tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
6452 tDot11fIEVHTCaps VHTCaps;
6453 tDot11fIEVHTOperation VHTOperation;
6454 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6455 tDot11fIEExtCap ExtCap;
6456 tDot11fIEOperatingMode OperatingMode;
6457 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006458} tDot11fBeaconIEs;
6459
6460#define DOT11F_BEACONIES ( 11 )
6461
6462#ifdef __cplusplus
6463extern "C" {
6464#endif /* C++ */
6465
6466tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeaconIEs *pFrm);
6467tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6468tANI_U32 dot11fGetPackedBeaconIEsSize(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U32 *pnNeeded);
6469
6470#ifdef __cplusplus
6471} /* End extern "C". */
6472#endif /* C++ */
6473
6474typedef struct sDot11fChannelSwitch{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006475 tDot11fFfCategory Category;
6476 tDot11fFfAction Action;
6477 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6478 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6479 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006480} tDot11fChannelSwitch;
6481
6482#define DOT11F_CHANNELSWITCH ( 12 )
6483
6484#ifdef __cplusplus
6485extern "C" {
6486#endif /* C++ */
6487
6488tANI_U32 dot11fUnpackChannelSwitch(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fChannelSwitch *pFrm);
6489tANI_U32 dot11fPackChannelSwitch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6490tANI_U32 dot11fGetPackedChannelSwitchSize(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U32 *pnNeeded);
6491
6492#ifdef __cplusplus
6493} /* End extern "C". */
6494#endif /* C++ */
6495
6496typedef struct sDot11fDeAuth{
6497 tDot11fFfReason Reason;
6498 tDot11fIEP2PDeAuth P2PDeAuth;
6499} tDot11fDeAuth;
6500
6501#define DOT11F_DEAUTH ( 13 )
6502
6503#ifdef __cplusplus
6504extern "C" {
6505#endif /* C++ */
6506
6507tANI_U32 dot11fUnpackDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeAuth *pFrm);
6508tANI_U32 dot11fPackDeAuth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6509tANI_U32 dot11fGetPackedDeAuthSize(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U32 *pnNeeded);
6510
6511#ifdef __cplusplus
6512} /* End extern "C". */
6513#endif /* C++ */
6514
6515typedef struct sDot11fDelBAInd{
6516 tDot11fFfCategory Category;
6517 tDot11fFfAction Action;
6518 tDot11fFfDelBAParameterSet DelBAParameterSet;
6519 tDot11fFfReason Reason;
6520} tDot11fDelBAInd;
6521
6522#define DOT11F_DELBAIND ( 14 )
6523
6524#ifdef __cplusplus
6525extern "C" {
6526#endif /* C++ */
6527
6528tANI_U32 dot11fUnpackDelBAInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelBAInd *pFrm);
6529tANI_U32 dot11fPackDelBAInd(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6530tANI_U32 dot11fGetPackedDelBAIndSize(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U32 *pnNeeded);
6531
6532#ifdef __cplusplus
6533} /* End extern "C". */
6534#endif /* C++ */
6535
6536typedef struct sDot11fDelTS{
6537 tDot11fFfCategory Category;
6538 tDot11fFfAction Action;
6539 tDot11fFfTSInfo TSInfo;
6540 tDot11fFfReason Reason;
6541} tDot11fDelTS;
6542
6543#define DOT11F_DELTS ( 15 )
6544
6545#ifdef __cplusplus
6546extern "C" {
6547#endif /* C++ */
6548
6549tANI_U32 dot11fUnpackDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelTS *pFrm);
6550tANI_U32 dot11fPackDelTS(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6551tANI_U32 dot11fGetPackedDelTSSize(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U32 *pnNeeded);
6552
6553#ifdef __cplusplus
6554} /* End extern "C". */
6555#endif /* C++ */
6556
6557typedef struct sDot11fDeviceDiscoverabilityReq{
6558 tDot11fFfCategory Category;
6559 tDot11fFfAction Action;
6560 tDot11fFfP2POUI P2POUI;
6561 tDot11fFfP2POUISubType P2POUISubType;
6562 tDot11fFfDialogToken DialogToken;
6563 tDot11fIEP2PDeviceDiscoverabilityReq P2PDeviceDiscoverabilityReq;
6564} tDot11fDeviceDiscoverabilityReq;
6565
6566#define DOT11F_DEVICEDISCOVERABILITYREQ ( 16 )
6567
6568#ifdef __cplusplus
6569extern "C" {
6570#endif /* C++ */
6571
6572tANI_U32 dot11fUnpackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityReq *pFrm);
6573tANI_U32 dot11fPackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6574tANI_U32 dot11fGetPackedDeviceDiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6575
6576#ifdef __cplusplus
6577} /* End extern "C". */
6578#endif /* C++ */
6579
6580typedef struct sDot11fDeviceDiscoverabilityRes{
6581 tDot11fFfCategory Category;
6582 tDot11fFfAction Action;
6583 tDot11fFfP2POUI P2POUI;
6584 tDot11fFfP2POUISubType P2POUISubType;
6585 tDot11fFfDialogToken DialogToken;
6586 tDot11fIEP2PDeviceDiscoverabilityRes P2PDeviceDiscoverabilityRes;
6587} tDot11fDeviceDiscoverabilityRes;
6588
6589#define DOT11F_DEVICEDISCOVERABILITYRES ( 17 )
6590
6591#ifdef __cplusplus
6592extern "C" {
6593#endif /* C++ */
6594
6595tANI_U32 dot11fUnpackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityRes *pFrm);
6596tANI_U32 dot11fPackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6597tANI_U32 dot11fGetPackedDeviceDiscoverabilityResSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U32 *pnNeeded);
6598
6599#ifdef __cplusplus
6600} /* End extern "C". */
6601#endif /* C++ */
6602
6603typedef struct sDot11fDisassociation{
6604 tDot11fFfReason Reason;
6605 tDot11fIEP2PDisAssoc P2PDisAssoc;
6606} tDot11fDisassociation;
6607
6608#define DOT11F_DISASSOCIATION ( 18 )
6609
6610#ifdef __cplusplus
6611extern "C" {
6612#endif /* C++ */
6613
6614tANI_U32 dot11fUnpackDisassociation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDisassociation *pFrm);
6615tANI_U32 dot11fPackDisassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6616tANI_U32 dot11fGetPackedDisassociationSize(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U32 *pnNeeded);
6617
6618#ifdef __cplusplus
6619} /* End extern "C". */
6620#endif /* C++ */
6621
6622typedef struct sDot11fGODiscoverabilityReq{
6623 tDot11fFfCategory Category;
6624 tDot11fFfP2POUI P2POUI;
6625 tDot11fFfP2POUISubType P2POUISubType;
6626 tDot11fFfDialogToken DialogToken;
6627} tDot11fGODiscoverabilityReq;
6628
6629#define DOT11F_GODISCOVERABILITYREQ ( 19 )
6630
6631#ifdef __cplusplus
6632extern "C" {
6633#endif /* C++ */
6634
6635tANI_U32 dot11fUnpackGODiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGODiscoverabilityReq *pFrm);
6636tANI_U32 dot11fPackGODiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6637tANI_U32 dot11fGetPackedGODiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6638
6639#ifdef __cplusplus
6640} /* End extern "C". */
6641#endif /* C++ */
6642
6643typedef struct sDot11fGONegCnf{
6644 tDot11fFfCategory Category;
6645 tDot11fFfAction Action;
6646 tDot11fFfP2POUI P2POUI;
6647 tDot11fFfP2POUISubType P2POUISubType;
6648 tDot11fFfDialogToken DialogToken;
6649 tDot11fIEP2PGONegCnf P2PGONegCnf;
6650} tDot11fGONegCnf;
6651
6652#define DOT11F_GONEGCNF ( 20 )
6653
6654#ifdef __cplusplus
6655extern "C" {
6656#endif /* C++ */
6657
6658tANI_U32 dot11fUnpackGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegCnf *pFrm);
6659tANI_U32 dot11fPackGONegCnf(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6660tANI_U32 dot11fGetPackedGONegCnfSize(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U32 *pnNeeded);
6661
6662#ifdef __cplusplus
6663} /* End extern "C". */
6664#endif /* C++ */
6665
6666typedef struct sDot11fGONegReq{
6667 tDot11fFfCategory Category;
6668 tDot11fFfAction Action;
6669 tDot11fFfP2POUI P2POUI;
6670 tDot11fFfP2POUISubType P2POUISubType;
6671 tDot11fFfDialogToken DialogToken;
6672 tDot11fIEP2PGONegWPS P2PGONegWPS;
6673 tDot11fIEP2PGONegReq P2PGONegReq;
6674} tDot11fGONegReq;
6675
6676#define DOT11F_GONEGREQ ( 21 )
6677
6678#ifdef __cplusplus
6679extern "C" {
6680#endif /* C++ */
6681
6682tANI_U32 dot11fUnpackGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegReq *pFrm);
6683tANI_U32 dot11fPackGONegReq(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6684tANI_U32 dot11fGetPackedGONegReqSize(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U32 *pnNeeded);
6685
6686#ifdef __cplusplus
6687} /* End extern "C". */
6688#endif /* C++ */
6689
6690typedef struct sDot11fGONegRes{
6691 tDot11fFfCategory Category;
6692 tDot11fFfAction Action;
6693 tDot11fFfP2POUI P2POUI;
6694 tDot11fFfP2POUISubType P2POUISubType;
6695 tDot11fFfDialogToken DialogToken;
6696 tDot11fIEP2PGONegWPS P2PGONegWPS;
6697 tDot11fIEP2PGONegRes P2PGONegRes;
6698} tDot11fGONegRes;
6699
6700#define DOT11F_GONEGRES ( 22 )
6701
6702#ifdef __cplusplus
6703extern "C" {
6704#endif /* C++ */
6705
6706tANI_U32 dot11fUnpackGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegRes *pFrm);
6707tANI_U32 dot11fPackGONegRes(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6708tANI_U32 dot11fGetPackedGONegResSize(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U32 *pnNeeded);
6709
6710#ifdef __cplusplus
6711} /* End extern "C". */
6712#endif /* C++ */
6713
6714typedef struct sDot11fInvitationReq{
6715 tDot11fFfCategory Category;
6716 tDot11fFfAction Action;
6717 tDot11fFfP2POUI P2POUI;
6718 tDot11fFfP2POUISubType P2POUISubType;
6719 tDot11fFfDialogToken DialogToken;
6720 tDot11fIEP2PInvitationReq P2PInvitationReq;
6721} tDot11fInvitationReq;
6722
6723#define DOT11F_INVITATIONREQ ( 23 )
6724
6725#ifdef __cplusplus
6726extern "C" {
6727#endif /* C++ */
6728
6729tANI_U32 dot11fUnpackInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationReq *pFrm);
6730tANI_U32 dot11fPackInvitationReq(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6731tANI_U32 dot11fGetPackedInvitationReqSize(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U32 *pnNeeded);
6732
6733#ifdef __cplusplus
6734} /* End extern "C". */
6735#endif /* C++ */
6736
6737typedef struct sDot11fInvitationRes{
6738 tDot11fFfCategory Category;
6739 tDot11fFfAction Action;
6740 tDot11fFfP2POUI P2POUI;
6741 tDot11fFfP2POUISubType P2POUISubType;
6742 tDot11fFfDialogToken DialogToken;
6743 tDot11fIEP2PInvitationRes P2PInvitationRes;
6744} tDot11fInvitationRes;
6745
6746#define DOT11F_INVITATIONRES ( 24 )
6747
6748#ifdef __cplusplus
6749extern "C" {
6750#endif /* C++ */
6751
6752tANI_U32 dot11fUnpackInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationRes *pFrm);
6753tANI_U32 dot11fPackInvitationRes(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6754tANI_U32 dot11fGetPackedInvitationResSize(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U32 *pnNeeded);
6755
6756#ifdef __cplusplus
6757} /* End extern "C". */
6758#endif /* C++ */
6759
6760typedef struct sDot11fLinkMeasurementReport{
6761 tDot11fFfCategory Category;
6762 tDot11fFfAction Action;
6763 tDot11fFfDialogToken DialogToken;
6764 tDot11fFfTPCEleID TPCEleID;
6765 tDot11fFfTPCEleLen TPCEleLen;
6766 tDot11fFfTxPower TxPower;
6767 tDot11fFfLinkMargin LinkMargin;
6768 tDot11fFfRxAntennaId RxAntennaId;
6769 tDot11fFfTxAntennaId TxAntennaId;
6770 tDot11fFfRCPI RCPI;
6771 tDot11fFfRSNI RSNI;
6772} tDot11fLinkMeasurementReport;
6773
6774#define DOT11F_LINKMEASUREMENTREPORT ( 25 )
6775
6776#ifdef __cplusplus
6777extern "C" {
6778#endif /* C++ */
6779
6780tANI_U32 dot11fUnpackLinkMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementReport *pFrm);
6781tANI_U32 dot11fPackLinkMeasurementReport(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6782tANI_U32 dot11fGetPackedLinkMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6783
6784#ifdef __cplusplus
6785} /* End extern "C". */
6786#endif /* C++ */
6787
6788typedef struct sDot11fLinkMeasurementRequest{
6789 tDot11fFfCategory Category;
6790 tDot11fFfAction Action;
6791 tDot11fFfDialogToken DialogToken;
6792 tDot11fFfTxPower TxPower;
6793 tDot11fFfMaxTxPower MaxTxPower;
6794} tDot11fLinkMeasurementRequest;
6795
6796#define DOT11F_LINKMEASUREMENTREQUEST ( 26 )
6797
6798#ifdef __cplusplus
6799extern "C" {
6800#endif /* C++ */
6801
6802tANI_U32 dot11fUnpackLinkMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementRequest *pFrm);
6803tANI_U32 dot11fPackLinkMeasurementRequest(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6804tANI_U32 dot11fGetPackedLinkMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6805
6806#ifdef __cplusplus
6807} /* End extern "C". */
6808#endif /* C++ */
6809
6810typedef struct sDot11fMeasurementReport{
6811 tDot11fFfCategory Category;
6812 tDot11fFfAction Action;
6813 tDot11fFfDialogToken DialogToken;
6814 tDot11fIEMeasurementReport MeasurementReport;
6815} tDot11fMeasurementReport;
6816
6817#define DOT11F_MEASUREMENTREPORT ( 27 )
6818
6819#ifdef __cplusplus
6820extern "C" {
6821#endif /* C++ */
6822
6823tANI_U32 dot11fUnpackMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementReport *pFrm);
6824tANI_U32 dot11fPackMeasurementReport(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6825tANI_U32 dot11fGetPackedMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6826
6827#ifdef __cplusplus
6828} /* End extern "C". */
6829#endif /* C++ */
6830
6831typedef struct sDot11fMeasurementRequest{
6832 tDot11fFfCategory Category;
6833 tDot11fFfAction Action;
6834 tDot11fFfDialogToken DialogToken;
6835 tANI_U16 num_MeasurementRequest;
6836 tDot11fIEMeasurementRequest MeasurementRequest[4];
6837} tDot11fMeasurementRequest;
6838
6839#define DOT11F_MEASUREMENTREQUEST ( 28 )
6840
6841#ifdef __cplusplus
6842extern "C" {
6843#endif /* C++ */
6844
6845tANI_U32 dot11fUnpackMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementRequest *pFrm);
6846tANI_U32 dot11fPackMeasurementRequest(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6847tANI_U32 dot11fGetPackedMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6848
6849#ifdef __cplusplus
6850} /* End extern "C". */
6851#endif /* C++ */
6852
6853typedef struct sDot11fNeighborReportRequest{
6854 tDot11fFfCategory Category;
6855 tDot11fFfAction Action;
6856 tDot11fFfDialogToken DialogToken;
6857 tDot11fIESSID SSID;
6858} tDot11fNeighborReportRequest;
6859
6860#define DOT11F_NEIGHBORREPORTREQUEST ( 29 )
6861
6862#ifdef __cplusplus
6863extern "C" {
6864#endif /* C++ */
6865
6866tANI_U32 dot11fUnpackNeighborReportRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportRequest *pFrm);
6867tANI_U32 dot11fPackNeighborReportRequest(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6868tANI_U32 dot11fGetPackedNeighborReportRequestSize(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U32 *pnNeeded);
6869
6870#ifdef __cplusplus
6871} /* End extern "C". */
6872#endif /* C++ */
6873
6874typedef struct sDot11fNeighborReportResponse{
6875 tDot11fFfCategory Category;
6876 tDot11fFfAction Action;
6877 tDot11fFfDialogToken DialogToken;
6878 tANI_U16 num_NeighborReport;
6879 tDot11fIENeighborReport NeighborReport[4];
6880} tDot11fNeighborReportResponse;
6881
6882#define DOT11F_NEIGHBORREPORTRESPONSE ( 30 )
6883
6884#ifdef __cplusplus
6885extern "C" {
6886#endif /* C++ */
6887
6888tANI_U32 dot11fUnpackNeighborReportResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportResponse *pFrm);
6889tANI_U32 dot11fPackNeighborReportResponse(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6890tANI_U32 dot11fGetPackedNeighborReportResponseSize(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U32 *pnNeeded);
6891
6892#ifdef __cplusplus
6893} /* End extern "C". */
6894#endif /* C++ */
6895
6896typedef struct sDot11fNoticeOfAbs{
6897 tDot11fFfCategory Category;
6898 tDot11fFfP2POUI P2POUI;
6899 tDot11fFfP2POUISubType P2POUISubType;
6900 tDot11fFfDialogToken DialogToken;
6901 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6902} tDot11fNoticeOfAbs;
6903
6904#define DOT11F_NOTICEOFABS ( 31 )
6905
6906#ifdef __cplusplus
6907extern "C" {
6908#endif /* C++ */
6909
6910tANI_U32 dot11fUnpackNoticeOfAbs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNoticeOfAbs *pFrm);
6911tANI_U32 dot11fPackNoticeOfAbs(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6912tANI_U32 dot11fGetPackedNoticeOfAbsSize(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U32 *pnNeeded);
6913
6914#ifdef __cplusplus
6915} /* End extern "C". */
6916#endif /* C++ */
6917
Mohit Khanna4a70d262012-09-11 16:30:12 -07006918typedef struct sDot11fOperatingMode{
6919 tDot11fFfCategory Category;
6920 tDot11fFfAction Action;
6921 tDot11fFfOperatingMode OperatingMode;
6922} tDot11fOperatingMode;
6923
6924#define DOT11F_OPERATINGMODE ( 32 )
6925
6926#ifdef __cplusplus
6927extern "C" {
6928#endif /* C++ */
6929
6930tANI_U32 dot11fUnpackOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fOperatingMode *pFrm);
6931tANI_U32 dot11fPackOperatingMode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6932tANI_U32 dot11fGetPackedOperatingModeSize(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U32 *pnNeeded);
6933
6934#ifdef __cplusplus
6935} /* End extern "C". */
6936#endif /* C++ */
6937
Jeff Johnson295189b2012-06-20 16:38:30 -07006938typedef struct sDot11fPresenceReq{
6939 tDot11fFfCategory Category;
6940 tDot11fFfP2POUI P2POUI;
6941 tDot11fFfP2POUISubType P2POUISubType;
6942 tDot11fFfDialogToken DialogToken;
6943 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6944} tDot11fPresenceReq;
6945
Mohit Khanna4a70d262012-09-11 16:30:12 -07006946#define DOT11F_PRESENCEREQ ( 33 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006947
6948#ifdef __cplusplus
6949extern "C" {
6950#endif /* C++ */
6951
6952tANI_U32 dot11fUnpackPresenceReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceReq *pFrm);
6953tANI_U32 dot11fPackPresenceReq(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6954tANI_U32 dot11fGetPackedPresenceReqSize(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U32 *pnNeeded);
6955
6956#ifdef __cplusplus
6957} /* End extern "C". */
6958#endif /* C++ */
6959
6960typedef struct sDot11fPresenceRes{
6961 tDot11fFfCategory Category;
6962 tDot11fFfP2POUI P2POUI;
6963 tDot11fFfP2POUISubType P2POUISubType;
6964 tDot11fFfDialogToken DialogToken;
6965 tDot11fIEP2PPresenceResponse P2PPresenceResponse;
6966} tDot11fPresenceRes;
6967
Mohit Khanna4a70d262012-09-11 16:30:12 -07006968#define DOT11F_PRESENCERES ( 34 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006969
6970#ifdef __cplusplus
6971extern "C" {
6972#endif /* C++ */
6973
6974tANI_U32 dot11fUnpackPresenceRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceRes *pFrm);
6975tANI_U32 dot11fPackPresenceRes(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6976tANI_U32 dot11fGetPackedPresenceResSize(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U32 *pnNeeded);
6977
6978#ifdef __cplusplus
6979} /* End extern "C". */
6980#endif /* C++ */
6981
6982typedef struct sDot11fProbeRequest{
6983 tDot11fIESSID SSID;
6984 tDot11fIESuppRates SuppRates;
6985 tDot11fIERequestedInfo RequestedInfo;
6986 tDot11fIEExtSuppRates ExtSuppRates;
6987 tDot11fIEDSParams DSParams;
6988 tDot11fIEHTCaps HTCaps;
6989 tDot11fIEWscProbeReq WscProbeReq;
6990 tDot11fIEWFATPC WFATPC;
6991 tDot11fIEP2PProbeReq P2PProbeReq;
Jeff Johnsone7245742012-09-05 17:12:55 -07006992 tDot11fIEVHTCaps VHTCaps;
Jeff Johnson295189b2012-06-20 16:38:30 -07006993} tDot11fProbeRequest;
6994
Mohit Khanna4a70d262012-09-11 16:30:12 -07006995#define DOT11F_PROBEREQUEST ( 35 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006996
6997#ifdef __cplusplus
6998extern "C" {
6999#endif /* C++ */
7000
7001tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeRequest *pFrm);
7002tANI_U32 dot11fPackProbeRequest(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7003tANI_U32 dot11fGetPackedProbeRequestSize(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U32 *pnNeeded);
7004
7005#ifdef __cplusplus
7006} /* End extern "C". */
7007#endif /* C++ */
7008
7009typedef struct sDot11fProbeResponse{
7010 tDot11fFfTimeStamp TimeStamp;
7011 tDot11fFfBeaconInterval BeaconInterval;
7012 tDot11fFfCapabilities Capabilities;
7013 tDot11fIESSID SSID;
7014 tDot11fIESuppRates SuppRates;
7015 tDot11fIEFHParamSet FHParamSet;
7016 tDot11fIEDSParams DSParams;
7017 tDot11fIECFParams CFParams;
7018 tDot11fIEIBSSParams IBSSParams;
7019 tDot11fIECountry Country;
7020 tDot11fIEFHParams FHParams;
7021 tDot11fIEFHPattTable FHPattTable;
7022 tDot11fIEPowerConstraints PowerConstraints;
7023 tDot11fIEChanSwitchAnn ChanSwitchAnn;
7024 tDot11fIEQuiet Quiet;
7025 tDot11fIETPCReport TPCReport;
7026 tDot11fIEERPInfo ERPInfo;
7027 tDot11fIEExtSuppRates ExtSuppRates;
Chet Lanctot4b9abd72013-06-27 11:14:56 -07007028 tDot11fIERSNOpaque RSNOpaque;
Jeff Johnson295189b2012-06-20 16:38:30 -07007029 tDot11fIEQBSSLoad QBSSLoad;
7030 tDot11fIEEDCAParamSet EDCAParamSet;
7031 tDot11fIERRMEnabledCap RRMEnabledCap;
7032 tDot11fIEAPChannelReport APChannelReport;
7033 tDot11fIEMobilityDomain MobilityDomain;
7034 tDot11fIEWPA WPA;
7035 tDot11fIEHTCaps HTCaps;
7036 tDot11fIEHTInfo HTInfo;
7037 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
7038 tDot11fIEWMMInfoAp WMMInfoAp;
7039 tDot11fIEWMMParams WMMParams;
7040 tDot11fIEWMMCaps WMMCaps;
7041 tDot11fIEWAPI WAPI;
7042 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7043 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7044 tDot11fIECCXTxmitPower CCXTxmitPower;
7045 tDot11fIEAirgo Airgo;
7046 tDot11fIEWscProbeRes WscProbeRes;
7047 tDot11fIEP2PProbeRes P2PProbeRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007048 tDot11fIEVHTCaps VHTCaps;
7049 tDot11fIEVHTOperation VHTOperation;
7050 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007051 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07007052} tDot11fProbeResponse;
7053
Mohit Khanna4a70d262012-09-11 16:30:12 -07007054#define DOT11F_PROBERESPONSE ( 36 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007055
7056#ifdef __cplusplus
7057extern "C" {
7058#endif /* C++ */
7059
7060tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeResponse *pFrm);
7061tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7062tANI_U32 dot11fGetPackedProbeResponseSize(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U32 *pnNeeded);
7063
7064#ifdef __cplusplus
7065} /* End extern "C". */
7066#endif /* C++ */
7067
7068typedef struct sDot11fProvisionDiscoveryReq{
7069 tDot11fFfCategory Category;
7070 tDot11fFfAction Action;
7071 tDot11fFfP2POUI P2POUI;
7072 tDot11fFfP2POUISubType P2POUISubType;
7073 tDot11fFfDialogToken DialogToken;
7074 tDot11fIEP2PProvisionDiscoveryReq P2PProvisionDiscoveryReq;
7075} tDot11fProvisionDiscoveryReq;
7076
Mohit Khanna4a70d262012-09-11 16:30:12 -07007077#define DOT11F_PROVISIONDISCOVERYREQ ( 37 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007078
7079#ifdef __cplusplus
7080extern "C" {
7081#endif /* C++ */
7082
7083tANI_U32 dot11fUnpackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryReq *pFrm);
7084tANI_U32 dot11fPackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7085tANI_U32 dot11fGetPackedProvisionDiscoveryReqSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U32 *pnNeeded);
7086
7087#ifdef __cplusplus
7088} /* End extern "C". */
7089#endif /* C++ */
7090
7091typedef struct sDot11fProvisionDiscoveryRes{
7092 tDot11fFfCategory Category;
7093 tDot11fFfAction Action;
7094 tDot11fFfP2POUI P2POUI;
7095 tDot11fFfP2POUISubType P2POUISubType;
7096 tDot11fFfDialogToken DialogToken;
7097 tDot11fIEP2PWSCProvisionDiscoveryRes P2PWSCProvisionDiscoveryRes;
7098} tDot11fProvisionDiscoveryRes;
7099
Mohit Khanna4a70d262012-09-11 16:30:12 -07007100#define DOT11F_PROVISIONDISCOVERYRES ( 38 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007101
7102#ifdef __cplusplus
7103extern "C" {
7104#endif /* C++ */
7105
7106tANI_U32 dot11fUnpackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryRes *pFrm);
7107tANI_U32 dot11fPackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7108tANI_U32 dot11fGetPackedProvisionDiscoveryResSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U32 *pnNeeded);
7109
7110#ifdef __cplusplus
7111} /* End extern "C". */
7112#endif /* C++ */
7113
7114typedef struct sDot11fRadioMeasurementReport{
7115 tDot11fFfCategory Category;
7116 tDot11fFfAction Action;
7117 tDot11fFfDialogToken DialogToken;
7118 tANI_U16 num_MeasurementReport;
7119 tDot11fIEMeasurementReport MeasurementReport[4];
7120} tDot11fRadioMeasurementReport;
7121
Mohit Khanna4a70d262012-09-11 16:30:12 -07007122#define DOT11F_RADIOMEASUREMENTREPORT ( 39 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007123
7124#ifdef __cplusplus
7125extern "C" {
7126#endif /* C++ */
7127
7128tANI_U32 dot11fUnpackRadioMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementReport *pFrm);
7129tANI_U32 dot11fPackRadioMeasurementReport(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7130tANI_U32 dot11fGetPackedRadioMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U32 *pnNeeded);
7131
7132#ifdef __cplusplus
7133} /* End extern "C". */
7134#endif /* C++ */
7135
7136typedef struct sDot11fRadioMeasurementRequest{
7137 tDot11fFfCategory Category;
7138 tDot11fFfAction Action;
7139 tDot11fFfDialogToken DialogToken;
7140 tDot11fFfNumOfRepetitions NumOfRepetitions;
7141 tANI_U16 num_MeasurementRequest;
7142 tDot11fIEMeasurementRequest MeasurementRequest[2];
7143} tDot11fRadioMeasurementRequest;
7144
Mohit Khanna4a70d262012-09-11 16:30:12 -07007145#define DOT11F_RADIOMEASUREMENTREQUEST ( 40 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007146
7147#ifdef __cplusplus
7148extern "C" {
7149#endif /* C++ */
7150
7151tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementRequest *pFrm);
7152tANI_U32 dot11fPackRadioMeasurementRequest(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7153tANI_U32 dot11fGetPackedRadioMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
7154
7155#ifdef __cplusplus
7156} /* End extern "C". */
7157#endif /* C++ */
7158
7159typedef struct sDot11fReAssocRequest{
7160 tDot11fFfCapabilities Capabilities;
7161 tDot11fFfListenInterval ListenInterval;
7162 tDot11fFfCurrentAPAddress CurrentAPAddress;
7163 tDot11fIESSID SSID;
7164 tDot11fIESuppRates SuppRates;
7165 tDot11fIEExtSuppRates ExtSuppRates;
7166 tDot11fIEPowerCaps PowerCaps;
7167 tDot11fIESuppChannels SuppChannels;
7168 tDot11fIERSNOpaque RSNOpaque;
7169 tDot11fIEQOSCapsStation QOSCapsStation;
7170 tDot11fIERRMEnabledCap RRMEnabledCap;
7171 tDot11fIEMobilityDomain MobilityDomain;
7172 tDot11fIEFTInfo FTInfo;
7173 tANI_U16 num_RICDataDesc;
7174 tDot11fIERICDataDesc RICDataDesc[2];
7175 tDot11fIEWPAOpaque WPAOpaque;
7176 tDot11fIEHTCaps HTCaps;
7177 tDot11fIEWMMCaps WMMCaps;
7178 tDot11fIEWMMInfoStation WMMInfoStation;
7179 tDot11fIEAirgo Airgo;
7180 tDot11fIEWscIEOpaque WscIEOpaque;
7181 tDot11fIEWAPIOpaque WAPIOpaque;
7182 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7183 tDot11fIECCXVersion CCXVersion;
7184 tDot11fIECCXCckmOpaque CCXCckmOpaque;
7185 tANI_U16 num_WMMTSPEC;
7186 tDot11fIEWMMTSPEC WMMTSPEC[4];
7187 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7188 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07007189 tDot11fIEWFDIEOpaque WFDIEOpaque;
7190 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007191 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07007192 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07007193} tDot11fReAssocRequest;
7194
Mohit Khanna4a70d262012-09-11 16:30:12 -07007195#define DOT11F_REASSOCREQUEST ( 41 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007196
7197#ifdef __cplusplus
7198extern "C" {
7199#endif /* C++ */
7200
7201tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm);
7202tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7203tANI_U32 dot11fGetPackedReAssocRequestSize(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U32 *pnNeeded);
7204
7205#ifdef __cplusplus
7206} /* End extern "C". */
7207#endif /* C++ */
7208
7209typedef struct sDot11fReAssocResponse{
7210 tDot11fFfCapabilities Capabilities;
7211 tDot11fFfStatus Status;
7212 tDot11fFfAID AID;
7213 tDot11fIESuppRates SuppRates;
7214 tDot11fIEExtSuppRates ExtSuppRates;
7215 tDot11fIEEDCAParamSet EDCAParamSet;
7216 tDot11fIERCPIIE RCPIIE;
7217 tDot11fIERSNIIE RSNIIE;
7218 tDot11fIERRMEnabledCap RRMEnabledCap;
7219 tDot11fIERSNOpaque RSNOpaque;
7220 tDot11fIEMobilityDomain MobilityDomain;
7221 tDot11fIEFTInfo FTInfo;
7222 tANI_U16 num_RICDataDesc;
7223 tDot11fIERICDataDesc RICDataDesc[2];
7224 tDot11fIEWPA WPA;
7225 tDot11fIEHTCaps HTCaps;
7226 tDot11fIEHTInfo HTInfo;
7227 tDot11fIEWMMParams WMMParams;
7228 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7229 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7230 tDot11fIECCXTxmitPower CCXTxmitPower;
7231 tANI_U16 num_WMMTSPEC;
7232 tDot11fIEWMMTSPEC WMMTSPEC[4];
7233 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7234 tDot11fIEAirgo Airgo;
7235 tDot11fIEWscReassocRes WscReassocRes;
7236 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007237 tDot11fIEVHTCaps VHTCaps;
7238 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007239 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07007240} tDot11fReAssocResponse;
7241
Mohit Khanna4a70d262012-09-11 16:30:12 -07007242#define DOT11F_REASSOCRESPONSE ( 42 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007243
7244#ifdef __cplusplus
7245extern "C" {
7246#endif /* C++ */
7247
7248tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm);
7249tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7250tANI_U32 dot11fGetPackedReAssocResponseSize(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U32 *pnNeeded);
7251
7252#ifdef __cplusplus
7253} /* End extern "C". */
7254#endif /* C++ */
7255
7256typedef struct sDot11fSMPowerSave{
7257 tDot11fFfCategory Category;
7258 tDot11fFfAction Action;
7259 tDot11fFfSMPowerModeSet SMPowerModeSet;
7260} tDot11fSMPowerSave;
7261
Mohit Khanna4a70d262012-09-11 16:30:12 -07007262#define DOT11F_SMPOWERSAVE ( 43 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007263
7264#ifdef __cplusplus
7265extern "C" {
7266#endif /* C++ */
7267
7268tANI_U32 dot11fUnpackSMPowerSave(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSMPowerSave *pFrm);
7269tANI_U32 dot11fPackSMPowerSave(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7270tANI_U32 dot11fGetPackedSMPowerSaveSize(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U32 *pnNeeded);
7271
7272#ifdef __cplusplus
7273} /* End extern "C". */
7274#endif /* C++ */
7275
Chet Lanctot186b5732013-03-18 10:26:30 -07007276typedef struct sDot11fSaQueryRsp{
7277 tDot11fFfCategory Category;
7278 tDot11fFfAction Action;
7279 tDot11fFfTransactionId TransactionId;
7280} tDot11fSaQueryRsp;
7281
7282#define DOT11F_SAQUERYRSP ( 44 )
7283
7284#ifdef __cplusplus
7285extern "C" {
7286#endif /* C++ */
7287
7288tANI_U32 dot11fUnpackSaQueryRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryRsp *pFrm);
7289tANI_U32 dot11fPackSaQueryRsp(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7290tANI_U32 dot11fGetPackedSaQueryRspSize(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U32 *pnNeeded);
7291
7292#ifdef __cplusplus
7293} /* End extern "C". */
7294#endif /* C++ */
7295
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007296typedef struct sDot11fTDLSDisReq{
7297 tDot11fFfCategory Category;
7298 tDot11fFfAction Action;
7299 tDot11fFfDialogToken DialogToken;
7300 tDot11fIELinkIdentifier LinkIdentifier;
7301} tDot11fTDLSDisReq;
7302
Chet Lanctot186b5732013-03-18 10:26:30 -07007303#define DOT11F_TDLSDISREQ ( 45 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007304
7305#ifdef __cplusplus
7306extern "C" {
7307#endif /* C++ */
7308
7309tANI_U32 dot11fUnpackTDLSDisReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisReq *pFrm);
7310tANI_U32 dot11fPackTDLSDisReq(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7311tANI_U32 dot11fGetPackedTDLSDisReqSize(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U32 *pnNeeded);
7312
7313#ifdef __cplusplus
7314} /* End extern "C". */
7315#endif /* C++ */
7316
7317typedef struct sDot11fTDLSDisRsp{
7318 tDot11fFfCategory Category;
7319 tDot11fFfAction Action;
7320 tDot11fFfDialogToken DialogToken;
7321 tDot11fFfCapabilities Capabilities;
7322 tDot11fIESuppRates SuppRates;
7323 tDot11fIEExtSuppRates ExtSuppRates;
7324 tDot11fIESuppChannels SuppChannels;
7325 tDot11fIERSN RSN;
7326 tDot11fIEExtCap ExtCap;
7327 tDot11fIEFTInfo FTInfo;
7328 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7329 tDot11fIERICData RICData;
7330 tDot11fIEHTCaps HTCaps;
7331 tDot11fIELinkIdentifier LinkIdentifier;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007332 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007333} tDot11fTDLSDisRsp;
7334
Chet Lanctot186b5732013-03-18 10:26:30 -07007335#define DOT11F_TDLSDISRSP ( 46 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007336
7337#ifdef __cplusplus
7338extern "C" {
7339#endif /* C++ */
7340
7341tANI_U32 dot11fUnpackTDLSDisRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisRsp *pFrm);
7342tANI_U32 dot11fPackTDLSDisRsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7343tANI_U32 dot11fGetPackedTDLSDisRspSize(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U32 *pnNeeded);
7344
7345#ifdef __cplusplus
7346} /* End extern "C". */
7347#endif /* C++ */
7348
7349typedef struct sDot11fTDLSPeerTrafficInd{
7350 tDot11fFfCategory Category;
7351 tDot11fFfAction Action;
7352 tDot11fFfDialogToken DialogToken;
7353 tDot11fIELinkIdentifier LinkIdentifier;
7354 tDot11fIEPTIControl PTIControl;
7355 tDot11fIEPUBufferStatus PUBufferStatus;
7356} tDot11fTDLSPeerTrafficInd;
7357
Chet Lanctot186b5732013-03-18 10:26:30 -07007358#define DOT11F_TDLSPEERTRAFFICIND ( 47 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007359
7360#ifdef __cplusplus
7361extern "C" {
7362#endif /* C++ */
7363
7364tANI_U32 dot11fUnpackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficInd *pFrm);
7365tANI_U32 dot11fPackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7366tANI_U32 dot11fGetPackedTDLSPeerTrafficIndSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U32 *pnNeeded);
7367
7368#ifdef __cplusplus
7369} /* End extern "C". */
7370#endif /* C++ */
7371
7372typedef struct sDot11fTDLSPeerTrafficRsp{
7373 tDot11fFfCategory Category;
7374 tDot11fFfAction Action;
7375 tDot11fFfDialogToken DialogToken;
7376 tDot11fIELinkIdentifier LinkIdentifier;
7377} tDot11fTDLSPeerTrafficRsp;
7378
Chet Lanctot186b5732013-03-18 10:26:30 -07007379#define DOT11F_TDLSPEERTRAFFICRSP ( 48 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007380
7381#ifdef __cplusplus
7382extern "C" {
7383#endif /* C++ */
7384
7385tANI_U32 dot11fUnpackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficRsp *pFrm);
7386tANI_U32 dot11fPackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7387tANI_U32 dot11fGetPackedTDLSPeerTrafficRspSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U32 *pnNeeded);
7388
7389#ifdef __cplusplus
7390} /* End extern "C". */
7391#endif /* C++ */
7392
7393typedef struct sDot11fTDLSSetupCnf{
7394 tDot11fFfCategory Category;
7395 tDot11fFfAction Action;
7396 tDot11fFfStatus Status;
7397 tDot11fFfDialogToken DialogToken;
7398 tDot11fIERSN RSN;
7399 tDot11fIEEDCAParamSet EDCAParamSet;
7400 tDot11fIEFTInfo FTInfo;
7401 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7402 tDot11fIEHTInfo HTInfo;
7403 tDot11fIELinkIdentifier LinkIdentifier;
7404 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007405 tDot11fIEVHTOperation VHTOperation;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05307406 tDot11fIEOperatingMode OperatingMode;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007407} tDot11fTDLSSetupCnf;
7408
Chet Lanctot186b5732013-03-18 10:26:30 -07007409#define DOT11F_TDLSSETUPCNF ( 49 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007410
7411#ifdef __cplusplus
7412extern "C" {
7413#endif /* C++ */
7414
7415tANI_U32 dot11fUnpackTDLSSetupCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupCnf *pFrm);
7416tANI_U32 dot11fPackTDLSSetupCnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7417tANI_U32 dot11fGetPackedTDLSSetupCnfSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U32 *pnNeeded);
7418
7419#ifdef __cplusplus
7420} /* End extern "C". */
7421#endif /* C++ */
7422
7423typedef struct sDot11fTDLSSetupReq{
7424 tDot11fFfCategory Category;
7425 tDot11fFfAction Action;
7426 tDot11fFfDialogToken DialogToken;
7427 tDot11fFfCapabilities Capabilities;
7428 tDot11fIESuppRates SuppRates;
7429 tDot11fIECountry Country;
7430 tDot11fIEExtSuppRates ExtSuppRates;
7431 tDot11fIESuppChannels SuppChannels;
7432 tDot11fIERSN RSN;
7433 tDot11fIEExtCap ExtCap;
7434 tDot11fIEQOSCapsStation QOSCapsStation;
7435 tDot11fIEFTInfo FTInfo;
7436 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7437 tDot11fIERICData RICData;
7438 tDot11fIEHTCaps HTCaps;
7439 tDot11fIELinkIdentifier LinkIdentifier;
7440 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007441 tDot11fIEAID AID;
7442 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007443} tDot11fTDLSSetupReq;
7444
Chet Lanctot186b5732013-03-18 10:26:30 -07007445#define DOT11F_TDLSSETUPREQ ( 50 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007446
7447#ifdef __cplusplus
7448extern "C" {
7449#endif /* C++ */
7450
7451tANI_U32 dot11fUnpackTDLSSetupReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupReq *pFrm);
7452tANI_U32 dot11fPackTDLSSetupReq(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7453tANI_U32 dot11fGetPackedTDLSSetupReqSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U32 *pnNeeded);
7454
7455#ifdef __cplusplus
7456} /* End extern "C". */
7457#endif /* C++ */
7458
7459typedef struct sDot11fTDLSSetupRsp{
7460 tDot11fFfCategory Category;
7461 tDot11fFfAction Action;
7462 tDot11fFfStatus Status;
7463 tDot11fFfDialogToken DialogToken;
7464 tDot11fFfCapabilities Capabilities;
7465 tDot11fIESuppRates SuppRates;
7466 tDot11fIECountry Country;
7467 tDot11fIEExtSuppRates ExtSuppRates;
7468 tDot11fIESuppChannels SuppChannels;
7469 tDot11fIERSN RSN;
7470 tDot11fIEExtCap ExtCap;
7471 tDot11fIEQOSCapsStation QOSCapsStation;
7472 tDot11fIEFTInfo FTInfo;
7473 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7474 tDot11fIERICData RICData;
7475 tDot11fIEHTCaps HTCaps;
7476 tDot11fIELinkIdentifier LinkIdentifier;
7477 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007478 tDot11fIEAID AID;
7479 tDot11fIEVHTCaps VHTCaps;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05307480 tDot11fIEOperatingMode OperatingMode;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007481} tDot11fTDLSSetupRsp;
7482
Chet Lanctot186b5732013-03-18 10:26:30 -07007483#define DOT11F_TDLSSETUPRSP ( 51 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007484
7485#ifdef __cplusplus
7486extern "C" {
7487#endif /* C++ */
7488
7489tANI_U32 dot11fUnpackTDLSSetupRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupRsp *pFrm);
7490tANI_U32 dot11fPackTDLSSetupRsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7491tANI_U32 dot11fGetPackedTDLSSetupRspSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U32 *pnNeeded);
7492
7493#ifdef __cplusplus
7494} /* End extern "C". */
7495#endif /* C++ */
7496
7497typedef struct sDot11fTDLSTeardown{
7498 tDot11fFfCategory Category;
7499 tDot11fFfAction Action;
7500 tDot11fFfReason Reason;
7501 tDot11fIEFTInfo FTInfo;
7502 tDot11fIELinkIdentifier LinkIdentifier;
7503} tDot11fTDLSTeardown;
7504
Chet Lanctot186b5732013-03-18 10:26:30 -07007505#define DOT11F_TDLSTEARDOWN ( 52 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007506
7507#ifdef __cplusplus
7508extern "C" {
7509#endif /* C++ */
7510
7511tANI_U32 dot11fUnpackTDLSTeardown(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSTeardown *pFrm);
7512tANI_U32 dot11fPackTDLSTeardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7513tANI_U32 dot11fGetPackedTDLSTeardownSize(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U32 *pnNeeded);
7514
7515#ifdef __cplusplus
7516} /* End extern "C". */
7517#endif /* C++ */
7518
Jeff Johnson295189b2012-06-20 16:38:30 -07007519typedef struct sDot11fTPCReport{
7520 tDot11fFfCategory Category;
7521 tDot11fFfAction Action;
7522 tDot11fFfDialogToken DialogToken;
7523 tDot11fIETPCReport TPCReport;
7524} tDot11fTPCReport;
7525
Chet Lanctot186b5732013-03-18 10:26:30 -07007526#define DOT11F_TPCREPORT ( 53 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007527
7528#ifdef __cplusplus
7529extern "C" {
7530#endif /* C++ */
7531
7532tANI_U32 dot11fUnpackTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCReport *pFrm);
7533tANI_U32 dot11fPackTPCReport(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7534tANI_U32 dot11fGetPackedTPCReportSize(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U32 *pnNeeded);
7535
7536#ifdef __cplusplus
7537} /* End extern "C". */
7538#endif /* C++ */
7539
7540typedef struct sDot11fTPCRequest{
7541 tDot11fFfCategory Category;
7542 tDot11fFfAction Action;
7543 tDot11fFfDialogToken DialogToken;
7544 tDot11fIETPCRequest TPCRequest;
7545} tDot11fTPCRequest;
7546
Chet Lanctot186b5732013-03-18 10:26:30 -07007547#define DOT11F_TPCREQUEST ( 54 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007548
7549#ifdef __cplusplus
7550extern "C" {
7551#endif /* C++ */
7552
7553tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCRequest *pFrm);
7554tANI_U32 dot11fPackTPCRequest(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7555tANI_U32 dot11fGetPackedTPCRequestSize(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U32 *pnNeeded);
7556
7557#ifdef __cplusplus
7558} /* End extern "C". */
7559#endif /* C++ */
7560
7561typedef struct sDot11fWMMAddTSRequest{
7562 tDot11fFfCategory Category;
7563 tDot11fFfAction Action;
7564 tDot11fFfDialogToken DialogToken;
7565 tDot11fFfStatusCode StatusCode;
7566 tDot11fIEWMMTSPEC WMMTSPEC;
7567 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7568} tDot11fWMMAddTSRequest;
7569
Chet Lanctot186b5732013-03-18 10:26:30 -07007570#define DOT11F_WMMADDTSREQUEST ( 55 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007571
7572#ifdef __cplusplus
7573extern "C" {
7574#endif /* C++ */
7575
7576tANI_U32 dot11fUnpackWMMAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSRequest *pFrm);
7577tANI_U32 dot11fPackWMMAddTSRequest(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7578tANI_U32 dot11fGetPackedWMMAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U32 *pnNeeded);
7579
7580#ifdef __cplusplus
7581} /* End extern "C". */
7582#endif /* C++ */
7583
7584typedef struct sDot11fWMMAddTSResponse{
7585 tDot11fFfCategory Category;
7586 tDot11fFfAction Action;
7587 tDot11fFfDialogToken DialogToken;
7588 tDot11fFfStatusCode StatusCode;
7589 tDot11fIEWMMTSPEC WMMTSPEC;
7590 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7591} tDot11fWMMAddTSResponse;
7592
Chet Lanctot186b5732013-03-18 10:26:30 -07007593#define DOT11F_WMMADDTSRESPONSE ( 56 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007594
7595#ifdef __cplusplus
7596extern "C" {
7597#endif /* C++ */
7598
7599tANI_U32 dot11fUnpackWMMAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSResponse *pFrm);
7600tANI_U32 dot11fPackWMMAddTSResponse(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7601tANI_U32 dot11fGetPackedWMMAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U32 *pnNeeded);
7602
7603#ifdef __cplusplus
7604} /* End extern "C". */
7605#endif /* C++ */
7606
7607typedef struct sDot11fWMMDelTS{
7608 tDot11fFfCategory Category;
7609 tDot11fFfAction Action;
7610 tDot11fFfDialogToken DialogToken;
7611 tDot11fFfStatusCode StatusCode;
7612 tDot11fIEWMMTSPEC WMMTSPEC;
7613} tDot11fWMMDelTS;
7614
Chet Lanctot186b5732013-03-18 10:26:30 -07007615#define DOT11F_WMMDELTS ( 57 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007616
7617#ifdef __cplusplus
7618extern "C" {
7619#endif /* C++ */
7620
7621tANI_U32 dot11fUnpackWMMDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMDelTS *pFrm);
7622tANI_U32 dot11fPackWMMDelTS(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7623tANI_U32 dot11fGetPackedWMMDelTSSize(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U32 *pnNeeded);
7624
7625#ifdef __cplusplus
7626} /* End extern "C". */
7627#endif /* C++ */
7628
7629#endif /* DOT11F_H */