blob: 7bedcd4d5a07c454bfb55df1256ce68109eb5948 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
Jeff Johnson295189b2012-06-20 16:38:30 -070042#ifndef DOT11F_H
43#define DOT11F_H
44/**
45 * \file dot11f.h
46 *
47 * \brief Structures, function prototypes & definitions
48 * for working with 802.11 Frames
49 *
50 *
Gopichand Nakkalacdf7cc52013-02-25 18:16:37 +053051 * Copyright (C) 2008 Airgo Networks, Incorporated.
Jeff Johnson295189b2012-06-20 16:38:30 -070052 *
53 *
54 * This file was automatically generated by 'framesc'
Gopichand Nakkala00f5e122013-03-19 13:51:46 +053055 * Tue Mar 19 13:37:40 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++ */
1854// EID 9 (0x09)
1855typedef struct sDot11fIELLAttr {
1856 tANI_U8 present;
1857 tANI_U32 defer_threshold;
1858} tDot11fIELLAttr;
1859
1860#define DOT11F_EID_LLATTR ( 9 )
1861
1862// N.B. These #defines do *not* include the EID & length
1863#define DOT11F_IE_LLATTR_MIN_LEN ( 4 )
1864
1865#define DOT11F_IE_LLATTR_MAX_LEN ( 4 )
1866
1867#ifdef __cplusplus
1868extern "C" {
1869#endif /* C++ */
1870tANI_U32 dot11fUnpackIeLLAttr(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELLAttr*);
1871
1872tANI_U32 dot11fPackIeLLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U8*, tANI_U32, tANI_U32*);
1873
1874tANI_U32 dot11fGetPackedIELLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U32*);
1875
1876#ifdef __cplusplus
1877}; /* End extern "C". */
1878#endif /* C++ */
1879// EID 8 (0x08)
1880typedef struct sDot11fIELoadBalance {
1881 tANI_U8 present;
1882 tANI_U8 bssid[6];
1883 tANI_U8 channel;
1884} tDot11fIELoadBalance;
1885
1886#define DOT11F_EID_LOADBALANCE ( 8 )
1887
1888// N.B. These #defines do *not* include the EID & length
1889#define DOT11F_IE_LOADBALANCE_MIN_LEN ( 7 )
1890
1891#define DOT11F_IE_LOADBALANCE_MAX_LEN ( 7 )
1892
1893#ifdef __cplusplus
1894extern "C" {
1895#endif /* C++ */
1896tANI_U32 dot11fUnpackIeLoadBalance(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadBalance*);
1897
1898tANI_U32 dot11fPackIeLoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U8*, tANI_U32, tANI_U32*);
1899
1900tANI_U32 dot11fGetPackedIELoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U32*);
1901
1902#ifdef __cplusplus
1903}; /* End extern "C". */
1904#endif /* C++ */
1905// EID 6 (0x06)
1906typedef struct sDot11fIELoadInfo {
1907 tANI_U8 present;
1908 tANI_U16 num_stas;
1909 tANI_U16 channel_util;
1910} tDot11fIELoadInfo;
1911
1912#define DOT11F_EID_LOADINFO ( 6 )
1913
1914// N.B. These #defines do *not* include the EID & length
1915#define DOT11F_IE_LOADINFO_MIN_LEN ( 4 )
1916
1917#define DOT11F_IE_LOADINFO_MAX_LEN ( 4 )
1918
1919#ifdef __cplusplus
1920extern "C" {
1921#endif /* C++ */
1922tANI_U32 dot11fUnpackIeLoadInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadInfo*);
1923
1924tANI_U32 dot11fPackIeLoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U8*, tANI_U32, tANI_U32*);
1925
1926tANI_U32 dot11fGetPackedIELoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U32*);
1927
1928#ifdef __cplusplus
1929}; /* End extern "C". */
1930#endif /* C++ */
1931// EID 7 (0x07)
1932typedef struct sDot11fIEPropAssocType {
1933 tANI_U8 present;
1934 tANI_U8 type;
1935} tDot11fIEPropAssocType;
1936
1937#define DOT11F_EID_PROPASSOCTYPE ( 7 )
1938
1939// N.B. These #defines do *not* include the EID & length
1940#define DOT11F_IE_PROPASSOCTYPE_MIN_LEN ( 1 )
1941
1942#define DOT11F_IE_PROPASSOCTYPE_MAX_LEN ( 1 )
1943
1944#ifdef __cplusplus
1945extern "C" {
1946#endif /* C++ */
1947tANI_U32 dot11fUnpackIePropAssocType(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropAssocType*);
1948
1949tANI_U32 dot11fPackIePropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U8*, tANI_U32, tANI_U32*);
1950
1951tANI_U32 dot11fGetPackedIEPropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U32*);
1952
1953#ifdef __cplusplus
1954}; /* End extern "C". */
1955#endif /* C++ */
1956// EID 10 (0x0a)
1957typedef struct sDot11fIEPropCapability {
1958 tANI_U8 present;
1959 tANI_U16 capability;
1960} tDot11fIEPropCapability;
1961
1962#define DOT11F_EID_PROPCAPABILITY ( 10 )
1963
1964// N.B. These #defines do *not* include the EID & length
1965#define DOT11F_IE_PROPCAPABILITY_MIN_LEN ( 2 )
1966
1967#define DOT11F_IE_PROPCAPABILITY_MAX_LEN ( 2 )
1968
1969#ifdef __cplusplus
1970extern "C" {
1971#endif /* C++ */
1972tANI_U32 dot11fUnpackIePropCapability(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropCapability*);
1973
1974tANI_U32 dot11fPackIePropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U8*, tANI_U32, tANI_U32*);
1975
1976tANI_U32 dot11fGetPackedIEPropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U32*);
1977
1978#ifdef __cplusplus
1979}; /* End extern "C". */
1980#endif /* C++ */
1981// EID 15 (0x0f)
1982typedef struct sDot11fIEPropChannSwitchAnn {
1983 tANI_U8 present;
1984 tANI_U8 mode;
1985 tANI_U8 primary_channel;
1986 tANI_U8 sub_band;
1987 tANI_U8 channel_switch_count;
1988} tDot11fIEPropChannSwitchAnn;
1989
1990#define DOT11F_EID_PROPCHANNSWITCHANN ( 15 )
1991
1992// N.B. These #defines do *not* include the EID & length
1993#define DOT11F_IE_PROPCHANNSWITCHANN_MIN_LEN ( 4 )
1994
1995#define DOT11F_IE_PROPCHANNSWITCHANN_MAX_LEN ( 4 )
1996
1997#ifdef __cplusplus
1998extern "C" {
1999#endif /* C++ */
2000tANI_U32 dot11fUnpackIePropChannSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropChannSwitchAnn*);
2001
2002tANI_U32 dot11fPackIePropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
2003
2004tANI_U32 dot11fGetPackedIEPropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U32*);
2005
2006#ifdef __cplusplus
2007}; /* End extern "C". */
2008#endif /* C++ */
2009// EID 12 (0x0c)
2010typedef struct sDot11fIEPropEDCAParams {
2011 tANI_U8 present;
2012 tANI_U8 qos;
2013 tANI_U8 reserved;
2014 tANI_U8 acbe_aifsn: 4;
2015 tANI_U8 acbe_acm: 1;
2016 tANI_U8 acbe_aci: 2;
2017 tANI_U8 unused1: 1;
2018 tANI_U8 acbe_min: 4;
2019 tANI_U8 acbe_max: 4;
2020 tANI_U16 acbe_txoplimit;
2021 tANI_U8 acbk_aifsn: 4;
2022 tANI_U8 acbk_acm: 1;
2023 tANI_U8 acbk_aci: 2;
2024 tANI_U8 unused2: 1;
2025 tANI_U8 acbk_min: 4;
2026 tANI_U8 acbk_max: 4;
2027 tANI_U16 acbk_txoplimit;
2028 tANI_U8 acvi_aifsn: 4;
2029 tANI_U8 acvi_acm: 1;
2030 tANI_U8 acvi_aci: 2;
2031 tANI_U8 unused3: 1;
2032 tANI_U8 acvi_min: 4;
2033 tANI_U8 acvi_max: 4;
2034 tANI_U16 acvi_txoplimit;
2035 tANI_U8 acvo_aifsn: 4;
2036 tANI_U8 acvo_acm: 1;
2037 tANI_U8 acvo_aci: 2;
2038 tANI_U8 unused4: 1;
2039 tANI_U8 acvo_min: 4;
2040 tANI_U8 acvo_max: 4;
2041 tANI_U16 acvo_txoplimit;
2042} tDot11fIEPropEDCAParams;
2043
2044#define DOT11F_EID_PROPEDCAPARAMS ( 12 )
2045
2046// N.B. These #defines do *not* include the EID & length
2047#define DOT11F_IE_PROPEDCAPARAMS_MIN_LEN ( 18 )
2048
2049#define DOT11F_IE_PROPEDCAPARAMS_MAX_LEN ( 18 )
2050
2051#ifdef __cplusplus
2052extern "C" {
2053#endif /* C++ */
2054tANI_U32 dot11fUnpackIePropEDCAParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropEDCAParams*);
2055
2056tANI_U32 dot11fPackIePropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U8*, tANI_U32, tANI_U32*);
2057
2058tANI_U32 dot11fGetPackedIEPropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U32*);
2059
2060#ifdef __cplusplus
2061}; /* End extern "C". */
2062#endif /* C++ */
2063// EID 16 (0x10)
2064typedef struct sDot11fIEPropQuietBSS {
2065 tANI_U8 present;
2066 tANI_U8 quiet_count;
2067 tANI_U8 quiet_period;
2068 tANI_U16 quiet_duration;
2069 tANI_U16 quiet_offset;
2070} tDot11fIEPropQuietBSS;
2071
2072#define DOT11F_EID_PROPQUIETBSS ( 16 )
2073
2074// N.B. These #defines do *not* include the EID & length
2075#define DOT11F_IE_PROPQUIETBSS_MIN_LEN ( 6 )
2076
2077#define DOT11F_IE_PROPQUIETBSS_MAX_LEN ( 6 )
2078
2079#ifdef __cplusplus
2080extern "C" {
2081#endif /* C++ */
2082tANI_U32 dot11fUnpackIePropQuietBSS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropQuietBSS*);
2083
2084tANI_U32 dot11fPackIePropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U8*, tANI_U32, tANI_U32*);
2085
2086tANI_U32 dot11fGetPackedIEPropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U32*);
2087
2088#ifdef __cplusplus
2089}; /* End extern "C". */
2090#endif /* C++ */
2091// EID 0 (0x00)
2092typedef struct sDot11fIEPropSuppRates {
2093 tANI_U8 present;
2094 tANI_U8 num_rates;
2095 tANI_U8 rates[12];
2096} tDot11fIEPropSuppRates;
2097
2098#define DOT11F_EID_PROPSUPPRATES ( 0 )
2099
2100// N.B. These #defines do *not* include the EID & length
2101#define DOT11F_IE_PROPSUPPRATES_MIN_LEN ( 1 )
2102
2103#define DOT11F_IE_PROPSUPPRATES_MAX_LEN ( 12 )
2104
2105#ifdef __cplusplus
2106extern "C" {
2107#endif /* C++ */
2108tANI_U32 dot11fUnpackIePropSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropSuppRates*);
2109
2110tANI_U32 dot11fPackIePropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
2111
2112tANI_U32 dot11fGetPackedIEPropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U32*);
2113
2114#ifdef __cplusplus
2115}; /* End extern "C". */
2116#endif /* C++ */
2117// EID 3 (0x03)
2118typedef struct sDot11fIER0KH_ID {
2119 tANI_U8 present;
2120 tANI_U8 num_PMK_R0_ID;
2121 tANI_U8 PMK_R0_ID[48];
2122} tDot11fIER0KH_ID;
2123
2124#define DOT11F_EID_R0KH_ID ( 3 )
2125
2126// N.B. These #defines do *not* include the EID & length
2127#define DOT11F_IE_R0KH_ID_MIN_LEN ( 1 )
2128
2129#define DOT11F_IE_R0KH_ID_MAX_LEN ( 48 )
2130
2131#ifdef __cplusplus
2132extern "C" {
2133#endif /* C++ */
2134tANI_U32 dot11fUnpackIeR0KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER0KH_ID*);
2135
2136tANI_U32 dot11fPackIeR0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
2137
2138tANI_U32 dot11fGetPackedIER0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U32*);
2139
2140#ifdef __cplusplus
2141}; /* End extern "C". */
2142#endif /* C++ */
2143// EID 1 (0x01)
2144typedef struct sDot11fIER1KH_ID {
2145 tANI_U8 present;
2146 tANI_U8 PMK_R1_ID[6];
2147} tDot11fIER1KH_ID;
2148
2149#define DOT11F_EID_R1KH_ID ( 1 )
2150
2151// N.B. These #defines do *not* include the EID & length
2152#define DOT11F_IE_R1KH_ID_MIN_LEN ( 6 )
2153
2154#define DOT11F_IE_R1KH_ID_MAX_LEN ( 6 )
2155
2156#ifdef __cplusplus
2157extern "C" {
2158#endif /* C++ */
2159tANI_U32 dot11fUnpackIeR1KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER1KH_ID*);
2160
2161tANI_U32 dot11fPackIeR1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
2162
2163tANI_U32 dot11fGetPackedIER1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U32*);
2164
2165#ifdef __cplusplus
2166}; /* End extern "C". */
2167#endif /* C++ */
2168// EID 1 (0x01)
2169typedef struct sDot11fIETSFInfo {
2170 tANI_U8 present;
2171 tANI_U16 TsfOffset;
2172 tANI_U16 BeaconIntvl;
2173} tDot11fIETSFInfo;
2174
2175#define DOT11F_EID_TSFINFO ( 1 )
2176
2177// N.B. These #defines do *not* include the EID & length
2178#define DOT11F_IE_TSFINFO_MIN_LEN ( 4 )
2179
2180#define DOT11F_IE_TSFINFO_MAX_LEN ( 4 )
2181
2182#ifdef __cplusplus
2183extern "C" {
2184#endif /* C++ */
2185tANI_U32 dot11fUnpackIeTSFInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSFInfo*);
2186
2187tANI_U32 dot11fPackIeTSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U8*, tANI_U32, tANI_U32*);
2188
2189tANI_U32 dot11fGetPackedIETSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U32*);
2190
2191#ifdef __cplusplus
2192}; /* End extern "C". */
2193#endif /* C++ */
2194// EID 18 (0x12)
2195typedef struct sDot11fIETaurus {
2196 tANI_U8 present;
2197 tANI_U16 baTIDBitmap;
2198 tANI_U16 baPolicy;
2199 tANI_U16 baBufferSize: 12;
2200 tANI_U16 rsvd: 4;
2201} tDot11fIETaurus;
2202
2203#define DOT11F_EID_TAURUS ( 18 )
2204
2205// N.B. These #defines do *not* include the EID & length
2206#define DOT11F_IE_TAURUS_MIN_LEN ( 6 )
2207
2208#define DOT11F_IE_TAURUS_MAX_LEN ( 6 )
2209
2210#ifdef __cplusplus
2211extern "C" {
2212#endif /* C++ */
2213tANI_U32 dot11fUnpackIeTaurus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETaurus*);
2214
2215tANI_U32 dot11fPackIeTaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U8*, tANI_U32, tANI_U32*);
2216
2217tANI_U32 dot11fGetPackedIETaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U32*);
2218
2219#ifdef __cplusplus
2220}; /* End extern "C". */
2221#endif /* C++ */
2222// EID 14 (0x0e)
2223typedef struct sDot11fIETitan {
2224 tANI_U8 present;
2225 tANI_U8 concat_tcid_bitmap;
2226 tANI_U8 compression_tcid_bitmap;
2227 tANI_U8 cb_state;
2228 tANI_U8 rev_fcs_state;
2229} tDot11fIETitan;
2230
2231#define DOT11F_EID_TITAN ( 14 )
2232
2233// N.B. These #defines do *not* include the EID & length
2234#define DOT11F_IE_TITAN_MIN_LEN ( 4 )
2235
2236#define DOT11F_IE_TITAN_MAX_LEN ( 4 )
2237
2238#ifdef __cplusplus
2239extern "C" {
2240#endif /* C++ */
2241tANI_U32 dot11fUnpackIeTitan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETitan*);
2242
2243tANI_U32 dot11fPackIeTitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U8*, tANI_U32, tANI_U32*);
2244
2245tANI_U32 dot11fGetPackedIETitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U32*);
2246
2247#ifdef __cplusplus
2248}; /* End extern "C". */
2249#endif /* C++ */
2250// EID 17 (0x11)
2251typedef struct sDot11fIETriggerStaBgScan {
2252 tANI_U8 present;
2253 tANI_U8 enable;
2254} tDot11fIETriggerStaBgScan;
2255
2256#define DOT11F_EID_TRIGGERSTABGSCAN ( 17 )
2257
2258// N.B. These #defines do *not* include the EID & length
2259#define DOT11F_IE_TRIGGERSTABGSCAN_MIN_LEN ( 1 )
2260
2261#define DOT11F_IE_TRIGGERSTABGSCAN_MAX_LEN ( 1 )
2262
2263#ifdef __cplusplus
2264extern "C" {
2265#endif /* C++ */
2266tANI_U32 dot11fUnpackIeTriggerStaBgScan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETriggerStaBgScan*);
2267
2268tANI_U32 dot11fPackIeTriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U8*, tANI_U32, tANI_U32*);
2269
2270tANI_U32 dot11fGetPackedIETriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U32*);
2271
2272#ifdef __cplusplus
2273}; /* End extern "C". */
2274#endif /* C++ */
2275// EID 11 (0x0b)
2276typedef struct sDot11fIEVersion {
2277 tANI_U8 present;
2278 tANI_U32 chip_rev;
2279 tANI_U8 card_type;
2280 tANI_U8 num_build_version;
2281 tANI_U8 build_version[20];
2282} tDot11fIEVersion;
2283
2284#define DOT11F_EID_VERSION ( 11 )
2285
2286// N.B. These #defines do *not* include the EID & length
2287#define DOT11F_IE_VERSION_MIN_LEN ( 5 )
2288
2289#define DOT11F_IE_VERSION_MAX_LEN ( 25 )
2290
2291#ifdef __cplusplus
2292extern "C" {
2293#endif /* C++ */
2294tANI_U32 dot11fUnpackIeVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVersion*);
2295
2296tANI_U32 dot11fPackIeVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U8*, tANI_U32, tANI_U32*);
2297
2298tANI_U32 dot11fGetPackedIEVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U32*);
2299
2300#ifdef __cplusplus
2301}; /* End extern "C". */
2302#endif /* C++ */
2303// EID 3 (0x03)
2304typedef struct sDot11fIEWDS {
2305 tANI_U8 present;
2306 tANI_U8 num_wdsData;
2307 tANI_U8 wdsData[64];
2308} tDot11fIEWDS;
2309
2310#define DOT11F_EID_WDS ( 3 )
2311
2312// N.B. These #defines do *not* include the EID & length
2313#define DOT11F_IE_WDS_MIN_LEN ( 0 )
2314
2315#define DOT11F_IE_WDS_MAX_LEN ( 64 )
2316
2317#ifdef __cplusplus
2318extern "C" {
2319#endif /* C++ */
2320tANI_U32 dot11fUnpackIeWDS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWDS*);
2321
2322tANI_U32 dot11fPackIeWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U8*, tANI_U32, tANI_U32*);
2323
2324tANI_U32 dot11fGetPackedIEWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U32*);
2325
2326#ifdef __cplusplus
2327}; /* End extern "C". */
2328#endif /* C++ */
2329// EID 51 (0x33)
2330typedef struct sDot11fIEAPChannelReport {
2331 tANI_U8 present;
2332 tANI_U8 regulatoryClass;
2333 tANI_U8 num_channelList;
2334 tANI_U8 channelList[50];
2335} tDot11fIEAPChannelReport;
2336
2337#define DOT11F_EID_APCHANNELREPORT ( 51 )
2338
2339// N.B. These #defines do *not* include the EID & length
2340#define DOT11F_IE_APCHANNELREPORT_MIN_LEN ( 1 )
2341
2342#define DOT11F_IE_APCHANNELREPORT_MAX_LEN ( 51 )
2343
2344#ifdef __cplusplus
2345extern "C" {
2346#endif /* C++ */
2347tANI_U32 dot11fUnpackIeAPChannelReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAPChannelReport*);
2348
2349tANI_U32 dot11fPackIeAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U8*, tANI_U32, tANI_U32*);
2350
2351tANI_U32 dot11fGetPackedIEAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U32*);
2352
2353#ifdef __cplusplus
2354}; /* End extern "C". */
2355#endif /* C++ */
2356// EID 2 (0x02)
2357typedef struct sDot11fIEBcnReportingDetail {
2358 tANI_U8 present;
2359 tANI_U8 reportingDetail;
2360} tDot11fIEBcnReportingDetail;
2361
2362#define DOT11F_EID_BCNREPORTINGDETAIL ( 2 )
2363
2364// N.B. These #defines do *not* include the EID & length
2365#define DOT11F_IE_BCNREPORTINGDETAIL_MIN_LEN ( 1 )
2366
2367#define DOT11F_IE_BCNREPORTINGDETAIL_MAX_LEN ( 1 )
2368
2369#ifdef __cplusplus
2370extern "C" {
2371#endif /* C++ */
2372tANI_U32 dot11fUnpackIeBcnReportingDetail(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBcnReportingDetail*);
2373
2374tANI_U32 dot11fPackIeBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U8*, tANI_U32, tANI_U32*);
2375
2376tANI_U32 dot11fGetPackedIEBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U32*);
2377
2378#ifdef __cplusplus
2379}; /* End extern "C". */
2380#endif /* C++ */
2381// EID 1 (0x01)
2382typedef struct sDot11fIEBeaconReportFrmBody {
2383 tANI_U8 present;
2384 tANI_U8 num_reportedFields;
2385 tANI_U8 reportedFields[224];
2386} tDot11fIEBeaconReportFrmBody;
2387
2388#define DOT11F_EID_BEACONREPORTFRMBODY ( 1 )
2389
2390// N.B. These #defines do *not* include the EID & length
2391#define DOT11F_IE_BEACONREPORTFRMBODY_MIN_LEN ( 0 )
2392
2393#define DOT11F_IE_BEACONREPORTFRMBODY_MAX_LEN ( 224 )
2394
2395#ifdef __cplusplus
2396extern "C" {
2397#endif /* C++ */
2398tANI_U32 dot11fUnpackIeBeaconReportFrmBody(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReportFrmBody*);
2399
2400tANI_U32 dot11fPackIeBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U8*, tANI_U32, tANI_U32*);
2401
2402tANI_U32 dot11fGetPackedIEBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U32*);
2403
2404#ifdef __cplusplus
2405}; /* End extern "C". */
2406#endif /* C++ */
2407// EID 1 (0x01)
2408typedef struct sDot11fIEBeaconReporting {
2409 tANI_U8 present;
2410 tANI_U8 reportingCondition;
2411 tANI_U8 threshold;
2412} tDot11fIEBeaconReporting;
2413
2414#define DOT11F_EID_BEACONREPORTING ( 1 )
2415
2416// N.B. These #defines do *not* include the EID & length
2417#define DOT11F_IE_BEACONREPORTING_MIN_LEN ( 2 )
2418
2419#define DOT11F_IE_BEACONREPORTING_MAX_LEN ( 2 )
2420
2421#ifdef __cplusplus
2422extern "C" {
2423#endif /* C++ */
2424tANI_U32 dot11fUnpackIeBeaconReporting(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReporting*);
2425
2426tANI_U32 dot11fPackIeBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U8*, tANI_U32, tANI_U32*);
2427
2428tANI_U32 dot11fGetPackedIEBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U32*);
2429
2430#ifdef __cplusplus
2431}; /* End extern "C". */
2432#endif /* C++ */
2433// EID 66 (0x42)
2434typedef struct sDot11fIEMeasurementPilot {
2435 tANI_U8 present;
2436 tANI_U8 measurementPilot;
2437 tANI_U8 num_vendorSpecific;
2438 tANI_U8 vendorSpecific[255];
2439} tDot11fIEMeasurementPilot;
2440
2441#define DOT11F_EID_MEASUREMENTPILOT ( 66 )
2442
2443// N.B. These #defines do *not* include the EID & length
2444#define DOT11F_IE_MEASUREMENTPILOT_MIN_LEN ( 1 )
2445
2446#define DOT11F_IE_MEASUREMENTPILOT_MAX_LEN ( 256 )
2447
2448#ifdef __cplusplus
2449extern "C" {
2450#endif /* C++ */
2451tANI_U32 dot11fUnpackIeMeasurementPilot(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementPilot*);
2452
2453tANI_U32 dot11fPackIeMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U8*, tANI_U32, tANI_U32*);
2454
2455tANI_U32 dot11fGetPackedIEMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U32*);
2456
2457#ifdef __cplusplus
2458}; /* End extern "C". */
2459#endif /* C++ */
2460// EID 71 (0x47)
2461typedef struct sDot11fIEMultiBssid {
2462 tANI_U8 present;
2463 tANI_U8 maxBSSIDIndicator;
2464 tANI_U8 num_vendorSpecific;
2465 tANI_U8 vendorSpecific[255];
2466} tDot11fIEMultiBssid;
2467
2468#define DOT11F_EID_MULTIBSSID ( 71 )
2469
2470// N.B. These #defines do *not* include the EID & length
2471#define DOT11F_IE_MULTIBSSID_MIN_LEN ( 1 )
2472
2473#define DOT11F_IE_MULTIBSSID_MAX_LEN ( 256 )
2474
2475#ifdef __cplusplus
2476extern "C" {
2477#endif /* C++ */
2478tANI_U32 dot11fUnpackIeMultiBssid(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMultiBssid*);
2479
2480tANI_U32 dot11fPackIeMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U8*, tANI_U32, tANI_U32*);
2481
2482tANI_U32 dot11fGetPackedIEMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U32*);
2483
2484#ifdef __cplusplus
2485}; /* End extern "C". */
2486#endif /* C++ */
2487// EID 57 (0x39)
2488typedef struct sDot11fIERICData {
2489 tANI_U8 present;
2490 tANI_U8 Identifier;
2491 tANI_U8 resourceDescCount;
2492 tANI_U16 statusCode;
2493} tDot11fIERICData;
2494
2495#define DOT11F_EID_RICDATA ( 57 )
2496
2497// N.B. These #defines do *not* include the EID & length
2498#define DOT11F_IE_RICDATA_MIN_LEN ( 4 )
2499
2500#define DOT11F_IE_RICDATA_MAX_LEN ( 4 )
2501
2502#ifdef __cplusplus
2503extern "C" {
2504#endif /* C++ */
2505tANI_U32 dot11fUnpackIeRICData(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICData*);
2506
2507tANI_U32 dot11fPackIeRICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U8*, tANI_U32, tANI_U32*);
2508
2509tANI_U32 dot11fGetPackedIERICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U32*);
2510
2511#ifdef __cplusplus
2512}; /* End extern "C". */
2513#endif /* C++ */
2514// EID 75 (0x4b)
2515typedef struct sDot11fIERICDescriptor {
2516 tANI_U8 present;
2517 tANI_U8 resourceType;
2518 tANI_U8 num_variableData;
2519 tANI_U8 variableData[255];
2520} tDot11fIERICDescriptor;
2521
2522#define DOT11F_EID_RICDESCRIPTOR ( 75 )
2523
2524// N.B. These #defines do *not* include the EID & length
2525#define DOT11F_IE_RICDESCRIPTOR_MIN_LEN ( 1 )
2526
2527#define DOT11F_IE_RICDESCRIPTOR_MAX_LEN ( 256 )
2528
2529#ifdef __cplusplus
2530extern "C" {
2531#endif /* C++ */
2532tANI_U32 dot11fUnpackIeRICDescriptor(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDescriptor*);
2533
2534tANI_U32 dot11fPackIeRICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U8*, tANI_U32, tANI_U32*);
2535
2536tANI_U32 dot11fGetPackedIERICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U32*);
2537
2538#ifdef __cplusplus
2539}; /* End extern "C". */
2540#endif /* C++ */
2541// EID 70 (0x46)
2542typedef struct sDot11fIERRMEnabledCap {
2543 tANI_U8 present;
2544 tANI_U8 LinkMeasurement: 1;
2545 tANI_U8 NeighborRpt: 1;
2546 tANI_U8 parallel: 1;
2547 tANI_U8 repeated: 1;
2548 tANI_U8 BeaconPassive: 1;
2549 tANI_U8 BeaconActive: 1;
2550 tANI_U8 BeaconTable: 1;
2551 tANI_U8 BeaconRepCond: 1;
2552 tANI_U8 FrameMeasurement: 1;
2553 tANI_U8 ChannelLoad: 1;
2554 tANI_U8 NoiseHistogram: 1;
2555 tANI_U8 statistics: 1;
2556 tANI_U8 LCIMeasurement: 1;
2557 tANI_U8 LCIAzimuth: 1;
2558 tANI_U8 TCMCapability: 1;
2559 tANI_U8 triggeredTCM: 1;
2560 tANI_U8 APChanReport: 1;
2561 tANI_U8 RRMMIBEnabled: 1;
2562 tANI_U8 operatingChanMax: 3;
2563 tANI_U8 nonOperatinChanMax: 3;
2564 tANI_U8 MeasurementPilot: 3;
2565 tANI_U8 MeasurementPilotEnabled: 1;
2566 tANI_U8 NeighborTSFOffset: 1;
2567 tANI_U8 RCPIMeasurement: 1;
2568 tANI_U8 RSNIMeasurement: 1;
2569 tANI_U8 BssAvgAccessDelay: 1;
2570 tANI_U8 BSSAvailAdmission: 1;
2571 tANI_U8 AntennaInformation: 1;
2572 tANI_U8 reserved: 6;
2573} tDot11fIERRMEnabledCap;
2574
2575#define DOT11F_EID_RRMENABLEDCAP ( 70 )
2576
2577// N.B. These #defines do *not* include the EID & length
2578#define DOT11F_IE_RRMENABLEDCAP_MIN_LEN ( 5 )
2579
2580#define DOT11F_IE_RRMENABLEDCAP_MAX_LEN ( 5 )
2581
2582#ifdef __cplusplus
2583extern "C" {
2584#endif /* C++ */
2585tANI_U32 dot11fUnpackIeRRMEnabledCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERRMEnabledCap*);
2586
2587tANI_U32 dot11fPackIeRRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U8*, tANI_U32, tANI_U32*);
2588
2589tANI_U32 dot11fGetPackedIERRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U32*);
2590
2591#ifdef __cplusplus
2592}; /* End extern "C". */
2593#endif /* C++ */
2594// EID 10 (0x0a)
2595typedef struct sDot11fIERequestedInfo {
2596 tANI_U8 present;
2597 tANI_U8 num_requested_eids;
2598 tANI_U8 requested_eids[255];
2599} tDot11fIERequestedInfo;
2600
2601#define DOT11F_EID_REQUESTEDINFO ( 10 )
2602
2603// N.B. These #defines do *not* include the EID & length
2604#define DOT11F_IE_REQUESTEDINFO_MIN_LEN ( 0 )
2605
2606#define DOT11F_IE_REQUESTEDINFO_MAX_LEN ( 255 )
2607
2608#ifdef __cplusplus
2609extern "C" {
2610#endif /* C++ */
2611tANI_U32 dot11fUnpackIeRequestedInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERequestedInfo*);
2612
2613tANI_U32 dot11fPackIeRequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U8*, tANI_U32, tANI_U32*);
2614
2615tANI_U32 dot11fGetPackedIERequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U32*);
2616
2617#ifdef __cplusplus
2618}; /* End extern "C". */
2619#endif /* C++ */
2620// EID 0 (0x00)
2621typedef struct sDot11fIESSID {
2622 tANI_U8 present;
2623 tANI_U8 num_ssid;
2624 tANI_U8 ssid[32];
2625} tDot11fIESSID;
2626
2627#define DOT11F_EID_SSID ( 0 )
2628
2629// N.B. These #defines do *not* include the EID & length
2630#define DOT11F_IE_SSID_MIN_LEN ( 0 )
2631
2632#define DOT11F_IE_SSID_MAX_LEN ( 32 )
2633
2634#ifdef __cplusplus
2635extern "C" {
2636#endif /* C++ */
2637tANI_U32 dot11fUnpackIeSSID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESSID*);
2638
2639tANI_U32 dot11fPackIeSSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U8*, tANI_U32, tANI_U32*);
2640
2641tANI_U32 dot11fGetPackedIESSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U32*);
2642
2643#ifdef __cplusplus
2644}; /* End extern "C". */
2645#endif /* C++ */
2646// EID 15 (0x0f)
2647typedef struct sDot11fIESchedule {
2648 tANI_U8 present;
2649 tANI_U16 aggregation: 1;
2650 tANI_U16 tsid: 4;
2651 tANI_U16 direction: 2;
2652 tANI_U16 reserved: 9;
2653 tANI_U32 service_start_time;
2654 tANI_U32 service_interval;
2655 tANI_U16 max_service_dur;
2656 tANI_U16 spec_interval;
2657} tDot11fIESchedule;
2658
2659#define DOT11F_EID_SCHEDULE ( 15 )
2660
2661// N.B. These #defines do *not* include the EID & length
2662#define DOT11F_IE_SCHEDULE_MIN_LEN ( 14 )
2663
2664#define DOT11F_IE_SCHEDULE_MAX_LEN ( 14 )
2665
2666#ifdef __cplusplus
2667extern "C" {
2668#endif /* C++ */
2669tANI_U32 dot11fUnpackIeSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESchedule*);
2670
2671tANI_U32 dot11fPackIeSchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U8*, tANI_U32, tANI_U32*);
2672
2673tANI_U32 dot11fGetPackedIESchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U32*);
2674
2675#ifdef __cplusplus
2676}; /* End extern "C". */
2677#endif /* C++ */
2678// EID 14 (0x0e)
2679typedef struct sDot11fIETCLAS {
2680 tANI_U8 present;
2681 tANI_U8 user_priority;
2682 tANI_U8 classifier_type;
2683 tANI_U8 classifier_mask;
2684 union
2685 {
2686 struct
2687 {
2688 tANI_U8 source[6];
2689 tANI_U8 dest[6];
2690 tANI_U16 type;
2691 } EthParams; /* classifier_type = 0 */
2692 struct
2693 {
2694 tANI_U8 version;
2695 union
2696 {
2697 struct
2698 {
2699 tANI_U8 source[4];
2700 tANI_U8 dest[4];
2701 tANI_U16 src_port;
2702 tANI_U16 dest_port;
2703 tANI_U8 DSCP;
2704 tANI_U8 proto;
2705 tANI_U8 reserved;
2706 } IpV4Params; /* version = 4 */
2707 struct
2708 {
2709 tANI_U8 source[16];
2710 tANI_U8 dest[16];
2711 tANI_U16 src_port;
2712 tANI_U16 dest_port;
2713 tANI_U8 flow_label[3];
2714 } IpV6Params; /* version = 6 */
2715 } params;
2716 } IpParams; /* classifier_type = 1 */
2717 struct
2718 {
2719 tANI_U16 tag_type;
2720 } Params8021dq; /* classifier_type = 2 */
2721 } info;
2722} tDot11fIETCLAS;
2723
2724#define DOT11F_EID_TCLAS ( 14 )
2725
2726// N.B. These #defines do *not* include the EID & length
2727#define DOT11F_IE_TCLAS_MIN_LEN ( 5 )
2728
2729#define DOT11F_IE_TCLAS_MAX_LEN ( 43 )
2730
2731#ifdef __cplusplus
2732extern "C" {
2733#endif /* C++ */
2734tANI_U32 dot11fUnpackIeTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLAS*);
2735
2736tANI_U32 dot11fPackIeTCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
2737
2738tANI_U32 dot11fGetPackedIETCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U32*);
2739
2740#ifdef __cplusplus
2741}; /* End extern "C". */
2742#endif /* C++ */
2743// EID 44 (0x2c)
2744typedef struct sDot11fIETCLASSPROC {
2745 tANI_U8 present;
2746 tANI_U8 processing;
2747} tDot11fIETCLASSPROC;
2748
2749#define DOT11F_EID_TCLASSPROC ( 44 )
2750
2751// N.B. These #defines do *not* include the EID & length
2752#define DOT11F_IE_TCLASSPROC_MIN_LEN ( 1 )
2753
2754#define DOT11F_IE_TCLASSPROC_MAX_LEN ( 1 )
2755
2756#ifdef __cplusplus
2757extern "C" {
2758#endif /* C++ */
2759tANI_U32 dot11fUnpackIeTCLASSPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLASSPROC*);
2760
2761tANI_U32 dot11fPackIeTCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U8*, tANI_U32, tANI_U32*);
2762
2763tANI_U32 dot11fGetPackedIETCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U32*);
2764
2765#ifdef __cplusplus
2766}; /* End extern "C". */
2767#endif /* C++ */
2768// EID 43 (0x2b)
2769typedef struct sDot11fIETSDelay {
2770 tANI_U8 present;
2771 tANI_U32 delay;
2772} tDot11fIETSDelay;
2773
2774#define DOT11F_EID_TSDELAY ( 43 )
2775
2776// N.B. These #defines do *not* include the EID & length
2777#define DOT11F_IE_TSDELAY_MIN_LEN ( 4 )
2778
2779#define DOT11F_IE_TSDELAY_MAX_LEN ( 4 )
2780
2781#ifdef __cplusplus
2782extern "C" {
2783#endif /* C++ */
2784tANI_U32 dot11fUnpackIeTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSDelay*);
2785
2786tANI_U32 dot11fPackIeTSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
2787
2788tANI_U32 dot11fGetPackedIETSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U32*);
2789
2790#ifdef __cplusplus
2791}; /* End extern "C". */
2792#endif /* C++ */
2793// EID 13 (0x0d)
2794typedef struct sDot11fIETSPEC {
2795 tANI_U8 present;
2796 tANI_U16 traffic_type: 1;
2797 tANI_U16 tsid: 4;
2798 tANI_U16 direction: 2;
2799 tANI_U16 access_policy: 2;
2800 tANI_U16 aggregation: 1;
2801 tANI_U16 psb: 1;
2802 tANI_U16 user_priority: 3;
2803 tANI_U16 tsinfo_ack_pol: 2;
2804 tANI_U8 schedule: 1;
2805 tANI_U8 unused: 7;
2806 tANI_U16 size: 15;
2807 tANI_U16 fixed: 1;
2808 tANI_U16 max_msdu_size;
2809 tANI_U32 min_service_int;
2810 tANI_U32 max_service_int;
2811 tANI_U32 inactivity_int;
2812 tANI_U32 suspension_int;
2813 tANI_U32 service_start_time;
2814 tANI_U32 min_data_rate;
2815 tANI_U32 mean_data_rate;
2816 tANI_U32 peak_data_rate;
2817 tANI_U32 burst_size;
2818 tANI_U32 delay_bound;
2819 tANI_U32 min_phy_rate;
2820 tANI_U16 surplus_bw_allowance;
2821 tANI_U16 medium_time;
2822} tDot11fIETSPEC;
2823
2824#define DOT11F_EID_TSPEC ( 13 )
2825
2826// N.B. These #defines do *not* include the EID & length
2827#define DOT11F_IE_TSPEC_MIN_LEN ( 55 )
2828
2829#define DOT11F_IE_TSPEC_MAX_LEN ( 55 )
2830
2831#ifdef __cplusplus
2832extern "C" {
2833#endif /* C++ */
2834tANI_U32 dot11fUnpackIeTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSPEC*);
2835
2836tANI_U32 dot11fPackIeTSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
2837
2838tANI_U32 dot11fGetPackedIETSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U32*);
2839
2840#ifdef __cplusplus
2841}; /* End extern "C". */
2842#endif /* C++ */
2843// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09}
2844typedef struct sDot11fIEWMMSchedule {
2845 tANI_U8 present;
2846 tANI_U8 version /* Must be 1! */;
2847 tANI_U16 aggregation: 1;
2848 tANI_U16 tsid: 4;
2849 tANI_U16 direction: 2;
2850 tANI_U16 reserved: 9;
2851 tANI_U32 service_start_time;
2852 tANI_U32 service_interval;
2853 tANI_U16 max_service_dur;
2854 tANI_U16 spec_interval;
2855} tDot11fIEWMMSchedule;
2856
2857#define DOT11F_EID_WMMSCHEDULE ( 221 )
2858
2859// N.B. These #defines do *not* include the EID & length
2860#define DOT11F_IE_WMMSCHEDULE_MIN_LEN ( 20 )
2861
2862#define DOT11F_IE_WMMSCHEDULE_MAX_LEN ( 20 )
2863
2864#ifdef __cplusplus
2865extern "C" {
2866#endif /* C++ */
2867tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMSchedule*);
2868
2869tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U8*, tANI_U32, tANI_U32*);
2870
2871tANI_U32 dot11fGetPackedIEWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U32*);
2872
2873#ifdef __cplusplus
2874}; /* End extern "C". */
2875#endif /* C++ */
2876// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x06}
2877typedef struct sDot11fIEWMMTCLAS {
2878 tANI_U8 present;
2879 tANI_U8 version /* Must be 1! */;
2880 tANI_U8 user_priority;
2881 tANI_U8 classifier_type;
2882 tANI_U8 classifier_mask;
2883 union
2884 {
2885 struct
2886 {
2887 tANI_U8 source[6];
2888 tANI_U8 dest[6];
2889 tANI_U16 type;
2890 } EthParams; /* classifier_type = 0 */
2891 struct
2892 {
2893 tANI_U8 version;
2894 union
2895 {
2896 struct
2897 {
2898 tANI_U8 source[4];
2899 tANI_U8 dest[4];
2900 tANI_U16 src_port;
2901 tANI_U16 dest_port;
2902 tANI_U8 DSCP;
2903 tANI_U8 proto;
2904 tANI_U8 reserved;
2905 } IpV4Params; /* version = 4 */
2906 struct
2907 {
2908 tANI_U8 source[16];
2909 tANI_U8 dest[16];
2910 tANI_U16 src_port;
2911 tANI_U16 dest_port;
2912 tANI_U8 flow_label[3];
2913 } IpV6Params; /* version = 6 */
2914 } params;
2915 } IpParams; /* classifier_type = 1 */
2916 struct
2917 {
2918 tANI_U16 tag_type;
2919 } Params8021dq; /* classifier_type = 2 */
2920 } info;
2921} tDot11fIEWMMTCLAS;
2922
2923#define DOT11F_EID_WMMTCLAS ( 221 )
2924
2925// N.B. These #defines do *not* include the EID & length
2926#define DOT11F_IE_WMMTCLAS_MIN_LEN ( 11 )
2927
2928#define DOT11F_IE_WMMTCLAS_MAX_LEN ( 49 )
2929
2930#ifdef __cplusplus
2931extern "C" {
2932#endif /* C++ */
2933tANI_U32 dot11fUnpackIeWMMTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLAS*);
2934
2935tANI_U32 dot11fPackIeWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
2936
2937tANI_U32 dot11fGetPackedIEWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U32*);
2938
2939#ifdef __cplusplus
2940}; /* End extern "C". */
2941#endif /* C++ */
2942// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x07}
2943typedef struct sDot11fIEWMMTCLASPROC {
2944 tANI_U8 present;
2945 tANI_U8 version /* Must be 1! */;
2946 tANI_U8 processing;
2947} tDot11fIEWMMTCLASPROC;
2948
2949#define DOT11F_EID_WMMTCLASPROC ( 221 )
2950
2951// N.B. These #defines do *not* include the EID & length
2952#define DOT11F_IE_WMMTCLASPROC_MIN_LEN ( 7 )
2953
2954#define DOT11F_IE_WMMTCLASPROC_MAX_LEN ( 7 )
2955
2956#ifdef __cplusplus
2957extern "C" {
2958#endif /* C++ */
2959tANI_U32 dot11fUnpackIeWMMTCLASPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLASPROC*);
2960
2961tANI_U32 dot11fPackIeWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U8*, tANI_U32, tANI_U32*);
2962
2963tANI_U32 dot11fGetPackedIEWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U32*);
2964
2965#ifdef __cplusplus
2966}; /* End extern "C". */
2967#endif /* C++ */
2968// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x08}
2969typedef struct sDot11fIEWMMTSDelay {
2970 tANI_U8 present;
2971 tANI_U8 version /* Must be 1! */;
2972 tANI_U32 delay;
2973} tDot11fIEWMMTSDelay;
2974
2975#define DOT11F_EID_WMMTSDELAY ( 221 )
2976
2977// N.B. These #defines do *not* include the EID & length
2978#define DOT11F_IE_WMMTSDELAY_MIN_LEN ( 10 )
2979
2980#define DOT11F_IE_WMMTSDELAY_MAX_LEN ( 10 )
2981
2982#ifdef __cplusplus
2983extern "C" {
2984#endif /* C++ */
2985tANI_U32 dot11fUnpackIeWMMTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSDelay*);
2986
2987tANI_U32 dot11fPackIeWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
2988
2989tANI_U32 dot11fGetPackedIEWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U32*);
2990
2991#ifdef __cplusplus
2992}; /* End extern "C". */
2993#endif /* C++ */
2994// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x02}
2995typedef struct sDot11fIEWMMTSPEC {
2996 tANI_U8 present;
2997 tANI_U8 version /* Must be 1! */;
2998 tANI_U16 traffic_type: 1;
2999 tANI_U16 tsid: 4;
3000 tANI_U16 direction: 2;
3001 tANI_U16 access_policy: 2;
3002 tANI_U16 aggregation: 1;
3003 tANI_U16 psb: 1;
3004 tANI_U16 user_priority: 3;
3005 tANI_U16 tsinfo_ack_pol: 2;
3006 tANI_U8 tsinfo_rsvd: 7;
3007 tANI_U8 burst_size_defn: 1;
3008 tANI_U16 size: 15;
3009 tANI_U16 fixed: 1;
3010 tANI_U16 max_msdu_size;
3011 tANI_U32 min_service_int;
3012 tANI_U32 max_service_int;
3013 tANI_U32 inactivity_int;
3014 tANI_U32 suspension_int;
3015 tANI_U32 service_start_time;
3016 tANI_U32 min_data_rate;
3017 tANI_U32 mean_data_rate;
3018 tANI_U32 peak_data_rate;
3019 tANI_U32 burst_size;
3020 tANI_U32 delay_bound;
3021 tANI_U32 min_phy_rate;
3022 tANI_U16 surplus_bw_allowance;
3023 tANI_U16 medium_time;
3024} tDot11fIEWMMTSPEC;
3025
3026#define DOT11F_EID_WMMTSPEC ( 221 )
3027
3028// N.B. These #defines do *not* include the EID & length
3029#define DOT11F_IE_WMMTSPEC_MIN_LEN ( 61 )
3030
3031#define DOT11F_IE_WMMTSPEC_MAX_LEN ( 61 )
3032
3033#ifdef __cplusplus
3034extern "C" {
3035#endif /* C++ */
3036tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSPEC*);
3037
3038tANI_U32 dot11fPackIeWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
3039
3040tANI_U32 dot11fGetPackedIEWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U32*);
3041
3042#ifdef __cplusplus
3043}; /* End extern "C". */
3044#endif /* C++ */
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003045// EID 197 (0xc5)
3046typedef struct sDot11fIEAID {
3047 tANI_U8 present;
3048 tANI_U16 assocId;
3049} tDot11fIEAID;
3050
3051#define DOT11F_EID_AID ( 197 )
3052
3053// N.B. These #defines do *not* include the EID & length
3054#define DOT11F_IE_AID_MIN_LEN ( 2 )
3055
3056#define DOT11F_IE_AID_MAX_LEN ( 2 )
3057
3058#ifdef __cplusplus
3059extern "C" {
3060#endif /* C++ */
3061tANI_U32 dot11fUnpackIeAID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAID*);
3062
3063tANI_U32 dot11fPackIeAID(tpAniSirGlobal, tDot11fIEAID*, tANI_U8*, tANI_U32, tANI_U32*);
3064
3065tANI_U32 dot11fGetPackedIEAID(tpAniSirGlobal, tDot11fIEAID*, tANI_U32*);
3066
3067#ifdef __cplusplus
3068}; /* End extern "C". */
3069#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003070// EID 221 (0xdd) {OUI 0x00, 0x0a, 0xf5}
3071typedef struct sDot11fIEAirgo {
3072 tANI_U8 present;
3073 tDot11fIEPropSuppRates PropSuppRates;
3074 tDot11fIEAPName APName;
3075 tDot11fIEHCF HCF;
3076 tDot11fIEWDS WDS;
3077 tDot11fIEBPIndicator BPIndicator;
3078 tDot11fIELoadInfo LoadInfo;
3079 tDot11fIELoadBalance LoadBalance;
3080 tDot11fIEPropAssocType PropAssocType;
3081 tDot11fIELLAttr LLAttr;
3082 tDot11fIEPropCapability PropCapability;
3083 tDot11fIEVersion Version;
3084 tDot11fIEPropEDCAParams PropEDCAParams;
3085 tDot11fIETitan Titan;
3086 tDot11fIEPropChannSwitchAnn PropChannSwitchAnn;
3087 tDot11fIEPropQuietBSS PropQuietBSS;
3088 tDot11fIETriggerStaBgScan TriggerStaBgScan;
3089 tDot11fIETaurus Taurus;
3090} tDot11fIEAirgo;
3091
3092#define DOT11F_EID_AIRGO ( 221 )
3093
3094// N.B. These #defines do *not* include the EID & length
3095#define DOT11F_IE_AIRGO_MIN_LEN ( 3 )
3096
3097#define DOT11F_IE_AIRGO_MAX_LEN ( 230 )
3098
3099#ifdef __cplusplus
3100extern "C" {
3101#endif /* C++ */
3102tANI_U32 dot11fUnpackIeAirgo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAirgo*);
3103
3104tANI_U32 dot11fPackIeAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U8*, tANI_U32, tANI_U32*);
3105
3106tANI_U32 dot11fGetPackedIEAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U32*);
3107
3108#ifdef __cplusplus
3109}; /* End extern "C". */
3110#endif /* C++ */
3111// EID 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00}
3112typedef struct sDot11fIECCXCckmOpaque {
3113 tANI_U8 present;
3114 tANI_U8 num_data;
3115 tANI_U8 data[20];
3116} tDot11fIECCXCckmOpaque;
3117
3118#define DOT11F_EID_CCXCCKMOPAQUE ( 156 )
3119
3120// N.B. These #defines do *not* include the EID & length
3121#define DOT11F_IE_CCXCCKMOPAQUE_MIN_LEN ( 10 )
3122
3123#define DOT11F_IE_CCXCCKMOPAQUE_MAX_LEN ( 24 )
3124
3125#ifdef __cplusplus
3126extern "C" {
3127#endif /* C++ */
3128tANI_U32 dot11fUnpackIeCCXCckmOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXCckmOpaque*);
3129
3130tANI_U32 dot11fPackIeCCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
3131
3132tANI_U32 dot11fGetPackedIECCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U32*);
3133
3134#ifdef __cplusplus
3135}; /* End extern "C". */
3136#endif /* C++ */
3137// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01}
3138typedef struct sDot11fIECCXRadMgmtCap {
3139 tANI_U8 present;
3140 tANI_U8 mgmt_state;
3141 tANI_U8 mbssid_mask: 3;
3142 tANI_U8 reserved: 5;
3143} tDot11fIECCXRadMgmtCap;
3144
3145#define DOT11F_EID_CCXRADMGMTCAP ( 221 )
3146
3147// N.B. These #defines do *not* include the EID & length
3148#define DOT11F_IE_CCXRADMGMTCAP_MIN_LEN ( 6 )
3149
3150#define DOT11F_IE_CCXRADMGMTCAP_MAX_LEN ( 6 )
3151
3152#ifdef __cplusplus
3153extern "C" {
3154#endif /* C++ */
3155tANI_U32 dot11fUnpackIeCCXRadMgmtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXRadMgmtCap*);
3156
3157tANI_U32 dot11fPackIeCCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U8*, tANI_U32, tANI_U32*);
3158
3159tANI_U32 dot11fGetPackedIECCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U32*);
3160
3161#ifdef __cplusplus
3162}; /* End extern "C". */
3163#endif /* C++ */
3164// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07}
3165typedef struct sDot11fIECCXTrafStrmMet {
3166 tANI_U8 present;
3167 tANI_U8 tsid;
3168 tANI_U8 state;
3169 tANI_U16 msmt_interval;
3170} tDot11fIECCXTrafStrmMet;
3171
3172#define DOT11F_EID_CCXTRAFSTRMMET ( 221 )
3173
3174// N.B. These #defines do *not* include the EID & length
3175#define DOT11F_IE_CCXTRAFSTRMMET_MIN_LEN ( 8 )
3176
3177#define DOT11F_IE_CCXTRAFSTRMMET_MAX_LEN ( 8 )
3178
3179#ifdef __cplusplus
3180extern "C" {
3181#endif /* C++ */
3182tANI_U32 dot11fUnpackIeCCXTrafStrmMet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmMet*);
3183
3184tANI_U32 dot11fPackIeCCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U8*, tANI_U32, tANI_U32*);
3185
3186tANI_U32 dot11fGetPackedIECCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U32*);
3187
3188#ifdef __cplusplus
3189}; /* End extern "C". */
3190#endif /* C++ */
3191// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08}
3192typedef struct sDot11fIECCXTrafStrmRateSet {
3193 tANI_U8 present;
3194 tANI_U8 tsid;
3195 tANI_U8 num_tsrates;
3196 tANI_U8 tsrates[8];
3197} tDot11fIECCXTrafStrmRateSet;
3198
3199#define DOT11F_EID_CCXTRAFSTRMRATESET ( 221 )
3200
3201// N.B. These #defines do *not* include the EID & length
3202#define DOT11F_IE_CCXTRAFSTRMRATESET_MIN_LEN ( 5 )
3203
3204#define DOT11F_IE_CCXTRAFSTRMRATESET_MAX_LEN ( 13 )
3205
3206#ifdef __cplusplus
3207extern "C" {
3208#endif /* C++ */
3209tANI_U32 dot11fUnpackIeCCXTrafStrmRateSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmRateSet*);
3210
3211tANI_U32 dot11fPackIeCCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U8*, tANI_U32, tANI_U32*);
3212
3213tANI_U32 dot11fGetPackedIECCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U32*);
3214
3215#ifdef __cplusplus
3216}; /* End extern "C". */
3217#endif /* C++ */
3218// EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00}
3219typedef struct sDot11fIECCXTxmitPower {
3220 tANI_U8 present;
3221 tANI_U8 power_limit;
3222 tANI_U8 reserved;
3223} tDot11fIECCXTxmitPower;
3224
3225#define DOT11F_EID_CCXTXMITPOWER ( 150 )
3226
3227// N.B. These #defines do *not* include the EID & length
3228#define DOT11F_IE_CCXTXMITPOWER_MIN_LEN ( 6 )
3229
3230#define DOT11F_IE_CCXTXMITPOWER_MAX_LEN ( 6 )
3231
3232#ifdef __cplusplus
3233extern "C" {
3234#endif /* C++ */
3235tANI_U32 dot11fUnpackIeCCXTxmitPower(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTxmitPower*);
3236
3237tANI_U32 dot11fPackIeCCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U8*, tANI_U32, tANI_U32*);
3238
3239tANI_U32 dot11fGetPackedIECCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U32*);
3240
3241#ifdef __cplusplus
3242}; /* End extern "C". */
3243#endif /* C++ */
3244// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03}
3245typedef struct sDot11fIECCXVersion {
3246 tANI_U8 present;
3247 tANI_U8 version;
3248} tDot11fIECCXVersion;
3249
3250#define DOT11F_EID_CCXVERSION ( 221 )
3251
3252// N.B. These #defines do *not* include the EID & length
3253#define DOT11F_IE_CCXVERSION_MIN_LEN ( 5 )
3254
3255#define DOT11F_IE_CCXVERSION_MAX_LEN ( 5 )
3256
3257#ifdef __cplusplus
3258extern "C" {
3259#endif /* C++ */
3260tANI_U32 dot11fUnpackIeCCXVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXVersion*);
3261
3262tANI_U32 dot11fPackIeCCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U8*, tANI_U32, tANI_U32*);
3263
3264tANI_U32 dot11fGetPackedIECCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U32*);
3265
3266#ifdef __cplusplus
3267}; /* End extern "C". */
3268#endif /* C++ */
3269// EID 4 (0x04)
3270typedef struct sDot11fIECFParams {
3271 tANI_U8 present;
3272 tANI_U8 cfp_count;
3273 tANI_U8 cfp_period;
3274 tANI_U16 cfp_maxduration;
3275 tANI_U16 cfp_durremaining;
3276} tDot11fIECFParams;
3277
3278#define DOT11F_EID_CFPARAMS ( 4 )
3279
3280// N.B. These #defines do *not* include the EID & length
3281#define DOT11F_IE_CFPARAMS_MIN_LEN ( 6 )
3282
3283#define DOT11F_IE_CFPARAMS_MAX_LEN ( 6 )
3284
3285#ifdef __cplusplus
3286extern "C" {
3287#endif /* C++ */
3288tANI_U32 dot11fUnpackIeCFParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECFParams*);
3289
3290tANI_U32 dot11fPackIeCFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U8*, tANI_U32, tANI_U32*);
3291
3292tANI_U32 dot11fGetPackedIECFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U32*);
3293
3294#ifdef __cplusplus
3295}; /* End extern "C". */
3296#endif /* C++ */
3297// EID 16 (0x10)
3298typedef struct sDot11fIEChallengeText {
3299 tANI_U8 present;
3300 tANI_U8 num_text;
3301 tANI_U8 text[253];
3302} tDot11fIEChallengeText;
3303
3304#define DOT11F_EID_CHALLENGETEXT ( 16 )
3305
3306// N.B. These #defines do *not* include the EID & length
3307#define DOT11F_IE_CHALLENGETEXT_MIN_LEN ( 1 )
3308
3309#define DOT11F_IE_CHALLENGETEXT_MAX_LEN ( 253 )
3310
3311#ifdef __cplusplus
3312extern "C" {
3313#endif /* C++ */
3314tANI_U32 dot11fUnpackIeChallengeText(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChallengeText*);
3315
3316tANI_U32 dot11fPackIeChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U8*, tANI_U32, tANI_U32*);
3317
3318tANI_U32 dot11fGetPackedIEChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U32*);
3319
3320#ifdef __cplusplus
3321}; /* End extern "C". */
3322#endif /* C++ */
3323// EID 37 (0x25)
3324typedef struct sDot11fIEChanSwitchAnn {
3325 tANI_U8 present;
3326 tANI_U8 switchMode;
3327 tANI_U8 newChannel;
3328 tANI_U8 switchCount;
3329} tDot11fIEChanSwitchAnn;
3330
3331#define DOT11F_EID_CHANSWITCHANN ( 37 )
3332
3333// N.B. These #defines do *not* include the EID & length
3334#define DOT11F_IE_CHANSWITCHANN_MIN_LEN ( 3 )
3335
3336#define DOT11F_IE_CHANSWITCHANN_MAX_LEN ( 3 )
3337
3338#ifdef __cplusplus
3339extern "C" {
3340#endif /* C++ */
3341tANI_U32 dot11fUnpackIeChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChanSwitchAnn*);
3342
3343tANI_U32 dot11fPackIeChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
3344
3345tANI_U32 dot11fGetPackedIEChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U32*);
3346
3347#ifdef __cplusplus
3348}; /* End extern "C". */
3349#endif /* C++ */
3350// EID 7 (0x07)
3351typedef struct sDot11fIECountry {
3352 tANI_U8 present;
3353 tANI_U8 country[3];
3354 tANI_U8 num_triplets;
3355 tANI_U8 triplets[84][3];
3356} tDot11fIECountry;
3357
3358#define DOT11F_EID_COUNTRY ( 7 )
3359
3360// N.B. These #defines do *not* include the EID & length
3361#define DOT11F_IE_COUNTRY_MIN_LEN ( 3 )
3362
3363#define DOT11F_IE_COUNTRY_MAX_LEN ( 255 )
3364
3365#ifdef __cplusplus
3366extern "C" {
3367#endif /* C++ */
3368tANI_U32 dot11fUnpackIeCountry(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECountry*);
3369
3370tANI_U32 dot11fPackIeCountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U8*, tANI_U32, tANI_U32*);
3371
3372tANI_U32 dot11fGetPackedIECountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U32*);
3373
3374#ifdef __cplusplus
3375}; /* End extern "C". */
3376#endif /* C++ */
3377// EID 3 (0x03)
3378typedef struct sDot11fIEDSParams {
3379 tANI_U8 present;
3380 tANI_U8 curr_channel;
3381} tDot11fIEDSParams;
3382
3383#define DOT11F_EID_DSPARAMS ( 3 )
3384
3385// N.B. These #defines do *not* include the EID & length
3386#define DOT11F_IE_DSPARAMS_MIN_LEN ( 1 )
3387
3388#define DOT11F_IE_DSPARAMS_MAX_LEN ( 1 )
3389
3390#ifdef __cplusplus
3391extern "C" {
3392#endif /* C++ */
3393tANI_U32 dot11fUnpackIeDSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEDSParams*);
3394
3395tANI_U32 dot11fPackIeDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U8*, tANI_U32, tANI_U32*);
3396
3397tANI_U32 dot11fGetPackedIEDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U32*);
3398
3399#ifdef __cplusplus
3400}; /* End extern "C". */
3401#endif /* C++ */
3402// EID 12 (0x0c)
3403typedef struct sDot11fIEEDCAParamSet {
3404 tANI_U8 present;
3405 tANI_U8 qos;
3406 tANI_U8 reserved;
3407 tANI_U8 acbe_aifsn: 4;
3408 tANI_U8 acbe_acm: 1;
3409 tANI_U8 acbe_aci: 2;
3410 tANI_U8 unused1: 1;
3411 tANI_U8 acbe_acwmin: 4;
3412 tANI_U8 acbe_acwmax: 4;
3413 tANI_U16 acbe_txoplimit;
3414 tANI_U8 acbk_aifsn: 4;
3415 tANI_U8 acbk_acm: 1;
3416 tANI_U8 acbk_aci: 2;
3417 tANI_U8 unused2: 1;
3418 tANI_U8 acbk_acwmin: 4;
3419 tANI_U8 acbk_acwmax: 4;
3420 tANI_U16 acbk_txoplimit;
3421 tANI_U8 acvi_aifsn: 4;
3422 tANI_U8 acvi_acm: 1;
3423 tANI_U8 acvi_aci: 2;
3424 tANI_U8 unused3: 1;
3425 tANI_U8 acvi_acwmin: 4;
3426 tANI_U8 acvi_acwmax: 4;
3427 tANI_U16 acvi_txoplimit;
3428 tANI_U8 acvo_aifsn: 4;
3429 tANI_U8 acvo_acm: 1;
3430 tANI_U8 acvo_aci: 2;
3431 tANI_U8 unused4: 1;
3432 tANI_U8 acvo_acwmin: 4;
3433 tANI_U8 acvo_acwmax: 4;
3434 tANI_U16 acvo_txoplimit;
3435} tDot11fIEEDCAParamSet;
3436
3437#define DOT11F_EID_EDCAPARAMSET ( 12 )
3438
3439// N.B. These #defines do *not* include the EID & length
3440#define DOT11F_IE_EDCAPARAMSET_MIN_LEN ( 18 )
3441
3442#define DOT11F_IE_EDCAPARAMSET_MAX_LEN ( 18 )
3443
3444#ifdef __cplusplus
3445extern "C" {
3446#endif /* C++ */
3447tANI_U32 dot11fUnpackIeEDCAParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEEDCAParamSet*);
3448
3449tANI_U32 dot11fPackIeEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
3450
3451tANI_U32 dot11fGetPackedIEEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U32*);
3452
3453#ifdef __cplusplus
3454}; /* End extern "C". */
3455#endif /* C++ */
3456// EID 42 (0x2a)
3457typedef struct sDot11fIEERPInfo {
3458 tANI_U8 present;
3459 tANI_U8 non_erp_present: 1;
3460 tANI_U8 use_prot: 1;
3461 tANI_U8 barker_preamble: 1;
3462 tANI_U8 unused: 5;
3463} tDot11fIEERPInfo;
3464
3465#define DOT11F_EID_ERPINFO ( 42 )
3466
3467// N.B. These #defines do *not* include the EID & length
3468#define DOT11F_IE_ERPINFO_MIN_LEN ( 1 )
3469
3470#define DOT11F_IE_ERPINFO_MAX_LEN ( 1 )
3471
3472#ifdef __cplusplus
3473extern "C" {
3474#endif /* C++ */
3475tANI_U32 dot11fUnpackIeERPInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEERPInfo*);
3476
3477tANI_U32 dot11fPackIeERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3478
3479tANI_U32 dot11fGetPackedIEERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U32*);
3480
3481#ifdef __cplusplus
3482}; /* End extern "C". */
3483#endif /* C++ */
Mohit Khanna4a70d262012-09-11 16:30:12 -07003484// EID 127 (0x7f)
3485typedef struct sDot11fIEExtCap {
3486 tANI_U8 present;
3487 tANI_U32 bssCoexistMgmtSupport: 1;
3488 tANI_U32 reserved1: 1;
3489 tANI_U32 extChanSwitch: 1;
3490 tANI_U32 reserved2: 1;
3491 tANI_U32 psmpCap: 1;
3492 tANI_U32 reserved3: 1;
3493 tANI_U32 spsmpCap: 1;
3494 tANI_U32 event: 1;
3495 tANI_U32 diagnostics: 1;
3496 tANI_U32 multiDiagnostics: 1;
3497 tANI_U32 locTracking: 1;
3498 tANI_U32 FMS: 1;
3499 tANI_U32 proxyARPService: 1;
3500 tANI_U32 coLocIntfReporting: 1;
3501 tANI_U32 civicLoc: 1;
3502 tANI_U32 geospatialLoc: 1;
3503 tANI_U32 TFS: 1;
3504 tANI_U32 wnmSleepMode: 1;
3505 tANI_U32 timBroadcast: 1;
3506 tANI_U32 bssTransition: 1;
3507 tANI_U32 qosTrafficCap: 1;
3508 tANI_U32 acStaCnt: 1;
3509 tANI_U32 multiBSSID: 1;
3510 tANI_U32 timingMeas: 1;
3511 tANI_U32 chanUsage: 1;
3512 tANI_U32 ssidList: 1;
3513 tANI_U32 DMS: 1;
3514 tANI_U32 UTCTSFOffset: 1;
3515 tANI_U32 TDLSPeerUAPSDBufferSTA: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003516 tANI_U32 TDLSPeerPSMSupp: 1;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003517 tANI_U32 TDLSChannelSwitching: 1;
3518 tANI_U32 interworkingService: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003519 tANI_U16 qosMap: 1;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003520 tANI_U16 EBR: 1;
3521 tANI_U16 sspnInterface: 1;
3522 tANI_U16 reserved4: 1;
3523 tANI_U16 msgCFCap: 1;
3524 tANI_U16 TDLSSupport: 1;
3525 tANI_U16 TDLSProhibited: 1;
3526 tANI_U16 TDLSChanSwitProhibited: 1;
3527 tANI_U16 rejectUnadmittedTraffic: 1;
3528 tANI_U16 serviceIntervalGranularity: 3;
3529 tANI_U16 identifierLoc: 1;
3530 tANI_U16 uapsdCoexistence: 1;
3531 tANI_U16 wnmNotification: 1;
3532 tANI_U16 reserved5: 1;
3533 tANI_U16 UTF8SSID: 1;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003534 tANI_U16 reserved6: 12;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003535 tANI_U16 TDLSWiderBW: 1;
3536 tANI_U16 operModeNotification: 1;
3537 tANI_U16 reserved7: 1;
3538} tDot11fIEExtCap;
3539
3540#define DOT11F_EID_EXTCAP ( 127 )
3541
3542// N.B. These #defines do *not* include the EID & length
3543#define DOT11F_IE_EXTCAP_MIN_LEN ( 8 )
3544
3545#define DOT11F_IE_EXTCAP_MAX_LEN ( 8 )
3546
3547#ifdef __cplusplus
3548extern "C" {
3549#endif /* C++ */
3550tANI_U32 dot11fUnpackIeExtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtCap*);
3551
3552tANI_U32 dot11fPackIeExtCap(tpAniSirGlobal, tDot11fIEExtCap*, tANI_U8*, tANI_U32, tANI_U32*);
3553
3554tANI_U32 dot11fGetPackedIEExtCap(tpAniSirGlobal, tDot11fIEExtCap*, tANI_U32*);
3555
3556#ifdef __cplusplus
3557}; /* End extern "C". */
3558#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003559// EID 62 (0x3e)
3560typedef struct sDot11fIEExtChanSwitchAnn {
3561 tANI_U8 present;
3562 tANI_U8 secondaryChannelOffset;
3563} tDot11fIEExtChanSwitchAnn;
3564
3565#define DOT11F_EID_EXTCHANSWITCHANN ( 62 )
3566
3567// N.B. These #defines do *not* include the EID & length
3568#define DOT11F_IE_EXTCHANSWITCHANN_MIN_LEN ( 1 )
3569
3570#define DOT11F_IE_EXTCHANSWITCHANN_MAX_LEN ( 1 )
3571
3572#ifdef __cplusplus
3573extern "C" {
3574#endif /* C++ */
3575tANI_U32 dot11fUnpackIeExtChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtChanSwitchAnn*);
3576
3577tANI_U32 dot11fPackIeExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
3578
3579tANI_U32 dot11fGetPackedIEExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U32*);
3580
3581#ifdef __cplusplus
3582}; /* End extern "C". */
3583#endif /* C++ */
3584// EID 50 (0x32)
3585typedef struct sDot11fIEExtSuppRates {
3586 tANI_U8 present;
3587 tANI_U8 num_rates;
3588 tANI_U8 rates[12];
3589} tDot11fIEExtSuppRates;
3590
3591#define DOT11F_EID_EXTSUPPRATES ( 50 )
3592
3593// N.B. These #defines do *not* include the EID & length
3594#define DOT11F_IE_EXTSUPPRATES_MIN_LEN ( 1 )
3595
3596#define DOT11F_IE_EXTSUPPRATES_MAX_LEN ( 12 )
3597
3598#ifdef __cplusplus
3599extern "C" {
3600#endif /* C++ */
3601tANI_U32 dot11fUnpackIeExtSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtSuppRates*);
3602
3603tANI_U32 dot11fPackIeExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
3604
3605tANI_U32 dot11fGetPackedIEExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U32*);
3606
3607#ifdef __cplusplus
3608}; /* End extern "C". */
3609#endif /* C++ */
3610// EID 2 (0x02)
3611typedef struct sDot11fIEFHParamSet {
3612 tANI_U8 present;
3613 tANI_U16 dwell_time;
3614 tANI_U8 hop_set;
3615 tANI_U8 hop_pattern;
3616 tANI_U8 hop_index;
3617} tDot11fIEFHParamSet;
3618
3619#define DOT11F_EID_FHPARAMSET ( 2 )
3620
3621// N.B. These #defines do *not* include the EID & length
3622#define DOT11F_IE_FHPARAMSET_MIN_LEN ( 5 )
3623
3624#define DOT11F_IE_FHPARAMSET_MAX_LEN ( 5 )
3625
3626#ifdef __cplusplus
3627extern "C" {
3628#endif /* C++ */
3629tANI_U32 dot11fUnpackIeFHParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParamSet*);
3630
3631tANI_U32 dot11fPackIeFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
3632
3633tANI_U32 dot11fGetPackedIEFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U32*);
3634
3635#ifdef __cplusplus
3636}; /* End extern "C". */
3637#endif /* C++ */
3638// EID 8 (0x08)
3639typedef struct sDot11fIEFHParams {
3640 tANI_U8 present;
3641 tANI_U8 radix;
3642 tANI_U8 nchannels;
3643} tDot11fIEFHParams;
3644
3645#define DOT11F_EID_FHPARAMS ( 8 )
3646
3647// N.B. These #defines do *not* include the EID & length
3648#define DOT11F_IE_FHPARAMS_MIN_LEN ( 2 )
3649
3650#define DOT11F_IE_FHPARAMS_MAX_LEN ( 2 )
3651
3652#ifdef __cplusplus
3653extern "C" {
3654#endif /* C++ */
3655tANI_U32 dot11fUnpackIeFHParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParams*);
3656
3657tANI_U32 dot11fPackIeFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U8*, tANI_U32, tANI_U32*);
3658
3659tANI_U32 dot11fGetPackedIEFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U32*);
3660
3661#ifdef __cplusplus
3662}; /* End extern "C". */
3663#endif /* C++ */
3664// EID 9 (0x09)
3665typedef struct sDot11fIEFHPattTable {
3666 tANI_U8 present;
3667 tANI_U8 flag;
3668 tANI_U8 nsets;
3669 tANI_U8 modulus;
3670 tANI_U8 offset;
3671 tANI_U8 num_randtable;
3672 tANI_U8 randtable[251];
3673} tDot11fIEFHPattTable;
3674
3675#define DOT11F_EID_FHPATTTABLE ( 9 )
3676
3677// N.B. These #defines do *not* include the EID & length
3678#define DOT11F_IE_FHPATTTABLE_MIN_LEN ( 4 )
3679
3680#define DOT11F_IE_FHPATTTABLE_MAX_LEN ( 255 )
3681
3682#ifdef __cplusplus
3683extern "C" {
3684#endif /* C++ */
3685tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHPattTable*);
3686
3687tANI_U32 dot11fPackIeFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U8*, tANI_U32, tANI_U32*);
3688
3689tANI_U32 dot11fGetPackedIEFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U32*);
3690
3691#ifdef __cplusplus
3692}; /* End extern "C". */
3693#endif /* C++ */
3694// EID 55 (0x37)
3695typedef struct sDot11fIEFTInfo {
3696 tANI_U8 present;
3697 tANI_U16 reserved: 8;
3698 tANI_U16 IECount: 8;
3699 tANI_U8 MIC[16];
3700 tANI_U8 Anonce[32];
3701 tANI_U8 Snonce[32];
3702 tDot11fIER1KH_ID R1KH_ID;
3703 tDot11fIEGTK GTK;
3704 tDot11fIER0KH_ID R0KH_ID;
3705} tDot11fIEFTInfo;
3706
3707#define DOT11F_EID_FTINFO ( 55 )
3708
3709// N.B. These #defines do *not* include the EID & length
3710#define DOT11F_IE_FTINFO_MIN_LEN ( 82 )
3711
3712#define DOT11F_IE_FTINFO_MAX_LEN ( 185 )
3713
3714#ifdef __cplusplus
3715extern "C" {
3716#endif /* C++ */
3717tANI_U32 dot11fUnpackIeFTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTInfo*);
3718
3719tANI_U32 dot11fPackIeFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3720
3721tANI_U32 dot11fGetPackedIEFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U32*);
3722
3723#ifdef __cplusplus
3724}; /* End extern "C". */
3725#endif /* C++ */
3726// EID 56 (0x38)
3727typedef struct sDot11fIEFTTimeoutInterval {
3728 tANI_U8 present;
3729 tANI_U8 timeoutType;
3730 tANI_U32 timeoutValue;
3731} tDot11fIEFTTimeoutInterval;
3732
3733#define DOT11F_EID_FTTIMEOUTINTERVAL ( 56 )
3734
3735// N.B. These #defines do *not* include the EID & length
3736#define DOT11F_IE_FTTIMEOUTINTERVAL_MIN_LEN ( 5 )
3737
3738#define DOT11F_IE_FTTIMEOUTINTERVAL_MAX_LEN ( 5 )
3739
3740#ifdef __cplusplus
3741extern "C" {
3742#endif /* C++ */
3743tANI_U32 dot11fUnpackIeFTTimeoutInterval(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTTimeoutInterval*);
3744
3745tANI_U32 dot11fPackIeFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U8*, tANI_U32, tANI_U32*);
3746
3747tANI_U32 dot11fGetPackedIEFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U32*);
3748
3749#ifdef __cplusplus
3750}; /* End extern "C". */
3751#endif /* C++ */
3752// EID 45 (0x2d)
3753typedef struct sDot11fIEHTCaps {
3754 tANI_U8 present;
3755 tANI_U16 advCodingCap: 1;
3756 tANI_U16 supportedChannelWidthSet: 1;
3757 tANI_U16 mimoPowerSave: 2;
3758 tANI_U16 greenField: 1;
3759 tANI_U16 shortGI20MHz: 1;
3760 tANI_U16 shortGI40MHz: 1;
3761 tANI_U16 txSTBC: 1;
3762 tANI_U16 rxSTBC: 2;
3763 tANI_U16 delayedBA: 1;
3764 tANI_U16 maximalAMSDUsize: 1;
3765 tANI_U16 dsssCckMode40MHz: 1;
3766 tANI_U16 psmp: 1;
3767 tANI_U16 stbcControlFrame: 1;
3768 tANI_U16 lsigTXOPProtection: 1;
3769 tANI_U8 maxRxAMPDUFactor: 2;
3770 tANI_U8 mpduDensity: 3;
3771 tANI_U8 reserved1: 3;
3772 tANI_U8 supportedMCSSet[16];
3773 tANI_U16 pco: 1;
3774 tANI_U16 transitionTime: 2;
3775 tANI_U16 reserved2: 5;
3776 tANI_U16 mcsFeedback: 2;
3777 tANI_U16 reserved3: 6;
3778 tANI_U32 txBF: 1;
3779 tANI_U32 rxStaggeredSounding: 1;
3780 tANI_U32 txStaggeredSounding: 1;
3781 tANI_U32 rxZLF: 1;
3782 tANI_U32 txZLF: 1;
3783 tANI_U32 implicitTxBF: 1;
3784 tANI_U32 calibration: 2;
3785 tANI_U32 explicitCSITxBF: 1;
3786 tANI_U32 explicitUncompressedSteeringMatrix: 1;
3787 tANI_U32 explicitBFCSIFeedback: 3;
3788 tANI_U32 explicitUncompressedSteeringMatrixFeedback: 3;
3789 tANI_U32 explicitCompressedSteeringMatrixFeedback: 3;
3790 tANI_U32 csiNumBFAntennae: 2;
3791 tANI_U32 uncompressedSteeringMatrixBFAntennae: 2;
3792 tANI_U32 compressedSteeringMatrixBFAntennae: 2;
3793 tANI_U32 reserved4: 7;
3794 tANI_U8 antennaSelection: 1;
3795 tANI_U8 explicitCSIFeedbackTx: 1;
3796 tANI_U8 antennaIndicesFeedbackTx: 1;
3797 tANI_U8 explicitCSIFeedback: 1;
3798 tANI_U8 antennaIndicesFeedback: 1;
3799 tANI_U8 rxAS: 1;
3800 tANI_U8 txSoundingPPDUs: 1;
3801 tANI_U8 reserved5: 1;
3802 tANI_U8 num_rsvd;
3803 tANI_U8 rsvd[32];
3804} tDot11fIEHTCaps;
3805
3806#define DOT11F_EID_HTCAPS ( 45 )
3807
3808// N.B. These #defines do *not* include the EID & length
3809#define DOT11F_IE_HTCAPS_MIN_LEN ( 26 )
3810
3811#define DOT11F_IE_HTCAPS_MAX_LEN ( 58 )
3812
3813#ifdef __cplusplus
3814extern "C" {
3815#endif /* C++ */
3816tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTCaps*);
3817
3818tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
3819
3820tANI_U32 dot11fGetPackedIEHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U32*);
3821
3822#ifdef __cplusplus
3823}; /* End extern "C". */
3824#endif /* C++ */
3825// EID 61 (0x3d)
3826typedef struct sDot11fIEHTInfo {
3827 tANI_U8 present;
3828 tANI_U8 primaryChannel;
3829 tANI_U8 secondaryChannelOffset: 2;
3830 tANI_U8 recommendedTxWidthSet: 1;
3831 tANI_U8 rifsMode: 1;
3832 tANI_U8 controlledAccessOnly: 1;
3833 tANI_U8 serviceIntervalGranularity: 3;
3834 tANI_U16 opMode: 2;
3835 tANI_U16 nonGFDevicesPresent: 1;
3836 tANI_U16 transmitBurstLimit: 1;
3837 tANI_U16 obssNonHTStaPresent: 1;
3838 tANI_U16 reserved: 11;
3839 tANI_U16 basicSTBCMCS: 7;
3840 tANI_U16 dualCTSProtection: 1;
3841 tANI_U16 secondaryBeacon: 1;
3842 tANI_U16 lsigTXOPProtectionFullSupport: 1;
3843 tANI_U16 pcoActive: 1;
3844 tANI_U16 pcoPhase: 1;
3845 tANI_U16 reserved2: 4;
3846 tANI_U8 basicMCSSet[16];
3847 tANI_U8 num_rsvd;
3848 tANI_U8 rsvd[32];
3849} tDot11fIEHTInfo;
3850
3851#define DOT11F_EID_HTINFO ( 61 )
3852
3853// N.B. These #defines do *not* include the EID & length
3854#define DOT11F_IE_HTINFO_MIN_LEN ( 22 )
3855
3856#define DOT11F_IE_HTINFO_MAX_LEN ( 54 )
3857
3858#ifdef __cplusplus
3859extern "C" {
3860#endif /* C++ */
3861tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTInfo*);
3862
3863tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3864
3865tANI_U32 dot11fGetPackedIEHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U32*);
3866
3867#ifdef __cplusplus
3868}; /* End extern "C". */
3869#endif /* C++ */
3870// EID 6 (0x06)
3871typedef struct sDot11fIEIBSSParams {
3872 tANI_U8 present;
3873 tANI_U16 atim;
3874} tDot11fIEIBSSParams;
3875
3876#define DOT11F_EID_IBSSPARAMS ( 6 )
3877
3878// N.B. These #defines do *not* include the EID & length
3879#define DOT11F_IE_IBSSPARAMS_MIN_LEN ( 2 )
3880
3881#define DOT11F_IE_IBSSPARAMS_MAX_LEN ( 2 )
3882
3883#ifdef __cplusplus
3884extern "C" {
3885#endif /* C++ */
3886tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEIBSSParams*);
3887
3888tANI_U32 dot11fPackIeIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U8*, tANI_U32, tANI_U32*);
3889
3890tANI_U32 dot11fGetPackedIEIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U32*);
3891
3892#ifdef __cplusplus
3893}; /* End extern "C". */
3894#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003895// EID 101 (0x65)
3896typedef struct sDot11fIELinkIdentifier {
3897 tANI_U8 present;
3898 tANI_U8 bssid[6];
3899 tANI_U8 InitStaAddr[6];
3900 tANI_U8 RespStaAddr[6];
3901} tDot11fIELinkIdentifier;
3902
3903#define DOT11F_EID_LINKIDENTIFIER ( 101 )
3904
3905// N.B. These #defines do *not* include the EID & length
3906#define DOT11F_IE_LINKIDENTIFIER_MIN_LEN ( 18 )
3907
3908#define DOT11F_IE_LINKIDENTIFIER_MAX_LEN ( 18 )
3909
3910#ifdef __cplusplus
3911extern "C" {
3912#endif /* C++ */
3913tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELinkIdentifier*);
3914
3915tANI_U32 dot11fPackIeLinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U8*, tANI_U32, tANI_U32*);
3916
3917tANI_U32 dot11fGetPackedIELinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U32*);
3918
3919#ifdef __cplusplus
3920}; /* End extern "C". */
3921#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003922// EID 39 (0x27)
3923typedef struct sDot11fIEMeasurementReport {
3924 tANI_U8 present;
3925 tANI_U8 token;
3926 tANI_U8 late: 1;
3927 tANI_U8 incapable: 1;
3928 tANI_U8 refused: 1;
3929 tANI_U8 unused: 5;
3930 tANI_U8 type;
3931 union
3932 {
3933 struct
3934 {
3935 tANI_U8 channel;
3936 tDOT11F_U64 meas_start_time;
3937 tANI_U16 meas_duration;
3938 tANI_U8 bss: 1;
3939 tANI_U8 ofdm_preamble: 1;
3940 tANI_U8 unid_signal: 1;
3941 tANI_U8 rader: 1;
3942 tANI_U8 unmeasured: 1;
3943 tANI_U8 unused: 3;
3944 } Basic; /* type = 0 */
3945 struct
3946 {
3947 tANI_U8 channel;
3948 tDOT11F_U64 meas_start_time;
3949 tANI_U16 meas_duration;
3950 tANI_U8 cca_busy_fraction;
3951 } CCA; /* type = 1 */
3952 struct
3953 {
3954 tANI_U8 channel;
3955 tDOT11F_U64 meas_start_time;
3956 tANI_U16 meas_duration;
3957 tANI_U8 rpi0_density;
3958 tANI_U8 rpi1_density;
3959 tANI_U8 rpi2_density;
3960 tANI_U8 rpi3_density;
3961 tANI_U8 rpi4_density;
3962 tANI_U8 rpi5_density;
3963 tANI_U8 rpi6_density;
3964 tANI_U8 rpi7_density;
3965 } RPIHistogram; /* type = 2 */
3966 struct
3967 {
3968 tANI_U8 regClass;
3969 tANI_U8 channel;
3970 tDOT11F_U64 meas_start_time;
3971 tANI_U16 meas_duration;
3972 tANI_U8 condensed_PHY: 7;
3973 tANI_U8 reported_frame_type: 1;
3974 tANI_U8 RCPI;
3975 tANI_U8 RSNI;
3976 tANI_U8 BSSID[6];
3977 tANI_U8 antenna_id;
3978 tANI_U32 parent_TSF;
3979 tDot11fIEBeaconReportFrmBody BeaconReportFrmBody;
3980 } Beacon; /* type = 5 */
3981 } report;
3982} tDot11fIEMeasurementReport;
3983
3984#define DOT11F_EID_MEASUREMENTREPORT ( 39 )
3985
3986// N.B. These #defines do *not* include the EID & length
3987#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN ( 3 )
3988
3989#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN ( 29 )
3990
3991#ifdef __cplusplus
3992extern "C" {
3993#endif /* C++ */
3994tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementReport*);
3995
3996tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U8*, tANI_U32, tANI_U32*);
3997
3998tANI_U32 dot11fGetPackedIEMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U32*);
3999
4000#ifdef __cplusplus
4001}; /* End extern "C". */
4002#endif /* C++ */
4003// EID 38 (0x26)
4004typedef struct sDot11fIEMeasurementRequest {
4005 tANI_U8 present;
4006 tANI_U8 measurement_token;
4007 tANI_U8 parallel: 1;
4008 tANI_U8 enable: 1;
4009 tANI_U8 request: 1;
4010 tANI_U8 report: 1;
4011 tANI_U8 durationMandatory: 1;
4012 tANI_U8 unused: 3;
4013 tANI_U8 measurement_type;
4014 union
4015 {
4016 struct
4017 {
4018 tANI_U8 channel_no;
4019 tANI_U8 meas_start_time[8];
4020 tANI_U16 meas_duration;
4021 } Basic; /* measurement_type = 0 */
4022 struct
4023 {
4024 tANI_U8 channel_no;
4025 tANI_U8 meas_start_time[8];
4026 tANI_U16 meas_duration;
4027 } CCA; /* measurement_type = 1 */
4028 struct
4029 {
4030 tANI_U8 channel_no;
4031 tANI_U8 meas_start_time[8];
4032 tANI_U16 meas_duration;
4033 } RPIHistogram; /* measurement_type = 2 */
4034 struct
4035 {
4036 tANI_U8 regClass;
4037 tANI_U8 channel;
4038 tANI_U16 randomization;
4039 tANI_U16 meas_duration;
4040 tANI_U8 meas_mode;
4041 tANI_U8 BSSID[6];
4042 tDot11fIESSID SSID;
4043 tDot11fIEBeaconReporting BeaconReporting;
4044 tDot11fIEBcnReportingDetail BcnReportingDetail;
4045 tDot11fIERequestedInfo RequestedInfo;
4046 tANI_U16 num_APChannelReport;
4047 tDot11fIEAPChannelReport APChannelReport[2];
4048 } Beacon; /* measurement_type = 5 */
4049 } measurement_request;
4050} tDot11fIEMeasurementRequest;
4051
4052#define DOT11F_EID_MEASUREMENTREQUEST ( 38 )
4053
4054// N.B. These #defines do *not* include the EID & length
4055#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN ( 14 )
4056
4057#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN ( 16 )
4058
4059#ifdef __cplusplus
4060extern "C" {
4061#endif /* C++ */
4062tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementRequest*);
4063
4064tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U8*, tANI_U32, tANI_U32*);
4065
4066tANI_U32 dot11fGetPackedIEMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U32*);
4067
4068#ifdef __cplusplus
4069}; /* End extern "C". */
4070#endif /* C++ */
4071// EID 54 (0x36)
4072typedef struct sDot11fIEMobilityDomain {
4073 tANI_U8 present;
4074 tANI_U16 MDID;
4075 tANI_U8 overDSCap: 1;
4076 tANI_U8 resourceReqCap: 1;
4077 tANI_U8 reserved: 6;
4078} tDot11fIEMobilityDomain;
4079
4080#define DOT11F_EID_MOBILITYDOMAIN ( 54 )
4081
4082// N.B. These #defines do *not* include the EID & length
4083#define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN ( 3 )
4084
4085#define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN ( 3 )
4086
4087#ifdef __cplusplus
4088extern "C" {
4089#endif /* C++ */
4090tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMobilityDomain*);
4091
4092tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U8*, tANI_U32, tANI_U32*);
4093
4094tANI_U32 dot11fGetPackedIEMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U32*);
4095
4096#ifdef __cplusplus
4097}; /* End extern "C". */
4098#endif /* C++ */
4099// EID 52 (0x34)
4100typedef struct sDot11fIENeighborReport {
4101 tANI_U8 present;
4102 tANI_U8 bssid[6];
4103 tANI_U8 APReachability: 2;
4104 tANI_U8 Security: 1;
4105 tANI_U8 KeyScope: 1;
4106 tANI_U8 SpecMgmtCap: 1;
4107 tANI_U8 QosCap: 1;
4108 tANI_U8 apsd: 1;
4109 tANI_U8 rrm: 1;
4110 tANI_U8 DelayedBA: 1;
4111 tANI_U8 ImmBA: 1;
4112 tANI_U8 MobilityDomain: 1;
4113 tANI_U8 reserved: 5;
4114 tANI_U16 reserved1;
4115 tANI_U8 regulatoryClass;
4116 tANI_U8 channel;
4117 tANI_U8 PhyType;
4118 tDot11fIETSFInfo TSFInfo;
4119 tDot11fIECondensedCountryStr CondensedCountryStr;
4120 tDot11fIEMeasurementPilot MeasurementPilot;
4121 tDot11fIERRMEnabledCap RRMEnabledCap;
4122 tDot11fIEMultiBssid MultiBssid;
4123} tDot11fIENeighborReport;
4124
4125#define DOT11F_EID_NEIGHBORREPORT ( 52 )
4126
4127// N.B. These #defines do *not* include the EID & length
4128#define DOT11F_IE_NEIGHBORREPORT_MIN_LEN ( 13 )
4129
4130#define DOT11F_IE_NEIGHBORREPORT_MAX_LEN ( 546 )
4131
4132#ifdef __cplusplus
4133extern "C" {
4134#endif /* C++ */
4135tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIENeighborReport*);
4136
4137tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U8*, tANI_U32, tANI_U32*);
4138
4139tANI_U32 dot11fGetPackedIENeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U32*);
4140
4141#ifdef __cplusplus
4142}; /* End extern "C". */
4143#endif /* C++ */
Mohit Khanna4a70d262012-09-11 16:30:12 -07004144// EID 199 (0xc7)
4145typedef struct sDot11fIEOperatingMode {
4146 tANI_U8 present;
4147 tANI_U8 chanWidth: 2;
4148 tANI_U8 reserved: 2;
4149 tANI_U8 rxNSS: 3;
4150 tANI_U8 rxNSSType: 1;
4151} tDot11fIEOperatingMode;
4152
4153#define DOT11F_EID_OPERATINGMODE ( 199 )
4154
4155// N.B. These #defines do *not* include the EID & length
4156#define DOT11F_IE_OPERATINGMODE_MIN_LEN ( 1 )
4157
4158#define DOT11F_IE_OPERATINGMODE_MAX_LEN ( 1 )
4159
4160#ifdef __cplusplus
4161extern "C" {
4162#endif /* C++ */
4163tANI_U32 dot11fUnpackIeOperatingMode(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOperatingMode*);
4164
4165tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U8*, tANI_U32, tANI_U32*);
4166
4167tANI_U32 dot11fGetPackedIEOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U32*);
4168
4169#ifdef __cplusplus
4170}; /* End extern "C". */
4171#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004172// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4173typedef struct sDot11fIEP2PAssocReq {
4174 tANI_U8 present;
4175 tDot11fTLVP2PCapability P2PCapability;
4176 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4177 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4178} tDot11fIEP2PAssocReq;
4179
4180#define DOT11F_EID_P2PASSOCREQ ( 221 )
4181
4182// N.B. These #defines do *not* include the EID & length
4183#define DOT11F_IE_P2PASSOCREQ_MIN_LEN ( 4 )
4184
4185#define DOT11F_IE_P2PASSOCREQ_MAX_LEN ( 71 )
4186
4187#ifdef __cplusplus
4188extern "C" {
4189#endif /* C++ */
4190tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocReq*);
4191
4192tANI_U32 dot11fPackIeP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
4193
4194tANI_U32 dot11fGetPackedIEP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U32*);
4195
4196#ifdef __cplusplus
4197}; /* End extern "C". */
4198#endif /* C++ */
4199// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4200typedef struct sDot11fIEP2PAssocRes {
4201 tANI_U8 present;
4202 tDot11fTLVP2PStatus P2PStatus;
4203 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4204} tDot11fIEP2PAssocRes;
4205
4206#define DOT11F_EID_P2PASSOCRES ( 221 )
4207
4208// N.B. These #defines do *not* include the EID & length
4209#define DOT11F_IE_P2PASSOCRES_MIN_LEN ( 4 )
4210
4211#define DOT11F_IE_P2PASSOCRES_MAX_LEN ( 15 )
4212
4213#ifdef __cplusplus
4214extern "C" {
4215#endif /* C++ */
4216tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocRes*);
4217
4218tANI_U32 dot11fPackIeP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
4219
4220tANI_U32 dot11fGetPackedIEP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U32*);
4221
4222#ifdef __cplusplus
4223}; /* End extern "C". */
4224#endif /* C++ */
4225// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4226typedef struct sDot11fIEP2PBeacon {
4227 tANI_U8 present;
4228 tDot11fTLVP2PCapability P2PCapability;
4229 tDot11fTLVP2PDeviceId P2PDeviceId;
4230 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4231} tDot11fIEP2PBeacon;
4232
4233#define DOT11F_EID_P2PBEACON ( 221 )
4234
4235// N.B. These #defines do *not* include the EID & length
4236#define DOT11F_IE_P2PBEACON_MIN_LEN ( 4 )
4237
4238#define DOT11F_IE_P2PBEACON_MAX_LEN ( 59 )
4239
4240#ifdef __cplusplus
4241extern "C" {
4242#endif /* C++ */
4243tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeacon*);
4244
4245tANI_U32 dot11fPackIeP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
4246
4247tANI_U32 dot11fGetPackedIEP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U32*);
4248
4249#ifdef __cplusplus
4250}; /* End extern "C". */
4251#endif /* C++ */
4252// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4253typedef struct sDot11fIEP2PBeaconProbeRes {
4254 tANI_U8 present;
4255 tDot11fTLVP2PCapability P2PCapability;
4256 tDot11fTLVP2PDeviceId P2PDeviceId;
4257 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4258 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4259 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4260 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4261} tDot11fIEP2PBeaconProbeRes;
4262
4263#define DOT11F_EID_P2PBEACONPROBERES ( 221 )
4264
4265// N.B. These #defines do *not* include the EID & length
4266#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN ( 4 )
4267
4268#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN ( 1148 )
4269
4270#ifdef __cplusplus
4271extern "C" {
4272#endif /* C++ */
4273tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeaconProbeRes*);
4274
4275tANI_U32 dot11fPackIeP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4276
4277tANI_U32 dot11fGetPackedIEP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U32*);
4278
4279#ifdef __cplusplus
4280}; /* End extern "C". */
4281#endif /* C++ */
4282// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4283typedef struct sDot11fIEP2PDeAuth {
4284 tANI_U8 present;
4285 tDot11fTLVMinorReasonCode MinorReasonCode;
4286} tDot11fIEP2PDeAuth;
4287
4288#define DOT11F_EID_P2PDEAUTH ( 221 )
4289
4290// N.B. These #defines do *not* include the EID & length
4291#define DOT11F_IE_P2PDEAUTH_MIN_LEN ( 4 )
4292
4293#define DOT11F_IE_P2PDEAUTH_MAX_LEN ( 8 )
4294
4295#ifdef __cplusplus
4296extern "C" {
4297#endif /* C++ */
4298tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeAuth*);
4299
4300tANI_U32 dot11fPackIeP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U8*, tANI_U32, tANI_U32*);
4301
4302tANI_U32 dot11fGetPackedIEP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U32*);
4303
4304#ifdef __cplusplus
4305}; /* End extern "C". */
4306#endif /* C++ */
4307// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4308typedef struct sDot11fIEP2PDeviceDiscoverabilityReq {
4309 tANI_U8 present;
4310 tDot11fTLVP2PDeviceId P2PDeviceId;
4311 tDot11fTLVP2PGroupId P2PGroupId;
4312} tDot11fIEP2PDeviceDiscoverabilityReq;
4313
4314#define DOT11F_EID_P2PDEVICEDISCOVERABILITYREQ ( 221 )
4315
4316// N.B. These #defines do *not* include the EID & length
4317#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MIN_LEN ( 4 )
4318
4319#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MAX_LEN ( 54 )
4320
4321#ifdef __cplusplus
4322extern "C" {
4323#endif /* C++ */
4324tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityReq*);
4325
4326tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U8*, tANI_U32, tANI_U32*);
4327
4328tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U32*);
4329
4330#ifdef __cplusplus
4331}; /* End extern "C". */
4332#endif /* C++ */
4333// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4334typedef struct sDot11fIEP2PDeviceDiscoverabilityRes {
4335 tANI_U8 present;
4336 tDot11fTLVP2PStatus P2PStatus;
4337} tDot11fIEP2PDeviceDiscoverabilityRes;
4338
4339#define DOT11F_EID_P2PDEVICEDISCOVERABILITYRES ( 221 )
4340
4341// N.B. These #defines do *not* include the EID & length
4342#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MIN_LEN ( 4 )
4343
4344#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MAX_LEN ( 8 )
4345
4346#ifdef __cplusplus
4347extern "C" {
4348#endif /* C++ */
4349tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityRes*);
4350
4351tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U8*, tANI_U32, tANI_U32*);
4352
4353tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U32*);
4354
4355#ifdef __cplusplus
4356}; /* End extern "C". */
4357#endif /* C++ */
4358// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4359typedef struct sDot11fIEP2PDisAssoc {
4360 tANI_U8 present;
4361 tDot11fTLVMinorReasonCode MinorReasonCode;
4362} tDot11fIEP2PDisAssoc;
4363
4364#define DOT11F_EID_P2PDISASSOC ( 221 )
4365
4366// N.B. These #defines do *not* include the EID & length
4367#define DOT11F_IE_P2PDISASSOC_MIN_LEN ( 4 )
4368
4369#define DOT11F_IE_P2PDISASSOC_MAX_LEN ( 8 )
4370
4371#ifdef __cplusplus
4372extern "C" {
4373#endif /* C++ */
4374tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDisAssoc*);
4375
4376tANI_U32 dot11fPackIeP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U8*, tANI_U32, tANI_U32*);
4377
4378tANI_U32 dot11fGetPackedIEP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U32*);
4379
4380#ifdef __cplusplus
4381}; /* End extern "C". */
4382#endif /* C++ */
4383// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4384typedef struct sDot11fIEP2PGONegCnf {
4385 tANI_U8 present;
4386 tDot11fTLVP2PStatus P2PStatus;
4387 tDot11fTLVP2PCapability P2PCapability;
4388 tDot11fTLVOperatingChannel OperatingChannel;
4389 tDot11fTLVChannelList ChannelList;
4390 tDot11fTLVP2PGroupId P2PGroupId;
4391} tDot11fIEP2PGONegCnf;
4392
4393#define DOT11F_EID_P2PGONEGCNF ( 221 )
4394
4395// N.B. These #defines do *not* include the EID & length
4396#define DOT11F_IE_P2PGONEGCNF_MIN_LEN ( 4 )
4397
4398#define DOT11F_IE_P2PGONEGCNF_MAX_LEN ( 319 )
4399
4400#ifdef __cplusplus
4401extern "C" {
4402#endif /* C++ */
4403tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegCnf*);
4404
4405tANI_U32 dot11fPackIeP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U8*, tANI_U32, tANI_U32*);
4406
4407tANI_U32 dot11fGetPackedIEP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, 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 sDot11fIEP2PGONegReq {
4414 tANI_U8 present;
4415 tDot11fTLVP2PCapability P2PCapability;
4416 tDot11fTLVGOIntent GOIntent;
4417 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4418 tDot11fTLVListenChannel ListenChannel;
4419 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4420 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4421 tDot11fTLVChannelList ChannelList;
4422 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4423 tDot11fTLVOperatingChannel OperatingChannel;
4424} tDot11fIEP2PGONegReq;
4425
4426#define DOT11F_EID_P2PGONEGREQ ( 221 )
4427
4428// N.B. These #defines do *not* include the EID & length
4429#define DOT11F_IE_P2PGONEGREQ_MIN_LEN ( 4 )
4430
4431#define DOT11F_IE_P2PGONEGREQ_MAX_LEN ( 362 )
4432
4433#ifdef __cplusplus
4434extern "C" {
4435#endif /* C++ */
4436tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegReq*);
4437
4438tANI_U32 dot11fPackIeP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U8*, tANI_U32, tANI_U32*);
4439
4440tANI_U32 dot11fGetPackedIEP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U32*);
4441
4442#ifdef __cplusplus
4443}; /* End extern "C". */
4444#endif /* C++ */
4445// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4446typedef struct sDot11fIEP2PGONegRes {
4447 tANI_U8 present;
4448 tDot11fTLVP2PStatus P2PStatus;
4449 tDot11fTLVP2PCapability P2PCapability;
4450 tDot11fTLVGOIntent GOIntent;
4451 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4452 tDot11fTLVOperatingChannel OperatingChannel;
4453 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4454 tDot11fTLVChannelList ChannelList;
4455 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4456 tDot11fTLVP2PGroupId P2PGroupId;
4457} tDot11fIEP2PGONegRes;
4458
4459#define DOT11F_EID_P2PGONEGRES ( 221 )
4460
4461// N.B. These #defines do *not* include the EID & length
4462#define DOT11F_IE_P2PGONEGRES_MIN_LEN ( 4 )
4463
4464#define DOT11F_IE_P2PGONEGRES_MAX_LEN ( 392 )
4465
4466#ifdef __cplusplus
4467extern "C" {
4468#endif /* C++ */
4469tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegRes*);
4470
4471tANI_U32 dot11fPackIeP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U8*, tANI_U32, tANI_U32*);
4472
4473tANI_U32 dot11fGetPackedIEP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U32*);
4474
4475#ifdef __cplusplus
4476}; /* End extern "C". */
4477#endif /* C++ */
4478// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4479typedef struct sDot11fIEP2PGONegWPS {
4480 tANI_U8 present;
4481 tDot11fTLVVersion Version;
4482 tDot11fTLVDevicePasswordID DevicePasswordID;
4483} tDot11fIEP2PGONegWPS;
4484
4485#define DOT11F_EID_P2PGONEGWPS ( 221 )
4486
4487// N.B. These #defines do *not* include the EID & length
4488#define DOT11F_IE_P2PGONEGWPS_MIN_LEN ( 4 )
4489
4490#define DOT11F_IE_P2PGONEGWPS_MAX_LEN ( 15 )
4491
4492#ifdef __cplusplus
4493extern "C" {
4494#endif /* C++ */
4495tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegWPS*);
4496
4497tANI_U32 dot11fPackIeP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U8*, tANI_U32, tANI_U32*);
4498
4499tANI_U32 dot11fGetPackedIEP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U32*);
4500
4501#ifdef __cplusplus
4502}; /* End extern "C". */
4503#endif /* C++ */
4504// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09}
4505typedef struct sDot11fIEP2PIEOpaque {
4506 tANI_U8 present;
4507 tANI_U8 num_data;
4508 tANI_U8 data[249];
4509} tDot11fIEP2PIEOpaque;
4510
4511#define DOT11F_EID_P2PIEOPAQUE ( 221 )
4512
4513// N.B. These #defines do *not* include the EID & length
4514#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN ( 6 )
4515
4516#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN ( 253 )
4517
4518#ifdef __cplusplus
4519extern "C" {
4520#endif /* C++ */
4521tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PIEOpaque*);
4522
4523tANI_U32 dot11fPackIeP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
4524
4525tANI_U32 dot11fGetPackedIEP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U32*);
4526
4527#ifdef __cplusplus
4528}; /* End extern "C". */
4529#endif /* C++ */
4530// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4531typedef struct sDot11fIEP2PInvitationReq {
4532 tANI_U8 present;
4533 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4534 tDot11fTLVInvitationFlags InvitationFlags;
4535 tDot11fTLVOperatingChannel OperatingChannel;
4536 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4537 tDot11fTLVChannelList ChannelList;
4538 tDot11fTLVP2PGroupId P2PGroupId;
4539 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4540} tDot11fIEP2PInvitationReq;
4541
4542#define DOT11F_EID_P2PINVITATIONREQ ( 221 )
4543
4544// N.B. These #defines do *not* include the EID & length
4545#define DOT11F_IE_P2PINVITATIONREQ_MIN_LEN ( 4 )
4546
4547#define DOT11F_IE_P2PINVITATIONREQ_MAX_LEN ( 383 )
4548
4549#ifdef __cplusplus
4550extern "C" {
4551#endif /* C++ */
4552tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationReq*);
4553
4554tANI_U32 dot11fPackIeP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U8*, tANI_U32, tANI_U32*);
4555
4556tANI_U32 dot11fGetPackedIEP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U32*);
4557
4558#ifdef __cplusplus
4559}; /* End extern "C". */
4560#endif /* C++ */
4561// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4562typedef struct sDot11fIEP2PInvitationRes {
4563 tANI_U8 present;
4564 tDot11fTLVP2PStatus P2PStatus;
4565 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4566 tDot11fTLVOperatingChannel OperatingChannel;
4567 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4568 tDot11fTLVChannelList ChannelList;
4569} tDot11fIEP2PInvitationRes;
4570
4571#define DOT11F_EID_P2PINVITATIONRES ( 221 )
4572
4573// N.B. These #defines do *not* include the EID & length
4574#define DOT11F_IE_P2PINVITATIONRES_MIN_LEN ( 4 )
4575
4576#define DOT11F_IE_P2PINVITATIONRES_MAX_LEN ( 287 )
4577
4578#ifdef __cplusplus
4579extern "C" {
4580#endif /* C++ */
4581tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationRes*);
4582
4583tANI_U32 dot11fPackIeP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U8*, tANI_U32, tANI_U32*);
4584
4585tANI_U32 dot11fGetPackedIEP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, 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 sDot11fIEP2PNoticeOfAbsence {
4592 tANI_U8 present;
4593 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4594} tDot11fIEP2PNoticeOfAbsence;
4595
4596#define DOT11F_EID_P2PNOTICEOFABSENCE ( 221 )
4597
4598// N.B. These #defines do *not* include the EID & length
4599#define DOT11F_IE_P2PNOTICEOFABSENCE_MIN_LEN ( 4 )
4600
4601#define DOT11F_IE_P2PNOTICEOFABSENCE_MAX_LEN ( 45 )
4602
4603#ifdef __cplusplus
4604extern "C" {
4605#endif /* C++ */
4606tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PNoticeOfAbsence*);
4607
4608tANI_U32 dot11fPackIeP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
4609
4610tANI_U32 dot11fGetPackedIEP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U32*);
4611
4612#ifdef __cplusplus
4613}; /* End extern "C". */
4614#endif /* C++ */
4615// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4616typedef struct sDot11fIEP2PPresenceResponse {
4617 tANI_U8 present;
4618 tDot11fTLVP2PStatus P2PStatus;
4619 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4620} tDot11fIEP2PPresenceResponse;
4621
4622#define DOT11F_EID_P2PPRESENCERESPONSE ( 221 )
4623
4624// N.B. These #defines do *not* include the EID & length
4625#define DOT11F_IE_P2PPRESENCERESPONSE_MIN_LEN ( 4 )
4626
4627#define DOT11F_IE_P2PPRESENCERESPONSE_MAX_LEN ( 49 )
4628
4629#ifdef __cplusplus
4630extern "C" {
4631#endif /* C++ */
4632tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PPresenceResponse*);
4633
4634tANI_U32 dot11fPackIeP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U8*, tANI_U32, tANI_U32*);
4635
4636tANI_U32 dot11fGetPackedIEP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U32*);
4637
4638#ifdef __cplusplus
4639}; /* End extern "C". */
4640#endif /* C++ */
4641// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4642typedef struct sDot11fIEP2PProbeReq {
4643 tANI_U8 present;
4644 tDot11fTLVP2PCapability P2PCapability;
4645 tDot11fTLVP2PDeviceId P2PDeviceId;
4646 tDot11fTLVListenChannel ListenChannel;
4647 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4648 tDot11fTLVOperatingChannel OperatingChannel;
4649} tDot11fIEP2PProbeReq;
4650
4651#define DOT11F_EID_P2PPROBEREQ ( 221 )
4652
4653// N.B. These #defines do *not* include the EID & length
4654#define DOT11F_IE_P2PPROBEREQ_MIN_LEN ( 4 )
4655
4656#define DOT11F_IE_P2PPROBEREQ_MAX_LEN ( 41 )
4657
4658#ifdef __cplusplus
4659extern "C" {
4660#endif /* C++ */
4661tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeReq*);
4662
4663tANI_U32 dot11fPackIeP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
4664
4665tANI_U32 dot11fGetPackedIEP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, 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 sDot11fIEP2PProbeRes {
4672 tANI_U8 present;
4673 tDot11fTLVP2PCapability P2PCapability;
4674 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4675 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4676 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4677 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4678} tDot11fIEP2PProbeRes;
4679
4680#define DOT11F_EID_P2PPROBERES ( 221 )
4681
4682// N.B. These #defines do *not* include the EID & length
4683#define DOT11F_IE_P2PPROBERES_MIN_LEN ( 4 )
4684
4685#define DOT11F_IE_P2PPROBERES_MAX_LEN ( 1139 )
4686
4687#ifdef __cplusplus
4688extern "C" {
4689#endif /* C++ */
4690tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeRes*);
4691
4692tANI_U32 dot11fPackIeP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4693
4694tANI_U32 dot11fGetPackedIEP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, 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 sDot11fIEP2PProvisionDiscoveryReq {
4701 tANI_U8 present;
4702 tDot11fTLVP2PCapability P2PCapability;
4703 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4704 tDot11fTLVP2PGroupId P2PGroupId;
4705} tDot11fIEP2PProvisionDiscoveryReq;
4706
4707#define DOT11F_EID_P2PPROVISIONDISCOVERYREQ ( 221 )
4708
4709// N.B. These #defines do *not* include the EID & length
4710#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MIN_LEN ( 4 )
4711
4712#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MAX_LEN ( 105 )
4713
4714#ifdef __cplusplus
4715extern "C" {
4716#endif /* C++ */
4717tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProvisionDiscoveryReq*);
4718
4719tANI_U32 dot11fPackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U8*, tANI_U32, tANI_U32*);
4720
4721tANI_U32 dot11fGetPackedIEP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U32*);
4722
4723#ifdef __cplusplus
4724}; /* End extern "C". */
4725#endif /* C++ */
4726// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4727typedef struct sDot11fIEP2PWSCProvisionDiscoveryRes {
4728 tANI_U8 present;
4729 tDot11fTLVConfigMethods ConfigMethods;
4730} tDot11fIEP2PWSCProvisionDiscoveryRes;
4731
4732#define DOT11F_EID_P2PWSCPROVISIONDISCOVERYRES ( 221 )
4733
4734// N.B. These #defines do *not* include the EID & length
4735#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MIN_LEN ( 4 )
4736
4737#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MAX_LEN ( 10 )
4738
4739#ifdef __cplusplus
4740extern "C" {
4741#endif /* C++ */
4742tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PWSCProvisionDiscoveryRes*);
4743
4744tANI_U32 dot11fPackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U8*, tANI_U32, tANI_U32*);
4745
4746tANI_U32 dot11fGetPackedIEP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U32*);
4747
4748#ifdef __cplusplus
4749}; /* End extern "C". */
4750#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004751// EID 105 (0x69)
4752typedef struct sDot11fIEPTIControl {
4753 tANI_U8 present;
4754 tANI_U8 tid;
4755 tANI_U16 sequence_control;
4756} tDot11fIEPTIControl;
4757
4758#define DOT11F_EID_PTICONTROL ( 105 )
4759
4760// N.B. These #defines do *not* include the EID & length
4761#define DOT11F_IE_PTICONTROL_MIN_LEN ( 3 )
4762
4763#define DOT11F_IE_PTICONTROL_MAX_LEN ( 3 )
4764
4765#ifdef __cplusplus
4766extern "C" {
4767#endif /* C++ */
4768tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPTIControl*);
4769
4770tANI_U32 dot11fPackIePTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U8*, tANI_U32, tANI_U32*);
4771
4772tANI_U32 dot11fGetPackedIEPTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U32*);
4773
4774#ifdef __cplusplus
4775}; /* End extern "C". */
4776#endif /* C++ */
4777// EID 106 (0x6a)
4778typedef struct sDot11fIEPUBufferStatus {
4779 tANI_U8 present;
4780 tANI_U8 ac_bk_traffic_aval: 1;
4781 tANI_U8 ac_be_traffic_aval: 1;
4782 tANI_U8 ac_vi_traffic_aval: 1;
4783 tANI_U8 ac_vo_traffic_aval: 1;
4784 tANI_U8 reserved: 4;
4785} tDot11fIEPUBufferStatus;
4786
4787#define DOT11F_EID_PUBUFFERSTATUS ( 106 )
4788
4789// N.B. These #defines do *not* include the EID & length
4790#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN ( 1 )
4791
4792#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN ( 1 )
4793
4794#ifdef __cplusplus
4795extern "C" {
4796#endif /* C++ */
4797tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPUBufferStatus*);
4798
4799tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U8*, tANI_U32, tANI_U32*);
4800
4801tANI_U32 dot11fGetPackedIEPUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U32*);
4802
4803#ifdef __cplusplus
4804}; /* End extern "C". */
4805#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004806// EID 33 (0x21)
4807typedef struct sDot11fIEPowerCaps {
4808 tANI_U8 present;
4809 tANI_U8 minTxPower;
4810 tANI_U8 maxTxPower;
4811} tDot11fIEPowerCaps;
4812
4813#define DOT11F_EID_POWERCAPS ( 33 )
4814
4815// N.B. These #defines do *not* include the EID & length
4816#define DOT11F_IE_POWERCAPS_MIN_LEN ( 2 )
4817
4818#define DOT11F_IE_POWERCAPS_MAX_LEN ( 2 )
4819
4820#ifdef __cplusplus
4821extern "C" {
4822#endif /* C++ */
4823tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerCaps*);
4824
4825tANI_U32 dot11fPackIePowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U8*, tANI_U32, tANI_U32*);
4826
4827tANI_U32 dot11fGetPackedIEPowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U32*);
4828
4829#ifdef __cplusplus
4830}; /* End extern "C". */
4831#endif /* C++ */
4832// EID 32 (0x20)
4833typedef struct sDot11fIEPowerConstraints {
4834 tANI_U8 present;
4835 tANI_U8 localPowerConstraints;
4836} tDot11fIEPowerConstraints;
4837
4838#define DOT11F_EID_POWERCONSTRAINTS ( 32 )
4839
4840// N.B. These #defines do *not* include the EID & length
4841#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN ( 1 )
4842
4843#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN ( 1 )
4844
4845#ifdef __cplusplus
4846extern "C" {
4847#endif /* C++ */
4848tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerConstraints*);
4849
4850tANI_U32 dot11fPackIePowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U8*, tANI_U32, tANI_U32*);
4851
4852tANI_U32 dot11fGetPackedIEPowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U32*);
4853
4854#ifdef __cplusplus
4855}; /* End extern "C". */
4856#endif /* C++ */
4857// EID 11 (0x0b)
4858typedef struct sDot11fIEQBSSLoad {
4859 tANI_U8 present;
4860 tANI_U16 stacount;
4861 tANI_U8 chautil;
4862 tANI_U16 avail;
4863} tDot11fIEQBSSLoad;
4864
4865#define DOT11F_EID_QBSSLOAD ( 11 )
4866
4867// N.B. These #defines do *not* include the EID & length
4868#define DOT11F_IE_QBSSLOAD_MIN_LEN ( 5 )
4869
4870#define DOT11F_IE_QBSSLOAD_MAX_LEN ( 5 )
4871
4872#ifdef __cplusplus
4873extern "C" {
4874#endif /* C++ */
4875tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQBSSLoad*);
4876
4877tANI_U32 dot11fPackIeQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U8*, tANI_U32, tANI_U32*);
4878
4879tANI_U32 dot11fGetPackedIEQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U32*);
4880
4881#ifdef __cplusplus
4882}; /* End extern "C". */
4883#endif /* C++ */
4884// EID 46 (0x2e)
4885typedef struct sDot11fIEQOSCapsAp {
4886 tANI_U8 present;
4887 tANI_U8 reserved: 1;
4888 tANI_U8 txopreq: 1;
4889 tANI_U8 qreq: 1;
4890 tANI_U8 qack: 1;
4891 tANI_U8 count: 4;
4892} tDot11fIEQOSCapsAp;
4893
4894#define DOT11F_EID_QOSCAPSAP ( 46 )
4895
4896// N.B. These #defines do *not* include the EID & length
4897#define DOT11F_IE_QOSCAPSAP_MIN_LEN ( 1 )
4898
4899#define DOT11F_IE_QOSCAPSAP_MAX_LEN ( 1 )
4900
4901#ifdef __cplusplus
4902extern "C" {
4903#endif /* C++ */
4904tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsAp*);
4905
4906tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U8*, tANI_U32, tANI_U32*);
4907
4908tANI_U32 dot11fGetPackedIEQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U32*);
4909
4910#ifdef __cplusplus
4911}; /* End extern "C". */
4912#endif /* C++ */
4913// EID 46 (0x2e)
4914typedef struct sDot11fIEQOSCapsStation {
4915 tANI_U8 present;
4916 tANI_U8 more_data_ack: 1;
4917 tANI_U8 max_sp_length: 2;
4918 tANI_U8 qack: 1;
4919 tANI_U8 acbe_uapsd: 1;
4920 tANI_U8 acbk_uapsd: 1;
4921 tANI_U8 acvi_uapsd: 1;
4922 tANI_U8 acvo_uapsd: 1;
4923} tDot11fIEQOSCapsStation;
4924
4925#define DOT11F_EID_QOSCAPSSTATION ( 46 )
4926
4927// N.B. These #defines do *not* include the EID & length
4928#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN ( 1 )
4929
4930#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN ( 1 )
4931
4932#ifdef __cplusplus
4933extern "C" {
4934#endif /* C++ */
4935tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsStation*);
4936
4937tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U8*, tANI_U32, tANI_U32*);
4938
4939tANI_U32 dot11fGetPackedIEQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U32*);
4940
4941#ifdef __cplusplus
4942}; /* End extern "C". */
4943#endif /* C++ */
4944// EID 40 (0x28)
4945typedef struct sDot11fIEQuiet {
4946 tANI_U8 present;
4947 tANI_U8 count;
4948 tANI_U8 period;
4949 tANI_U16 duration;
4950 tANI_U16 offset;
4951} tDot11fIEQuiet;
4952
4953#define DOT11F_EID_QUIET ( 40 )
4954
4955// N.B. These #defines do *not* include the EID & length
4956#define DOT11F_IE_QUIET_MIN_LEN ( 6 )
4957
4958#define DOT11F_IE_QUIET_MAX_LEN ( 6 )
4959
4960#ifdef __cplusplus
4961extern "C" {
4962#endif /* C++ */
4963tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQuiet*);
4964
4965tANI_U32 dot11fPackIeQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U8*, tANI_U32, tANI_U32*);
4966
4967tANI_U32 dot11fGetPackedIEQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U32*);
4968
4969#ifdef __cplusplus
4970}; /* End extern "C". */
4971#endif /* C++ */
4972// EID 53 (0x35)
4973typedef struct sDot11fIERCPIIE {
4974 tANI_U8 present;
4975 tANI_U8 rcpi;
4976} tDot11fIERCPIIE;
4977
4978#define DOT11F_EID_RCPIIE ( 53 )
4979
4980// N.B. These #defines do *not* include the EID & length
4981#define DOT11F_IE_RCPIIE_MIN_LEN ( 1 )
4982
4983#define DOT11F_IE_RCPIIE_MAX_LEN ( 1 )
4984
4985#ifdef __cplusplus
4986extern "C" {
4987#endif /* C++ */
4988tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERCPIIE*);
4989
4990tANI_U32 dot11fPackIeRCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U8*, tANI_U32, tANI_U32*);
4991
4992tANI_U32 dot11fGetPackedIERCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U32*);
4993
4994#ifdef __cplusplus
4995}; /* End extern "C". */
4996#endif /* C++ */
4997// EID 57 (0x39)
4998typedef struct sDot11fIERICDataDesc {
4999 tANI_U8 present;
5000 tDot11fIERICData RICData;
5001 tDot11fIERICDescriptor RICDescriptor;
5002 tDot11fIETSPEC TSPEC;
5003 tANI_U16 num_TCLAS;
5004 tDot11fIETCLAS TCLAS[2];
5005 tDot11fIETCLASSPROC TCLASSPROC;
5006 tDot11fIETSDelay TSDelay;
5007 tDot11fIESchedule Schedule;
5008 tDot11fIEWMMTSPEC WMMTSPEC;
5009 tANI_U16 num_WMMTCLAS;
5010 tDot11fIEWMMTCLAS WMMTCLAS[2];
5011 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
5012 tDot11fIEWMMTSDelay WMMTSDelay;
5013 tDot11fIEWMMSchedule WMMSchedule;
5014} tDot11fIERICDataDesc;
5015
5016#define DOT11F_EID_RICDATADESC ( 57 )
5017
5018// N.B. These #defines do *not* include the EID & length
5019#define DOT11F_IE_RICDATADESC_MIN_LEN ( 0 )
5020
5021#define DOT11F_IE_RICDATADESC_MAX_LEN ( 548 )
5022
5023#ifdef __cplusplus
5024extern "C" {
5025#endif /* C++ */
5026tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDataDesc*);
5027
5028tANI_U32 dot11fPackIeRICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U8*, tANI_U32, tANI_U32*);
5029
5030tANI_U32 dot11fGetPackedIERICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U32*);
5031
5032#ifdef __cplusplus
5033}; /* End extern "C". */
5034#endif /* C++ */
5035// EID 48 (0x30)
5036typedef struct sDot11fIERSN {
5037 tANI_U8 present;
5038 tANI_U16 version /* Must be 1! */;
5039 tANI_U8 gp_cipher_suite[4];
5040 tANI_U16 pwise_cipher_suite_count;
5041 tANI_U8 pwise_cipher_suites[4][4];
5042 tANI_U16 akm_suite_count;
5043 tANI_U8 akm_suites[4][4];
Venkata Prathyusha Kuntupalliea7098e2013-01-31 16:08:13 -08005044 tANI_U8 RSN_Cap[2];
Jeff Johnson295189b2012-06-20 16:38:30 -07005045 tANI_U16 pmkid_count;
5046 tANI_U8 pmkid[4][16];
5047} tDot11fIERSN;
5048
5049#define DOT11F_EID_RSN ( 48 )
5050
5051// N.B. These #defines do *not* include the EID & length
5052#define DOT11F_IE_RSN_MIN_LEN ( 6 )
5053
5054#define DOT11F_IE_RSN_MAX_LEN ( 110 )
5055
5056#ifdef __cplusplus
5057extern "C" {
5058#endif /* C++ */
5059tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSN*);
5060
5061tANI_U32 dot11fPackIeRSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U8*, tANI_U32, tANI_U32*);
5062
5063tANI_U32 dot11fGetPackedIERSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U32*);
5064
5065#ifdef __cplusplus
5066}; /* End extern "C". */
5067#endif /* C++ */
5068// EID 65 (0x41)
5069typedef struct sDot11fIERSNIIE {
5070 tANI_U8 present;
5071 tANI_U8 rsni;
5072} tDot11fIERSNIIE;
5073
5074#define DOT11F_EID_RSNIIE ( 65 )
5075
5076// N.B. These #defines do *not* include the EID & length
5077#define DOT11F_IE_RSNIIE_MIN_LEN ( 1 )
5078
5079#define DOT11F_IE_RSNIIE_MAX_LEN ( 1 )
5080
5081#ifdef __cplusplus
5082extern "C" {
5083#endif /* C++ */
5084tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNIIE*);
5085
5086tANI_U32 dot11fPackIeRSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5087
5088tANI_U32 dot11fGetPackedIERSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U32*);
5089
5090#ifdef __cplusplus
5091}; /* End extern "C". */
5092#endif /* C++ */
5093// EID 48 (0x30)
5094typedef struct sDot11fIERSNOpaque {
5095 tANI_U8 present;
5096 tANI_U8 num_data;
5097 tANI_U8 data[253];
5098} tDot11fIERSNOpaque;
5099
5100#define DOT11F_EID_RSNOPAQUE ( 48 )
5101
5102// N.B. These #defines do *not* include the EID & length
5103#define DOT11F_IE_RSNOPAQUE_MIN_LEN ( 6 )
5104
5105#define DOT11F_IE_RSNOPAQUE_MAX_LEN ( 253 )
5106
5107#ifdef __cplusplus
5108extern "C" {
5109#endif /* C++ */
5110tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNOpaque*);
5111
5112tANI_U32 dot11fPackIeRSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5113
5114tANI_U32 dot11fGetPackedIERSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U32*);
5115
5116#ifdef __cplusplus
5117}; /* End extern "C". */
5118#endif /* C++ */
5119// EID 36 (0x24)
5120typedef struct sDot11fIESuppChannels {
5121 tANI_U8 present;
5122 tANI_U8 num_bands;
5123 tANI_U8 bands[48][2];
5124} tDot11fIESuppChannels;
5125
5126#define DOT11F_EID_SUPPCHANNELS ( 36 )
5127
5128// N.B. These #defines do *not* include the EID & length
5129#define DOT11F_IE_SUPPCHANNELS_MIN_LEN ( 2 )
5130
5131#define DOT11F_IE_SUPPCHANNELS_MAX_LEN ( 96 )
5132
5133#ifdef __cplusplus
5134extern "C" {
5135#endif /* C++ */
5136tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppChannels*);
5137
5138tANI_U32 dot11fPackIeSuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U8*, tANI_U32, tANI_U32*);
5139
5140tANI_U32 dot11fGetPackedIESuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U32*);
5141
5142#ifdef __cplusplus
5143}; /* End extern "C". */
5144#endif /* C++ */
5145// EID 1 (0x01)
5146typedef struct sDot11fIESuppRates {
5147 tANI_U8 present;
5148 tANI_U8 num_rates;
5149 tANI_U8 rates[12];
5150} tDot11fIESuppRates;
5151
5152#define DOT11F_EID_SUPPRATES ( 1 )
5153
5154// N.B. These #defines do *not* include the EID & length
5155#define DOT11F_IE_SUPPRATES_MIN_LEN ( 0 )
5156
5157#define DOT11F_IE_SUPPRATES_MAX_LEN ( 12 )
5158
5159#define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \
5160 ((_x) == 04) || \
5161 ((_x) == 11) || \
5162 ((_x) == 22) || \
5163 ((_x) == 12) || \
5164 ((_x) == 18) || \
5165 ((_x) == 24) || \
5166 ((_x) == 36) || \
5167 ((_x) == 48) || \
5168 ((_x) == 72) || \
5169 ((_x) == 96) || \
5170 ((_x) == 108))
5171
5172#ifdef __cplusplus
5173extern "C" {
5174#endif /* C++ */
5175tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppRates*);
5176
5177tANI_U32 dot11fPackIeSuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
5178
5179tANI_U32 dot11fGetPackedIESuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U32*);
5180
5181#ifdef __cplusplus
5182}; /* End extern "C". */
5183#endif /* C++ */
5184// EID 5 (0x05)
5185typedef struct sDot11fIETIM {
5186 tANI_U8 present;
5187 tANI_U8 dtim_count;
5188 tANI_U8 dtim_period;
5189 tANI_U8 bmpctl;
5190 tANI_U8 num_vbmp;
5191 tANI_U8 vbmp[251];
5192} tDot11fIETIM;
5193
5194#define DOT11F_EID_TIM ( 5 )
5195
5196// N.B. These #defines do *not* include the EID & length
5197#define DOT11F_IE_TIM_MIN_LEN ( 4 )
5198
5199#define DOT11F_IE_TIM_MAX_LEN ( 254 )
5200
5201#ifdef __cplusplus
5202extern "C" {
5203#endif /* C++ */
5204tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETIM*);
5205
5206tANI_U32 dot11fPackIeTIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U8*, tANI_U32, tANI_U32*);
5207
5208tANI_U32 dot11fGetPackedIETIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U32*);
5209
5210#ifdef __cplusplus
5211}; /* End extern "C". */
5212#endif /* C++ */
5213// EID 35 (0x23)
5214typedef struct sDot11fIETPCReport {
5215 tANI_U8 present;
5216 tANI_U8 tx_power;
5217 tANI_U8 link_margin;
5218} tDot11fIETPCReport;
5219
5220#define DOT11F_EID_TPCREPORT ( 35 )
5221
5222// N.B. These #defines do *not* include the EID & length
5223#define DOT11F_IE_TPCREPORT_MIN_LEN ( 2 )
5224
5225#define DOT11F_IE_TPCREPORT_MAX_LEN ( 2 )
5226
5227#ifdef __cplusplus
5228extern "C" {
5229#endif /* C++ */
5230tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCReport*);
5231
5232tANI_U32 dot11fPackIeTPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U8*, tANI_U32, tANI_U32*);
5233
5234tANI_U32 dot11fGetPackedIETPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U32*);
5235
5236#ifdef __cplusplus
5237}; /* End extern "C". */
5238#endif /* C++ */
5239// EID 34 (0x22)
5240typedef struct sDot11fIETPCRequest {
5241 tANI_U8 present;
5242} tDot11fIETPCRequest;
5243
5244#define DOT11F_EID_TPCREQUEST ( 34 )
5245
5246// N.B. These #defines do *not* include the EID & length
5247#define DOT11F_IE_TPCREQUEST_MIN_LEN ( 0 )
5248
5249#define DOT11F_IE_TPCREQUEST_MAX_LEN ( 0 )
5250
5251#ifdef __cplusplus
5252extern "C" {
5253#endif /* C++ */
5254tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCRequest*);
5255
5256tANI_U32 dot11fPackIeTPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U8*, tANI_U32, tANI_U32*);
5257
5258tANI_U32 dot11fGetPackedIETPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U32*);
5259
5260#ifdef __cplusplus
5261}; /* End extern "C". */
5262#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005263// EID 191 (0xbf)
5264typedef struct sDot11fIEVHTCaps {
5265 tANI_U8 present;
5266 tANI_U32 maxMPDULen: 2;
5267 tANI_U32 supportedChannelWidthSet: 2;
5268 tANI_U32 ldpcCodingCap: 1;
5269 tANI_U32 shortGI80MHz: 1;
5270 tANI_U32 shortGI160and80plus80MHz: 1;
5271 tANI_U32 txSTBC: 1;
5272 tANI_U32 rxSTBC: 3;
5273 tANI_U32 suBeamFormerCap: 1;
5274 tANI_U32 suBeamformeeCap: 1;
5275 tANI_U32 csnofBeamformerAntSup: 3;
5276 tANI_U32 numSoundingDim: 3;
5277 tANI_U32 muBeamformerCap: 1;
5278 tANI_U32 muBeamformeeCap: 1;
5279 tANI_U32 vhtTXOPPS: 1;
5280 tANI_U32 htcVHTCap: 1;
5281 tANI_U32 maxAMPDULenExp: 3;
5282 tANI_U32 vhtLinkAdaptCap: 2;
5283 tANI_U32 rxAntPattern: 1;
5284 tANI_U32 txAntPattern: 1;
5285 tANI_U32 reserved1: 2;
5286 tANI_U16 rxMCSMap;
5287 tANI_U16 rxHighSupDataRate: 13;
5288 tANI_U16 reserved2: 3;
5289 tANI_U16 txMCSMap;
5290 tANI_U16 txSupDataRate: 13;
5291 tANI_U16 reserved3: 3;
5292} tDot11fIEVHTCaps;
5293
5294#define DOT11F_EID_VHTCAPS ( 191 )
5295
5296// N.B. These #defines do *not* include the EID & length
5297#define DOT11F_IE_VHTCAPS_MIN_LEN ( 12 )
5298
5299#define DOT11F_IE_VHTCAPS_MAX_LEN ( 12 )
5300
5301#ifdef __cplusplus
5302extern "C" {
5303#endif /* C++ */
5304tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTCaps*);
5305
5306tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5307
5308tANI_U32 dot11fGetPackedIEVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U32*);
5309
5310#ifdef __cplusplus
5311}; /* End extern "C". */
5312#endif /* C++ */
5313// EID 193 (0xc1)
5314typedef struct sDot11fIEVHTExtBssLoad {
5315 tANI_U8 present;
5316 tANI_U8 muMIMOCapStaCount;
5317 tANI_U8 ssUnderUtil;
5318 tANI_U8 FortyMHzUtil;
5319 tANI_U8 EightyMHzUtil;
5320 tANI_U8 OneSixtyMHzUtil;
5321} tDot11fIEVHTExtBssLoad;
5322
5323#define DOT11F_EID_VHTEXTBSSLOAD ( 193 )
5324
5325// N.B. These #defines do *not* include the EID & length
5326#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN ( 5 )
5327
5328#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN ( 5 )
5329
5330#ifdef __cplusplus
5331extern "C" {
5332#endif /* C++ */
5333tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTExtBssLoad*);
5334
5335tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U8*, tANI_U32, tANI_U32*);
5336
5337tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U32*);
5338
5339#ifdef __cplusplus
5340}; /* End extern "C". */
5341#endif /* C++ */
5342// EID 192 (0xc0)
5343typedef struct sDot11fIEVHTOperation {
5344 tANI_U8 present;
5345 tANI_U8 chanWidth;
5346 tANI_U8 chanCenterFreqSeg1;
5347 tANI_U8 chanCenterFreqSeg2;
5348 tANI_U16 basicMCSSet;
5349} tDot11fIEVHTOperation;
5350
5351#define DOT11F_EID_VHTOPERATION ( 192 )
5352
5353// N.B. These #defines do *not* include the EID & length
5354#define DOT11F_IE_VHTOPERATION_MIN_LEN ( 5 )
5355
5356#define DOT11F_IE_VHTOPERATION_MAX_LEN ( 5 )
5357
5358#ifdef __cplusplus
5359extern "C" {
5360#endif /* C++ */
5361tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTOperation*);
5362
5363tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U8*, tANI_U32, tANI_U32*);
5364
5365tANI_U32 dot11fGetPackedIEVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U32*);
5366
5367#ifdef __cplusplus
5368}; /* End extern "C". */
5369#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005370// EID 68 (0x44)
5371typedef struct sDot11fIEWAPI {
5372 tANI_U8 present;
5373 tANI_U16 version /* Must be 1! */;
5374 tANI_U16 akm_suite_count;
5375 tANI_U8 akm_suites[4][4];
5376 tANI_U16 unicast_cipher_suite_count;
5377 tANI_U8 unicast_cipher_suites[4][4];
5378 tANI_U8 multicast_cipher_suite[4];
5379 tANI_U16 preauth: 1;
5380 tANI_U16 reserved: 15;
5381 tANI_U16 bkid_count;
5382 tANI_U8 bkid[4][16];
5383} tDot11fIEWAPI;
5384
5385#define DOT11F_EID_WAPI ( 68 )
5386
5387// N.B. These #defines do *not* include the EID & length
5388#define DOT11F_IE_WAPI_MIN_LEN ( 12 )
5389
5390#define DOT11F_IE_WAPI_MAX_LEN ( 110 )
5391
5392#ifdef __cplusplus
5393extern "C" {
5394#endif /* C++ */
5395tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPI*);
5396
5397tANI_U32 dot11fPackIeWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U8*, tANI_U32, tANI_U32*);
5398
5399tANI_U32 dot11fGetPackedIEWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U32*);
5400
5401#ifdef __cplusplus
5402}; /* End extern "C". */
5403#endif /* C++ */
5404// EID 68 (0x44)
5405typedef struct sDot11fIEWAPIOpaque {
5406 tANI_U8 present;
5407 tANI_U8 num_data;
5408 tANI_U8 data[253];
5409} tDot11fIEWAPIOpaque;
5410
5411#define DOT11F_EID_WAPIOPAQUE ( 68 )
5412
5413// N.B. These #defines do *not* include the EID & length
5414#define DOT11F_IE_WAPIOPAQUE_MIN_LEN ( 6 )
5415
5416#define DOT11F_IE_WAPIOPAQUE_MAX_LEN ( 253 )
5417
5418#ifdef __cplusplus
5419extern "C" {
5420#endif /* C++ */
5421tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPIOpaque*);
5422
5423tANI_U32 dot11fPackIeWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5424
5425tANI_U32 dot11fGetPackedIEWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U32*);
5426
5427#ifdef __cplusplus
5428}; /* End extern "C". */
5429#endif /* C++ */
5430// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00}
5431typedef struct sDot11fIEWFATPC {
5432 tANI_U8 present;
5433 tANI_U8 txPower;
5434 tANI_U8 linkMargin;
5435} tDot11fIEWFATPC;
5436
5437#define DOT11F_EID_WFATPC ( 221 )
5438
5439// N.B. These #defines do *not* include the EID & length
5440#define DOT11F_IE_WFATPC_MIN_LEN ( 7 )
5441
5442#define DOT11F_IE_WFATPC_MAX_LEN ( 7 )
5443
5444#ifdef __cplusplus
5445extern "C" {
5446#endif /* C++ */
5447tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFATPC*);
5448
5449tANI_U32 dot11fPackIeWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U8*, tANI_U32, tANI_U32*);
5450
5451tANI_U32 dot11fGetPackedIEWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U32*);
5452
5453#ifdef __cplusplus
5454}; /* End extern "C". */
5455#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005456// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a}
5457typedef struct sDot11fIEWFDIEOpaque {
5458 tANI_U8 present;
5459 tANI_U8 num_data;
5460 tANI_U8 data[249];
5461} tDot11fIEWFDIEOpaque;
5462
5463#define DOT11F_EID_WFDIEOPAQUE ( 221 )
5464
5465// N.B. These #defines do *not* include the EID & length
5466#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN ( 6 )
5467
5468#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN ( 253 )
5469
5470#ifdef __cplusplus
5471extern "C" {
5472#endif /* C++ */
5473tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFDIEOpaque*);
5474
5475tANI_U32 dot11fPackIeWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5476
5477tANI_U32 dot11fGetPackedIEWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U32*);
5478
5479#ifdef __cplusplus
5480}; /* End extern "C". */
5481#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005482// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05}
5483typedef struct sDot11fIEWMMCaps {
5484 tANI_U8 present;
5485 tANI_U8 version /* Must be 1! */;
5486 tANI_U8 reserved: 4;
5487 tANI_U8 qack: 1;
5488 tANI_U8 queue_request: 1;
5489 tANI_U8 txop_request: 1;
5490 tANI_U8 more_ack: 1;
5491} tDot11fIEWMMCaps;
5492
5493#define DOT11F_EID_WMMCAPS ( 221 )
5494
5495// N.B. These #defines do *not* include the EID & length
5496#define DOT11F_IE_WMMCAPS_MIN_LEN ( 7 )
5497
5498#define DOT11F_IE_WMMCAPS_MAX_LEN ( 7 )
5499
5500#ifdef __cplusplus
5501extern "C" {
5502#endif /* C++ */
5503tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMCaps*);
5504
5505tANI_U32 dot11fPackIeWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5506
5507tANI_U32 dot11fGetPackedIEWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U32*);
5508
5509#ifdef __cplusplus
5510}; /* End extern "C". */
5511#endif /* C++ */
5512// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5513typedef struct sDot11fIEWMMInfoAp {
5514 tANI_U8 present;
5515 tANI_U8 version;
5516 tANI_U8 param_set_count: 4;
5517 tANI_U8 reserved: 3;
5518 tANI_U8 uapsd: 1;
5519} tDot11fIEWMMInfoAp;
5520
5521#define DOT11F_EID_WMMINFOAP ( 221 )
5522
5523// N.B. These #defines do *not* include the EID & length
5524#define DOT11F_IE_WMMINFOAP_MIN_LEN ( 7 )
5525
5526#define DOT11F_IE_WMMINFOAP_MAX_LEN ( 7 )
5527
5528#ifdef __cplusplus
5529extern "C" {
5530#endif /* C++ */
5531tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoAp*);
5532
5533tANI_U32 dot11fPackIeWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U8*, tANI_U32, tANI_U32*);
5534
5535tANI_U32 dot11fGetPackedIEWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U32*);
5536
5537#ifdef __cplusplus
5538}; /* End extern "C". */
5539#endif /* C++ */
5540// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5541typedef struct sDot11fIEWMMInfoStation {
5542 tANI_U8 present;
5543 tANI_U8 version;
5544 tANI_U8 acvo_uapsd: 1;
5545 tANI_U8 acvi_uapsd: 1;
5546 tANI_U8 acbk_uapsd: 1;
5547 tANI_U8 acbe_uapsd: 1;
5548 tANI_U8 reserved1: 1;
5549 tANI_U8 max_sp_length: 2;
5550 tANI_U8 reserved2: 1;
5551} tDot11fIEWMMInfoStation;
5552
5553#define DOT11F_EID_WMMINFOSTATION ( 221 )
5554
5555// N.B. These #defines do *not* include the EID & length
5556#define DOT11F_IE_WMMINFOSTATION_MIN_LEN ( 7 )
5557
5558#define DOT11F_IE_WMMINFOSTATION_MAX_LEN ( 7 )
5559
5560#ifdef __cplusplus
5561extern "C" {
5562#endif /* C++ */
5563tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoStation*);
5564
5565tANI_U32 dot11fPackIeWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U8*, tANI_U32, tANI_U32*);
5566
5567tANI_U32 dot11fGetPackedIEWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U32*);
5568
5569#ifdef __cplusplus
5570}; /* End extern "C". */
5571#endif /* C++ */
5572// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01}
5573typedef struct sDot11fIEWMMParams {
5574 tANI_U8 present;
5575 tANI_U8 version /* Must be 1! */;
5576 tANI_U8 qosInfo;
5577 tANI_U8 reserved2;
5578 tANI_U8 acbe_aifsn: 4;
5579 tANI_U8 acbe_acm: 1;
5580 tANI_U8 acbe_aci: 2;
5581 tANI_U8 unused1: 1;
5582 tANI_U8 acbe_acwmin: 4;
5583 tANI_U8 acbe_acwmax: 4;
5584 tANI_U16 acbe_txoplimit;
5585 tANI_U8 acbk_aifsn: 4;
5586 tANI_U8 acbk_acm: 1;
5587 tANI_U8 acbk_aci: 2;
5588 tANI_U8 unused2: 1;
5589 tANI_U8 acbk_acwmin: 4;
5590 tANI_U8 acbk_acwmax: 4;
5591 tANI_U16 acbk_txoplimit;
5592 tANI_U8 acvi_aifsn: 4;
5593 tANI_U8 acvi_acm: 1;
5594 tANI_U8 acvi_aci: 2;
5595 tANI_U8 unused3: 1;
5596 tANI_U8 acvi_acwmin: 4;
5597 tANI_U8 acvi_acwmax: 4;
5598 tANI_U16 acvi_txoplimit;
5599 tANI_U8 acvo_aifsn: 4;
5600 tANI_U8 acvo_acm: 1;
5601 tANI_U8 acvo_aci: 2;
5602 tANI_U8 unused4: 1;
5603 tANI_U8 acvo_acwmin: 4;
5604 tANI_U8 acvo_acwmax: 4;
5605 tANI_U16 acvo_txoplimit;
5606} tDot11fIEWMMParams;
5607
5608#define DOT11F_EID_WMMPARAMS ( 221 )
5609
5610// N.B. These #defines do *not* include the EID & length
5611#define DOT11F_IE_WMMPARAMS_MIN_LEN ( 24 )
5612
5613#define DOT11F_IE_WMMPARAMS_MAX_LEN ( 24 )
5614
5615#ifdef __cplusplus
5616extern "C" {
5617#endif /* C++ */
5618tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMParams*);
5619
5620tANI_U32 dot11fPackIeWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U8*, tANI_U32, tANI_U32*);
5621
5622tANI_U32 dot11fGetPackedIEWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U32*);
5623
5624#ifdef __cplusplus
5625}; /* End extern "C". */
5626#endif /* C++ */
5627// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5628typedef struct sDot11fIEWPA {
5629 tANI_U8 present;
5630 tANI_U16 version /* Must be 1! */;
5631 tANI_U8 multicast_cipher_present; //field added to fix the bug in dot11fPackIEWPA
5632 tANI_U8 multicast_cipher[4];
5633 tANI_U16 unicast_cipher_count;
5634 tANI_U8 unicast_ciphers[4][4];
5635 tANI_U16 auth_suite_count;
5636 tANI_U8 auth_suites[4][4];
5637 tANI_U16 caps;
5638} tDot11fIEWPA;
5639
5640#define DOT11F_EID_WPA ( 221 )
5641
5642// N.B. These #defines do *not* include the EID & length
5643#define DOT11F_IE_WPA_MIN_LEN ( 6 )
5644
5645#define DOT11F_IE_WPA_MAX_LEN ( 48 )
5646
5647#ifdef __cplusplus
5648extern "C" {
5649#endif /* C++ */
5650tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPA*);
5651
5652tANI_U32 dot11fPackIeWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U8*, tANI_U32, tANI_U32*);
5653
5654tANI_U32 dot11fGetPackedIEWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U32*);
5655
5656#ifdef __cplusplus
5657}; /* End extern "C". */
5658#endif /* C++ */
5659// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5660typedef struct sDot11fIEWPAOpaque {
5661 tANI_U8 present;
5662 tANI_U8 num_data;
5663 tANI_U8 data[249];
5664} tDot11fIEWPAOpaque;
5665
5666#define DOT11F_EID_WPAOPAQUE ( 221 )
5667
5668// N.B. These #defines do *not* include the EID & length
5669#define DOT11F_IE_WPAOPAQUE_MIN_LEN ( 6 )
5670
5671#define DOT11F_IE_WPAOPAQUE_MAX_LEN ( 253 )
5672
5673#ifdef __cplusplus
5674extern "C" {
5675#endif /* C++ */
5676tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPAOpaque*);
5677
5678tANI_U32 dot11fPackIeWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5679
5680tANI_U32 dot11fGetPackedIEWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U32*);
5681
5682#ifdef __cplusplus
5683}; /* End extern "C". */
5684#endif /* C++ */
5685// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5686typedef struct sDot11fIEWSC {
5687 tANI_U8 present;
5688 tDot11fTLVVersion Version;
5689 tDot11fTLVWPSState WPSState;
5690 tDot11fTLVAPSetupLocked APSetupLocked;
5691 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5692 tDot11fTLVUUID_E UUID_E;
5693 tDot11fTLVUUID_R UUID_R;
5694 tDot11fTLVRFBands RFBands;
5695 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5696 tDot11fTLVConfigMethods ConfigMethods;
5697 tDot11fTLVAssociationState AssociationState;
5698 tDot11fTLVConfigurationError ConfigurationError;
5699 tDot11fTLVManufacturer Manufacturer;
5700 tDot11fTLVModelName ModelName;
5701 tDot11fTLVModelNumber ModelNumber;
5702 tDot11fTLVSerialNumber SerialNumber;
5703 tDot11fTLVDeviceName DeviceName;
5704 tDot11fTLVDevicePasswordID DevicePasswordID;
5705 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5706 tDot11fTLVRequestType RequestType;
5707 tDot11fTLVResponseType ResponseType;
5708 tDot11fTLVVendorExtension VendorExtension;
5709 tDot11fTLVRequestDeviceType RequestDeviceType;
5710} tDot11fIEWSC;
5711
5712#define DOT11F_EID_WSC ( 221 )
5713
5714// N.B. These #defines do *not* include the EID & length
5715#define DOT11F_IE_WSC_MIN_LEN ( 4 )
5716
5717#define DOT11F_IE_WSC_MAX_LEN ( 366 )
5718
5719#ifdef __cplusplus
5720extern "C" {
5721#endif /* C++ */
5722tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWSC*);
5723
5724tANI_U32 dot11fPackIeWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U8*, tANI_U32, tANI_U32*);
5725
5726tANI_U32 dot11fGetPackedIEWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U32*);
5727
5728#ifdef __cplusplus
5729}; /* End extern "C". */
5730#endif /* C++ */
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07005731// EID 194 (0xc2)
5732typedef struct sDot11fIEWiderBWChanSwitchAnn {
5733 tANI_U8 present;
5734 tANI_U8 newChanWidth;
5735 tANI_U8 newCenterChanFreq0;
5736 tANI_U8 newCenterChanFreq1;
5737} tDot11fIEWiderBWChanSwitchAnn;
5738
5739#define DOT11F_EID_WIDERBWCHANSWITCHANN ( 194 )
5740
5741// N.B. These #defines do *not* include the EID & length
5742#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN ( 3 )
5743
5744#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN ( 3 )
5745
5746#ifdef __cplusplus
5747extern "C" {
5748#endif /* C++ */
5749tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWiderBWChanSwitchAnn*);
5750
5751tANI_U32 dot11fPackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
5752
5753tANI_U32 dot11fGetPackedIEWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U32*);
5754
5755#ifdef __cplusplus
5756}; /* End extern "C". */
5757#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005758// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5759typedef struct sDot11fIEWscAssocReq {
5760 tANI_U8 present;
5761 tDot11fTLVVersion Version;
5762 tDot11fTLVRequestType RequestType;
5763 tDot11fTLVVendorExtension VendorExtension;
5764} tDot11fIEWscAssocReq;
5765
5766#define DOT11F_EID_WSCASSOCREQ ( 221 )
5767
5768// N.B. These #defines do *not* include the EID & length
5769#define DOT11F_IE_WSCASSOCREQ_MIN_LEN ( 4 )
5770
5771#define DOT11F_IE_WSCASSOCREQ_MAX_LEN ( 35 )
5772
5773#ifdef __cplusplus
5774extern "C" {
5775#endif /* C++ */
5776tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocReq*);
5777
5778tANI_U32 dot11fPackIeWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
5779
5780tANI_U32 dot11fGetPackedIEWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U32*);
5781
5782#ifdef __cplusplus
5783}; /* End extern "C". */
5784#endif /* C++ */
5785// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5786typedef struct sDot11fIEWscAssocRes {
5787 tANI_U8 present;
5788 tDot11fTLVVersion Version;
5789 tDot11fTLVResponseType ResponseType;
5790 tDot11fTLVVendorExtension VendorExtension;
5791} tDot11fIEWscAssocRes;
5792
5793#define DOT11F_EID_WSCASSOCRES ( 221 )
5794
5795// N.B. These #defines do *not* include the EID & length
5796#define DOT11F_IE_WSCASSOCRES_MIN_LEN ( 4 )
5797
5798#define DOT11F_IE_WSCASSOCRES_MAX_LEN ( 35 )
5799
5800#ifdef __cplusplus
5801extern "C" {
5802#endif /* C++ */
5803tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocRes*);
5804
5805tANI_U32 dot11fPackIeWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
5806
5807tANI_U32 dot11fGetPackedIEWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U32*);
5808
5809#ifdef __cplusplus
5810}; /* End extern "C". */
5811#endif /* C++ */
5812// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5813typedef struct sDot11fIEWscBeacon {
5814 tANI_U8 present;
5815 tDot11fTLVVersion Version;
5816 tDot11fTLVWPSState WPSState;
5817 tDot11fTLVAPSetupLocked APSetupLocked;
5818 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5819 tDot11fTLVDevicePasswordID DevicePasswordID;
5820 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5821 tDot11fTLVUUID_E UUID_E;
5822 tDot11fTLVRFBands RFBands;
5823 tDot11fTLVVendorExtension VendorExtension;
5824} tDot11fIEWscBeacon;
5825
5826#define DOT11F_EID_WSCBEACON ( 221 )
5827
5828// N.B. These #defines do *not* include the EID & length
5829#define DOT11F_IE_WSCBEACON_MIN_LEN ( 4 )
5830
5831#define DOT11F_IE_WSCBEACON_MAX_LEN ( 82 )
5832
5833#ifdef __cplusplus
5834extern "C" {
5835#endif /* C++ */
5836tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeacon*);
5837
5838tANI_U32 dot11fPackIeWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
5839
5840tANI_U32 dot11fGetPackedIEWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U32*);
5841
5842#ifdef __cplusplus
5843}; /* End extern "C". */
5844#endif /* C++ */
5845// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5846typedef struct sDot11fIEWscBeaconProbeRes {
5847 tANI_U8 present;
5848 tDot11fTLVVersion Version;
5849 tDot11fTLVWPSState WPSState;
5850 tDot11fTLVAPSetupLocked APSetupLocked;
5851 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5852 tDot11fTLVDevicePasswordID DevicePasswordID;
5853 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5854 tDot11fTLVResponseType ResponseType;
5855 tDot11fTLVUUID_E UUID_E;
5856 tDot11fTLVManufacturer Manufacturer;
5857 tDot11fTLVModelName ModelName;
5858 tDot11fTLVModelNumber ModelNumber;
5859 tDot11fTLVSerialNumber SerialNumber;
5860 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5861 tDot11fTLVDeviceName DeviceName;
5862 tDot11fTLVConfigMethods ConfigMethods;
5863 tDot11fTLVRFBands RFBands;
5864 tDot11fTLVVendorExtension VendorExtension;
5865} tDot11fIEWscBeaconProbeRes;
5866
5867#define DOT11F_EID_WSCBEACONPROBERES ( 221 )
5868
5869// N.B. These #defines do *not* include the EID & length
5870#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN ( 4 )
5871
5872#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN ( 317 )
5873
5874#ifdef __cplusplus
5875extern "C" {
5876#endif /* C++ */
5877tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeaconProbeRes*);
5878
5879tANI_U32 dot11fPackIeWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
5880
5881tANI_U32 dot11fGetPackedIEWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U32*);
5882
5883#ifdef __cplusplus
5884}; /* End extern "C". */
5885#endif /* C++ */
5886// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04}
5887typedef struct sDot11fIEWscIEOpaque {
5888 tANI_U8 present;
5889 tANI_U8 num_data;
5890 tANI_U8 data[249];
5891} tDot11fIEWscIEOpaque;
5892
5893#define DOT11F_EID_WSCIEOPAQUE ( 221 )
5894
5895// N.B. These #defines do *not* include the EID & length
5896#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN ( 6 )
5897
5898#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN ( 253 )
5899
5900#ifdef __cplusplus
5901extern "C" {
5902#endif /* C++ */
5903tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscIEOpaque*);
5904
5905tANI_U32 dot11fPackIeWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5906
5907tANI_U32 dot11fGetPackedIEWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U32*);
5908
5909#ifdef __cplusplus
5910}; /* End extern "C". */
5911#endif /* C++ */
5912// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5913typedef struct sDot11fIEWscProbeReq {
5914 tANI_U8 present;
5915 tDot11fTLVVersion Version;
5916 tDot11fTLVRequestType RequestType;
5917 tDot11fTLVConfigMethods ConfigMethods;
5918 tDot11fTLVUUID_E UUID_E;
5919 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5920 tDot11fTLVRFBands RFBands;
5921 tDot11fTLVAssociationState AssociationState;
5922 tDot11fTLVConfigurationError ConfigurationError;
5923 tDot11fTLVDevicePasswordID DevicePasswordID;
5924 tDot11fTLVManufacturer Manufacturer;
5925 tDot11fTLVModelName ModelName;
5926 tDot11fTLVModelNumber ModelNumber;
5927 tDot11fTLVDeviceName DeviceName;
5928 tDot11fTLVVendorExtension VendorExtension;
5929 tDot11fTLVRequestDeviceType RequestDeviceType;
5930} tDot11fIEWscProbeReq;
5931
5932#define DOT11F_EID_WSCPROBEREQ ( 221 )
5933
5934// N.B. These #defines do *not* include the EID & length
5935#define DOT11F_IE_WSCPROBEREQ_MIN_LEN ( 4 )
5936
5937#define DOT11F_IE_WSCPROBEREQ_MAX_LEN ( 284 )
5938
5939#ifdef __cplusplus
5940extern "C" {
5941#endif /* C++ */
5942tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeReq*);
5943
5944tANI_U32 dot11fPackIeWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
5945
5946tANI_U32 dot11fGetPackedIEWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U32*);
5947
5948#ifdef __cplusplus
5949}; /* End extern "C". */
5950#endif /* C++ */
5951// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5952typedef struct sDot11fIEWscProbeRes {
5953 tANI_U8 present;
5954 tDot11fTLVVersion Version;
5955 tDot11fTLVWPSState WPSState;
5956 tDot11fTLVAPSetupLocked APSetupLocked;
5957 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5958 tDot11fTLVDevicePasswordID DevicePasswordID;
5959 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5960 tDot11fTLVResponseType ResponseType;
5961 tDot11fTLVUUID_E UUID_E;
5962 tDot11fTLVManufacturer Manufacturer;
5963 tDot11fTLVModelName ModelName;
5964 tDot11fTLVModelNumber ModelNumber;
5965 tDot11fTLVSerialNumber SerialNumber;
5966 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5967 tDot11fTLVDeviceName DeviceName;
5968 tDot11fTLVConfigMethods ConfigMethods;
5969 tDot11fTLVRFBands RFBands;
5970 tDot11fTLVVendorExtension VendorExtension;
5971} tDot11fIEWscProbeRes;
5972
5973#define DOT11F_EID_WSCPROBERES ( 221 )
5974
5975// N.B. These #defines do *not* include the EID & length
5976#define DOT11F_IE_WSCPROBERES_MIN_LEN ( 4 )
5977
5978#define DOT11F_IE_WSCPROBERES_MAX_LEN ( 317 )
5979
5980#ifdef __cplusplus
5981extern "C" {
5982#endif /* C++ */
5983tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeRes*);
5984
5985tANI_U32 dot11fPackIeWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
5986
5987tANI_U32 dot11fGetPackedIEWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U32*);
5988
5989#ifdef __cplusplus
5990}; /* End extern "C". */
5991#endif /* C++ */
5992// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5993typedef struct sDot11fIEWscReassocRes {
5994 tANI_U8 present;
5995 tDot11fTLVVersion Version;
5996 tDot11fTLVResponseType ResponseType;
5997 tDot11fTLVVendorExtension VendorExtension;
5998} tDot11fIEWscReassocRes;
5999
6000#define DOT11F_EID_WSCREASSOCRES ( 221 )
6001
6002// N.B. These #defines do *not* include the EID & length
6003#define DOT11F_IE_WSCREASSOCRES_MIN_LEN ( 4 )
6004
6005#define DOT11F_IE_WSCREASSOCRES_MAX_LEN ( 35 )
6006
6007#ifdef __cplusplus
6008extern "C" {
6009#endif /* C++ */
6010tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscReassocRes*);
6011
6012tANI_U32 dot11fPackIeWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U8*, tANI_U32, tANI_U32*);
6013
6014tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U32*);
6015
6016#ifdef __cplusplus
6017}; /* End extern "C". */
6018#endif /* C++ */
6019/************************************************************************
6020 * Frames
6021 **********************************************************************/
6022
6023typedef struct sDot11fAddBAReq{
6024 tDot11fFfCategory Category;
6025 tDot11fFfAction Action;
6026 tDot11fFfDialogToken DialogToken;
6027 tDot11fFfAddBAParameterSet AddBAParameterSet;
6028 tDot11fFfBATimeout BATimeout;
6029 tDot11fFfBAStartingSequenceControl BAStartingSequenceControl;
6030} tDot11fAddBAReq;
6031
6032#define DOT11F_ADDBAREQ ( 1 )
6033
6034#ifdef __cplusplus
6035extern "C" {
6036#endif /* C++ */
6037
6038tANI_U32 dot11fUnpackAddBAReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBAReq *pFrm);
6039tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6040tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded);
6041
6042#ifdef __cplusplus
6043} /* End extern "C". */
6044#endif /* C++ */
6045
6046typedef struct sDot11fAddBARsp{
6047 tDot11fFfCategory Category;
6048 tDot11fFfAction Action;
6049 tDot11fFfDialogToken DialogToken;
6050 tDot11fFfStatus Status;
6051 tDot11fFfAddBAParameterSet AddBAParameterSet;
6052 tDot11fFfBATimeout BATimeout;
6053} tDot11fAddBARsp;
6054
6055#define DOT11F_ADDBARSP ( 2 )
6056
6057#ifdef __cplusplus
6058extern "C" {
6059#endif /* C++ */
6060
6061tANI_U32 dot11fUnpackAddBARsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBARsp *pFrm);
6062tANI_U32 dot11fPackAddBARsp(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6063tANI_U32 dot11fGetPackedAddBARspSize(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U32 *pnNeeded);
6064
6065#ifdef __cplusplus
6066} /* End extern "C". */
6067#endif /* C++ */
6068
6069typedef struct sDot11fAddTSRequest{
6070 tDot11fFfCategory Category;
6071 tDot11fFfAction Action;
6072 tDot11fFfDialogToken DialogToken;
6073 tDot11fIETSPEC TSPEC;
6074 tANI_U16 num_TCLAS;
6075 tDot11fIETCLAS TCLAS[2];
6076 tDot11fIETCLASSPROC TCLASSPROC;
6077 tDot11fIEWMMTSPEC WMMTSPEC;
6078 tANI_U16 num_WMMTCLAS;
6079 tDot11fIEWMMTCLAS WMMTCLAS[2];
6080 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6081 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
6082} tDot11fAddTSRequest;
6083
6084#define DOT11F_ADDTSREQUEST ( 3 )
6085
6086#ifdef __cplusplus
6087extern "C" {
6088#endif /* C++ */
6089
6090tANI_U32 dot11fUnpackAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSRequest *pFrm);
6091tANI_U32 dot11fPackAddTSRequest(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6092tANI_U32 dot11fGetPackedAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U32 *pnNeeded);
6093
6094#ifdef __cplusplus
6095} /* End extern "C". */
6096#endif /* C++ */
6097
6098typedef struct sDot11fAddTSResponse{
6099 tDot11fFfCategory Category;
6100 tDot11fFfAction Action;
6101 tDot11fFfDialogToken DialogToken;
6102 tDot11fFfStatus Status;
6103 tDot11fIETSDelay TSDelay;
6104 tDot11fIETSPEC TSPEC;
6105 tANI_U16 num_TCLAS;
6106 tDot11fIETCLAS TCLAS[2];
6107 tDot11fIETCLASSPROC TCLASSPROC;
6108 tDot11fIESchedule Schedule;
6109 tDot11fIEWMMTSDelay WMMTSDelay;
6110 tDot11fIEWMMSchedule WMMSchedule;
6111 tDot11fIEWMMTSPEC WMMTSPEC;
6112 tANI_U16 num_WMMTCLAS;
6113 tDot11fIEWMMTCLAS WMMTCLAS[2];
6114 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
6115 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6116} tDot11fAddTSResponse;
6117
6118#define DOT11F_ADDTSRESPONSE ( 4 )
6119
6120#ifdef __cplusplus
6121extern "C" {
6122#endif /* C++ */
6123
6124tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSResponse *pFrm);
6125tANI_U32 dot11fPackAddTSResponse(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6126tANI_U32 dot11fGetPackedAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U32 *pnNeeded);
6127
6128#ifdef __cplusplus
6129} /* End extern "C". */
6130#endif /* C++ */
6131
6132typedef struct sDot11fAssocRequest{
6133 tDot11fFfCapabilities Capabilities;
6134 tDot11fFfListenInterval ListenInterval;
6135 tDot11fIESSID SSID;
6136 tDot11fIESuppRates SuppRates;
6137 tDot11fIEExtSuppRates ExtSuppRates;
6138 tDot11fIEPowerCaps PowerCaps;
6139 tDot11fIESuppChannels SuppChannels;
6140 tDot11fIERSNOpaque RSNOpaque;
6141 tDot11fIEQOSCapsStation QOSCapsStation;
6142 tDot11fIERRMEnabledCap RRMEnabledCap;
6143 tDot11fIEMobilityDomain MobilityDomain;
6144 tDot11fIEWPAOpaque WPAOpaque;
6145 tDot11fIEHTCaps HTCaps;
6146 tDot11fIEWMMCaps WMMCaps;
6147 tDot11fIEWMMInfoStation WMMInfoStation;
6148 tDot11fIEAirgo Airgo;
6149 tDot11fIEWscIEOpaque WscIEOpaque;
6150 tDot11fIEWAPIOpaque WAPIOpaque;
6151 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6152 tDot11fIECCXVersion CCXVersion;
6153 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07006154 tDot11fIEWFDIEOpaque WFDIEOpaque;
6155 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006156 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07006157 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07006158} tDot11fAssocRequest;
6159
6160#define DOT11F_ASSOCREQUEST ( 5 )
6161
6162#ifdef __cplusplus
6163extern "C" {
6164#endif /* C++ */
6165
6166tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm);
6167tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6168tANI_U32 dot11fGetPackedAssocRequestSize(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U32 *pnNeeded);
6169
6170#ifdef __cplusplus
6171} /* End extern "C". */
6172#endif /* C++ */
6173
6174typedef struct sDot11fAssocResponse{
6175 tDot11fFfCapabilities Capabilities;
6176 tDot11fFfStatus Status;
6177 tDot11fFfAID AID;
6178 tDot11fIESuppRates SuppRates;
6179 tDot11fIEExtSuppRates ExtSuppRates;
6180 tDot11fIEEDCAParamSet EDCAParamSet;
6181 tDot11fIERCPIIE RCPIIE;
6182 tDot11fIERSNIIE RSNIIE;
6183 tDot11fIERRMEnabledCap RRMEnabledCap;
6184 tDot11fIEMobilityDomain MobilityDomain;
6185 tDot11fIEFTInfo FTInfo;
6186 tANI_U16 num_RICDataDesc;
6187 tDot11fIERICDataDesc RICDataDesc[2];
6188 tDot11fIEWPA WPA;
6189 tDot11fIEHTCaps HTCaps;
6190 tDot11fIEHTInfo HTInfo;
6191 tDot11fIEWMMParams WMMParams;
6192 tDot11fIEWMMCaps WMMCaps;
6193 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6194 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6195 tDot11fIECCXTxmitPower CCXTxmitPower;
6196 tANI_U16 num_WMMTSPEC;
6197 tDot11fIEWMMTSPEC WMMTSPEC[4];
6198 tDot11fIEAirgo Airgo;
6199 tDot11fIEWscAssocRes WscAssocRes;
6200 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07006201 tDot11fIEVHTCaps VHTCaps;
6202 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006203 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07006204} tDot11fAssocResponse;
6205
6206#define DOT11F_ASSOCRESPONSE ( 6 )
6207
6208#ifdef __cplusplus
6209extern "C" {
6210#endif /* C++ */
6211
6212tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm);
6213tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6214tANI_U32 dot11fGetPackedAssocResponseSize(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U32 *pnNeeded);
6215
6216#ifdef __cplusplus
6217} /* End extern "C". */
6218#endif /* C++ */
6219
6220typedef struct sDot11fAuthentication{
6221 tDot11fFfAuthAlgo AuthAlgo;
6222 tDot11fFfAuthSeqNo AuthSeqNo;
6223 tDot11fFfStatus Status;
6224 tDot11fIEChallengeText ChallengeText;
6225 tDot11fIERSNOpaque RSNOpaque;
6226 tDot11fIEMobilityDomain MobilityDomain;
6227 tDot11fIEFTInfo FTInfo;
6228 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
6229 tANI_U16 num_RICDataDesc;
6230 tDot11fIERICDataDesc RICDataDesc[2];
6231} tDot11fAuthentication;
6232
6233#define DOT11F_AUTHENTICATION ( 7 )
6234
6235#ifdef __cplusplus
6236extern "C" {
6237#endif /* C++ */
6238
6239tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAuthentication *pFrm);
6240tANI_U32 dot11fPackAuthentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6241tANI_U32 dot11fGetPackedAuthenticationSize(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U32 *pnNeeded);
6242
6243#ifdef __cplusplus
6244} /* End extern "C". */
6245#endif /* C++ */
6246
6247typedef struct sDot11fBeacon{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006248 tDot11fFfTimeStamp TimeStamp;
6249 tDot11fFfBeaconInterval BeaconInterval;
6250 tDot11fFfCapabilities Capabilities;
6251 tDot11fIESSID SSID;
6252 tDot11fIESuppRates SuppRates;
6253 tDot11fIEFHParamSet FHParamSet;
6254 tDot11fIEDSParams DSParams;
6255 tDot11fIECFParams CFParams;
6256 tDot11fIEIBSSParams IBSSParams;
6257 tDot11fIETIM TIM;
6258 tDot11fIECountry Country;
6259 tDot11fIEFHParams FHParams;
6260 tDot11fIEFHPattTable FHPattTable;
6261 tDot11fIEPowerConstraints PowerConstraints;
6262 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6263 tDot11fIEQuiet Quiet;
6264 tDot11fIETPCReport TPCReport;
6265 tDot11fIEERPInfo ERPInfo;
6266 tDot11fIEExtSuppRates ExtSuppRates;
6267 tDot11fIERSN RSN;
6268 tDot11fIEQBSSLoad QBSSLoad;
6269 tDot11fIEEDCAParamSet EDCAParamSet;
6270 tDot11fIEQOSCapsAp QOSCapsAp;
6271 tDot11fIEAPChannelReport APChannelReport;
6272 tDot11fIERRMEnabledCap RRMEnabledCap;
6273 tDot11fIEMobilityDomain MobilityDomain;
6274 tDot11fIEWPA WPA;
6275 tDot11fIEHTCaps HTCaps;
6276 tDot11fIEHTInfo HTInfo;
6277 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6278 tDot11fIEWMMInfoAp WMMInfoAp;
6279 tDot11fIEWMMParams WMMParams;
6280 tDot11fIEWMMCaps WMMCaps;
6281 tDot11fIEWAPI WAPI;
6282 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6283 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6284 tDot11fIECCXTxmitPower CCXTxmitPower;
6285 tDot11fIEAirgo Airgo;
6286 tDot11fIEWscBeacon WscBeacon;
6287 tDot11fIEP2PBeacon P2PBeacon;
6288 tDot11fIEVHTCaps VHTCaps;
6289 tDot11fIEVHTOperation VHTOperation;
6290 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6291 tDot11fIEExtCap ExtCap;
6292 tDot11fIEOperatingMode OperatingMode;
6293 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006294} tDot11fBeacon;
6295
6296#define DOT11F_BEACON ( 8 )
6297
6298#ifdef __cplusplus
6299extern "C" {
6300#endif /* C++ */
6301
6302tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon *pFrm);
6303tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6304tANI_U32 dot11fGetPackedBeaconSize(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U32 *pnNeeded);
6305
6306#ifdef __cplusplus
6307} /* End extern "C". */
6308#endif /* C++ */
6309
6310typedef struct sDot11fBeacon1{
6311 tDot11fFfTimeStamp TimeStamp;
6312 tDot11fFfBeaconInterval BeaconInterval;
6313 tDot11fFfCapabilities Capabilities;
6314 tDot11fIESSID SSID;
6315 tDot11fIESuppRates SuppRates;
6316 tDot11fIEDSParams DSParams;
6317 tDot11fIEIBSSParams IBSSParams;
6318} tDot11fBeacon1;
6319
6320#define DOT11F_BEACON1 ( 9 )
6321
6322#ifdef __cplusplus
6323extern "C" {
6324#endif /* C++ */
6325
6326tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon1 *pFrm);
6327tANI_U32 dot11fPackBeacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6328tANI_U32 dot11fGetPackedBeacon1Size(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U32 *pnNeeded);
6329
6330#ifdef __cplusplus
6331} /* End extern "C". */
6332#endif /* C++ */
6333
6334typedef struct sDot11fBeacon2{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006335 tDot11fIECountry Country;
6336 tDot11fIEPowerConstraints PowerConstraints;
6337 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6338 tDot11fIEQuiet Quiet;
6339 tDot11fIETPCReport TPCReport;
6340 tDot11fIEERPInfo ERPInfo;
6341 tDot11fIEExtSuppRates ExtSuppRates;
6342 tDot11fIERSN RSN;
6343 tDot11fIEEDCAParamSet EDCAParamSet;
6344 tDot11fIEAPChannelReport APChannelReport;
6345 tDot11fIERRMEnabledCap RRMEnabledCap;
6346 tDot11fIEMobilityDomain MobilityDomain;
6347 tDot11fIEWPA WPA;
6348 tDot11fIEHTCaps HTCaps;
6349 tDot11fIEHTInfo HTInfo;
6350 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6351 tDot11fIEWMMInfoAp WMMInfoAp;
6352 tDot11fIEWMMParams WMMParams;
6353 tDot11fIEWMMCaps WMMCaps;
6354 tDot11fIEAirgo Airgo;
6355 tDot11fIEWscBeacon WscBeacon;
6356 tDot11fIEWAPI WAPI;
6357 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6358 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6359 tDot11fIECCXTxmitPower CCXTxmitPower;
6360 tDot11fIEP2PBeacon P2PBeacon;
6361 tDot11fIEVHTCaps VHTCaps;
6362 tDot11fIEVHTOperation VHTOperation;
6363 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6364 tDot11fIEExtCap ExtCap;
6365 tDot11fIEOperatingMode OperatingMode;
6366 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006367} tDot11fBeacon2;
6368
6369#define DOT11F_BEACON2 ( 10 )
6370
6371#ifdef __cplusplus
6372extern "C" {
6373#endif /* C++ */
6374
6375tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon2 *pFrm);
6376tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6377tANI_U32 dot11fGetPackedBeacon2Size(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U32 *pnNeeded);
6378
6379#ifdef __cplusplus
6380} /* End extern "C". */
6381#endif /* C++ */
6382
6383typedef struct sDot11fBeaconIEs{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006384 tDot11fIESSID SSID;
6385 tDot11fIESuppRates SuppRates;
6386 tDot11fIEFHParamSet FHParamSet;
6387 tDot11fIEDSParams DSParams;
6388 tDot11fIECFParams CFParams;
6389 tDot11fIEIBSSParams IBSSParams;
6390 tDot11fIETIM TIM;
6391 tDot11fIECountry Country;
6392 tDot11fIEFHParams FHParams;
6393 tDot11fIEFHPattTable FHPattTable;
6394 tDot11fIEPowerConstraints PowerConstraints;
6395 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6396 tDot11fIEQuiet Quiet;
6397 tDot11fIETPCReport TPCReport;
6398 tDot11fIEERPInfo ERPInfo;
6399 tDot11fIEExtSuppRates ExtSuppRates;
6400 tDot11fIERSN RSN;
6401 tDot11fIEQBSSLoad QBSSLoad;
6402 tDot11fIEEDCAParamSet EDCAParamSet;
6403 tDot11fIEQOSCapsAp QOSCapsAp;
6404 tDot11fIEAPChannelReport APChannelReport;
6405 tDot11fIERRMEnabledCap RRMEnabledCap;
6406 tDot11fIEMobilityDomain MobilityDomain;
6407 tDot11fIEWPA WPA;
6408 tDot11fIEHTCaps HTCaps;
6409 tDot11fIEHTInfo HTInfo;
6410 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6411 tDot11fIEWMMInfoAp WMMInfoAp;
6412 tDot11fIEWMMParams WMMParams;
6413 tDot11fIEWMMCaps WMMCaps;
6414 tDot11fIEWAPI WAPI;
6415 tDot11fIECCXVersion CCXVersion;
6416 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
6417 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
6418 tDot11fIECCXTxmitPower CCXTxmitPower;
6419 tDot11fIEAirgo Airgo;
6420 tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
6421 tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
6422 tDot11fIEVHTCaps VHTCaps;
6423 tDot11fIEVHTOperation VHTOperation;
6424 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6425 tDot11fIEExtCap ExtCap;
6426 tDot11fIEOperatingMode OperatingMode;
6427 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006428} tDot11fBeaconIEs;
6429
6430#define DOT11F_BEACONIES ( 11 )
6431
6432#ifdef __cplusplus
6433extern "C" {
6434#endif /* C++ */
6435
6436tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeaconIEs *pFrm);
6437tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6438tANI_U32 dot11fGetPackedBeaconIEsSize(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U32 *pnNeeded);
6439
6440#ifdef __cplusplus
6441} /* End extern "C". */
6442#endif /* C++ */
6443
6444typedef struct sDot11fChannelSwitch{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006445 tDot11fFfCategory Category;
6446 tDot11fFfAction Action;
6447 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6448 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6449 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006450} tDot11fChannelSwitch;
6451
6452#define DOT11F_CHANNELSWITCH ( 12 )
6453
6454#ifdef __cplusplus
6455extern "C" {
6456#endif /* C++ */
6457
6458tANI_U32 dot11fUnpackChannelSwitch(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fChannelSwitch *pFrm);
6459tANI_U32 dot11fPackChannelSwitch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6460tANI_U32 dot11fGetPackedChannelSwitchSize(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U32 *pnNeeded);
6461
6462#ifdef __cplusplus
6463} /* End extern "C". */
6464#endif /* C++ */
6465
6466typedef struct sDot11fDeAuth{
6467 tDot11fFfReason Reason;
6468 tDot11fIEP2PDeAuth P2PDeAuth;
6469} tDot11fDeAuth;
6470
6471#define DOT11F_DEAUTH ( 13 )
6472
6473#ifdef __cplusplus
6474extern "C" {
6475#endif /* C++ */
6476
6477tANI_U32 dot11fUnpackDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeAuth *pFrm);
6478tANI_U32 dot11fPackDeAuth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6479tANI_U32 dot11fGetPackedDeAuthSize(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U32 *pnNeeded);
6480
6481#ifdef __cplusplus
6482} /* End extern "C". */
6483#endif /* C++ */
6484
6485typedef struct sDot11fDelBAInd{
6486 tDot11fFfCategory Category;
6487 tDot11fFfAction Action;
6488 tDot11fFfDelBAParameterSet DelBAParameterSet;
6489 tDot11fFfReason Reason;
6490} tDot11fDelBAInd;
6491
6492#define DOT11F_DELBAIND ( 14 )
6493
6494#ifdef __cplusplus
6495extern "C" {
6496#endif /* C++ */
6497
6498tANI_U32 dot11fUnpackDelBAInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelBAInd *pFrm);
6499tANI_U32 dot11fPackDelBAInd(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6500tANI_U32 dot11fGetPackedDelBAIndSize(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U32 *pnNeeded);
6501
6502#ifdef __cplusplus
6503} /* End extern "C". */
6504#endif /* C++ */
6505
6506typedef struct sDot11fDelTS{
6507 tDot11fFfCategory Category;
6508 tDot11fFfAction Action;
6509 tDot11fFfTSInfo TSInfo;
6510 tDot11fFfReason Reason;
6511} tDot11fDelTS;
6512
6513#define DOT11F_DELTS ( 15 )
6514
6515#ifdef __cplusplus
6516extern "C" {
6517#endif /* C++ */
6518
6519tANI_U32 dot11fUnpackDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelTS *pFrm);
6520tANI_U32 dot11fPackDelTS(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6521tANI_U32 dot11fGetPackedDelTSSize(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U32 *pnNeeded);
6522
6523#ifdef __cplusplus
6524} /* End extern "C". */
6525#endif /* C++ */
6526
6527typedef struct sDot11fDeviceDiscoverabilityReq{
6528 tDot11fFfCategory Category;
6529 tDot11fFfAction Action;
6530 tDot11fFfP2POUI P2POUI;
6531 tDot11fFfP2POUISubType P2POUISubType;
6532 tDot11fFfDialogToken DialogToken;
6533 tDot11fIEP2PDeviceDiscoverabilityReq P2PDeviceDiscoverabilityReq;
6534} tDot11fDeviceDiscoverabilityReq;
6535
6536#define DOT11F_DEVICEDISCOVERABILITYREQ ( 16 )
6537
6538#ifdef __cplusplus
6539extern "C" {
6540#endif /* C++ */
6541
6542tANI_U32 dot11fUnpackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityReq *pFrm);
6543tANI_U32 dot11fPackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6544tANI_U32 dot11fGetPackedDeviceDiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6545
6546#ifdef __cplusplus
6547} /* End extern "C". */
6548#endif /* C++ */
6549
6550typedef struct sDot11fDeviceDiscoverabilityRes{
6551 tDot11fFfCategory Category;
6552 tDot11fFfAction Action;
6553 tDot11fFfP2POUI P2POUI;
6554 tDot11fFfP2POUISubType P2POUISubType;
6555 tDot11fFfDialogToken DialogToken;
6556 tDot11fIEP2PDeviceDiscoverabilityRes P2PDeviceDiscoverabilityRes;
6557} tDot11fDeviceDiscoverabilityRes;
6558
6559#define DOT11F_DEVICEDISCOVERABILITYRES ( 17 )
6560
6561#ifdef __cplusplus
6562extern "C" {
6563#endif /* C++ */
6564
6565tANI_U32 dot11fUnpackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityRes *pFrm);
6566tANI_U32 dot11fPackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6567tANI_U32 dot11fGetPackedDeviceDiscoverabilityResSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U32 *pnNeeded);
6568
6569#ifdef __cplusplus
6570} /* End extern "C". */
6571#endif /* C++ */
6572
6573typedef struct sDot11fDisassociation{
6574 tDot11fFfReason Reason;
6575 tDot11fIEP2PDisAssoc P2PDisAssoc;
6576} tDot11fDisassociation;
6577
6578#define DOT11F_DISASSOCIATION ( 18 )
6579
6580#ifdef __cplusplus
6581extern "C" {
6582#endif /* C++ */
6583
6584tANI_U32 dot11fUnpackDisassociation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDisassociation *pFrm);
6585tANI_U32 dot11fPackDisassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6586tANI_U32 dot11fGetPackedDisassociationSize(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U32 *pnNeeded);
6587
6588#ifdef __cplusplus
6589} /* End extern "C". */
6590#endif /* C++ */
6591
6592typedef struct sDot11fGODiscoverabilityReq{
6593 tDot11fFfCategory Category;
6594 tDot11fFfP2POUI P2POUI;
6595 tDot11fFfP2POUISubType P2POUISubType;
6596 tDot11fFfDialogToken DialogToken;
6597} tDot11fGODiscoverabilityReq;
6598
6599#define DOT11F_GODISCOVERABILITYREQ ( 19 )
6600
6601#ifdef __cplusplus
6602extern "C" {
6603#endif /* C++ */
6604
6605tANI_U32 dot11fUnpackGODiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGODiscoverabilityReq *pFrm);
6606tANI_U32 dot11fPackGODiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6607tANI_U32 dot11fGetPackedGODiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6608
6609#ifdef __cplusplus
6610} /* End extern "C". */
6611#endif /* C++ */
6612
6613typedef struct sDot11fGONegCnf{
6614 tDot11fFfCategory Category;
6615 tDot11fFfAction Action;
6616 tDot11fFfP2POUI P2POUI;
6617 tDot11fFfP2POUISubType P2POUISubType;
6618 tDot11fFfDialogToken DialogToken;
6619 tDot11fIEP2PGONegCnf P2PGONegCnf;
6620} tDot11fGONegCnf;
6621
6622#define DOT11F_GONEGCNF ( 20 )
6623
6624#ifdef __cplusplus
6625extern "C" {
6626#endif /* C++ */
6627
6628tANI_U32 dot11fUnpackGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegCnf *pFrm);
6629tANI_U32 dot11fPackGONegCnf(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6630tANI_U32 dot11fGetPackedGONegCnfSize(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U32 *pnNeeded);
6631
6632#ifdef __cplusplus
6633} /* End extern "C". */
6634#endif /* C++ */
6635
6636typedef struct sDot11fGONegReq{
6637 tDot11fFfCategory Category;
6638 tDot11fFfAction Action;
6639 tDot11fFfP2POUI P2POUI;
6640 tDot11fFfP2POUISubType P2POUISubType;
6641 tDot11fFfDialogToken DialogToken;
6642 tDot11fIEP2PGONegWPS P2PGONegWPS;
6643 tDot11fIEP2PGONegReq P2PGONegReq;
6644} tDot11fGONegReq;
6645
6646#define DOT11F_GONEGREQ ( 21 )
6647
6648#ifdef __cplusplus
6649extern "C" {
6650#endif /* C++ */
6651
6652tANI_U32 dot11fUnpackGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegReq *pFrm);
6653tANI_U32 dot11fPackGONegReq(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6654tANI_U32 dot11fGetPackedGONegReqSize(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U32 *pnNeeded);
6655
6656#ifdef __cplusplus
6657} /* End extern "C". */
6658#endif /* C++ */
6659
6660typedef struct sDot11fGONegRes{
6661 tDot11fFfCategory Category;
6662 tDot11fFfAction Action;
6663 tDot11fFfP2POUI P2POUI;
6664 tDot11fFfP2POUISubType P2POUISubType;
6665 tDot11fFfDialogToken DialogToken;
6666 tDot11fIEP2PGONegWPS P2PGONegWPS;
6667 tDot11fIEP2PGONegRes P2PGONegRes;
6668} tDot11fGONegRes;
6669
6670#define DOT11F_GONEGRES ( 22 )
6671
6672#ifdef __cplusplus
6673extern "C" {
6674#endif /* C++ */
6675
6676tANI_U32 dot11fUnpackGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegRes *pFrm);
6677tANI_U32 dot11fPackGONegRes(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6678tANI_U32 dot11fGetPackedGONegResSize(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U32 *pnNeeded);
6679
6680#ifdef __cplusplus
6681} /* End extern "C". */
6682#endif /* C++ */
6683
6684typedef struct sDot11fInvitationReq{
6685 tDot11fFfCategory Category;
6686 tDot11fFfAction Action;
6687 tDot11fFfP2POUI P2POUI;
6688 tDot11fFfP2POUISubType P2POUISubType;
6689 tDot11fFfDialogToken DialogToken;
6690 tDot11fIEP2PInvitationReq P2PInvitationReq;
6691} tDot11fInvitationReq;
6692
6693#define DOT11F_INVITATIONREQ ( 23 )
6694
6695#ifdef __cplusplus
6696extern "C" {
6697#endif /* C++ */
6698
6699tANI_U32 dot11fUnpackInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationReq *pFrm);
6700tANI_U32 dot11fPackInvitationReq(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6701tANI_U32 dot11fGetPackedInvitationReqSize(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U32 *pnNeeded);
6702
6703#ifdef __cplusplus
6704} /* End extern "C". */
6705#endif /* C++ */
6706
6707typedef struct sDot11fInvitationRes{
6708 tDot11fFfCategory Category;
6709 tDot11fFfAction Action;
6710 tDot11fFfP2POUI P2POUI;
6711 tDot11fFfP2POUISubType P2POUISubType;
6712 tDot11fFfDialogToken DialogToken;
6713 tDot11fIEP2PInvitationRes P2PInvitationRes;
6714} tDot11fInvitationRes;
6715
6716#define DOT11F_INVITATIONRES ( 24 )
6717
6718#ifdef __cplusplus
6719extern "C" {
6720#endif /* C++ */
6721
6722tANI_U32 dot11fUnpackInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationRes *pFrm);
6723tANI_U32 dot11fPackInvitationRes(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6724tANI_U32 dot11fGetPackedInvitationResSize(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U32 *pnNeeded);
6725
6726#ifdef __cplusplus
6727} /* End extern "C". */
6728#endif /* C++ */
6729
6730typedef struct sDot11fLinkMeasurementReport{
6731 tDot11fFfCategory Category;
6732 tDot11fFfAction Action;
6733 tDot11fFfDialogToken DialogToken;
6734 tDot11fFfTPCEleID TPCEleID;
6735 tDot11fFfTPCEleLen TPCEleLen;
6736 tDot11fFfTxPower TxPower;
6737 tDot11fFfLinkMargin LinkMargin;
6738 tDot11fFfRxAntennaId RxAntennaId;
6739 tDot11fFfTxAntennaId TxAntennaId;
6740 tDot11fFfRCPI RCPI;
6741 tDot11fFfRSNI RSNI;
6742} tDot11fLinkMeasurementReport;
6743
6744#define DOT11F_LINKMEASUREMENTREPORT ( 25 )
6745
6746#ifdef __cplusplus
6747extern "C" {
6748#endif /* C++ */
6749
6750tANI_U32 dot11fUnpackLinkMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementReport *pFrm);
6751tANI_U32 dot11fPackLinkMeasurementReport(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6752tANI_U32 dot11fGetPackedLinkMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6753
6754#ifdef __cplusplus
6755} /* End extern "C". */
6756#endif /* C++ */
6757
6758typedef struct sDot11fLinkMeasurementRequest{
6759 tDot11fFfCategory Category;
6760 tDot11fFfAction Action;
6761 tDot11fFfDialogToken DialogToken;
6762 tDot11fFfTxPower TxPower;
6763 tDot11fFfMaxTxPower MaxTxPower;
6764} tDot11fLinkMeasurementRequest;
6765
6766#define DOT11F_LINKMEASUREMENTREQUEST ( 26 )
6767
6768#ifdef __cplusplus
6769extern "C" {
6770#endif /* C++ */
6771
6772tANI_U32 dot11fUnpackLinkMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementRequest *pFrm);
6773tANI_U32 dot11fPackLinkMeasurementRequest(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6774tANI_U32 dot11fGetPackedLinkMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6775
6776#ifdef __cplusplus
6777} /* End extern "C". */
6778#endif /* C++ */
6779
6780typedef struct sDot11fMeasurementReport{
6781 tDot11fFfCategory Category;
6782 tDot11fFfAction Action;
6783 tDot11fFfDialogToken DialogToken;
6784 tDot11fIEMeasurementReport MeasurementReport;
6785} tDot11fMeasurementReport;
6786
6787#define DOT11F_MEASUREMENTREPORT ( 27 )
6788
6789#ifdef __cplusplus
6790extern "C" {
6791#endif /* C++ */
6792
6793tANI_U32 dot11fUnpackMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementReport *pFrm);
6794tANI_U32 dot11fPackMeasurementReport(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6795tANI_U32 dot11fGetPackedMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6796
6797#ifdef __cplusplus
6798} /* End extern "C". */
6799#endif /* C++ */
6800
6801typedef struct sDot11fMeasurementRequest{
6802 tDot11fFfCategory Category;
6803 tDot11fFfAction Action;
6804 tDot11fFfDialogToken DialogToken;
6805 tANI_U16 num_MeasurementRequest;
6806 tDot11fIEMeasurementRequest MeasurementRequest[4];
6807} tDot11fMeasurementRequest;
6808
6809#define DOT11F_MEASUREMENTREQUEST ( 28 )
6810
6811#ifdef __cplusplus
6812extern "C" {
6813#endif /* C++ */
6814
6815tANI_U32 dot11fUnpackMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementRequest *pFrm);
6816tANI_U32 dot11fPackMeasurementRequest(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6817tANI_U32 dot11fGetPackedMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6818
6819#ifdef __cplusplus
6820} /* End extern "C". */
6821#endif /* C++ */
6822
6823typedef struct sDot11fNeighborReportRequest{
6824 tDot11fFfCategory Category;
6825 tDot11fFfAction Action;
6826 tDot11fFfDialogToken DialogToken;
6827 tDot11fIESSID SSID;
6828} tDot11fNeighborReportRequest;
6829
6830#define DOT11F_NEIGHBORREPORTREQUEST ( 29 )
6831
6832#ifdef __cplusplus
6833extern "C" {
6834#endif /* C++ */
6835
6836tANI_U32 dot11fUnpackNeighborReportRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportRequest *pFrm);
6837tANI_U32 dot11fPackNeighborReportRequest(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6838tANI_U32 dot11fGetPackedNeighborReportRequestSize(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U32 *pnNeeded);
6839
6840#ifdef __cplusplus
6841} /* End extern "C". */
6842#endif /* C++ */
6843
6844typedef struct sDot11fNeighborReportResponse{
6845 tDot11fFfCategory Category;
6846 tDot11fFfAction Action;
6847 tDot11fFfDialogToken DialogToken;
6848 tANI_U16 num_NeighborReport;
6849 tDot11fIENeighborReport NeighborReport[4];
6850} tDot11fNeighborReportResponse;
6851
6852#define DOT11F_NEIGHBORREPORTRESPONSE ( 30 )
6853
6854#ifdef __cplusplus
6855extern "C" {
6856#endif /* C++ */
6857
6858tANI_U32 dot11fUnpackNeighborReportResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportResponse *pFrm);
6859tANI_U32 dot11fPackNeighborReportResponse(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6860tANI_U32 dot11fGetPackedNeighborReportResponseSize(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U32 *pnNeeded);
6861
6862#ifdef __cplusplus
6863} /* End extern "C". */
6864#endif /* C++ */
6865
6866typedef struct sDot11fNoticeOfAbs{
6867 tDot11fFfCategory Category;
6868 tDot11fFfP2POUI P2POUI;
6869 tDot11fFfP2POUISubType P2POUISubType;
6870 tDot11fFfDialogToken DialogToken;
6871 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6872} tDot11fNoticeOfAbs;
6873
6874#define DOT11F_NOTICEOFABS ( 31 )
6875
6876#ifdef __cplusplus
6877extern "C" {
6878#endif /* C++ */
6879
6880tANI_U32 dot11fUnpackNoticeOfAbs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNoticeOfAbs *pFrm);
6881tANI_U32 dot11fPackNoticeOfAbs(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6882tANI_U32 dot11fGetPackedNoticeOfAbsSize(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U32 *pnNeeded);
6883
6884#ifdef __cplusplus
6885} /* End extern "C". */
6886#endif /* C++ */
6887
Mohit Khanna4a70d262012-09-11 16:30:12 -07006888typedef struct sDot11fOperatingMode{
6889 tDot11fFfCategory Category;
6890 tDot11fFfAction Action;
6891 tDot11fFfOperatingMode OperatingMode;
6892} tDot11fOperatingMode;
6893
6894#define DOT11F_OPERATINGMODE ( 32 )
6895
6896#ifdef __cplusplus
6897extern "C" {
6898#endif /* C++ */
6899
6900tANI_U32 dot11fUnpackOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fOperatingMode *pFrm);
6901tANI_U32 dot11fPackOperatingMode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6902tANI_U32 dot11fGetPackedOperatingModeSize(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U32 *pnNeeded);
6903
6904#ifdef __cplusplus
6905} /* End extern "C". */
6906#endif /* C++ */
6907
Jeff Johnson295189b2012-06-20 16:38:30 -07006908typedef struct sDot11fPresenceReq{
6909 tDot11fFfCategory Category;
6910 tDot11fFfP2POUI P2POUI;
6911 tDot11fFfP2POUISubType P2POUISubType;
6912 tDot11fFfDialogToken DialogToken;
6913 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
6914} tDot11fPresenceReq;
6915
Mohit Khanna4a70d262012-09-11 16:30:12 -07006916#define DOT11F_PRESENCEREQ ( 33 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006917
6918#ifdef __cplusplus
6919extern "C" {
6920#endif /* C++ */
6921
6922tANI_U32 dot11fUnpackPresenceReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceReq *pFrm);
6923tANI_U32 dot11fPackPresenceReq(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6924tANI_U32 dot11fGetPackedPresenceReqSize(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U32 *pnNeeded);
6925
6926#ifdef __cplusplus
6927} /* End extern "C". */
6928#endif /* C++ */
6929
6930typedef struct sDot11fPresenceRes{
6931 tDot11fFfCategory Category;
6932 tDot11fFfP2POUI P2POUI;
6933 tDot11fFfP2POUISubType P2POUISubType;
6934 tDot11fFfDialogToken DialogToken;
6935 tDot11fIEP2PPresenceResponse P2PPresenceResponse;
6936} tDot11fPresenceRes;
6937
Mohit Khanna4a70d262012-09-11 16:30:12 -07006938#define DOT11F_PRESENCERES ( 34 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006939
6940#ifdef __cplusplus
6941extern "C" {
6942#endif /* C++ */
6943
6944tANI_U32 dot11fUnpackPresenceRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceRes *pFrm);
6945tANI_U32 dot11fPackPresenceRes(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6946tANI_U32 dot11fGetPackedPresenceResSize(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U32 *pnNeeded);
6947
6948#ifdef __cplusplus
6949} /* End extern "C". */
6950#endif /* C++ */
6951
6952typedef struct sDot11fProbeRequest{
6953 tDot11fIESSID SSID;
6954 tDot11fIESuppRates SuppRates;
6955 tDot11fIERequestedInfo RequestedInfo;
6956 tDot11fIEExtSuppRates ExtSuppRates;
6957 tDot11fIEDSParams DSParams;
6958 tDot11fIEHTCaps HTCaps;
6959 tDot11fIEWscProbeReq WscProbeReq;
6960 tDot11fIEWFATPC WFATPC;
6961 tDot11fIEP2PProbeReq P2PProbeReq;
Jeff Johnsone7245742012-09-05 17:12:55 -07006962 tDot11fIEVHTCaps VHTCaps;
Jeff Johnson295189b2012-06-20 16:38:30 -07006963} tDot11fProbeRequest;
6964
Mohit Khanna4a70d262012-09-11 16:30:12 -07006965#define DOT11F_PROBEREQUEST ( 35 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006966
6967#ifdef __cplusplus
6968extern "C" {
6969#endif /* C++ */
6970
6971tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeRequest *pFrm);
6972tANI_U32 dot11fPackProbeRequest(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6973tANI_U32 dot11fGetPackedProbeRequestSize(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U32 *pnNeeded);
6974
6975#ifdef __cplusplus
6976} /* End extern "C". */
6977#endif /* C++ */
6978
6979typedef struct sDot11fProbeResponse{
6980 tDot11fFfTimeStamp TimeStamp;
6981 tDot11fFfBeaconInterval BeaconInterval;
6982 tDot11fFfCapabilities Capabilities;
6983 tDot11fIESSID SSID;
6984 tDot11fIESuppRates SuppRates;
6985 tDot11fIEFHParamSet FHParamSet;
6986 tDot11fIEDSParams DSParams;
6987 tDot11fIECFParams CFParams;
6988 tDot11fIEIBSSParams IBSSParams;
6989 tDot11fIECountry Country;
6990 tDot11fIEFHParams FHParams;
6991 tDot11fIEFHPattTable FHPattTable;
6992 tDot11fIEPowerConstraints PowerConstraints;
6993 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6994 tDot11fIEQuiet Quiet;
6995 tDot11fIETPCReport TPCReport;
6996 tDot11fIEERPInfo ERPInfo;
6997 tDot11fIEExtSuppRates ExtSuppRates;
6998 tDot11fIERSN RSN;
6999 tDot11fIEQBSSLoad QBSSLoad;
7000 tDot11fIEEDCAParamSet EDCAParamSet;
7001 tDot11fIERRMEnabledCap RRMEnabledCap;
7002 tDot11fIEAPChannelReport APChannelReport;
7003 tDot11fIEMobilityDomain MobilityDomain;
7004 tDot11fIEWPA WPA;
7005 tDot11fIEHTCaps HTCaps;
7006 tDot11fIEHTInfo HTInfo;
7007 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
7008 tDot11fIEWMMInfoAp WMMInfoAp;
7009 tDot11fIEWMMParams WMMParams;
7010 tDot11fIEWMMCaps WMMCaps;
7011 tDot11fIEWAPI WAPI;
7012 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7013 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7014 tDot11fIECCXTxmitPower CCXTxmitPower;
7015 tDot11fIEAirgo Airgo;
7016 tDot11fIEWscProbeRes WscProbeRes;
7017 tDot11fIEP2PProbeRes P2PProbeRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007018 tDot11fIEVHTCaps VHTCaps;
7019 tDot11fIEVHTOperation VHTOperation;
7020 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007021 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07007022} tDot11fProbeResponse;
7023
Mohit Khanna4a70d262012-09-11 16:30:12 -07007024#define DOT11F_PROBERESPONSE ( 36 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007025
7026#ifdef __cplusplus
7027extern "C" {
7028#endif /* C++ */
7029
7030tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeResponse *pFrm);
7031tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7032tANI_U32 dot11fGetPackedProbeResponseSize(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U32 *pnNeeded);
7033
7034#ifdef __cplusplus
7035} /* End extern "C". */
7036#endif /* C++ */
7037
7038typedef struct sDot11fProvisionDiscoveryReq{
7039 tDot11fFfCategory Category;
7040 tDot11fFfAction Action;
7041 tDot11fFfP2POUI P2POUI;
7042 tDot11fFfP2POUISubType P2POUISubType;
7043 tDot11fFfDialogToken DialogToken;
7044 tDot11fIEP2PProvisionDiscoveryReq P2PProvisionDiscoveryReq;
7045} tDot11fProvisionDiscoveryReq;
7046
Mohit Khanna4a70d262012-09-11 16:30:12 -07007047#define DOT11F_PROVISIONDISCOVERYREQ ( 37 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007048
7049#ifdef __cplusplus
7050extern "C" {
7051#endif /* C++ */
7052
7053tANI_U32 dot11fUnpackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryReq *pFrm);
7054tANI_U32 dot11fPackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7055tANI_U32 dot11fGetPackedProvisionDiscoveryReqSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U32 *pnNeeded);
7056
7057#ifdef __cplusplus
7058} /* End extern "C". */
7059#endif /* C++ */
7060
7061typedef struct sDot11fProvisionDiscoveryRes{
7062 tDot11fFfCategory Category;
7063 tDot11fFfAction Action;
7064 tDot11fFfP2POUI P2POUI;
7065 tDot11fFfP2POUISubType P2POUISubType;
7066 tDot11fFfDialogToken DialogToken;
7067 tDot11fIEP2PWSCProvisionDiscoveryRes P2PWSCProvisionDiscoveryRes;
7068} tDot11fProvisionDiscoveryRes;
7069
Mohit Khanna4a70d262012-09-11 16:30:12 -07007070#define DOT11F_PROVISIONDISCOVERYRES ( 38 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007071
7072#ifdef __cplusplus
7073extern "C" {
7074#endif /* C++ */
7075
7076tANI_U32 dot11fUnpackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryRes *pFrm);
7077tANI_U32 dot11fPackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7078tANI_U32 dot11fGetPackedProvisionDiscoveryResSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U32 *pnNeeded);
7079
7080#ifdef __cplusplus
7081} /* End extern "C". */
7082#endif /* C++ */
7083
7084typedef struct sDot11fRadioMeasurementReport{
7085 tDot11fFfCategory Category;
7086 tDot11fFfAction Action;
7087 tDot11fFfDialogToken DialogToken;
7088 tANI_U16 num_MeasurementReport;
7089 tDot11fIEMeasurementReport MeasurementReport[4];
7090} tDot11fRadioMeasurementReport;
7091
Mohit Khanna4a70d262012-09-11 16:30:12 -07007092#define DOT11F_RADIOMEASUREMENTREPORT ( 39 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007093
7094#ifdef __cplusplus
7095extern "C" {
7096#endif /* C++ */
7097
7098tANI_U32 dot11fUnpackRadioMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementReport *pFrm);
7099tANI_U32 dot11fPackRadioMeasurementReport(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7100tANI_U32 dot11fGetPackedRadioMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U32 *pnNeeded);
7101
7102#ifdef __cplusplus
7103} /* End extern "C". */
7104#endif /* C++ */
7105
7106typedef struct sDot11fRadioMeasurementRequest{
7107 tDot11fFfCategory Category;
7108 tDot11fFfAction Action;
7109 tDot11fFfDialogToken DialogToken;
7110 tDot11fFfNumOfRepetitions NumOfRepetitions;
7111 tANI_U16 num_MeasurementRequest;
7112 tDot11fIEMeasurementRequest MeasurementRequest[2];
7113} tDot11fRadioMeasurementRequest;
7114
Mohit Khanna4a70d262012-09-11 16:30:12 -07007115#define DOT11F_RADIOMEASUREMENTREQUEST ( 40 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007116
7117#ifdef __cplusplus
7118extern "C" {
7119#endif /* C++ */
7120
7121tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementRequest *pFrm);
7122tANI_U32 dot11fPackRadioMeasurementRequest(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7123tANI_U32 dot11fGetPackedRadioMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
7124
7125#ifdef __cplusplus
7126} /* End extern "C". */
7127#endif /* C++ */
7128
7129typedef struct sDot11fReAssocRequest{
7130 tDot11fFfCapabilities Capabilities;
7131 tDot11fFfListenInterval ListenInterval;
7132 tDot11fFfCurrentAPAddress CurrentAPAddress;
7133 tDot11fIESSID SSID;
7134 tDot11fIESuppRates SuppRates;
7135 tDot11fIEExtSuppRates ExtSuppRates;
7136 tDot11fIEPowerCaps PowerCaps;
7137 tDot11fIESuppChannels SuppChannels;
7138 tDot11fIERSNOpaque RSNOpaque;
7139 tDot11fIEQOSCapsStation QOSCapsStation;
7140 tDot11fIERRMEnabledCap RRMEnabledCap;
7141 tDot11fIEMobilityDomain MobilityDomain;
7142 tDot11fIEFTInfo FTInfo;
7143 tANI_U16 num_RICDataDesc;
7144 tDot11fIERICDataDesc RICDataDesc[2];
7145 tDot11fIEWPAOpaque WPAOpaque;
7146 tDot11fIEHTCaps HTCaps;
7147 tDot11fIEWMMCaps WMMCaps;
7148 tDot11fIEWMMInfoStation WMMInfoStation;
7149 tDot11fIEAirgo Airgo;
7150 tDot11fIEWscIEOpaque WscIEOpaque;
7151 tDot11fIEWAPIOpaque WAPIOpaque;
7152 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7153 tDot11fIECCXVersion CCXVersion;
7154 tDot11fIECCXCckmOpaque CCXCckmOpaque;
7155 tANI_U16 num_WMMTSPEC;
7156 tDot11fIEWMMTSPEC WMMTSPEC[4];
7157 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7158 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07007159 tDot11fIEWFDIEOpaque WFDIEOpaque;
7160 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007161 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07007162 tDot11fIEOperatingMode OperatingMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07007163} tDot11fReAssocRequest;
7164
Mohit Khanna4a70d262012-09-11 16:30:12 -07007165#define DOT11F_REASSOCREQUEST ( 41 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007166
7167#ifdef __cplusplus
7168extern "C" {
7169#endif /* C++ */
7170
7171tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm);
7172tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7173tANI_U32 dot11fGetPackedReAssocRequestSize(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U32 *pnNeeded);
7174
7175#ifdef __cplusplus
7176} /* End extern "C". */
7177#endif /* C++ */
7178
7179typedef struct sDot11fReAssocResponse{
7180 tDot11fFfCapabilities Capabilities;
7181 tDot11fFfStatus Status;
7182 tDot11fFfAID AID;
7183 tDot11fIESuppRates SuppRates;
7184 tDot11fIEExtSuppRates ExtSuppRates;
7185 tDot11fIEEDCAParamSet EDCAParamSet;
7186 tDot11fIERCPIIE RCPIIE;
7187 tDot11fIERSNIIE RSNIIE;
7188 tDot11fIERRMEnabledCap RRMEnabledCap;
7189 tDot11fIERSNOpaque RSNOpaque;
7190 tDot11fIEMobilityDomain MobilityDomain;
7191 tDot11fIEFTInfo FTInfo;
7192 tANI_U16 num_RICDataDesc;
7193 tDot11fIERICDataDesc RICDataDesc[2];
7194 tDot11fIEWPA WPA;
7195 tDot11fIEHTCaps HTCaps;
7196 tDot11fIEHTInfo HTInfo;
7197 tDot11fIEWMMParams WMMParams;
7198 tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
7199 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7200 tDot11fIECCXTxmitPower CCXTxmitPower;
7201 tANI_U16 num_WMMTSPEC;
7202 tDot11fIEWMMTSPEC WMMTSPEC[4];
7203 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7204 tDot11fIEAirgo Airgo;
7205 tDot11fIEWscReassocRes WscReassocRes;
7206 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007207 tDot11fIEVHTCaps VHTCaps;
7208 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007209 tDot11fIEExtCap ExtCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07007210} tDot11fReAssocResponse;
7211
Mohit Khanna4a70d262012-09-11 16:30:12 -07007212#define DOT11F_REASSOCRESPONSE ( 42 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007213
7214#ifdef __cplusplus
7215extern "C" {
7216#endif /* C++ */
7217
7218tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm);
7219tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7220tANI_U32 dot11fGetPackedReAssocResponseSize(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U32 *pnNeeded);
7221
7222#ifdef __cplusplus
7223} /* End extern "C". */
7224#endif /* C++ */
7225
7226typedef struct sDot11fSMPowerSave{
7227 tDot11fFfCategory Category;
7228 tDot11fFfAction Action;
7229 tDot11fFfSMPowerModeSet SMPowerModeSet;
7230} tDot11fSMPowerSave;
7231
Mohit Khanna4a70d262012-09-11 16:30:12 -07007232#define DOT11F_SMPOWERSAVE ( 43 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007233
7234#ifdef __cplusplus
7235extern "C" {
7236#endif /* C++ */
7237
7238tANI_U32 dot11fUnpackSMPowerSave(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSMPowerSave *pFrm);
7239tANI_U32 dot11fPackSMPowerSave(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7240tANI_U32 dot11fGetPackedSMPowerSaveSize(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U32 *pnNeeded);
7241
7242#ifdef __cplusplus
7243} /* End extern "C". */
7244#endif /* C++ */
7245
Chet Lanctot186b5732013-03-18 10:26:30 -07007246typedef struct sDot11fSaQueryRsp{
7247 tDot11fFfCategory Category;
7248 tDot11fFfAction Action;
7249 tDot11fFfTransactionId TransactionId;
7250} tDot11fSaQueryRsp;
7251
7252#define DOT11F_SAQUERYRSP ( 44 )
7253
7254#ifdef __cplusplus
7255extern "C" {
7256#endif /* C++ */
7257
7258tANI_U32 dot11fUnpackSaQueryRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryRsp *pFrm);
7259tANI_U32 dot11fPackSaQueryRsp(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7260tANI_U32 dot11fGetPackedSaQueryRspSize(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U32 *pnNeeded);
7261
7262#ifdef __cplusplus
7263} /* End extern "C". */
7264#endif /* C++ */
7265
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007266typedef struct sDot11fTDLSDisReq{
7267 tDot11fFfCategory Category;
7268 tDot11fFfAction Action;
7269 tDot11fFfDialogToken DialogToken;
7270 tDot11fIELinkIdentifier LinkIdentifier;
7271} tDot11fTDLSDisReq;
7272
Chet Lanctot186b5732013-03-18 10:26:30 -07007273#define DOT11F_TDLSDISREQ ( 45 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007274
7275#ifdef __cplusplus
7276extern "C" {
7277#endif /* C++ */
7278
7279tANI_U32 dot11fUnpackTDLSDisReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisReq *pFrm);
7280tANI_U32 dot11fPackTDLSDisReq(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7281tANI_U32 dot11fGetPackedTDLSDisReqSize(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U32 *pnNeeded);
7282
7283#ifdef __cplusplus
7284} /* End extern "C". */
7285#endif /* C++ */
7286
7287typedef struct sDot11fTDLSDisRsp{
7288 tDot11fFfCategory Category;
7289 tDot11fFfAction Action;
7290 tDot11fFfDialogToken DialogToken;
7291 tDot11fFfCapabilities Capabilities;
7292 tDot11fIESuppRates SuppRates;
7293 tDot11fIEExtSuppRates ExtSuppRates;
7294 tDot11fIESuppChannels SuppChannels;
7295 tDot11fIERSN RSN;
7296 tDot11fIEExtCap ExtCap;
7297 tDot11fIEFTInfo FTInfo;
7298 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7299 tDot11fIERICData RICData;
7300 tDot11fIEHTCaps HTCaps;
7301 tDot11fIELinkIdentifier LinkIdentifier;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007302 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007303} tDot11fTDLSDisRsp;
7304
Chet Lanctot186b5732013-03-18 10:26:30 -07007305#define DOT11F_TDLSDISRSP ( 46 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007306
7307#ifdef __cplusplus
7308extern "C" {
7309#endif /* C++ */
7310
7311tANI_U32 dot11fUnpackTDLSDisRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisRsp *pFrm);
7312tANI_U32 dot11fPackTDLSDisRsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7313tANI_U32 dot11fGetPackedTDLSDisRspSize(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U32 *pnNeeded);
7314
7315#ifdef __cplusplus
7316} /* End extern "C". */
7317#endif /* C++ */
7318
7319typedef struct sDot11fTDLSPeerTrafficInd{
7320 tDot11fFfCategory Category;
7321 tDot11fFfAction Action;
7322 tDot11fFfDialogToken DialogToken;
7323 tDot11fIELinkIdentifier LinkIdentifier;
7324 tDot11fIEPTIControl PTIControl;
7325 tDot11fIEPUBufferStatus PUBufferStatus;
7326} tDot11fTDLSPeerTrafficInd;
7327
Chet Lanctot186b5732013-03-18 10:26:30 -07007328#define DOT11F_TDLSPEERTRAFFICIND ( 47 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007329
7330#ifdef __cplusplus
7331extern "C" {
7332#endif /* C++ */
7333
7334tANI_U32 dot11fUnpackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficInd *pFrm);
7335tANI_U32 dot11fPackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7336tANI_U32 dot11fGetPackedTDLSPeerTrafficIndSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U32 *pnNeeded);
7337
7338#ifdef __cplusplus
7339} /* End extern "C". */
7340#endif /* C++ */
7341
7342typedef struct sDot11fTDLSPeerTrafficRsp{
7343 tDot11fFfCategory Category;
7344 tDot11fFfAction Action;
7345 tDot11fFfDialogToken DialogToken;
7346 tDot11fIELinkIdentifier LinkIdentifier;
7347} tDot11fTDLSPeerTrafficRsp;
7348
Chet Lanctot186b5732013-03-18 10:26:30 -07007349#define DOT11F_TDLSPEERTRAFFICRSP ( 48 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007350
7351#ifdef __cplusplus
7352extern "C" {
7353#endif /* C++ */
7354
7355tANI_U32 dot11fUnpackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficRsp *pFrm);
7356tANI_U32 dot11fPackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7357tANI_U32 dot11fGetPackedTDLSPeerTrafficRspSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U32 *pnNeeded);
7358
7359#ifdef __cplusplus
7360} /* End extern "C". */
7361#endif /* C++ */
7362
7363typedef struct sDot11fTDLSSetupCnf{
7364 tDot11fFfCategory Category;
7365 tDot11fFfAction Action;
7366 tDot11fFfStatus Status;
7367 tDot11fFfDialogToken DialogToken;
7368 tDot11fIERSN RSN;
7369 tDot11fIEEDCAParamSet EDCAParamSet;
7370 tDot11fIEFTInfo FTInfo;
7371 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7372 tDot11fIEHTInfo HTInfo;
7373 tDot11fIELinkIdentifier LinkIdentifier;
7374 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007375 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007376} tDot11fTDLSSetupCnf;
7377
Chet Lanctot186b5732013-03-18 10:26:30 -07007378#define DOT11F_TDLSSETUPCNF ( 49 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007379
7380#ifdef __cplusplus
7381extern "C" {
7382#endif /* C++ */
7383
7384tANI_U32 dot11fUnpackTDLSSetupCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupCnf *pFrm);
7385tANI_U32 dot11fPackTDLSSetupCnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7386tANI_U32 dot11fGetPackedTDLSSetupCnfSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U32 *pnNeeded);
7387
7388#ifdef __cplusplus
7389} /* End extern "C". */
7390#endif /* C++ */
7391
7392typedef struct sDot11fTDLSSetupReq{
7393 tDot11fFfCategory Category;
7394 tDot11fFfAction Action;
7395 tDot11fFfDialogToken DialogToken;
7396 tDot11fFfCapabilities Capabilities;
7397 tDot11fIESuppRates SuppRates;
7398 tDot11fIECountry Country;
7399 tDot11fIEExtSuppRates ExtSuppRates;
7400 tDot11fIESuppChannels SuppChannels;
7401 tDot11fIERSN RSN;
7402 tDot11fIEExtCap ExtCap;
7403 tDot11fIEQOSCapsStation QOSCapsStation;
7404 tDot11fIEFTInfo FTInfo;
7405 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7406 tDot11fIERICData RICData;
7407 tDot11fIEHTCaps HTCaps;
7408 tDot11fIELinkIdentifier LinkIdentifier;
7409 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007410 tDot11fIEAID AID;
7411 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007412} tDot11fTDLSSetupReq;
7413
Chet Lanctot186b5732013-03-18 10:26:30 -07007414#define DOT11F_TDLSSETUPREQ ( 50 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007415
7416#ifdef __cplusplus
7417extern "C" {
7418#endif /* C++ */
7419
7420tANI_U32 dot11fUnpackTDLSSetupReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupReq *pFrm);
7421tANI_U32 dot11fPackTDLSSetupReq(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7422tANI_U32 dot11fGetPackedTDLSSetupReqSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U32 *pnNeeded);
7423
7424#ifdef __cplusplus
7425} /* End extern "C". */
7426#endif /* C++ */
7427
7428typedef struct sDot11fTDLSSetupRsp{
7429 tDot11fFfCategory Category;
7430 tDot11fFfAction Action;
7431 tDot11fFfStatus Status;
7432 tDot11fFfDialogToken DialogToken;
7433 tDot11fFfCapabilities Capabilities;
7434 tDot11fIESuppRates SuppRates;
7435 tDot11fIECountry Country;
7436 tDot11fIEExtSuppRates ExtSuppRates;
7437 tDot11fIESuppChannels SuppChannels;
7438 tDot11fIERSN RSN;
7439 tDot11fIEExtCap ExtCap;
7440 tDot11fIEQOSCapsStation QOSCapsStation;
7441 tDot11fIEFTInfo FTInfo;
7442 tDot11fIEFTTimeoutInterval FTTimeoutInterval;
7443 tDot11fIERICData RICData;
7444 tDot11fIEHTCaps HTCaps;
7445 tDot11fIELinkIdentifier LinkIdentifier;
7446 tDot11fIEWMMInfoStation WMMInfoStation;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08007447 tDot11fIEAID AID;
7448 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007449} tDot11fTDLSSetupRsp;
7450
Chet Lanctot186b5732013-03-18 10:26:30 -07007451#define DOT11F_TDLSSETUPRSP ( 51 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007452
7453#ifdef __cplusplus
7454extern "C" {
7455#endif /* C++ */
7456
7457tANI_U32 dot11fUnpackTDLSSetupRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupRsp *pFrm);
7458tANI_U32 dot11fPackTDLSSetupRsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7459tANI_U32 dot11fGetPackedTDLSSetupRspSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U32 *pnNeeded);
7460
7461#ifdef __cplusplus
7462} /* End extern "C". */
7463#endif /* C++ */
7464
7465typedef struct sDot11fTDLSTeardown{
7466 tDot11fFfCategory Category;
7467 tDot11fFfAction Action;
7468 tDot11fFfReason Reason;
7469 tDot11fIEFTInfo FTInfo;
7470 tDot11fIELinkIdentifier LinkIdentifier;
7471} tDot11fTDLSTeardown;
7472
Chet Lanctot186b5732013-03-18 10:26:30 -07007473#define DOT11F_TDLSTEARDOWN ( 52 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007474
7475#ifdef __cplusplus
7476extern "C" {
7477#endif /* C++ */
7478
7479tANI_U32 dot11fUnpackTDLSTeardown(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSTeardown *pFrm);
7480tANI_U32 dot11fPackTDLSTeardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7481tANI_U32 dot11fGetPackedTDLSTeardownSize(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U32 *pnNeeded);
7482
7483#ifdef __cplusplus
7484} /* End extern "C". */
7485#endif /* C++ */
7486
Jeff Johnson295189b2012-06-20 16:38:30 -07007487typedef struct sDot11fTPCReport{
7488 tDot11fFfCategory Category;
7489 tDot11fFfAction Action;
7490 tDot11fFfDialogToken DialogToken;
7491 tDot11fIETPCReport TPCReport;
7492} tDot11fTPCReport;
7493
Chet Lanctot186b5732013-03-18 10:26:30 -07007494#define DOT11F_TPCREPORT ( 53 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007495
7496#ifdef __cplusplus
7497extern "C" {
7498#endif /* C++ */
7499
7500tANI_U32 dot11fUnpackTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCReport *pFrm);
7501tANI_U32 dot11fPackTPCReport(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7502tANI_U32 dot11fGetPackedTPCReportSize(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U32 *pnNeeded);
7503
7504#ifdef __cplusplus
7505} /* End extern "C". */
7506#endif /* C++ */
7507
7508typedef struct sDot11fTPCRequest{
7509 tDot11fFfCategory Category;
7510 tDot11fFfAction Action;
7511 tDot11fFfDialogToken DialogToken;
7512 tDot11fIETPCRequest TPCRequest;
7513} tDot11fTPCRequest;
7514
Chet Lanctot186b5732013-03-18 10:26:30 -07007515#define DOT11F_TPCREQUEST ( 54 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007516
7517#ifdef __cplusplus
7518extern "C" {
7519#endif /* C++ */
7520
7521tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCRequest *pFrm);
7522tANI_U32 dot11fPackTPCRequest(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7523tANI_U32 dot11fGetPackedTPCRequestSize(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U32 *pnNeeded);
7524
7525#ifdef __cplusplus
7526} /* End extern "C". */
7527#endif /* C++ */
7528
7529typedef struct sDot11fWMMAddTSRequest{
7530 tDot11fFfCategory Category;
7531 tDot11fFfAction Action;
7532 tDot11fFfDialogToken DialogToken;
7533 tDot11fFfStatusCode StatusCode;
7534 tDot11fIEWMMTSPEC WMMTSPEC;
7535 tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
7536} tDot11fWMMAddTSRequest;
7537
Chet Lanctot186b5732013-03-18 10:26:30 -07007538#define DOT11F_WMMADDTSREQUEST ( 55 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007539
7540#ifdef __cplusplus
7541extern "C" {
7542#endif /* C++ */
7543
7544tANI_U32 dot11fUnpackWMMAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSRequest *pFrm);
7545tANI_U32 dot11fPackWMMAddTSRequest(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7546tANI_U32 dot11fGetPackedWMMAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U32 *pnNeeded);
7547
7548#ifdef __cplusplus
7549} /* End extern "C". */
7550#endif /* C++ */
7551
7552typedef struct sDot11fWMMAddTSResponse{
7553 tDot11fFfCategory Category;
7554 tDot11fFfAction Action;
7555 tDot11fFfDialogToken DialogToken;
7556 tDot11fFfStatusCode StatusCode;
7557 tDot11fIEWMMTSPEC WMMTSPEC;
7558 tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
7559} tDot11fWMMAddTSResponse;
7560
Chet Lanctot186b5732013-03-18 10:26:30 -07007561#define DOT11F_WMMADDTSRESPONSE ( 56 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007562
7563#ifdef __cplusplus
7564extern "C" {
7565#endif /* C++ */
7566
7567tANI_U32 dot11fUnpackWMMAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSResponse *pFrm);
7568tANI_U32 dot11fPackWMMAddTSResponse(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7569tANI_U32 dot11fGetPackedWMMAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U32 *pnNeeded);
7570
7571#ifdef __cplusplus
7572} /* End extern "C". */
7573#endif /* C++ */
7574
7575typedef struct sDot11fWMMDelTS{
7576 tDot11fFfCategory Category;
7577 tDot11fFfAction Action;
7578 tDot11fFfDialogToken DialogToken;
7579 tDot11fFfStatusCode StatusCode;
7580 tDot11fIEWMMTSPEC WMMTSPEC;
7581} tDot11fWMMDelTS;
7582
Chet Lanctot186b5732013-03-18 10:26:30 -07007583#define DOT11F_WMMDELTS ( 57 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007584
7585#ifdef __cplusplus
7586extern "C" {
7587#endif /* C++ */
7588
7589tANI_U32 dot11fUnpackWMMDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMDelTS *pFrm);
7590tANI_U32 dot11fPackWMMDelTS(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7591tANI_U32 dot11fGetPackedWMMDelTSSize(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U32 *pnNeeded);
7592
7593#ifdef __cplusplus
7594} /* End extern "C". */
7595#endif /* C++ */
7596
7597#endif /* DOT11F_H */