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