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