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