blob: 315066f410f05e38e8e7c9951535619d2c7aad36 [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
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +053022/**
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'
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +053040 * Mon Nov 10 18:31:12 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++ */
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05303760// EID 72 (0x48)
3761typedef struct sDot11fIEHT2040BSSCoexistence {
3762 tANI_U8 present;
3763 tANI_U8 infoRequest: 1;
3764 tANI_U8 fortyMHzIntolerant: 1;
3765 tANI_U8 twentyMHzBssWidthReq: 1;
3766 tANI_U8 obssScanExemptionReq: 1;
3767 tANI_U8 obssScanExemptionGrant: 1;
3768 tANI_U8 unused: 3;
3769} tDot11fIEHT2040BSSCoexistence;
3770
3771#define DOT11F_EID_HT2040BSSCOEXISTENCE ( 72 )
3772
3773// N.B. These #defines do *not* include the EID & length
3774#define DOT11F_IE_HT2040BSSCOEXISTENCE_MIN_LEN ( 1 )
3775
3776#define DOT11F_IE_HT2040BSSCOEXISTENCE_MAX_LEN ( 1 )
3777
3778#ifdef __cplusplus
3779extern "C" {
3780#endif /* C++ */
3781tANI_U32 dot11fUnpackIeHT2040BSSCoexistence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHT2040BSSCoexistence*);
3782
3783tANI_U32 dot11fPackIeHT2040BSSCoexistence(tpAniSirGlobal, tDot11fIEHT2040BSSCoexistence*, tANI_U8*, tANI_U32, tANI_U32*);
3784
3785tANI_U32 dot11fGetPackedIEHT2040BSSCoexistence(tpAniSirGlobal, tDot11fIEHT2040BSSCoexistence*, tANI_U32*);
3786
3787#ifdef __cplusplus
3788}; /* End extern "C". */
3789#endif /* C++ */
3790// EID 73 (0x49)
3791typedef struct sDot11fIEHT2040BSSIntolerantReport {
3792 tANI_U8 present;
3793 tANI_U8 operatingClass;
3794 tANI_U8 num_channelList;
3795 tANI_U8 channelList[50];
3796} tDot11fIEHT2040BSSIntolerantReport;
3797
3798#define DOT11F_EID_HT2040BSSINTOLERANTREPORT ( 73 )
3799
3800// N.B. These #defines do *not* include the EID & length
3801#define DOT11F_IE_HT2040BSSINTOLERANTREPORT_MIN_LEN ( 1 )
3802
3803#define DOT11F_IE_HT2040BSSINTOLERANTREPORT_MAX_LEN ( 51 )
3804
3805#ifdef __cplusplus
3806extern "C" {
3807#endif /* C++ */
3808tANI_U32 dot11fUnpackIeHT2040BSSIntolerantReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHT2040BSSIntolerantReport*);
3809
3810tANI_U32 dot11fPackIeHT2040BSSIntolerantReport(tpAniSirGlobal, tDot11fIEHT2040BSSIntolerantReport*, tANI_U8*, tANI_U32, tANI_U32*);
3811
3812tANI_U32 dot11fGetPackedIEHT2040BSSIntolerantReport(tpAniSirGlobal, tDot11fIEHT2040BSSIntolerantReport*, tANI_U32*);
3813
3814#ifdef __cplusplus
3815}; /* End extern "C". */
3816#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003817// EID 45 (0x2d)
3818typedef struct sDot11fIEHTCaps {
3819 tANI_U8 present;
3820 tANI_U16 advCodingCap: 1;
3821 tANI_U16 supportedChannelWidthSet: 1;
3822 tANI_U16 mimoPowerSave: 2;
3823 tANI_U16 greenField: 1;
3824 tANI_U16 shortGI20MHz: 1;
3825 tANI_U16 shortGI40MHz: 1;
3826 tANI_U16 txSTBC: 1;
3827 tANI_U16 rxSTBC: 2;
3828 tANI_U16 delayedBA: 1;
3829 tANI_U16 maximalAMSDUsize: 1;
3830 tANI_U16 dsssCckMode40MHz: 1;
3831 tANI_U16 psmp: 1;
3832 tANI_U16 stbcControlFrame: 1;
3833 tANI_U16 lsigTXOPProtection: 1;
3834 tANI_U8 maxRxAMPDUFactor: 2;
3835 tANI_U8 mpduDensity: 3;
3836 tANI_U8 reserved1: 3;
3837 tANI_U8 supportedMCSSet[16];
3838 tANI_U16 pco: 1;
3839 tANI_U16 transitionTime: 2;
3840 tANI_U16 reserved2: 5;
3841 tANI_U16 mcsFeedback: 2;
3842 tANI_U16 reserved3: 6;
3843 tANI_U32 txBF: 1;
3844 tANI_U32 rxStaggeredSounding: 1;
3845 tANI_U32 txStaggeredSounding: 1;
3846 tANI_U32 rxZLF: 1;
3847 tANI_U32 txZLF: 1;
3848 tANI_U32 implicitTxBF: 1;
3849 tANI_U32 calibration: 2;
3850 tANI_U32 explicitCSITxBF: 1;
3851 tANI_U32 explicitUncompressedSteeringMatrix: 1;
3852 tANI_U32 explicitBFCSIFeedback: 3;
3853 tANI_U32 explicitUncompressedSteeringMatrixFeedback: 3;
3854 tANI_U32 explicitCompressedSteeringMatrixFeedback: 3;
3855 tANI_U32 csiNumBFAntennae: 2;
3856 tANI_U32 uncompressedSteeringMatrixBFAntennae: 2;
3857 tANI_U32 compressedSteeringMatrixBFAntennae: 2;
3858 tANI_U32 reserved4: 7;
3859 tANI_U8 antennaSelection: 1;
3860 tANI_U8 explicitCSIFeedbackTx: 1;
3861 tANI_U8 antennaIndicesFeedbackTx: 1;
3862 tANI_U8 explicitCSIFeedback: 1;
3863 tANI_U8 antennaIndicesFeedback: 1;
3864 tANI_U8 rxAS: 1;
3865 tANI_U8 txSoundingPPDUs: 1;
3866 tANI_U8 reserved5: 1;
3867 tANI_U8 num_rsvd;
3868 tANI_U8 rsvd[32];
3869} tDot11fIEHTCaps;
3870
3871#define DOT11F_EID_HTCAPS ( 45 )
3872
3873// N.B. These #defines do *not* include the EID & length
3874#define DOT11F_IE_HTCAPS_MIN_LEN ( 26 )
3875
3876#define DOT11F_IE_HTCAPS_MAX_LEN ( 58 )
3877
3878#ifdef __cplusplus
3879extern "C" {
3880#endif /* C++ */
3881tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTCaps*);
3882
3883tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
3884
3885tANI_U32 dot11fGetPackedIEHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U32*);
3886
3887#ifdef __cplusplus
3888}; /* End extern "C". */
3889#endif /* C++ */
3890// EID 61 (0x3d)
3891typedef struct sDot11fIEHTInfo {
3892 tANI_U8 present;
3893 tANI_U8 primaryChannel;
3894 tANI_U8 secondaryChannelOffset: 2;
3895 tANI_U8 recommendedTxWidthSet: 1;
3896 tANI_U8 rifsMode: 1;
3897 tANI_U8 controlledAccessOnly: 1;
3898 tANI_U8 serviceIntervalGranularity: 3;
3899 tANI_U16 opMode: 2;
3900 tANI_U16 nonGFDevicesPresent: 1;
3901 tANI_U16 transmitBurstLimit: 1;
3902 tANI_U16 obssNonHTStaPresent: 1;
3903 tANI_U16 reserved: 11;
3904 tANI_U16 basicSTBCMCS: 7;
3905 tANI_U16 dualCTSProtection: 1;
3906 tANI_U16 secondaryBeacon: 1;
3907 tANI_U16 lsigTXOPProtectionFullSupport: 1;
3908 tANI_U16 pcoActive: 1;
3909 tANI_U16 pcoPhase: 1;
3910 tANI_U16 reserved2: 4;
3911 tANI_U8 basicMCSSet[16];
3912 tANI_U8 num_rsvd;
3913 tANI_U8 rsvd[32];
3914} tDot11fIEHTInfo;
3915
3916#define DOT11F_EID_HTINFO ( 61 )
3917
3918// N.B. These #defines do *not* include the EID & length
3919#define DOT11F_IE_HTINFO_MIN_LEN ( 22 )
3920
3921#define DOT11F_IE_HTINFO_MAX_LEN ( 54 )
3922
3923#ifdef __cplusplus
3924extern "C" {
3925#endif /* C++ */
3926tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTInfo*);
3927
3928tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
3929
3930tANI_U32 dot11fGetPackedIEHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U32*);
3931
3932#ifdef __cplusplus
3933}; /* End extern "C". */
3934#endif /* C++ */
3935// EID 6 (0x06)
3936typedef struct sDot11fIEIBSSParams {
3937 tANI_U8 present;
3938 tANI_U16 atim;
3939} tDot11fIEIBSSParams;
3940
3941#define DOT11F_EID_IBSSPARAMS ( 6 )
3942
3943// N.B. These #defines do *not* include the EID & length
3944#define DOT11F_IE_IBSSPARAMS_MIN_LEN ( 2 )
3945
3946#define DOT11F_IE_IBSSPARAMS_MAX_LEN ( 2 )
3947
3948#ifdef __cplusplus
3949extern "C" {
3950#endif /* C++ */
3951tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEIBSSParams*);
3952
3953tANI_U32 dot11fPackIeIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U8*, tANI_U32, tANI_U32*);
3954
3955tANI_U32 dot11fGetPackedIEIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U32*);
3956
3957#ifdef __cplusplus
3958}; /* End extern "C". */
3959#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003960// EID 101 (0x65)
3961typedef struct sDot11fIELinkIdentifier {
3962 tANI_U8 present;
3963 tANI_U8 bssid[6];
3964 tANI_U8 InitStaAddr[6];
3965 tANI_U8 RespStaAddr[6];
3966} tDot11fIELinkIdentifier;
3967
3968#define DOT11F_EID_LINKIDENTIFIER ( 101 )
3969
3970// N.B. These #defines do *not* include the EID & length
3971#define DOT11F_IE_LINKIDENTIFIER_MIN_LEN ( 18 )
3972
3973#define DOT11F_IE_LINKIDENTIFIER_MAX_LEN ( 18 )
3974
3975#ifdef __cplusplus
3976extern "C" {
3977#endif /* C++ */
3978tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELinkIdentifier*);
3979
3980tANI_U32 dot11fPackIeLinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U8*, tANI_U32, tANI_U32*);
3981
3982tANI_U32 dot11fGetPackedIELinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U32*);
3983
3984#ifdef __cplusplus
3985}; /* End extern "C". */
3986#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07003987// EID 39 (0x27)
3988typedef struct sDot11fIEMeasurementReport {
3989 tANI_U8 present;
3990 tANI_U8 token;
3991 tANI_U8 late: 1;
3992 tANI_U8 incapable: 1;
3993 tANI_U8 refused: 1;
3994 tANI_U8 unused: 5;
3995 tANI_U8 type;
3996 union
3997 {
3998 struct
3999 {
4000 tANI_U8 channel;
4001 tDOT11F_U64 meas_start_time;
4002 tANI_U16 meas_duration;
4003 tANI_U8 bss: 1;
4004 tANI_U8 ofdm_preamble: 1;
4005 tANI_U8 unid_signal: 1;
4006 tANI_U8 rader: 1;
4007 tANI_U8 unmeasured: 1;
4008 tANI_U8 unused: 3;
4009 } Basic; /* type = 0 */
4010 struct
4011 {
4012 tANI_U8 channel;
4013 tDOT11F_U64 meas_start_time;
4014 tANI_U16 meas_duration;
4015 tANI_U8 cca_busy_fraction;
4016 } CCA; /* type = 1 */
4017 struct
4018 {
4019 tANI_U8 channel;
4020 tDOT11F_U64 meas_start_time;
4021 tANI_U16 meas_duration;
4022 tANI_U8 rpi0_density;
4023 tANI_U8 rpi1_density;
4024 tANI_U8 rpi2_density;
4025 tANI_U8 rpi3_density;
4026 tANI_U8 rpi4_density;
4027 tANI_U8 rpi5_density;
4028 tANI_U8 rpi6_density;
4029 tANI_U8 rpi7_density;
4030 } RPIHistogram; /* type = 2 */
4031 struct
4032 {
4033 tANI_U8 regClass;
4034 tANI_U8 channel;
4035 tDOT11F_U64 meas_start_time;
4036 tANI_U16 meas_duration;
4037 tANI_U8 condensed_PHY: 7;
4038 tANI_U8 reported_frame_type: 1;
4039 tANI_U8 RCPI;
4040 tANI_U8 RSNI;
4041 tANI_U8 BSSID[6];
4042 tANI_U8 antenna_id;
4043 tANI_U32 parent_TSF;
4044 tDot11fIEBeaconReportFrmBody BeaconReportFrmBody;
4045 } Beacon; /* type = 5 */
4046 } report;
4047} tDot11fIEMeasurementReport;
4048
4049#define DOT11F_EID_MEASUREMENTREPORT ( 39 )
4050
4051// N.B. These #defines do *not* include the EID & length
4052#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN ( 3 )
4053
4054#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN ( 29 )
4055
4056#ifdef __cplusplus
4057extern "C" {
4058#endif /* C++ */
4059tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementReport*);
4060
4061tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U8*, tANI_U32, tANI_U32*);
4062
4063tANI_U32 dot11fGetPackedIEMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U32*);
4064
4065#ifdef __cplusplus
4066}; /* End extern "C". */
4067#endif /* C++ */
4068// EID 38 (0x26)
4069typedef struct sDot11fIEMeasurementRequest {
4070 tANI_U8 present;
4071 tANI_U8 measurement_token;
4072 tANI_U8 parallel: 1;
4073 tANI_U8 enable: 1;
4074 tANI_U8 request: 1;
4075 tANI_U8 report: 1;
4076 tANI_U8 durationMandatory: 1;
4077 tANI_U8 unused: 3;
4078 tANI_U8 measurement_type;
4079 union
4080 {
4081 struct
4082 {
4083 tANI_U8 channel_no;
4084 tANI_U8 meas_start_time[8];
4085 tANI_U16 meas_duration;
4086 } Basic; /* measurement_type = 0 */
4087 struct
4088 {
4089 tANI_U8 channel_no;
4090 tANI_U8 meas_start_time[8];
4091 tANI_U16 meas_duration;
4092 } CCA; /* measurement_type = 1 */
4093 struct
4094 {
4095 tANI_U8 channel_no;
4096 tANI_U8 meas_start_time[8];
4097 tANI_U16 meas_duration;
4098 } RPIHistogram; /* measurement_type = 2 */
4099 struct
4100 {
4101 tANI_U8 regClass;
4102 tANI_U8 channel;
4103 tANI_U16 randomization;
4104 tANI_U16 meas_duration;
4105 tANI_U8 meas_mode;
4106 tANI_U8 BSSID[6];
4107 tDot11fIESSID SSID;
4108 tDot11fIEBeaconReporting BeaconReporting;
4109 tDot11fIEBcnReportingDetail BcnReportingDetail;
4110 tDot11fIERequestedInfo RequestedInfo;
4111 tANI_U16 num_APChannelReport;
4112 tDot11fIEAPChannelReport APChannelReport[2];
4113 } Beacon; /* measurement_type = 5 */
4114 } measurement_request;
4115} tDot11fIEMeasurementRequest;
4116
4117#define DOT11F_EID_MEASUREMENTREQUEST ( 38 )
4118
4119// N.B. These #defines do *not* include the EID & length
4120#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN ( 14 )
4121
4122#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN ( 16 )
4123
4124#ifdef __cplusplus
4125extern "C" {
4126#endif /* C++ */
4127tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementRequest*);
4128
4129tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U8*, tANI_U32, tANI_U32*);
4130
4131tANI_U32 dot11fGetPackedIEMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U32*);
4132
4133#ifdef __cplusplus
4134}; /* End extern "C". */
4135#endif /* C++ */
4136// EID 54 (0x36)
4137typedef struct sDot11fIEMobilityDomain {
4138 tANI_U8 present;
4139 tANI_U16 MDID;
4140 tANI_U8 overDSCap: 1;
4141 tANI_U8 resourceReqCap: 1;
4142 tANI_U8 reserved: 6;
4143} tDot11fIEMobilityDomain;
4144
4145#define DOT11F_EID_MOBILITYDOMAIN ( 54 )
4146
4147// N.B. These #defines do *not* include the EID & length
4148#define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN ( 3 )
4149
4150#define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN ( 3 )
4151
4152#ifdef __cplusplus
4153extern "C" {
4154#endif /* C++ */
4155tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMobilityDomain*);
4156
4157tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U8*, tANI_U32, tANI_U32*);
4158
4159tANI_U32 dot11fGetPackedIEMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U32*);
4160
4161#ifdef __cplusplus
4162}; /* End extern "C". */
4163#endif /* C++ */
4164// EID 52 (0x34)
4165typedef struct sDot11fIENeighborReport {
4166 tANI_U8 present;
4167 tANI_U8 bssid[6];
4168 tANI_U8 APReachability: 2;
4169 tANI_U8 Security: 1;
4170 tANI_U8 KeyScope: 1;
4171 tANI_U8 SpecMgmtCap: 1;
4172 tANI_U8 QosCap: 1;
4173 tANI_U8 apsd: 1;
4174 tANI_U8 rrm: 1;
4175 tANI_U8 DelayedBA: 1;
4176 tANI_U8 ImmBA: 1;
4177 tANI_U8 MobilityDomain: 1;
4178 tANI_U8 reserved: 5;
4179 tANI_U16 reserved1;
4180 tANI_U8 regulatoryClass;
4181 tANI_U8 channel;
4182 tANI_U8 PhyType;
4183 tDot11fIETSFInfo TSFInfo;
4184 tDot11fIECondensedCountryStr CondensedCountryStr;
4185 tDot11fIEMeasurementPilot MeasurementPilot;
4186 tDot11fIERRMEnabledCap RRMEnabledCap;
4187 tDot11fIEMultiBssid MultiBssid;
4188} tDot11fIENeighborReport;
4189
4190#define DOT11F_EID_NEIGHBORREPORT ( 52 )
4191
4192// N.B. These #defines do *not* include the EID & length
4193#define DOT11F_IE_NEIGHBORREPORT_MIN_LEN ( 13 )
4194
4195#define DOT11F_IE_NEIGHBORREPORT_MAX_LEN ( 546 )
4196
4197#ifdef __cplusplus
4198extern "C" {
4199#endif /* C++ */
4200tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIENeighborReport*);
4201
4202tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U8*, tANI_U32, tANI_U32*);
4203
4204tANI_U32 dot11fGetPackedIENeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U32*);
4205
4206#ifdef __cplusplus
4207}; /* End extern "C". */
4208#endif /* C++ */
Abhishek Singhccbeea22014-02-07 17:58:47 +05304209// EID 74 (0x4a)
4210typedef struct sDot11fIEOBSSScanParameters {
4211 tANI_U8 present;
4212 tANI_U16 obssScanPassiveDwell;
4213 tANI_U16 obssScanActiveDwell;
4214 tANI_U16 bssChannelWidthTriggerScanInterval;
4215 tANI_U16 obssScanPassiveTotalPerChannel;
4216 tANI_U16 obssScanActiveTotalPerChannel;
4217 tANI_U16 bssWidthChannelTransitionDelayFactor;
4218 tANI_U16 obssScanActivityThreshold;
4219} tDot11fIEOBSSScanParameters;
4220
4221#define DOT11F_EID_OBSSSCANPARAMETERS ( 74 )
4222
4223// N.B. These #defines do *not* include the EID & length
4224#define DOT11F_IE_OBSSSCANPARAMETERS_MIN_LEN ( 14 )
4225
4226#define DOT11F_IE_OBSSSCANPARAMETERS_MAX_LEN ( 14 )
4227
4228#ifdef __cplusplus
4229extern "C" {
4230#endif /* C++ */
4231tANI_U32 dot11fUnpackIeOBSSScanParameters(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOBSSScanParameters*);
4232
4233tANI_U32 dot11fPackIeOBSSScanParameters(tpAniSirGlobal, tDot11fIEOBSSScanParameters*, tANI_U8*, tANI_U32, tANI_U32*);
4234
4235tANI_U32 dot11fGetPackedIEOBSSScanParameters(tpAniSirGlobal, tDot11fIEOBSSScanParameters*, tANI_U32*);
4236
4237#ifdef __cplusplus
4238}; /* End extern "C". */
4239#endif /* C++ */
Mohit Khanna4a70d262012-09-11 16:30:12 -07004240// EID 199 (0xc7)
4241typedef struct sDot11fIEOperatingMode {
4242 tANI_U8 present;
4243 tANI_U8 chanWidth: 2;
4244 tANI_U8 reserved: 2;
4245 tANI_U8 rxNSS: 3;
4246 tANI_U8 rxNSSType: 1;
4247} tDot11fIEOperatingMode;
4248
4249#define DOT11F_EID_OPERATINGMODE ( 199 )
4250
4251// N.B. These #defines do *not* include the EID & length
4252#define DOT11F_IE_OPERATINGMODE_MIN_LEN ( 1 )
4253
4254#define DOT11F_IE_OPERATINGMODE_MAX_LEN ( 1 )
4255
4256#ifdef __cplusplus
4257extern "C" {
4258#endif /* C++ */
4259tANI_U32 dot11fUnpackIeOperatingMode(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOperatingMode*);
4260
4261tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U8*, tANI_U32, tANI_U32*);
4262
4263tANI_U32 dot11fGetPackedIEOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U32*);
4264
4265#ifdef __cplusplus
4266}; /* End extern "C". */
4267#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004268// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4269typedef struct sDot11fIEP2PAssocReq {
4270 tANI_U8 present;
4271 tDot11fTLVP2PCapability P2PCapability;
4272 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4273 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4274} tDot11fIEP2PAssocReq;
4275
4276#define DOT11F_EID_P2PASSOCREQ ( 221 )
4277
4278// N.B. These #defines do *not* include the EID & length
4279#define DOT11F_IE_P2PASSOCREQ_MIN_LEN ( 4 )
4280
4281#define DOT11F_IE_P2PASSOCREQ_MAX_LEN ( 71 )
4282
4283#ifdef __cplusplus
4284extern "C" {
4285#endif /* C++ */
4286tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocReq*);
4287
4288tANI_U32 dot11fPackIeP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
4289
4290tANI_U32 dot11fGetPackedIEP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U32*);
4291
4292#ifdef __cplusplus
4293}; /* End extern "C". */
4294#endif /* C++ */
4295// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4296typedef struct sDot11fIEP2PAssocRes {
4297 tANI_U8 present;
4298 tDot11fTLVP2PStatus P2PStatus;
4299 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4300} tDot11fIEP2PAssocRes;
4301
4302#define DOT11F_EID_P2PASSOCRES ( 221 )
4303
4304// N.B. These #defines do *not* include the EID & length
4305#define DOT11F_IE_P2PASSOCRES_MIN_LEN ( 4 )
4306
4307#define DOT11F_IE_P2PASSOCRES_MAX_LEN ( 15 )
4308
4309#ifdef __cplusplus
4310extern "C" {
4311#endif /* C++ */
4312tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocRes*);
4313
4314tANI_U32 dot11fPackIeP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
4315
4316tANI_U32 dot11fGetPackedIEP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, 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 sDot11fIEP2PBeacon {
4323 tANI_U8 present;
4324 tDot11fTLVP2PCapability P2PCapability;
4325 tDot11fTLVP2PDeviceId P2PDeviceId;
4326 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4327} tDot11fIEP2PBeacon;
4328
4329#define DOT11F_EID_P2PBEACON ( 221 )
4330
4331// N.B. These #defines do *not* include the EID & length
4332#define DOT11F_IE_P2PBEACON_MIN_LEN ( 4 )
4333
4334#define DOT11F_IE_P2PBEACON_MAX_LEN ( 59 )
4335
4336#ifdef __cplusplus
4337extern "C" {
4338#endif /* C++ */
4339tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeacon*);
4340
4341tANI_U32 dot11fPackIeP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
4342
4343tANI_U32 dot11fGetPackedIEP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U32*);
4344
4345#ifdef __cplusplus
4346}; /* End extern "C". */
4347#endif /* C++ */
4348// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4349typedef struct sDot11fIEP2PBeaconProbeRes {
4350 tANI_U8 present;
4351 tDot11fTLVP2PCapability P2PCapability;
4352 tDot11fTLVP2PDeviceId P2PDeviceId;
4353 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4354 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4355 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4356 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4357} tDot11fIEP2PBeaconProbeRes;
4358
4359#define DOT11F_EID_P2PBEACONPROBERES ( 221 )
4360
4361// N.B. These #defines do *not* include the EID & length
4362#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN ( 4 )
4363
4364#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN ( 1148 )
4365
4366#ifdef __cplusplus
4367extern "C" {
4368#endif /* C++ */
4369tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeaconProbeRes*);
4370
4371tANI_U32 dot11fPackIeP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4372
4373tANI_U32 dot11fGetPackedIEP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U32*);
4374
4375#ifdef __cplusplus
4376}; /* End extern "C". */
4377#endif /* C++ */
4378// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4379typedef struct sDot11fIEP2PDeAuth {
4380 tANI_U8 present;
4381 tDot11fTLVMinorReasonCode MinorReasonCode;
4382} tDot11fIEP2PDeAuth;
4383
4384#define DOT11F_EID_P2PDEAUTH ( 221 )
4385
4386// N.B. These #defines do *not* include the EID & length
4387#define DOT11F_IE_P2PDEAUTH_MIN_LEN ( 4 )
4388
4389#define DOT11F_IE_P2PDEAUTH_MAX_LEN ( 8 )
4390
4391#ifdef __cplusplus
4392extern "C" {
4393#endif /* C++ */
4394tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeAuth*);
4395
4396tANI_U32 dot11fPackIeP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U8*, tANI_U32, tANI_U32*);
4397
4398tANI_U32 dot11fGetPackedIEP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U32*);
4399
4400#ifdef __cplusplus
4401}; /* End extern "C". */
4402#endif /* C++ */
4403// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4404typedef struct sDot11fIEP2PDeviceDiscoverabilityReq {
4405 tANI_U8 present;
4406 tDot11fTLVP2PDeviceId P2PDeviceId;
4407 tDot11fTLVP2PGroupId P2PGroupId;
4408} tDot11fIEP2PDeviceDiscoverabilityReq;
4409
4410#define DOT11F_EID_P2PDEVICEDISCOVERABILITYREQ ( 221 )
4411
4412// N.B. These #defines do *not* include the EID & length
4413#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MIN_LEN ( 4 )
4414
4415#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MAX_LEN ( 54 )
4416
4417#ifdef __cplusplus
4418extern "C" {
4419#endif /* C++ */
4420tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityReq*);
4421
4422tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U8*, tANI_U32, tANI_U32*);
4423
4424tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U32*);
4425
4426#ifdef __cplusplus
4427}; /* End extern "C". */
4428#endif /* C++ */
4429// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4430typedef struct sDot11fIEP2PDeviceDiscoverabilityRes {
4431 tANI_U8 present;
4432 tDot11fTLVP2PStatus P2PStatus;
4433} tDot11fIEP2PDeviceDiscoverabilityRes;
4434
4435#define DOT11F_EID_P2PDEVICEDISCOVERABILITYRES ( 221 )
4436
4437// N.B. These #defines do *not* include the EID & length
4438#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MIN_LEN ( 4 )
4439
4440#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MAX_LEN ( 8 )
4441
4442#ifdef __cplusplus
4443extern "C" {
4444#endif /* C++ */
4445tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityRes*);
4446
4447tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U8*, tANI_U32, tANI_U32*);
4448
4449tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U32*);
4450
4451#ifdef __cplusplus
4452}; /* End extern "C". */
4453#endif /* C++ */
4454// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4455typedef struct sDot11fIEP2PDisAssoc {
4456 tANI_U8 present;
4457 tDot11fTLVMinorReasonCode MinorReasonCode;
4458} tDot11fIEP2PDisAssoc;
4459
4460#define DOT11F_EID_P2PDISASSOC ( 221 )
4461
4462// N.B. These #defines do *not* include the EID & length
4463#define DOT11F_IE_P2PDISASSOC_MIN_LEN ( 4 )
4464
4465#define DOT11F_IE_P2PDISASSOC_MAX_LEN ( 8 )
4466
4467#ifdef __cplusplus
4468extern "C" {
4469#endif /* C++ */
4470tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDisAssoc*);
4471
4472tANI_U32 dot11fPackIeP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U8*, tANI_U32, tANI_U32*);
4473
4474tANI_U32 dot11fGetPackedIEP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U32*);
4475
4476#ifdef __cplusplus
4477}; /* End extern "C". */
4478#endif /* C++ */
4479// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4480typedef struct sDot11fIEP2PGONegCnf {
4481 tANI_U8 present;
4482 tDot11fTLVP2PStatus P2PStatus;
4483 tDot11fTLVP2PCapability P2PCapability;
4484 tDot11fTLVOperatingChannel OperatingChannel;
4485 tDot11fTLVChannelList ChannelList;
4486 tDot11fTLVP2PGroupId P2PGroupId;
4487} tDot11fIEP2PGONegCnf;
4488
4489#define DOT11F_EID_P2PGONEGCNF ( 221 )
4490
4491// N.B. These #defines do *not* include the EID & length
4492#define DOT11F_IE_P2PGONEGCNF_MIN_LEN ( 4 )
4493
4494#define DOT11F_IE_P2PGONEGCNF_MAX_LEN ( 319 )
4495
4496#ifdef __cplusplus
4497extern "C" {
4498#endif /* C++ */
4499tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegCnf*);
4500
4501tANI_U32 dot11fPackIeP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U8*, tANI_U32, tANI_U32*);
4502
4503tANI_U32 dot11fGetPackedIEP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U32*);
4504
4505#ifdef __cplusplus
4506}; /* End extern "C". */
4507#endif /* C++ */
4508// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4509typedef struct sDot11fIEP2PGONegReq {
4510 tANI_U8 present;
4511 tDot11fTLVP2PCapability P2PCapability;
4512 tDot11fTLVGOIntent GOIntent;
4513 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4514 tDot11fTLVListenChannel ListenChannel;
4515 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4516 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4517 tDot11fTLVChannelList ChannelList;
4518 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4519 tDot11fTLVOperatingChannel OperatingChannel;
4520} tDot11fIEP2PGONegReq;
4521
4522#define DOT11F_EID_P2PGONEGREQ ( 221 )
4523
4524// N.B. These #defines do *not* include the EID & length
4525#define DOT11F_IE_P2PGONEGREQ_MIN_LEN ( 4 )
4526
4527#define DOT11F_IE_P2PGONEGREQ_MAX_LEN ( 362 )
4528
4529#ifdef __cplusplus
4530extern "C" {
4531#endif /* C++ */
4532tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegReq*);
4533
4534tANI_U32 dot11fPackIeP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U8*, tANI_U32, tANI_U32*);
4535
4536tANI_U32 dot11fGetPackedIEP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U32*);
4537
4538#ifdef __cplusplus
4539}; /* End extern "C". */
4540#endif /* C++ */
4541// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4542typedef struct sDot11fIEP2PGONegRes {
4543 tANI_U8 present;
4544 tDot11fTLVP2PStatus P2PStatus;
4545 tDot11fTLVP2PCapability P2PCapability;
4546 tDot11fTLVGOIntent GOIntent;
4547 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4548 tDot11fTLVOperatingChannel OperatingChannel;
4549 tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
4550 tDot11fTLVChannelList ChannelList;
4551 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4552 tDot11fTLVP2PGroupId P2PGroupId;
4553} tDot11fIEP2PGONegRes;
4554
4555#define DOT11F_EID_P2PGONEGRES ( 221 )
4556
4557// N.B. These #defines do *not* include the EID & length
4558#define DOT11F_IE_P2PGONEGRES_MIN_LEN ( 4 )
4559
4560#define DOT11F_IE_P2PGONEGRES_MAX_LEN ( 392 )
4561
4562#ifdef __cplusplus
4563extern "C" {
4564#endif /* C++ */
4565tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegRes*);
4566
4567tANI_U32 dot11fPackIeP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U8*, tANI_U32, tANI_U32*);
4568
4569tANI_U32 dot11fGetPackedIEP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U32*);
4570
4571#ifdef __cplusplus
4572}; /* End extern "C". */
4573#endif /* C++ */
4574// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4575typedef struct sDot11fIEP2PGONegWPS {
4576 tANI_U8 present;
4577 tDot11fTLVVersion Version;
4578 tDot11fTLVDevicePasswordID DevicePasswordID;
4579} tDot11fIEP2PGONegWPS;
4580
4581#define DOT11F_EID_P2PGONEGWPS ( 221 )
4582
4583// N.B. These #defines do *not* include the EID & length
4584#define DOT11F_IE_P2PGONEGWPS_MIN_LEN ( 4 )
4585
4586#define DOT11F_IE_P2PGONEGWPS_MAX_LEN ( 15 )
4587
4588#ifdef __cplusplus
4589extern "C" {
4590#endif /* C++ */
4591tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegWPS*);
4592
4593tANI_U32 dot11fPackIeP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U8*, tANI_U32, tANI_U32*);
4594
4595tANI_U32 dot11fGetPackedIEP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U32*);
4596
4597#ifdef __cplusplus
4598}; /* End extern "C". */
4599#endif /* C++ */
4600// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09}
4601typedef struct sDot11fIEP2PIEOpaque {
4602 tANI_U8 present;
4603 tANI_U8 num_data;
4604 tANI_U8 data[249];
4605} tDot11fIEP2PIEOpaque;
4606
4607#define DOT11F_EID_P2PIEOPAQUE ( 221 )
4608
4609// N.B. These #defines do *not* include the EID & length
4610#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN ( 6 )
4611
4612#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN ( 253 )
4613
4614#ifdef __cplusplus
4615extern "C" {
4616#endif /* C++ */
4617tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PIEOpaque*);
4618
4619tANI_U32 dot11fPackIeP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
4620
4621tANI_U32 dot11fGetPackedIEP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U32*);
4622
4623#ifdef __cplusplus
4624}; /* End extern "C". */
4625#endif /* C++ */
4626// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4627typedef struct sDot11fIEP2PInvitationReq {
4628 tANI_U8 present;
4629 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4630 tDot11fTLVInvitationFlags InvitationFlags;
4631 tDot11fTLVOperatingChannel OperatingChannel;
4632 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4633 tDot11fTLVChannelList ChannelList;
4634 tDot11fTLVP2PGroupId P2PGroupId;
4635 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4636} tDot11fIEP2PInvitationReq;
4637
4638#define DOT11F_EID_P2PINVITATIONREQ ( 221 )
4639
4640// N.B. These #defines do *not* include the EID & length
4641#define DOT11F_IE_P2PINVITATIONREQ_MIN_LEN ( 4 )
4642
4643#define DOT11F_IE_P2PINVITATIONREQ_MAX_LEN ( 383 )
4644
4645#ifdef __cplusplus
4646extern "C" {
4647#endif /* C++ */
4648tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationReq*);
4649
4650tANI_U32 dot11fPackIeP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U8*, tANI_U32, tANI_U32*);
4651
4652tANI_U32 dot11fGetPackedIEP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U32*);
4653
4654#ifdef __cplusplus
4655}; /* End extern "C". */
4656#endif /* C++ */
4657// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4658typedef struct sDot11fIEP2PInvitationRes {
4659 tANI_U8 present;
4660 tDot11fTLVP2PStatus P2PStatus;
4661 tDot11fTLVConfigurationTimeout ConfigurationTimeout;
4662 tDot11fTLVOperatingChannel OperatingChannel;
4663 tDot11fTLVP2PGroupBssid P2PGroupBssid;
4664 tDot11fTLVChannelList ChannelList;
4665} tDot11fIEP2PInvitationRes;
4666
4667#define DOT11F_EID_P2PINVITATIONRES ( 221 )
4668
4669// N.B. These #defines do *not* include the EID & length
4670#define DOT11F_IE_P2PINVITATIONRES_MIN_LEN ( 4 )
4671
4672#define DOT11F_IE_P2PINVITATIONRES_MAX_LEN ( 287 )
4673
4674#ifdef __cplusplus
4675extern "C" {
4676#endif /* C++ */
4677tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationRes*);
4678
4679tANI_U32 dot11fPackIeP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U8*, tANI_U32, tANI_U32*);
4680
4681tANI_U32 dot11fGetPackedIEP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U32*);
4682
4683#ifdef __cplusplus
4684}; /* End extern "C". */
4685#endif /* C++ */
4686// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4687typedef struct sDot11fIEP2PNoticeOfAbsence {
4688 tANI_U8 present;
4689 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4690} tDot11fIEP2PNoticeOfAbsence;
4691
4692#define DOT11F_EID_P2PNOTICEOFABSENCE ( 221 )
4693
4694// N.B. These #defines do *not* include the EID & length
4695#define DOT11F_IE_P2PNOTICEOFABSENCE_MIN_LEN ( 4 )
4696
4697#define DOT11F_IE_P2PNOTICEOFABSENCE_MAX_LEN ( 45 )
4698
4699#ifdef __cplusplus
4700extern "C" {
4701#endif /* C++ */
4702tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PNoticeOfAbsence*);
4703
4704tANI_U32 dot11fPackIeP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
4705
4706tANI_U32 dot11fGetPackedIEP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U32*);
4707
4708#ifdef __cplusplus
4709}; /* End extern "C". */
4710#endif /* C++ */
4711// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4712typedef struct sDot11fIEP2PPresenceResponse {
4713 tANI_U8 present;
4714 tDot11fTLVP2PStatus P2PStatus;
4715 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4716} tDot11fIEP2PPresenceResponse;
4717
4718#define DOT11F_EID_P2PPRESENCERESPONSE ( 221 )
4719
4720// N.B. These #defines do *not* include the EID & length
4721#define DOT11F_IE_P2PPRESENCERESPONSE_MIN_LEN ( 4 )
4722
4723#define DOT11F_IE_P2PPRESENCERESPONSE_MAX_LEN ( 49 )
4724
4725#ifdef __cplusplus
4726extern "C" {
4727#endif /* C++ */
4728tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PPresenceResponse*);
4729
4730tANI_U32 dot11fPackIeP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U8*, tANI_U32, tANI_U32*);
4731
4732tANI_U32 dot11fGetPackedIEP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U32*);
4733
4734#ifdef __cplusplus
4735}; /* End extern "C". */
4736#endif /* C++ */
4737// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4738typedef struct sDot11fIEP2PProbeReq {
4739 tANI_U8 present;
4740 tDot11fTLVP2PCapability P2PCapability;
4741 tDot11fTLVP2PDeviceId P2PDeviceId;
4742 tDot11fTLVListenChannel ListenChannel;
4743 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4744 tDot11fTLVOperatingChannel OperatingChannel;
4745} tDot11fIEP2PProbeReq;
4746
4747#define DOT11F_EID_P2PPROBEREQ ( 221 )
4748
4749// N.B. These #defines do *not* include the EID & length
4750#define DOT11F_IE_P2PPROBEREQ_MIN_LEN ( 4 )
4751
4752#define DOT11F_IE_P2PPROBEREQ_MAX_LEN ( 41 )
4753
4754#ifdef __cplusplus
4755extern "C" {
4756#endif /* C++ */
4757tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeReq*);
4758
4759tANI_U32 dot11fPackIeP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
4760
4761tANI_U32 dot11fGetPackedIEP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U32*);
4762
4763#ifdef __cplusplus
4764}; /* End extern "C". */
4765#endif /* C++ */
4766// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4767typedef struct sDot11fIEP2PProbeRes {
4768 tANI_U8 present;
4769 tDot11fTLVP2PCapability P2PCapability;
4770 tDot11fTLVExtendedListenTiming ExtendedListenTiming;
4771 tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
4772 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4773 tDot11fTLVP2PGroupInfo P2PGroupInfo;
4774} tDot11fIEP2PProbeRes;
4775
4776#define DOT11F_EID_P2PPROBERES ( 221 )
4777
4778// N.B. These #defines do *not* include the EID & length
4779#define DOT11F_IE_P2PPROBERES_MIN_LEN ( 4 )
4780
4781#define DOT11F_IE_P2PPROBERES_MAX_LEN ( 1139 )
4782
4783#ifdef __cplusplus
4784extern "C" {
4785#endif /* C++ */
4786tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeRes*);
4787
4788tANI_U32 dot11fPackIeP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
4789
4790tANI_U32 dot11fGetPackedIEP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U32*);
4791
4792#ifdef __cplusplus
4793}; /* End extern "C". */
4794#endif /* C++ */
4795// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
4796typedef struct sDot11fIEP2PProvisionDiscoveryReq {
4797 tANI_U8 present;
4798 tDot11fTLVP2PCapability P2PCapability;
4799 tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
4800 tDot11fTLVP2PGroupId P2PGroupId;
4801} tDot11fIEP2PProvisionDiscoveryReq;
4802
4803#define DOT11F_EID_P2PPROVISIONDISCOVERYREQ ( 221 )
4804
4805// N.B. These #defines do *not* include the EID & length
4806#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MIN_LEN ( 4 )
4807
4808#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MAX_LEN ( 105 )
4809
4810#ifdef __cplusplus
4811extern "C" {
4812#endif /* C++ */
4813tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProvisionDiscoveryReq*);
4814
4815tANI_U32 dot11fPackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U8*, tANI_U32, tANI_U32*);
4816
4817tANI_U32 dot11fGetPackedIEP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U32*);
4818
4819#ifdef __cplusplus
4820}; /* End extern "C". */
4821#endif /* C++ */
4822// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
4823typedef struct sDot11fIEP2PWSCProvisionDiscoveryRes {
4824 tANI_U8 present;
4825 tDot11fTLVConfigMethods ConfigMethods;
4826} tDot11fIEP2PWSCProvisionDiscoveryRes;
4827
4828#define DOT11F_EID_P2PWSCPROVISIONDISCOVERYRES ( 221 )
4829
4830// N.B. These #defines do *not* include the EID & length
4831#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MIN_LEN ( 4 )
4832
4833#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MAX_LEN ( 10 )
4834
4835#ifdef __cplusplus
4836extern "C" {
4837#endif /* C++ */
4838tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PWSCProvisionDiscoveryRes*);
4839
4840tANI_U32 dot11fPackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U8*, tANI_U32, tANI_U32*);
4841
4842tANI_U32 dot11fGetPackedIEP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U32*);
4843
4844#ifdef __cplusplus
4845}; /* End extern "C". */
4846#endif /* C++ */
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004847// EID 105 (0x69)
4848typedef struct sDot11fIEPTIControl {
4849 tANI_U8 present;
4850 tANI_U8 tid;
4851 tANI_U16 sequence_control;
4852} tDot11fIEPTIControl;
4853
4854#define DOT11F_EID_PTICONTROL ( 105 )
4855
4856// N.B. These #defines do *not* include the EID & length
4857#define DOT11F_IE_PTICONTROL_MIN_LEN ( 3 )
4858
4859#define DOT11F_IE_PTICONTROL_MAX_LEN ( 3 )
4860
4861#ifdef __cplusplus
4862extern "C" {
4863#endif /* C++ */
4864tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPTIControl*);
4865
4866tANI_U32 dot11fPackIePTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U8*, tANI_U32, tANI_U32*);
4867
4868tANI_U32 dot11fGetPackedIEPTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U32*);
4869
4870#ifdef __cplusplus
4871}; /* End extern "C". */
4872#endif /* C++ */
4873// EID 106 (0x6a)
4874typedef struct sDot11fIEPUBufferStatus {
4875 tANI_U8 present;
4876 tANI_U8 ac_bk_traffic_aval: 1;
4877 tANI_U8 ac_be_traffic_aval: 1;
4878 tANI_U8 ac_vi_traffic_aval: 1;
4879 tANI_U8 ac_vo_traffic_aval: 1;
4880 tANI_U8 reserved: 4;
4881} tDot11fIEPUBufferStatus;
4882
4883#define DOT11F_EID_PUBUFFERSTATUS ( 106 )
4884
4885// N.B. These #defines do *not* include the EID & length
4886#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN ( 1 )
4887
4888#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN ( 1 )
4889
4890#ifdef __cplusplus
4891extern "C" {
4892#endif /* C++ */
4893tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPUBufferStatus*);
4894
4895tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U8*, tANI_U32, tANI_U32*);
4896
4897tANI_U32 dot11fGetPackedIEPUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U32*);
4898
4899#ifdef __cplusplus
4900}; /* End extern "C". */
4901#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07004902// EID 33 (0x21)
4903typedef struct sDot11fIEPowerCaps {
4904 tANI_U8 present;
4905 tANI_U8 minTxPower;
4906 tANI_U8 maxTxPower;
4907} tDot11fIEPowerCaps;
4908
4909#define DOT11F_EID_POWERCAPS ( 33 )
4910
4911// N.B. These #defines do *not* include the EID & length
4912#define DOT11F_IE_POWERCAPS_MIN_LEN ( 2 )
4913
4914#define DOT11F_IE_POWERCAPS_MAX_LEN ( 2 )
4915
4916#ifdef __cplusplus
4917extern "C" {
4918#endif /* C++ */
4919tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerCaps*);
4920
4921tANI_U32 dot11fPackIePowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U8*, tANI_U32, tANI_U32*);
4922
4923tANI_U32 dot11fGetPackedIEPowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U32*);
4924
4925#ifdef __cplusplus
4926}; /* End extern "C". */
4927#endif /* C++ */
4928// EID 32 (0x20)
4929typedef struct sDot11fIEPowerConstraints {
4930 tANI_U8 present;
4931 tANI_U8 localPowerConstraints;
4932} tDot11fIEPowerConstraints;
4933
4934#define DOT11F_EID_POWERCONSTRAINTS ( 32 )
4935
4936// N.B. These #defines do *not* include the EID & length
4937#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN ( 1 )
4938
4939#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN ( 1 )
4940
4941#ifdef __cplusplus
4942extern "C" {
4943#endif /* C++ */
4944tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerConstraints*);
4945
4946tANI_U32 dot11fPackIePowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U8*, tANI_U32, tANI_U32*);
4947
4948tANI_U32 dot11fGetPackedIEPowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U32*);
4949
4950#ifdef __cplusplus
4951}; /* End extern "C". */
4952#endif /* C++ */
4953// EID 11 (0x0b)
4954typedef struct sDot11fIEQBSSLoad {
4955 tANI_U8 present;
4956 tANI_U16 stacount;
4957 tANI_U8 chautil;
4958 tANI_U16 avail;
4959} tDot11fIEQBSSLoad;
4960
4961#define DOT11F_EID_QBSSLOAD ( 11 )
4962
4963// N.B. These #defines do *not* include the EID & length
4964#define DOT11F_IE_QBSSLOAD_MIN_LEN ( 5 )
4965
4966#define DOT11F_IE_QBSSLOAD_MAX_LEN ( 5 )
4967
4968#ifdef __cplusplus
4969extern "C" {
4970#endif /* C++ */
4971tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQBSSLoad*);
4972
4973tANI_U32 dot11fPackIeQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U8*, tANI_U32, tANI_U32*);
4974
4975tANI_U32 dot11fGetPackedIEQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U32*);
4976
4977#ifdef __cplusplus
4978}; /* End extern "C". */
4979#endif /* C++ */
4980// EID 46 (0x2e)
4981typedef struct sDot11fIEQOSCapsAp {
4982 tANI_U8 present;
Jeff Johnson295189b2012-06-20 16:38:30 -07004983 tANI_U8 count: 4;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05304984 tANI_U8 qack: 1;
4985 tANI_U8 qreq: 1;
4986 tANI_U8 txopreq: 1;
4987 tANI_U8 reserved: 1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004988} tDot11fIEQOSCapsAp;
4989
4990#define DOT11F_EID_QOSCAPSAP ( 46 )
4991
4992// N.B. These #defines do *not* include the EID & length
4993#define DOT11F_IE_QOSCAPSAP_MIN_LEN ( 1 )
4994
4995#define DOT11F_IE_QOSCAPSAP_MAX_LEN ( 1 )
4996
4997#ifdef __cplusplus
4998extern "C" {
4999#endif /* C++ */
5000tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsAp*);
5001
5002tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U8*, tANI_U32, tANI_U32*);
5003
5004tANI_U32 dot11fGetPackedIEQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U32*);
5005
5006#ifdef __cplusplus
5007}; /* End extern "C". */
5008#endif /* C++ */
5009// EID 46 (0x2e)
5010typedef struct sDot11fIEQOSCapsStation {
5011 tANI_U8 present;
Jeff Johnson295189b2012-06-20 16:38:30 -07005012 tANI_U8 acvo_uapsd: 1;
Gopichand Nakkala5199b0d2013-06-06 14:27:37 +05305013 tANI_U8 acvi_uapsd: 1;
5014 tANI_U8 acbk_uapsd: 1;
5015 tANI_U8 acbe_uapsd: 1;
5016 tANI_U8 qack: 1;
5017 tANI_U8 max_sp_length: 2;
5018 tANI_U8 more_data_ack: 1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019} tDot11fIEQOSCapsStation;
5020
5021#define DOT11F_EID_QOSCAPSSTATION ( 46 )
5022
5023// N.B. These #defines do *not* include the EID & length
5024#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN ( 1 )
5025
5026#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN ( 1 )
5027
5028#ifdef __cplusplus
5029extern "C" {
5030#endif /* C++ */
5031tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsStation*);
5032
5033tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U8*, tANI_U32, tANI_U32*);
5034
5035tANI_U32 dot11fGetPackedIEQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U32*);
5036
5037#ifdef __cplusplus
5038}; /* End extern "C". */
5039#endif /* C++ */
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07005040// EID 110 (0x6e)
5041typedef struct sDot11fIEQosMapSet {
5042 tANI_U8 present;
5043 tANI_U8 num_dscp_exceptions;
5044 tANI_U8 dscp_exceptions[60];
5045} tDot11fIEQosMapSet;
5046
5047#define DOT11F_EID_QOSMAPSET ( 110 )
5048
5049// N.B. These #defines do *not* include the EID & length
5050#define DOT11F_IE_QOSMAPSET_MIN_LEN ( 0 )
5051
5052#define DOT11F_IE_QOSMAPSET_MAX_LEN ( 60 )
5053
5054#ifdef __cplusplus
5055extern "C" {
5056#endif /* C++ */
5057tANI_U32 dot11fUnpackIeQosMapSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQosMapSet*);
5058
5059tANI_U32 dot11fPackIeQosMapSet(tpAniSirGlobal, tDot11fIEQosMapSet*, tANI_U8*, tANI_U32, tANI_U32*);
5060
5061tANI_U32 dot11fGetPackedIEQosMapSet(tpAniSirGlobal, tDot11fIEQosMapSet*, tANI_U32*);
5062
5063#ifdef __cplusplus
5064}; /* End extern "C". */
5065#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005066// EID 40 (0x28)
5067typedef struct sDot11fIEQuiet {
5068 tANI_U8 present;
5069 tANI_U8 count;
5070 tANI_U8 period;
5071 tANI_U16 duration;
5072 tANI_U16 offset;
5073} tDot11fIEQuiet;
5074
5075#define DOT11F_EID_QUIET ( 40 )
5076
5077// N.B. These #defines do *not* include the EID & length
5078#define DOT11F_IE_QUIET_MIN_LEN ( 6 )
5079
5080#define DOT11F_IE_QUIET_MAX_LEN ( 6 )
5081
5082#ifdef __cplusplus
5083extern "C" {
5084#endif /* C++ */
5085tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQuiet*);
5086
5087tANI_U32 dot11fPackIeQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U8*, tANI_U32, tANI_U32*);
5088
5089tANI_U32 dot11fGetPackedIEQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U32*);
5090
5091#ifdef __cplusplus
5092}; /* End extern "C". */
5093#endif /* C++ */
5094// EID 53 (0x35)
5095typedef struct sDot11fIERCPIIE {
5096 tANI_U8 present;
5097 tANI_U8 rcpi;
5098} tDot11fIERCPIIE;
5099
5100#define DOT11F_EID_RCPIIE ( 53 )
5101
5102// N.B. These #defines do *not* include the EID & length
5103#define DOT11F_IE_RCPIIE_MIN_LEN ( 1 )
5104
5105#define DOT11F_IE_RCPIIE_MAX_LEN ( 1 )
5106
5107#ifdef __cplusplus
5108extern "C" {
5109#endif /* C++ */
5110tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERCPIIE*);
5111
5112tANI_U32 dot11fPackIeRCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5113
5114tANI_U32 dot11fGetPackedIERCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U32*);
5115
5116#ifdef __cplusplus
5117}; /* End extern "C". */
5118#endif /* C++ */
5119// EID 57 (0x39)
5120typedef struct sDot11fIERICDataDesc {
5121 tANI_U8 present;
5122 tDot11fIERICData RICData;
5123 tDot11fIERICDescriptor RICDescriptor;
5124 tDot11fIETSPEC TSPEC;
5125 tANI_U16 num_TCLAS;
5126 tDot11fIETCLAS TCLAS[2];
5127 tDot11fIETCLASSPROC TCLASSPROC;
5128 tDot11fIETSDelay TSDelay;
5129 tDot11fIESchedule Schedule;
5130 tDot11fIEWMMTSPEC WMMTSPEC;
5131 tANI_U16 num_WMMTCLAS;
5132 tDot11fIEWMMTCLAS WMMTCLAS[2];
5133 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
5134 tDot11fIEWMMTSDelay WMMTSDelay;
5135 tDot11fIEWMMSchedule WMMSchedule;
5136} tDot11fIERICDataDesc;
5137
5138#define DOT11F_EID_RICDATADESC ( 57 )
5139
5140// N.B. These #defines do *not* include the EID & length
5141#define DOT11F_IE_RICDATADESC_MIN_LEN ( 0 )
5142
5143#define DOT11F_IE_RICDATADESC_MAX_LEN ( 548 )
5144
5145#ifdef __cplusplus
5146extern "C" {
5147#endif /* C++ */
5148tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDataDesc*);
5149
5150tANI_U32 dot11fPackIeRICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U8*, tANI_U32, tANI_U32*);
5151
5152tANI_U32 dot11fGetPackedIERICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U32*);
5153
5154#ifdef __cplusplus
5155}; /* End extern "C". */
5156#endif /* C++ */
5157// EID 48 (0x30)
5158typedef struct sDot11fIERSN {
5159 tANI_U8 present;
5160 tANI_U16 version /* Must be 1! */;
5161 tANI_U8 gp_cipher_suite[4];
5162 tANI_U16 pwise_cipher_suite_count;
5163 tANI_U8 pwise_cipher_suites[4][4];
5164 tANI_U16 akm_suite_count;
5165 tANI_U8 akm_suites[4][4];
Venkata Prathyusha Kuntupalliea7098e2013-01-31 16:08:13 -08005166 tANI_U8 RSN_Cap[2];
Jeff Johnson295189b2012-06-20 16:38:30 -07005167 tANI_U16 pmkid_count;
5168 tANI_U8 pmkid[4][16];
Chet Lanctot4b9abd72013-06-27 11:14:56 -07005169 tANI_U8 gp_mgmt_cipher_suite[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005170} tDot11fIERSN;
5171
5172#define DOT11F_EID_RSN ( 48 )
5173
5174// N.B. These #defines do *not* include the EID & length
5175#define DOT11F_IE_RSN_MIN_LEN ( 6 )
5176
Chet Lanctot4b9abd72013-06-27 11:14:56 -07005177#define DOT11F_IE_RSN_MAX_LEN ( 114 )
Jeff Johnson295189b2012-06-20 16:38:30 -07005178
5179#ifdef __cplusplus
5180extern "C" {
5181#endif /* C++ */
5182tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSN*);
5183
5184tANI_U32 dot11fPackIeRSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U8*, tANI_U32, tANI_U32*);
5185
5186tANI_U32 dot11fGetPackedIERSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U32*);
5187
5188#ifdef __cplusplus
5189}; /* End extern "C". */
5190#endif /* C++ */
5191// EID 65 (0x41)
5192typedef struct sDot11fIERSNIIE {
5193 tANI_U8 present;
5194 tANI_U8 rsni;
5195} tDot11fIERSNIIE;
5196
5197#define DOT11F_EID_RSNIIE ( 65 )
5198
5199// N.B. These #defines do *not* include the EID & length
5200#define DOT11F_IE_RSNIIE_MIN_LEN ( 1 )
5201
5202#define DOT11F_IE_RSNIIE_MAX_LEN ( 1 )
5203
5204#ifdef __cplusplus
5205extern "C" {
5206#endif /* C++ */
5207tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNIIE*);
5208
5209tANI_U32 dot11fPackIeRSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U8*, tANI_U32, tANI_U32*);
5210
5211tANI_U32 dot11fGetPackedIERSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U32*);
5212
5213#ifdef __cplusplus
5214}; /* End extern "C". */
5215#endif /* C++ */
5216// EID 48 (0x30)
5217typedef struct sDot11fIERSNOpaque {
5218 tANI_U8 present;
5219 tANI_U8 num_data;
5220 tANI_U8 data[253];
5221} tDot11fIERSNOpaque;
5222
5223#define DOT11F_EID_RSNOPAQUE ( 48 )
5224
5225// N.B. These #defines do *not* include the EID & length
5226#define DOT11F_IE_RSNOPAQUE_MIN_LEN ( 6 )
5227
5228#define DOT11F_IE_RSNOPAQUE_MAX_LEN ( 253 )
5229
5230#ifdef __cplusplus
5231extern "C" {
5232#endif /* C++ */
5233tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNOpaque*);
5234
5235tANI_U32 dot11fPackIeRSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5236
5237tANI_U32 dot11fGetPackedIERSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U32*);
5238
5239#ifdef __cplusplus
5240}; /* End extern "C". */
5241#endif /* C++ */
5242// EID 36 (0x24)
5243typedef struct sDot11fIESuppChannels {
5244 tANI_U8 present;
5245 tANI_U8 num_bands;
5246 tANI_U8 bands[48][2];
5247} tDot11fIESuppChannels;
5248
5249#define DOT11F_EID_SUPPCHANNELS ( 36 )
5250
5251// N.B. These #defines do *not* include the EID & length
5252#define DOT11F_IE_SUPPCHANNELS_MIN_LEN ( 2 )
5253
5254#define DOT11F_IE_SUPPCHANNELS_MAX_LEN ( 96 )
5255
5256#ifdef __cplusplus
5257extern "C" {
5258#endif /* C++ */
5259tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppChannels*);
5260
5261tANI_U32 dot11fPackIeSuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U8*, tANI_U32, tANI_U32*);
5262
5263tANI_U32 dot11fGetPackedIESuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U32*);
5264
5265#ifdef __cplusplus
5266}; /* End extern "C". */
5267#endif /* C++ */
Abhishek Singhccbeea22014-02-07 17:58:47 +05305268// EID 59 (0x3b)
5269typedef struct sDot11fIESuppOperatingClasses {
5270 tANI_U8 present;
5271 tANI_U8 num_classes;
5272 tANI_U8 classes[32];
5273} tDot11fIESuppOperatingClasses;
5274
5275#define DOT11F_EID_SUPPOPERATINGCLASSES ( 59 )
5276
5277// N.B. These #defines do *not* include the EID & length
5278#define DOT11F_IE_SUPPOPERATINGCLASSES_MIN_LEN ( 1 )
5279
5280#define DOT11F_IE_SUPPOPERATINGCLASSES_MAX_LEN ( 32 )
5281
5282#ifdef __cplusplus
5283extern "C" {
5284#endif /* C++ */
5285tANI_U32 dot11fUnpackIeSuppOperatingClasses(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppOperatingClasses*);
5286
5287tANI_U32 dot11fPackIeSuppOperatingClasses(tpAniSirGlobal, tDot11fIESuppOperatingClasses*, tANI_U8*, tANI_U32, tANI_U32*);
5288
5289tANI_U32 dot11fGetPackedIESuppOperatingClasses(tpAniSirGlobal, tDot11fIESuppOperatingClasses*, tANI_U32*);
5290
5291#ifdef __cplusplus
5292}; /* End extern "C". */
5293#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005294// EID 1 (0x01)
5295typedef struct sDot11fIESuppRates {
5296 tANI_U8 present;
5297 tANI_U8 num_rates;
5298 tANI_U8 rates[12];
5299} tDot11fIESuppRates;
5300
5301#define DOT11F_EID_SUPPRATES ( 1 )
5302
5303// N.B. These #defines do *not* include the EID & length
5304#define DOT11F_IE_SUPPRATES_MIN_LEN ( 0 )
5305
5306#define DOT11F_IE_SUPPRATES_MAX_LEN ( 12 )
5307
5308#define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \
5309 ((_x) == 04) || \
5310 ((_x) == 11) || \
5311 ((_x) == 22) || \
5312 ((_x) == 12) || \
5313 ((_x) == 18) || \
5314 ((_x) == 24) || \
5315 ((_x) == 36) || \
5316 ((_x) == 48) || \
5317 ((_x) == 72) || \
5318 ((_x) == 96) || \
5319 ((_x) == 108))
5320
5321#ifdef __cplusplus
5322extern "C" {
5323#endif /* C++ */
5324tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppRates*);
5325
5326tANI_U32 dot11fPackIeSuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
5327
5328tANI_U32 dot11fGetPackedIESuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U32*);
5329
5330#ifdef __cplusplus
5331}; /* End extern "C". */
5332#endif /* C++ */
5333// EID 5 (0x05)
5334typedef struct sDot11fIETIM {
5335 tANI_U8 present;
5336 tANI_U8 dtim_count;
5337 tANI_U8 dtim_period;
5338 tANI_U8 bmpctl;
5339 tANI_U8 num_vbmp;
5340 tANI_U8 vbmp[251];
5341} tDot11fIETIM;
5342
5343#define DOT11F_EID_TIM ( 5 )
5344
5345// N.B. These #defines do *not* include the EID & length
5346#define DOT11F_IE_TIM_MIN_LEN ( 4 )
5347
5348#define DOT11F_IE_TIM_MAX_LEN ( 254 )
5349
5350#ifdef __cplusplus
5351extern "C" {
5352#endif /* C++ */
5353tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETIM*);
5354
5355tANI_U32 dot11fPackIeTIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U8*, tANI_U32, tANI_U32*);
5356
5357tANI_U32 dot11fGetPackedIETIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U32*);
5358
5359#ifdef __cplusplus
5360}; /* End extern "C". */
5361#endif /* C++ */
5362// EID 35 (0x23)
5363typedef struct sDot11fIETPCReport {
5364 tANI_U8 present;
5365 tANI_U8 tx_power;
5366 tANI_U8 link_margin;
5367} tDot11fIETPCReport;
5368
5369#define DOT11F_EID_TPCREPORT ( 35 )
5370
5371// N.B. These #defines do *not* include the EID & length
5372#define DOT11F_IE_TPCREPORT_MIN_LEN ( 2 )
5373
5374#define DOT11F_IE_TPCREPORT_MAX_LEN ( 2 )
5375
5376#ifdef __cplusplus
5377extern "C" {
5378#endif /* C++ */
5379tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCReport*);
5380
5381tANI_U32 dot11fPackIeTPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U8*, tANI_U32, tANI_U32*);
5382
5383tANI_U32 dot11fGetPackedIETPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U32*);
5384
5385#ifdef __cplusplus
5386}; /* End extern "C". */
5387#endif /* C++ */
5388// EID 34 (0x22)
5389typedef struct sDot11fIETPCRequest {
5390 tANI_U8 present;
5391} tDot11fIETPCRequest;
5392
5393#define DOT11F_EID_TPCREQUEST ( 34 )
5394
5395// N.B. These #defines do *not* include the EID & length
5396#define DOT11F_IE_TPCREQUEST_MIN_LEN ( 0 )
5397
5398#define DOT11F_IE_TPCREQUEST_MAX_LEN ( 0 )
5399
5400#ifdef __cplusplus
5401extern "C" {
5402#endif /* C++ */
5403tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCRequest*);
5404
5405tANI_U32 dot11fPackIeTPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U8*, tANI_U32, tANI_U32*);
5406
5407tANI_U32 dot11fGetPackedIETPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U32*);
5408
5409#ifdef __cplusplus
5410}; /* End extern "C". */
5411#endif /* C++ */
Chet Lanctot8cecea22014-02-11 19:09:36 -08005412// EID 56 (0x38)
5413typedef struct sDot11fIETimeoutInterval {
5414 tANI_U8 present;
5415 tANI_U8 timeoutType;
5416 tANI_U32 timeoutValue;
5417} tDot11fIETimeoutInterval;
5418
5419#define DOT11F_EID_TIMEOUTINTERVAL ( 56 )
5420
5421// N.B. These #defines do *not* include the EID & length
5422#define DOT11F_IE_TIMEOUTINTERVAL_MIN_LEN ( 5 )
5423
5424#define DOT11F_IE_TIMEOUTINTERVAL_MAX_LEN ( 5 )
5425
5426#ifdef __cplusplus
5427extern "C" {
5428#endif /* C++ */
5429tANI_U32 dot11fUnpackIeTimeoutInterval(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETimeoutInterval*);
5430
5431tANI_U32 dot11fPackIeTimeoutInterval(tpAniSirGlobal, tDot11fIETimeoutInterval*, tANI_U8*, tANI_U32, tANI_U32*);
5432
5433tANI_U32 dot11fGetPackedIETimeoutInterval(tpAniSirGlobal, tDot11fIETimeoutInterval*, tANI_U32*);
5434
5435#ifdef __cplusplus
5436}; /* End extern "C". */
5437#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005438// EID 191 (0xbf)
5439typedef struct sDot11fIEVHTCaps {
5440 tANI_U8 present;
5441 tANI_U32 maxMPDULen: 2;
5442 tANI_U32 supportedChannelWidthSet: 2;
5443 tANI_U32 ldpcCodingCap: 1;
5444 tANI_U32 shortGI80MHz: 1;
5445 tANI_U32 shortGI160and80plus80MHz: 1;
5446 tANI_U32 txSTBC: 1;
5447 tANI_U32 rxSTBC: 3;
5448 tANI_U32 suBeamFormerCap: 1;
5449 tANI_U32 suBeamformeeCap: 1;
5450 tANI_U32 csnofBeamformerAntSup: 3;
5451 tANI_U32 numSoundingDim: 3;
5452 tANI_U32 muBeamformerCap: 1;
5453 tANI_U32 muBeamformeeCap: 1;
5454 tANI_U32 vhtTXOPPS: 1;
5455 tANI_U32 htcVHTCap: 1;
5456 tANI_U32 maxAMPDULenExp: 3;
5457 tANI_U32 vhtLinkAdaptCap: 2;
5458 tANI_U32 rxAntPattern: 1;
5459 tANI_U32 txAntPattern: 1;
5460 tANI_U32 reserved1: 2;
5461 tANI_U16 rxMCSMap;
5462 tANI_U16 rxHighSupDataRate: 13;
5463 tANI_U16 reserved2: 3;
5464 tANI_U16 txMCSMap;
5465 tANI_U16 txSupDataRate: 13;
5466 tANI_U16 reserved3: 3;
5467} tDot11fIEVHTCaps;
5468
5469#define DOT11F_EID_VHTCAPS ( 191 )
5470
5471// N.B. These #defines do *not* include the EID & length
5472#define DOT11F_IE_VHTCAPS_MIN_LEN ( 12 )
5473
5474#define DOT11F_IE_VHTCAPS_MAX_LEN ( 12 )
5475
5476#ifdef __cplusplus
5477extern "C" {
5478#endif /* C++ */
5479tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTCaps*);
5480
5481tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5482
5483tANI_U32 dot11fGetPackedIEVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U32*);
5484
5485#ifdef __cplusplus
5486}; /* End extern "C". */
5487#endif /* C++ */
5488// EID 193 (0xc1)
5489typedef struct sDot11fIEVHTExtBssLoad {
5490 tANI_U8 present;
5491 tANI_U8 muMIMOCapStaCount;
5492 tANI_U8 ssUnderUtil;
5493 tANI_U8 FortyMHzUtil;
5494 tANI_U8 EightyMHzUtil;
5495 tANI_U8 OneSixtyMHzUtil;
5496} tDot11fIEVHTExtBssLoad;
5497
5498#define DOT11F_EID_VHTEXTBSSLOAD ( 193 )
5499
5500// N.B. These #defines do *not* include the EID & length
5501#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN ( 5 )
5502
5503#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN ( 5 )
5504
5505#ifdef __cplusplus
5506extern "C" {
5507#endif /* C++ */
5508tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTExtBssLoad*);
5509
5510tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U8*, tANI_U32, tANI_U32*);
5511
5512tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U32*);
5513
5514#ifdef __cplusplus
5515}; /* End extern "C". */
5516#endif /* C++ */
5517// EID 192 (0xc0)
5518typedef struct sDot11fIEVHTOperation {
5519 tANI_U8 present;
5520 tANI_U8 chanWidth;
5521 tANI_U8 chanCenterFreqSeg1;
5522 tANI_U8 chanCenterFreqSeg2;
5523 tANI_U16 basicMCSSet;
5524} tDot11fIEVHTOperation;
5525
5526#define DOT11F_EID_VHTOPERATION ( 192 )
5527
5528// N.B. These #defines do *not* include the EID & length
5529#define DOT11F_IE_VHTOPERATION_MIN_LEN ( 5 )
5530
5531#define DOT11F_IE_VHTOPERATION_MAX_LEN ( 5 )
5532
5533#ifdef __cplusplus
5534extern "C" {
5535#endif /* C++ */
5536tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTOperation*);
5537
5538tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U8*, tANI_U32, tANI_U32*);
5539
5540tANI_U32 dot11fGetPackedIEVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U32*);
5541
5542#ifdef __cplusplus
5543}; /* End extern "C". */
5544#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005545// EID 68 (0x44)
5546typedef struct sDot11fIEWAPI {
5547 tANI_U8 present;
5548 tANI_U16 version /* Must be 1! */;
5549 tANI_U16 akm_suite_count;
5550 tANI_U8 akm_suites[4][4];
5551 tANI_U16 unicast_cipher_suite_count;
5552 tANI_U8 unicast_cipher_suites[4][4];
5553 tANI_U8 multicast_cipher_suite[4];
5554 tANI_U16 preauth: 1;
5555 tANI_U16 reserved: 15;
5556 tANI_U16 bkid_count;
5557 tANI_U8 bkid[4][16];
5558} tDot11fIEWAPI;
5559
5560#define DOT11F_EID_WAPI ( 68 )
5561
5562// N.B. These #defines do *not* include the EID & length
5563#define DOT11F_IE_WAPI_MIN_LEN ( 12 )
5564
5565#define DOT11F_IE_WAPI_MAX_LEN ( 110 )
5566
5567#ifdef __cplusplus
5568extern "C" {
5569#endif /* C++ */
5570tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPI*);
5571
5572tANI_U32 dot11fPackIeWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U8*, tANI_U32, tANI_U32*);
5573
5574tANI_U32 dot11fGetPackedIEWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U32*);
5575
5576#ifdef __cplusplus
5577}; /* End extern "C". */
5578#endif /* C++ */
5579// EID 68 (0x44)
5580typedef struct sDot11fIEWAPIOpaque {
5581 tANI_U8 present;
5582 tANI_U8 num_data;
5583 tANI_U8 data[253];
5584} tDot11fIEWAPIOpaque;
5585
5586#define DOT11F_EID_WAPIOPAQUE ( 68 )
5587
5588// N.B. These #defines do *not* include the EID & length
5589#define DOT11F_IE_WAPIOPAQUE_MIN_LEN ( 6 )
5590
5591#define DOT11F_IE_WAPIOPAQUE_MAX_LEN ( 253 )
5592
5593#ifdef __cplusplus
5594extern "C" {
5595#endif /* C++ */
5596tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPIOpaque*);
5597
5598tANI_U32 dot11fPackIeWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5599
5600tANI_U32 dot11fGetPackedIEWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U32*);
5601
5602#ifdef __cplusplus
5603}; /* End extern "C". */
5604#endif /* C++ */
5605// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00}
5606typedef struct sDot11fIEWFATPC {
5607 tANI_U8 present;
5608 tANI_U8 txPower;
5609 tANI_U8 linkMargin;
5610} tDot11fIEWFATPC;
5611
5612#define DOT11F_EID_WFATPC ( 221 )
5613
5614// N.B. These #defines do *not* include the EID & length
5615#define DOT11F_IE_WFATPC_MIN_LEN ( 7 )
5616
5617#define DOT11F_IE_WFATPC_MAX_LEN ( 7 )
5618
5619#ifdef __cplusplus
5620extern "C" {
5621#endif /* C++ */
5622tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFATPC*);
5623
5624tANI_U32 dot11fPackIeWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U8*, tANI_U32, tANI_U32*);
5625
5626tANI_U32 dot11fGetPackedIEWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U32*);
5627
5628#ifdef __cplusplus
5629}; /* End extern "C". */
5630#endif /* C++ */
Jeff Johnsone7245742012-09-05 17:12:55 -07005631// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a}
5632typedef struct sDot11fIEWFDIEOpaque {
5633 tANI_U8 present;
5634 tANI_U8 num_data;
5635 tANI_U8 data[249];
5636} tDot11fIEWFDIEOpaque;
5637
5638#define DOT11F_EID_WFDIEOPAQUE ( 221 )
5639
5640// N.B. These #defines do *not* include the EID & length
5641#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN ( 6 )
5642
5643#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN ( 253 )
5644
5645#ifdef __cplusplus
5646extern "C" {
5647#endif /* C++ */
5648tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFDIEOpaque*);
5649
5650tANI_U32 dot11fPackIeWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5651
5652tANI_U32 dot11fGetPackedIEWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U32*);
5653
5654#ifdef __cplusplus
5655}; /* End extern "C". */
5656#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005657// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05}
5658typedef struct sDot11fIEWMMCaps {
5659 tANI_U8 present;
5660 tANI_U8 version /* Must be 1! */;
5661 tANI_U8 reserved: 4;
5662 tANI_U8 qack: 1;
5663 tANI_U8 queue_request: 1;
5664 tANI_U8 txop_request: 1;
5665 tANI_U8 more_ack: 1;
5666} tDot11fIEWMMCaps;
5667
5668#define DOT11F_EID_WMMCAPS ( 221 )
5669
5670// N.B. These #defines do *not* include the EID & length
5671#define DOT11F_IE_WMMCAPS_MIN_LEN ( 7 )
5672
5673#define DOT11F_IE_WMMCAPS_MAX_LEN ( 7 )
5674
5675#ifdef __cplusplus
5676extern "C" {
5677#endif /* C++ */
5678tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMCaps*);
5679
5680tANI_U32 dot11fPackIeWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U8*, tANI_U32, tANI_U32*);
5681
5682tANI_U32 dot11fGetPackedIEWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U32*);
5683
5684#ifdef __cplusplus
5685}; /* End extern "C". */
5686#endif /* C++ */
5687// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5688typedef struct sDot11fIEWMMInfoAp {
5689 tANI_U8 present;
5690 tANI_U8 version;
5691 tANI_U8 param_set_count: 4;
5692 tANI_U8 reserved: 3;
5693 tANI_U8 uapsd: 1;
5694} tDot11fIEWMMInfoAp;
5695
5696#define DOT11F_EID_WMMINFOAP ( 221 )
5697
5698// N.B. These #defines do *not* include the EID & length
5699#define DOT11F_IE_WMMINFOAP_MIN_LEN ( 7 )
5700
5701#define DOT11F_IE_WMMINFOAP_MAX_LEN ( 7 )
5702
5703#ifdef __cplusplus
5704extern "C" {
5705#endif /* C++ */
5706tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoAp*);
5707
5708tANI_U32 dot11fPackIeWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U8*, tANI_U32, tANI_U32*);
5709
5710tANI_U32 dot11fGetPackedIEWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U32*);
5711
5712#ifdef __cplusplus
5713}; /* End extern "C". */
5714#endif /* C++ */
5715// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
5716typedef struct sDot11fIEWMMInfoStation {
5717 tANI_U8 present;
5718 tANI_U8 version;
5719 tANI_U8 acvo_uapsd: 1;
5720 tANI_U8 acvi_uapsd: 1;
5721 tANI_U8 acbk_uapsd: 1;
5722 tANI_U8 acbe_uapsd: 1;
5723 tANI_U8 reserved1: 1;
5724 tANI_U8 max_sp_length: 2;
5725 tANI_U8 reserved2: 1;
5726} tDot11fIEWMMInfoStation;
5727
5728#define DOT11F_EID_WMMINFOSTATION ( 221 )
5729
5730// N.B. These #defines do *not* include the EID & length
5731#define DOT11F_IE_WMMINFOSTATION_MIN_LEN ( 7 )
5732
5733#define DOT11F_IE_WMMINFOSTATION_MAX_LEN ( 7 )
5734
5735#ifdef __cplusplus
5736extern "C" {
5737#endif /* C++ */
5738tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoStation*);
5739
5740tANI_U32 dot11fPackIeWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U8*, tANI_U32, tANI_U32*);
5741
5742tANI_U32 dot11fGetPackedIEWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U32*);
5743
5744#ifdef __cplusplus
5745}; /* End extern "C". */
5746#endif /* C++ */
5747// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01}
5748typedef struct sDot11fIEWMMParams {
5749 tANI_U8 present;
5750 tANI_U8 version /* Must be 1! */;
5751 tANI_U8 qosInfo;
5752 tANI_U8 reserved2;
5753 tANI_U8 acbe_aifsn: 4;
5754 tANI_U8 acbe_acm: 1;
5755 tANI_U8 acbe_aci: 2;
5756 tANI_U8 unused1: 1;
5757 tANI_U8 acbe_acwmin: 4;
5758 tANI_U8 acbe_acwmax: 4;
5759 tANI_U16 acbe_txoplimit;
5760 tANI_U8 acbk_aifsn: 4;
5761 tANI_U8 acbk_acm: 1;
5762 tANI_U8 acbk_aci: 2;
5763 tANI_U8 unused2: 1;
5764 tANI_U8 acbk_acwmin: 4;
5765 tANI_U8 acbk_acwmax: 4;
5766 tANI_U16 acbk_txoplimit;
5767 tANI_U8 acvi_aifsn: 4;
5768 tANI_U8 acvi_acm: 1;
5769 tANI_U8 acvi_aci: 2;
5770 tANI_U8 unused3: 1;
5771 tANI_U8 acvi_acwmin: 4;
5772 tANI_U8 acvi_acwmax: 4;
5773 tANI_U16 acvi_txoplimit;
5774 tANI_U8 acvo_aifsn: 4;
5775 tANI_U8 acvo_acm: 1;
5776 tANI_U8 acvo_aci: 2;
5777 tANI_U8 unused4: 1;
5778 tANI_U8 acvo_acwmin: 4;
5779 tANI_U8 acvo_acwmax: 4;
5780 tANI_U16 acvo_txoplimit;
5781} tDot11fIEWMMParams;
5782
5783#define DOT11F_EID_WMMPARAMS ( 221 )
5784
5785// N.B. These #defines do *not* include the EID & length
5786#define DOT11F_IE_WMMPARAMS_MIN_LEN ( 24 )
5787
5788#define DOT11F_IE_WMMPARAMS_MAX_LEN ( 24 )
5789
5790#ifdef __cplusplus
5791extern "C" {
5792#endif /* C++ */
5793tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMParams*);
5794
5795tANI_U32 dot11fPackIeWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U8*, tANI_U32, tANI_U32*);
5796
5797tANI_U32 dot11fGetPackedIEWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U32*);
5798
5799#ifdef __cplusplus
5800}; /* End extern "C". */
5801#endif /* C++ */
5802// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5803typedef struct sDot11fIEWPA {
5804 tANI_U8 present;
5805 tANI_U16 version /* Must be 1! */;
5806 tANI_U8 multicast_cipher_present; //field added to fix the bug in dot11fPackIEWPA
5807 tANI_U8 multicast_cipher[4];
5808 tANI_U16 unicast_cipher_count;
5809 tANI_U8 unicast_ciphers[4][4];
5810 tANI_U16 auth_suite_count;
5811 tANI_U8 auth_suites[4][4];
5812 tANI_U16 caps;
5813} tDot11fIEWPA;
5814
5815#define DOT11F_EID_WPA ( 221 )
5816
5817// N.B. These #defines do *not* include the EID & length
5818#define DOT11F_IE_WPA_MIN_LEN ( 6 )
5819
5820#define DOT11F_IE_WPA_MAX_LEN ( 48 )
5821
5822#ifdef __cplusplus
5823extern "C" {
5824#endif /* C++ */
5825tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPA*);
5826
5827tANI_U32 dot11fPackIeWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U8*, tANI_U32, tANI_U32*);
5828
5829tANI_U32 dot11fGetPackedIEWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U32*);
5830
5831#ifdef __cplusplus
5832}; /* End extern "C". */
5833#endif /* C++ */
5834// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
5835typedef struct sDot11fIEWPAOpaque {
5836 tANI_U8 present;
5837 tANI_U8 num_data;
5838 tANI_U8 data[249];
5839} tDot11fIEWPAOpaque;
5840
5841#define DOT11F_EID_WPAOPAQUE ( 221 )
5842
5843// N.B. These #defines do *not* include the EID & length
5844#define DOT11F_IE_WPAOPAQUE_MIN_LEN ( 6 )
5845
5846#define DOT11F_IE_WPAOPAQUE_MAX_LEN ( 253 )
5847
5848#ifdef __cplusplus
5849extern "C" {
5850#endif /* C++ */
5851tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPAOpaque*);
5852
5853tANI_U32 dot11fPackIeWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
5854
5855tANI_U32 dot11fGetPackedIEWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U32*);
5856
5857#ifdef __cplusplus
5858}; /* End extern "C". */
5859#endif /* C++ */
5860// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5861typedef struct sDot11fIEWSC {
5862 tANI_U8 present;
5863 tDot11fTLVVersion Version;
5864 tDot11fTLVWPSState WPSState;
5865 tDot11fTLVAPSetupLocked APSetupLocked;
5866 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5867 tDot11fTLVUUID_E UUID_E;
5868 tDot11fTLVUUID_R UUID_R;
5869 tDot11fTLVRFBands RFBands;
5870 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5871 tDot11fTLVConfigMethods ConfigMethods;
5872 tDot11fTLVAssociationState AssociationState;
5873 tDot11fTLVConfigurationError ConfigurationError;
5874 tDot11fTLVManufacturer Manufacturer;
5875 tDot11fTLVModelName ModelName;
5876 tDot11fTLVModelNumber ModelNumber;
5877 tDot11fTLVSerialNumber SerialNumber;
5878 tDot11fTLVDeviceName DeviceName;
5879 tDot11fTLVDevicePasswordID DevicePasswordID;
5880 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
5881 tDot11fTLVRequestType RequestType;
5882 tDot11fTLVResponseType ResponseType;
5883 tDot11fTLVVendorExtension VendorExtension;
5884 tDot11fTLVRequestDeviceType RequestDeviceType;
5885} tDot11fIEWSC;
5886
5887#define DOT11F_EID_WSC ( 221 )
5888
5889// N.B. These #defines do *not* include the EID & length
5890#define DOT11F_IE_WSC_MIN_LEN ( 4 )
5891
5892#define DOT11F_IE_WSC_MAX_LEN ( 366 )
5893
5894#ifdef __cplusplus
5895extern "C" {
5896#endif /* C++ */
5897tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWSC*);
5898
5899tANI_U32 dot11fPackIeWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U8*, tANI_U32, tANI_U32*);
5900
5901tANI_U32 dot11fGetPackedIEWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U32*);
5902
5903#ifdef __cplusplus
5904}; /* End extern "C". */
5905#endif /* C++ */
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07005906// EID 194 (0xc2)
5907typedef struct sDot11fIEWiderBWChanSwitchAnn {
5908 tANI_U8 present;
5909 tANI_U8 newChanWidth;
5910 tANI_U8 newCenterChanFreq0;
5911 tANI_U8 newCenterChanFreq1;
5912} tDot11fIEWiderBWChanSwitchAnn;
5913
5914#define DOT11F_EID_WIDERBWCHANSWITCHANN ( 194 )
5915
5916// N.B. These #defines do *not* include the EID & length
5917#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN ( 3 )
5918
5919#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN ( 3 )
5920
5921#ifdef __cplusplus
5922extern "C" {
5923#endif /* C++ */
5924tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWiderBWChanSwitchAnn*);
5925
5926tANI_U32 dot11fPackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
5927
5928tANI_U32 dot11fGetPackedIEWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U32*);
5929
5930#ifdef __cplusplus
5931}; /* End extern "C". */
5932#endif /* C++ */
Jeff Johnson295189b2012-06-20 16:38:30 -07005933// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5934typedef struct sDot11fIEWscAssocReq {
5935 tANI_U8 present;
5936 tDot11fTLVVersion Version;
5937 tDot11fTLVRequestType RequestType;
5938 tDot11fTLVVendorExtension VendorExtension;
5939} tDot11fIEWscAssocReq;
5940
5941#define DOT11F_EID_WSCASSOCREQ ( 221 )
5942
5943// N.B. These #defines do *not* include the EID & length
5944#define DOT11F_IE_WSCASSOCREQ_MIN_LEN ( 4 )
5945
5946#define DOT11F_IE_WSCASSOCREQ_MAX_LEN ( 35 )
5947
5948#ifdef __cplusplus
5949extern "C" {
5950#endif /* C++ */
5951tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocReq*);
5952
5953tANI_U32 dot11fPackIeWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
5954
5955tANI_U32 dot11fGetPackedIEWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U32*);
5956
5957#ifdef __cplusplus
5958}; /* End extern "C". */
5959#endif /* C++ */
5960// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5961typedef struct sDot11fIEWscAssocRes {
5962 tANI_U8 present;
5963 tDot11fTLVVersion Version;
5964 tDot11fTLVResponseType ResponseType;
5965 tDot11fTLVVendorExtension VendorExtension;
5966} tDot11fIEWscAssocRes;
5967
5968#define DOT11F_EID_WSCASSOCRES ( 221 )
5969
5970// N.B. These #defines do *not* include the EID & length
5971#define DOT11F_IE_WSCASSOCRES_MIN_LEN ( 4 )
5972
5973#define DOT11F_IE_WSCASSOCRES_MAX_LEN ( 35 )
5974
5975#ifdef __cplusplus
5976extern "C" {
5977#endif /* C++ */
5978tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocRes*);
5979
5980tANI_U32 dot11fPackIeWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
5981
5982tANI_U32 dot11fGetPackedIEWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U32*);
5983
5984#ifdef __cplusplus
5985}; /* End extern "C". */
5986#endif /* C++ */
5987// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
5988typedef struct sDot11fIEWscBeacon {
5989 tANI_U8 present;
5990 tDot11fTLVVersion Version;
5991 tDot11fTLVWPSState WPSState;
5992 tDot11fTLVAPSetupLocked APSetupLocked;
5993 tDot11fTLVSelectedRegistrar SelectedRegistrar;
5994 tDot11fTLVDevicePasswordID DevicePasswordID;
5995 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
5996 tDot11fTLVUUID_E UUID_E;
5997 tDot11fTLVRFBands RFBands;
5998 tDot11fTLVVendorExtension VendorExtension;
5999} tDot11fIEWscBeacon;
6000
6001#define DOT11F_EID_WSCBEACON ( 221 )
6002
6003// N.B. These #defines do *not* include the EID & length
6004#define DOT11F_IE_WSCBEACON_MIN_LEN ( 4 )
6005
6006#define DOT11F_IE_WSCBEACON_MAX_LEN ( 82 )
6007
6008#ifdef __cplusplus
6009extern "C" {
6010#endif /* C++ */
6011tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeacon*);
6012
6013tANI_U32 dot11fPackIeWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
6014
6015tANI_U32 dot11fGetPackedIEWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U32*);
6016
6017#ifdef __cplusplus
6018}; /* End extern "C". */
6019#endif /* C++ */
6020// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
6021typedef struct sDot11fIEWscBeaconProbeRes {
6022 tANI_U8 present;
6023 tDot11fTLVVersion Version;
6024 tDot11fTLVWPSState WPSState;
6025 tDot11fTLVAPSetupLocked APSetupLocked;
6026 tDot11fTLVSelectedRegistrar SelectedRegistrar;
6027 tDot11fTLVDevicePasswordID DevicePasswordID;
6028 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
6029 tDot11fTLVResponseType ResponseType;
6030 tDot11fTLVUUID_E UUID_E;
6031 tDot11fTLVManufacturer Manufacturer;
6032 tDot11fTLVModelName ModelName;
6033 tDot11fTLVModelNumber ModelNumber;
6034 tDot11fTLVSerialNumber SerialNumber;
6035 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
6036 tDot11fTLVDeviceName DeviceName;
6037 tDot11fTLVConfigMethods ConfigMethods;
6038 tDot11fTLVRFBands RFBands;
6039 tDot11fTLVVendorExtension VendorExtension;
6040} tDot11fIEWscBeaconProbeRes;
6041
6042#define DOT11F_EID_WSCBEACONPROBERES ( 221 )
6043
6044// N.B. These #defines do *not* include the EID & length
6045#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN ( 4 )
6046
6047#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN ( 317 )
6048
6049#ifdef __cplusplus
6050extern "C" {
6051#endif /* C++ */
6052tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeaconProbeRes*);
6053
6054tANI_U32 dot11fPackIeWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
6055
6056tANI_U32 dot11fGetPackedIEWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U32*);
6057
6058#ifdef __cplusplus
6059}; /* End extern "C". */
6060#endif /* C++ */
6061// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04}
6062typedef struct sDot11fIEWscIEOpaque {
6063 tANI_U8 present;
6064 tANI_U8 num_data;
6065 tANI_U8 data[249];
6066} tDot11fIEWscIEOpaque;
6067
6068#define DOT11F_EID_WSCIEOPAQUE ( 221 )
6069
6070// N.B. These #defines do *not* include the EID & length
6071#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN ( 6 )
6072
6073#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN ( 253 )
6074
6075#ifdef __cplusplus
6076extern "C" {
6077#endif /* C++ */
6078tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscIEOpaque*);
6079
6080tANI_U32 dot11fPackIeWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
6081
6082tANI_U32 dot11fGetPackedIEWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U32*);
6083
6084#ifdef __cplusplus
6085}; /* End extern "C". */
6086#endif /* C++ */
6087// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
6088typedef struct sDot11fIEWscProbeReq {
6089 tANI_U8 present;
6090 tDot11fTLVVersion Version;
6091 tDot11fTLVRequestType RequestType;
6092 tDot11fTLVConfigMethods ConfigMethods;
6093 tDot11fTLVUUID_E UUID_E;
6094 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
6095 tDot11fTLVRFBands RFBands;
6096 tDot11fTLVAssociationState AssociationState;
6097 tDot11fTLVConfigurationError ConfigurationError;
6098 tDot11fTLVDevicePasswordID DevicePasswordID;
6099 tDot11fTLVManufacturer Manufacturer;
6100 tDot11fTLVModelName ModelName;
6101 tDot11fTLVModelNumber ModelNumber;
6102 tDot11fTLVDeviceName DeviceName;
6103 tDot11fTLVVendorExtension VendorExtension;
6104 tDot11fTLVRequestDeviceType RequestDeviceType;
6105} tDot11fIEWscProbeReq;
6106
6107#define DOT11F_EID_WSCPROBEREQ ( 221 )
6108
6109// N.B. These #defines do *not* include the EID & length
6110#define DOT11F_IE_WSCPROBEREQ_MIN_LEN ( 4 )
6111
6112#define DOT11F_IE_WSCPROBEREQ_MAX_LEN ( 284 )
6113
6114#ifdef __cplusplus
6115extern "C" {
6116#endif /* C++ */
6117tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeReq*);
6118
6119tANI_U32 dot11fPackIeWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
6120
6121tANI_U32 dot11fGetPackedIEWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U32*);
6122
6123#ifdef __cplusplus
6124}; /* End extern "C". */
6125#endif /* C++ */
6126// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
6127typedef struct sDot11fIEWscProbeRes {
6128 tANI_U8 present;
6129 tDot11fTLVVersion Version;
6130 tDot11fTLVWPSState WPSState;
6131 tDot11fTLVAPSetupLocked APSetupLocked;
6132 tDot11fTLVSelectedRegistrar SelectedRegistrar;
6133 tDot11fTLVDevicePasswordID DevicePasswordID;
6134 tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
6135 tDot11fTLVResponseType ResponseType;
6136 tDot11fTLVUUID_E UUID_E;
6137 tDot11fTLVManufacturer Manufacturer;
6138 tDot11fTLVModelName ModelName;
6139 tDot11fTLVModelNumber ModelNumber;
6140 tDot11fTLVSerialNumber SerialNumber;
6141 tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
6142 tDot11fTLVDeviceName DeviceName;
6143 tDot11fTLVConfigMethods ConfigMethods;
6144 tDot11fTLVRFBands RFBands;
6145 tDot11fTLVVendorExtension VendorExtension;
6146} tDot11fIEWscProbeRes;
6147
6148#define DOT11F_EID_WSCPROBERES ( 221 )
6149
6150// N.B. These #defines do *not* include the EID & length
6151#define DOT11F_IE_WSCPROBERES_MIN_LEN ( 4 )
6152
6153#define DOT11F_IE_WSCPROBERES_MAX_LEN ( 317 )
6154
6155#ifdef __cplusplus
6156extern "C" {
6157#endif /* C++ */
6158tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeRes*);
6159
6160tANI_U32 dot11fPackIeWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
6161
6162tANI_U32 dot11fGetPackedIEWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U32*);
6163
6164#ifdef __cplusplus
6165}; /* End extern "C". */
6166#endif /* C++ */
6167// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
6168typedef struct sDot11fIEWscReassocRes {
6169 tANI_U8 present;
6170 tDot11fTLVVersion Version;
6171 tDot11fTLVResponseType ResponseType;
6172 tDot11fTLVVendorExtension VendorExtension;
6173} tDot11fIEWscReassocRes;
6174
6175#define DOT11F_EID_WSCREASSOCRES ( 221 )
6176
6177// N.B. These #defines do *not* include the EID & length
6178#define DOT11F_IE_WSCREASSOCRES_MIN_LEN ( 4 )
6179
6180#define DOT11F_IE_WSCREASSOCRES_MAX_LEN ( 35 )
6181
6182#ifdef __cplusplus
6183extern "C" {
6184#endif /* C++ */
6185tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscReassocRes*);
6186
6187tANI_U32 dot11fPackIeWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U8*, tANI_U32, tANI_U32*);
6188
6189tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U32*);
6190
6191#ifdef __cplusplus
6192}; /* End extern "C". */
6193#endif /* C++ */
6194/************************************************************************
6195 * Frames
6196 **********************************************************************/
6197
6198typedef struct sDot11fAddBAReq{
6199 tDot11fFfCategory Category;
6200 tDot11fFfAction Action;
6201 tDot11fFfDialogToken DialogToken;
6202 tDot11fFfAddBAParameterSet AddBAParameterSet;
6203 tDot11fFfBATimeout BATimeout;
6204 tDot11fFfBAStartingSequenceControl BAStartingSequenceControl;
6205} tDot11fAddBAReq;
6206
6207#define DOT11F_ADDBAREQ ( 1 )
6208
6209#ifdef __cplusplus
6210extern "C" {
6211#endif /* C++ */
6212
6213tANI_U32 dot11fUnpackAddBAReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBAReq *pFrm);
6214tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6215tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded);
6216
6217#ifdef __cplusplus
6218} /* End extern "C". */
6219#endif /* C++ */
6220
6221typedef struct sDot11fAddBARsp{
6222 tDot11fFfCategory Category;
6223 tDot11fFfAction Action;
6224 tDot11fFfDialogToken DialogToken;
6225 tDot11fFfStatus Status;
6226 tDot11fFfAddBAParameterSet AddBAParameterSet;
6227 tDot11fFfBATimeout BATimeout;
6228} tDot11fAddBARsp;
6229
6230#define DOT11F_ADDBARSP ( 2 )
6231
6232#ifdef __cplusplus
6233extern "C" {
6234#endif /* C++ */
6235
6236tANI_U32 dot11fUnpackAddBARsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBARsp *pFrm);
6237tANI_U32 dot11fPackAddBARsp(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6238tANI_U32 dot11fGetPackedAddBARspSize(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U32 *pnNeeded);
6239
6240#ifdef __cplusplus
6241} /* End extern "C". */
6242#endif /* C++ */
6243
6244typedef struct sDot11fAddTSRequest{
6245 tDot11fFfCategory Category;
6246 tDot11fFfAction Action;
6247 tDot11fFfDialogToken DialogToken;
6248 tDot11fIETSPEC TSPEC;
6249 tANI_U16 num_TCLAS;
6250 tDot11fIETCLAS TCLAS[2];
6251 tDot11fIETCLASSPROC TCLASSPROC;
6252 tDot11fIEWMMTSPEC WMMTSPEC;
6253 tANI_U16 num_WMMTCLAS;
6254 tDot11fIEWMMTCLAS WMMTCLAS[2];
6255 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006256 tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07006257} tDot11fAddTSRequest;
6258
6259#define DOT11F_ADDTSREQUEST ( 3 )
6260
6261#ifdef __cplusplus
6262extern "C" {
6263#endif /* C++ */
6264
6265tANI_U32 dot11fUnpackAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSRequest *pFrm);
6266tANI_U32 dot11fPackAddTSRequest(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6267tANI_U32 dot11fGetPackedAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U32 *pnNeeded);
6268
6269#ifdef __cplusplus
6270} /* End extern "C". */
6271#endif /* C++ */
6272
6273typedef struct sDot11fAddTSResponse{
6274 tDot11fFfCategory Category;
6275 tDot11fFfAction Action;
6276 tDot11fFfDialogToken DialogToken;
6277 tDot11fFfStatus Status;
6278 tDot11fIETSDelay TSDelay;
6279 tDot11fIETSPEC TSPEC;
6280 tANI_U16 num_TCLAS;
6281 tDot11fIETCLAS TCLAS[2];
6282 tDot11fIETCLASSPROC TCLASSPROC;
6283 tDot11fIESchedule Schedule;
6284 tDot11fIEWMMTSDelay WMMTSDelay;
6285 tDot11fIEWMMSchedule WMMSchedule;
6286 tDot11fIEWMMTSPEC WMMTSPEC;
6287 tANI_U16 num_WMMTCLAS;
6288 tDot11fIEWMMTCLAS WMMTCLAS[2];
6289 tDot11fIEWMMTCLASPROC WMMTCLASPROC;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006290 tDot11fIEESETrafStrmMet ESETrafStrmMet;
Jeff Johnson295189b2012-06-20 16:38:30 -07006291} tDot11fAddTSResponse;
6292
6293#define DOT11F_ADDTSRESPONSE ( 4 )
6294
6295#ifdef __cplusplus
6296extern "C" {
6297#endif /* C++ */
6298
6299tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSResponse *pFrm);
6300tANI_U32 dot11fPackAddTSResponse(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6301tANI_U32 dot11fGetPackedAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U32 *pnNeeded);
6302
6303#ifdef __cplusplus
6304} /* End extern "C". */
6305#endif /* C++ */
6306
6307typedef struct sDot11fAssocRequest{
6308 tDot11fFfCapabilities Capabilities;
6309 tDot11fFfListenInterval ListenInterval;
6310 tDot11fIESSID SSID;
6311 tDot11fIESuppRates SuppRates;
6312 tDot11fIEExtSuppRates ExtSuppRates;
6313 tDot11fIEPowerCaps PowerCaps;
6314 tDot11fIESuppChannels SuppChannels;
6315 tDot11fIERSNOpaque RSNOpaque;
6316 tDot11fIEQOSCapsStation QOSCapsStation;
6317 tDot11fIERRMEnabledCap RRMEnabledCap;
6318 tDot11fIEMobilityDomain MobilityDomain;
6319 tDot11fIEWPAOpaque WPAOpaque;
6320 tDot11fIEHTCaps HTCaps;
6321 tDot11fIEWMMCaps WMMCaps;
6322 tDot11fIEWMMInfoStation WMMInfoStation;
6323 tDot11fIEAirgo Airgo;
6324 tDot11fIEWscIEOpaque WscIEOpaque;
6325 tDot11fIEWAPIOpaque WAPIOpaque;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006326 tDot11fIEESERadMgmtCap ESERadMgmtCap;
6327 tDot11fIEESEVersion ESEVersion;
Jeff Johnson295189b2012-06-20 16:38:30 -07006328 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07006329 tDot11fIEWFDIEOpaque WFDIEOpaque;
6330 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07006331 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07006332 tDot11fIEOperatingMode OperatingMode;
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07006333 tDot11fIEQosMapSet QosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07006334} tDot11fAssocRequest;
6335
6336#define DOT11F_ASSOCREQUEST ( 5 )
6337
6338#ifdef __cplusplus
6339extern "C" {
6340#endif /* C++ */
6341
6342tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm);
6343tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6344tANI_U32 dot11fGetPackedAssocRequestSize(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U32 *pnNeeded);
6345
6346#ifdef __cplusplus
6347} /* End extern "C". */
6348#endif /* C++ */
6349
6350typedef struct sDot11fAssocResponse{
Abhishek Singhccbeea22014-02-07 17:58:47 +05306351 tDot11fFfCapabilities Capabilities;
6352 tDot11fFfStatus Status;
6353 tDot11fFfAID AID;
6354 tDot11fIESuppRates SuppRates;
6355 tDot11fIEExtSuppRates ExtSuppRates;
6356 tDot11fIEEDCAParamSet EDCAParamSet;
6357 tDot11fIERCPIIE RCPIIE;
6358 tDot11fIERSNIIE RSNIIE;
6359 tDot11fIERRMEnabledCap RRMEnabledCap;
6360 tDot11fIEMobilityDomain MobilityDomain;
6361 tDot11fIEFTInfo FTInfo;
6362 tANI_U16 num_RICDataDesc;
6363 tDot11fIERICDataDesc RICDataDesc[2];
6364 tDot11fIEWPA WPA;
Chet Lanctot8cecea22014-02-11 19:09:36 -08006365 tDot11fIETimeoutInterval TimeoutInterval;
Abhishek Singhccbeea22014-02-07 17:58:47 +05306366 tDot11fIEHTCaps HTCaps;
6367 tDot11fIEHTInfo HTInfo;
6368 tDot11fIEWMMParams WMMParams;
6369 tDot11fIEWMMCaps WMMCaps;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006370 tDot11fIEESERadMgmtCap ESERadMgmtCap;
6371 tDot11fIEESETrafStrmMet ESETrafStrmMet;
6372 tDot11fIEESETxmitPower ESETxmitPower;
Abhishek Singhccbeea22014-02-07 17:58:47 +05306373 tANI_U16 num_WMMTSPEC;
6374 tDot11fIEWMMTSPEC WMMTSPEC[4];
6375 tDot11fIEAirgo Airgo;
6376 tDot11fIEWscAssocRes WscAssocRes;
6377 tDot11fIEP2PAssocRes P2PAssocRes;
6378 tDot11fIEVHTCaps VHTCaps;
6379 tDot11fIEVHTOperation VHTOperation;
6380 tDot11fIEExtCap ExtCap;
6381 tDot11fIEOBSSScanParameters OBSSScanParameters;
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07006382 tDot11fIEQosMapSet QosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07006383} tDot11fAssocResponse;
6384
6385#define DOT11F_ASSOCRESPONSE ( 6 )
6386
6387#ifdef __cplusplus
6388extern "C" {
6389#endif /* C++ */
6390
6391tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm);
6392tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6393tANI_U32 dot11fGetPackedAssocResponseSize(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U32 *pnNeeded);
6394
6395#ifdef __cplusplus
6396} /* End extern "C". */
6397#endif /* C++ */
6398
6399typedef struct sDot11fAuthentication{
Chet Lanctot8cecea22014-02-11 19:09:36 -08006400 tDot11fFfAuthAlgo AuthAlgo;
6401 tDot11fFfAuthSeqNo AuthSeqNo;
6402 tDot11fFfStatus Status;
6403 tDot11fIEChallengeText ChallengeText;
6404 tDot11fIERSNOpaque RSNOpaque;
6405 tDot11fIEMobilityDomain MobilityDomain;
6406 tDot11fIEFTInfo FTInfo;
6407 tDot11fIETimeoutInterval TimeoutInterval;
6408 tANI_U16 num_RICDataDesc;
6409 tDot11fIERICDataDesc RICDataDesc[2];
Jeff Johnson295189b2012-06-20 16:38:30 -07006410} tDot11fAuthentication;
6411
6412#define DOT11F_AUTHENTICATION ( 7 )
6413
6414#ifdef __cplusplus
6415extern "C" {
6416#endif /* C++ */
6417
6418tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAuthentication *pFrm);
6419tANI_U32 dot11fPackAuthentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6420tANI_U32 dot11fGetPackedAuthenticationSize(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U32 *pnNeeded);
6421
6422#ifdef __cplusplus
6423} /* End extern "C". */
6424#endif /* C++ */
6425
6426typedef struct sDot11fBeacon{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006427 tDot11fFfTimeStamp TimeStamp;
6428 tDot11fFfBeaconInterval BeaconInterval;
6429 tDot11fFfCapabilities Capabilities;
6430 tDot11fIESSID SSID;
6431 tDot11fIESuppRates SuppRates;
6432 tDot11fIEFHParamSet FHParamSet;
6433 tDot11fIEDSParams DSParams;
6434 tDot11fIECFParams CFParams;
6435 tDot11fIEIBSSParams IBSSParams;
6436 tDot11fIETIM TIM;
6437 tDot11fIECountry Country;
6438 tDot11fIEFHParams FHParams;
6439 tDot11fIEFHPattTable FHPattTable;
6440 tDot11fIEPowerConstraints PowerConstraints;
6441 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6442 tDot11fIEQuiet Quiet;
6443 tDot11fIETPCReport TPCReport;
6444 tDot11fIEERPInfo ERPInfo;
6445 tDot11fIEExtSuppRates ExtSuppRates;
6446 tDot11fIERSN RSN;
6447 tDot11fIEQBSSLoad QBSSLoad;
6448 tDot11fIEEDCAParamSet EDCAParamSet;
6449 tDot11fIEQOSCapsAp QOSCapsAp;
6450 tDot11fIEAPChannelReport APChannelReport;
6451 tDot11fIERRMEnabledCap RRMEnabledCap;
6452 tDot11fIEMobilityDomain MobilityDomain;
6453 tDot11fIEWPA WPA;
6454 tDot11fIEHTCaps HTCaps;
6455 tDot11fIEHTInfo HTInfo;
6456 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6457 tDot11fIEWMMInfoAp WMMInfoAp;
6458 tDot11fIEWMMParams WMMParams;
6459 tDot11fIEWMMCaps WMMCaps;
6460 tDot11fIEWAPI WAPI;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006461 tDot11fIEESERadMgmtCap ESERadMgmtCap;
6462 tDot11fIEESETrafStrmMet ESETrafStrmMet;
6463 tDot11fIEESETxmitPower ESETxmitPower;
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006464 tDot11fIEAirgo Airgo;
6465 tDot11fIEWscBeacon WscBeacon;
6466 tDot11fIEP2PBeacon P2PBeacon;
6467 tDot11fIEVHTCaps VHTCaps;
6468 tDot11fIEVHTOperation VHTOperation;
6469 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6470 tDot11fIEExtCap ExtCap;
6471 tDot11fIEOperatingMode OperatingMode;
6472 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Abhishek Singhccbeea22014-02-07 17:58:47 +05306473 tDot11fIEOBSSScanParameters OBSSScanParameters;
Jeff Johnson295189b2012-06-20 16:38:30 -07006474} tDot11fBeacon;
6475
6476#define DOT11F_BEACON ( 8 )
6477
6478#ifdef __cplusplus
6479extern "C" {
6480#endif /* C++ */
6481
6482tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon *pFrm);
6483tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6484tANI_U32 dot11fGetPackedBeaconSize(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U32 *pnNeeded);
6485
6486#ifdef __cplusplus
6487} /* End extern "C". */
6488#endif /* C++ */
6489
6490typedef struct sDot11fBeacon1{
6491 tDot11fFfTimeStamp TimeStamp;
6492 tDot11fFfBeaconInterval BeaconInterval;
6493 tDot11fFfCapabilities Capabilities;
6494 tDot11fIESSID SSID;
6495 tDot11fIESuppRates SuppRates;
6496 tDot11fIEDSParams DSParams;
6497 tDot11fIEIBSSParams IBSSParams;
6498} tDot11fBeacon1;
6499
6500#define DOT11F_BEACON1 ( 9 )
6501
6502#ifdef __cplusplus
6503extern "C" {
6504#endif /* C++ */
6505
6506tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon1 *pFrm);
6507tANI_U32 dot11fPackBeacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6508tANI_U32 dot11fGetPackedBeacon1Size(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U32 *pnNeeded);
6509
6510#ifdef __cplusplus
6511} /* End extern "C". */
6512#endif /* C++ */
6513
6514typedef struct sDot11fBeacon2{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006515 tDot11fIECountry Country;
6516 tDot11fIEPowerConstraints PowerConstraints;
6517 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6518 tDot11fIEQuiet Quiet;
6519 tDot11fIETPCReport TPCReport;
6520 tDot11fIEERPInfo ERPInfo;
6521 tDot11fIEExtSuppRates ExtSuppRates;
Chet Lanctot4b9abd72013-06-27 11:14:56 -07006522 tDot11fIERSNOpaque RSNOpaque;
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006523 tDot11fIEEDCAParamSet EDCAParamSet;
6524 tDot11fIEAPChannelReport APChannelReport;
6525 tDot11fIERRMEnabledCap RRMEnabledCap;
6526 tDot11fIEMobilityDomain MobilityDomain;
6527 tDot11fIEWPA WPA;
6528 tDot11fIEHTCaps HTCaps;
6529 tDot11fIEHTInfo HTInfo;
6530 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6531 tDot11fIEWMMInfoAp WMMInfoAp;
6532 tDot11fIEWMMParams WMMParams;
6533 tDot11fIEWMMCaps WMMCaps;
6534 tDot11fIEAirgo Airgo;
6535 tDot11fIEWscBeacon WscBeacon;
6536 tDot11fIEWAPI WAPI;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006537 tDot11fIEESERadMgmtCap ESERadMgmtCap;
6538 tDot11fIEESETrafStrmMet ESETrafStrmMet;
6539 tDot11fIEESETxmitPower ESETxmitPower;
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006540 tDot11fIEP2PBeacon P2PBeacon;
6541 tDot11fIEVHTCaps VHTCaps;
6542 tDot11fIEVHTOperation VHTOperation;
6543 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6544 tDot11fIEExtCap ExtCap;
6545 tDot11fIEOperatingMode OperatingMode;
6546 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306547 tDot11fIEOBSSScanParameters OBSSScanParameters;
Jeff Johnson295189b2012-06-20 16:38:30 -07006548} tDot11fBeacon2;
6549
6550#define DOT11F_BEACON2 ( 10 )
6551
6552#ifdef __cplusplus
6553extern "C" {
6554#endif /* C++ */
6555
6556tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon2 *pFrm);
6557tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6558tANI_U32 dot11fGetPackedBeacon2Size(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U32 *pnNeeded);
6559
6560#ifdef __cplusplus
6561} /* End extern "C". */
6562#endif /* C++ */
6563
6564typedef struct sDot11fBeaconIEs{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006565 tDot11fIESSID SSID;
6566 tDot11fIESuppRates SuppRates;
6567 tDot11fIEFHParamSet FHParamSet;
6568 tDot11fIEDSParams DSParams;
6569 tDot11fIECFParams CFParams;
6570 tDot11fIEIBSSParams IBSSParams;
6571 tDot11fIETIM TIM;
6572 tDot11fIECountry Country;
6573 tDot11fIEFHParams FHParams;
6574 tDot11fIEFHPattTable FHPattTable;
6575 tDot11fIEPowerConstraints PowerConstraints;
6576 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6577 tDot11fIEQuiet Quiet;
6578 tDot11fIETPCReport TPCReport;
6579 tDot11fIEERPInfo ERPInfo;
6580 tDot11fIEExtSuppRates ExtSuppRates;
6581 tDot11fIERSN RSN;
6582 tDot11fIEQBSSLoad QBSSLoad;
6583 tDot11fIEEDCAParamSet EDCAParamSet;
6584 tDot11fIEQOSCapsAp QOSCapsAp;
6585 tDot11fIEAPChannelReport APChannelReport;
6586 tDot11fIERRMEnabledCap RRMEnabledCap;
6587 tDot11fIEMobilityDomain MobilityDomain;
6588 tDot11fIEWPA WPA;
6589 tDot11fIEHTCaps HTCaps;
6590 tDot11fIEHTInfo HTInfo;
6591 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6592 tDot11fIEWMMInfoAp WMMInfoAp;
6593 tDot11fIEWMMParams WMMParams;
6594 tDot11fIEWMMCaps WMMCaps;
6595 tDot11fIEWAPI WAPI;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08006596 tDot11fIEESEVersion ESEVersion;
6597 tDot11fIEESERadMgmtCap ESERadMgmtCap;
6598 tDot11fIEESETrafStrmMet ESETrafStrmMet;
6599 tDot11fIEESETxmitPower ESETxmitPower;
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006600 tDot11fIEAirgo Airgo;
6601 tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
6602 tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
6603 tDot11fIEVHTCaps VHTCaps;
6604 tDot11fIEVHTOperation VHTOperation;
6605 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
6606 tDot11fIEExtCap ExtCap;
6607 tDot11fIEOperatingMode OperatingMode;
6608 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Abhishek Singhccbeea22014-02-07 17:58:47 +05306609 tDot11fIEOBSSScanParameters OBSSScanParameters;
Jeff Johnson295189b2012-06-20 16:38:30 -07006610} tDot11fBeaconIEs;
6611
6612#define DOT11F_BEACONIES ( 11 )
6613
6614#ifdef __cplusplus
6615extern "C" {
6616#endif /* C++ */
6617
6618tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeaconIEs *pFrm);
6619tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6620tANI_U32 dot11fGetPackedBeaconIEsSize(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U32 *pnNeeded);
6621
6622#ifdef __cplusplus
6623} /* End extern "C". */
6624#endif /* C++ */
6625
6626typedef struct sDot11fChannelSwitch{
Madan Mohan Koyyalamudic6226de2012-09-18 16:33:31 -07006627 tDot11fFfCategory Category;
6628 tDot11fFfAction Action;
6629 tDot11fIEChanSwitchAnn ChanSwitchAnn;
6630 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
6631 tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
Jeff Johnson295189b2012-06-20 16:38:30 -07006632} tDot11fChannelSwitch;
6633
6634#define DOT11F_CHANNELSWITCH ( 12 )
6635
6636#ifdef __cplusplus
6637extern "C" {
6638#endif /* C++ */
6639
6640tANI_U32 dot11fUnpackChannelSwitch(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fChannelSwitch *pFrm);
6641tANI_U32 dot11fPackChannelSwitch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6642tANI_U32 dot11fGetPackedChannelSwitchSize(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U32 *pnNeeded);
6643
6644#ifdef __cplusplus
6645} /* End extern "C". */
6646#endif /* C++ */
6647
6648typedef struct sDot11fDeAuth{
6649 tDot11fFfReason Reason;
6650 tDot11fIEP2PDeAuth P2PDeAuth;
6651} tDot11fDeAuth;
6652
6653#define DOT11F_DEAUTH ( 13 )
6654
6655#ifdef __cplusplus
6656extern "C" {
6657#endif /* C++ */
6658
6659tANI_U32 dot11fUnpackDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeAuth *pFrm);
6660tANI_U32 dot11fPackDeAuth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6661tANI_U32 dot11fGetPackedDeAuthSize(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U32 *pnNeeded);
6662
6663#ifdef __cplusplus
6664} /* End extern "C". */
6665#endif /* C++ */
6666
6667typedef struct sDot11fDelBAInd{
6668 tDot11fFfCategory Category;
6669 tDot11fFfAction Action;
6670 tDot11fFfDelBAParameterSet DelBAParameterSet;
6671 tDot11fFfReason Reason;
6672} tDot11fDelBAInd;
6673
6674#define DOT11F_DELBAIND ( 14 )
6675
6676#ifdef __cplusplus
6677extern "C" {
6678#endif /* C++ */
6679
6680tANI_U32 dot11fUnpackDelBAInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelBAInd *pFrm);
6681tANI_U32 dot11fPackDelBAInd(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6682tANI_U32 dot11fGetPackedDelBAIndSize(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U32 *pnNeeded);
6683
6684#ifdef __cplusplus
6685} /* End extern "C". */
6686#endif /* C++ */
6687
6688typedef struct sDot11fDelTS{
6689 tDot11fFfCategory Category;
6690 tDot11fFfAction Action;
6691 tDot11fFfTSInfo TSInfo;
6692 tDot11fFfReason Reason;
6693} tDot11fDelTS;
6694
6695#define DOT11F_DELTS ( 15 )
6696
6697#ifdef __cplusplus
6698extern "C" {
6699#endif /* C++ */
6700
6701tANI_U32 dot11fUnpackDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelTS *pFrm);
6702tANI_U32 dot11fPackDelTS(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6703tANI_U32 dot11fGetPackedDelTSSize(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U32 *pnNeeded);
6704
6705#ifdef __cplusplus
6706} /* End extern "C". */
6707#endif /* C++ */
6708
6709typedef struct sDot11fDeviceDiscoverabilityReq{
6710 tDot11fFfCategory Category;
6711 tDot11fFfAction Action;
6712 tDot11fFfP2POUI P2POUI;
6713 tDot11fFfP2POUISubType P2POUISubType;
6714 tDot11fFfDialogToken DialogToken;
6715 tDot11fIEP2PDeviceDiscoverabilityReq P2PDeviceDiscoverabilityReq;
6716} tDot11fDeviceDiscoverabilityReq;
6717
6718#define DOT11F_DEVICEDISCOVERABILITYREQ ( 16 )
6719
6720#ifdef __cplusplus
6721extern "C" {
6722#endif /* C++ */
6723
6724tANI_U32 dot11fUnpackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityReq *pFrm);
6725tANI_U32 dot11fPackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6726tANI_U32 dot11fGetPackedDeviceDiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6727
6728#ifdef __cplusplus
6729} /* End extern "C". */
6730#endif /* C++ */
6731
6732typedef struct sDot11fDeviceDiscoverabilityRes{
6733 tDot11fFfCategory Category;
6734 tDot11fFfAction Action;
6735 tDot11fFfP2POUI P2POUI;
6736 tDot11fFfP2POUISubType P2POUISubType;
6737 tDot11fFfDialogToken DialogToken;
6738 tDot11fIEP2PDeviceDiscoverabilityRes P2PDeviceDiscoverabilityRes;
6739} tDot11fDeviceDiscoverabilityRes;
6740
6741#define DOT11F_DEVICEDISCOVERABILITYRES ( 17 )
6742
6743#ifdef __cplusplus
6744extern "C" {
6745#endif /* C++ */
6746
6747tANI_U32 dot11fUnpackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityRes *pFrm);
6748tANI_U32 dot11fPackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6749tANI_U32 dot11fGetPackedDeviceDiscoverabilityResSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U32 *pnNeeded);
6750
6751#ifdef __cplusplus
6752} /* End extern "C". */
6753#endif /* C++ */
6754
6755typedef struct sDot11fDisassociation{
6756 tDot11fFfReason Reason;
6757 tDot11fIEP2PDisAssoc P2PDisAssoc;
6758} tDot11fDisassociation;
6759
6760#define DOT11F_DISASSOCIATION ( 18 )
6761
6762#ifdef __cplusplus
6763extern "C" {
6764#endif /* C++ */
6765
6766tANI_U32 dot11fUnpackDisassociation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDisassociation *pFrm);
6767tANI_U32 dot11fPackDisassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6768tANI_U32 dot11fGetPackedDisassociationSize(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U32 *pnNeeded);
6769
6770#ifdef __cplusplus
6771} /* End extern "C". */
6772#endif /* C++ */
6773
6774typedef struct sDot11fGODiscoverabilityReq{
6775 tDot11fFfCategory Category;
6776 tDot11fFfP2POUI P2POUI;
6777 tDot11fFfP2POUISubType P2POUISubType;
6778 tDot11fFfDialogToken DialogToken;
6779} tDot11fGODiscoverabilityReq;
6780
6781#define DOT11F_GODISCOVERABILITYREQ ( 19 )
6782
6783#ifdef __cplusplus
6784extern "C" {
6785#endif /* C++ */
6786
6787tANI_U32 dot11fUnpackGODiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGODiscoverabilityReq *pFrm);
6788tANI_U32 dot11fPackGODiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6789tANI_U32 dot11fGetPackedGODiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
6790
6791#ifdef __cplusplus
6792} /* End extern "C". */
6793#endif /* C++ */
6794
6795typedef struct sDot11fGONegCnf{
6796 tDot11fFfCategory Category;
6797 tDot11fFfAction Action;
6798 tDot11fFfP2POUI P2POUI;
6799 tDot11fFfP2POUISubType P2POUISubType;
6800 tDot11fFfDialogToken DialogToken;
6801 tDot11fIEP2PGONegCnf P2PGONegCnf;
6802} tDot11fGONegCnf;
6803
6804#define DOT11F_GONEGCNF ( 20 )
6805
6806#ifdef __cplusplus
6807extern "C" {
6808#endif /* C++ */
6809
6810tANI_U32 dot11fUnpackGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegCnf *pFrm);
6811tANI_U32 dot11fPackGONegCnf(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6812tANI_U32 dot11fGetPackedGONegCnfSize(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U32 *pnNeeded);
6813
6814#ifdef __cplusplus
6815} /* End extern "C". */
6816#endif /* C++ */
6817
6818typedef struct sDot11fGONegReq{
6819 tDot11fFfCategory Category;
6820 tDot11fFfAction Action;
6821 tDot11fFfP2POUI P2POUI;
6822 tDot11fFfP2POUISubType P2POUISubType;
6823 tDot11fFfDialogToken DialogToken;
6824 tDot11fIEP2PGONegWPS P2PGONegWPS;
6825 tDot11fIEP2PGONegReq P2PGONegReq;
6826} tDot11fGONegReq;
6827
6828#define DOT11F_GONEGREQ ( 21 )
6829
6830#ifdef __cplusplus
6831extern "C" {
6832#endif /* C++ */
6833
6834tANI_U32 dot11fUnpackGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegReq *pFrm);
6835tANI_U32 dot11fPackGONegReq(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6836tANI_U32 dot11fGetPackedGONegReqSize(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U32 *pnNeeded);
6837
6838#ifdef __cplusplus
6839} /* End extern "C". */
6840#endif /* C++ */
6841
6842typedef struct sDot11fGONegRes{
6843 tDot11fFfCategory Category;
6844 tDot11fFfAction Action;
6845 tDot11fFfP2POUI P2POUI;
6846 tDot11fFfP2POUISubType P2POUISubType;
6847 tDot11fFfDialogToken DialogToken;
6848 tDot11fIEP2PGONegWPS P2PGONegWPS;
6849 tDot11fIEP2PGONegRes P2PGONegRes;
6850} tDot11fGONegRes;
6851
6852#define DOT11F_GONEGRES ( 22 )
6853
6854#ifdef __cplusplus
6855extern "C" {
6856#endif /* C++ */
6857
6858tANI_U32 dot11fUnpackGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegRes *pFrm);
6859tANI_U32 dot11fPackGONegRes(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6860tANI_U32 dot11fGetPackedGONegResSize(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U32 *pnNeeded);
6861
6862#ifdef __cplusplus
6863} /* End extern "C". */
6864#endif /* C++ */
6865
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306866typedef struct sDot11fHT2040BSSCoexistenceManagementActionFrame{
6867 tDot11fFfCategory Category;
6868 tDot11fFfAction Action;
6869 tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
6870 tDot11fIEHT2040BSSIntolerantReport HT2040BSSIntolerantReport;
6871} tDot11fHT2040BSSCoexistenceManagementActionFrame;
6872
6873#define DOT11F_HT2040BSSCOEXISTENCEMANAGEMENTACTIONFRAME ( 23 )
6874
6875#ifdef __cplusplus
6876extern "C" {
6877#endif /* C++ */
6878
6879tANI_U32 dot11fUnpackHT2040BSSCoexistenceManagementActionFrame(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fHT2040BSSCoexistenceManagementActionFrame *pFrm);
6880tANI_U32 dot11fPackHT2040BSSCoexistenceManagementActionFrame(tpAniSirGlobal pCtx, tDot11fHT2040BSSCoexistenceManagementActionFrame *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6881tANI_U32 dot11fGetPackedHT2040BSSCoexistenceManagementActionFrameSize(tpAniSirGlobal pCtx, tDot11fHT2040BSSCoexistenceManagementActionFrame *pFrm, tANI_U32 *pnNeeded);
6882
6883#ifdef __cplusplus
6884} /* End extern "C". */
6885#endif /* C++ */
6886
Jeff Johnson295189b2012-06-20 16:38:30 -07006887typedef struct sDot11fInvitationReq{
6888 tDot11fFfCategory Category;
6889 tDot11fFfAction Action;
6890 tDot11fFfP2POUI P2POUI;
6891 tDot11fFfP2POUISubType P2POUISubType;
6892 tDot11fFfDialogToken DialogToken;
6893 tDot11fIEP2PInvitationReq P2PInvitationReq;
6894} tDot11fInvitationReq;
6895
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306896#define DOT11F_INVITATIONREQ ( 24 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006897
6898#ifdef __cplusplus
6899extern "C" {
6900#endif /* C++ */
6901
6902tANI_U32 dot11fUnpackInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationReq *pFrm);
6903tANI_U32 dot11fPackInvitationReq(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6904tANI_U32 dot11fGetPackedInvitationReqSize(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U32 *pnNeeded);
6905
6906#ifdef __cplusplus
6907} /* End extern "C". */
6908#endif /* C++ */
6909
6910typedef struct sDot11fInvitationRes{
6911 tDot11fFfCategory Category;
6912 tDot11fFfAction Action;
6913 tDot11fFfP2POUI P2POUI;
6914 tDot11fFfP2POUISubType P2POUISubType;
6915 tDot11fFfDialogToken DialogToken;
6916 tDot11fIEP2PInvitationRes P2PInvitationRes;
6917} tDot11fInvitationRes;
6918
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306919#define DOT11F_INVITATIONRES ( 25 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006920
6921#ifdef __cplusplus
6922extern "C" {
6923#endif /* C++ */
6924
6925tANI_U32 dot11fUnpackInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationRes *pFrm);
6926tANI_U32 dot11fPackInvitationRes(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6927tANI_U32 dot11fGetPackedInvitationResSize(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U32 *pnNeeded);
6928
6929#ifdef __cplusplus
6930} /* End extern "C". */
6931#endif /* C++ */
6932
6933typedef struct sDot11fLinkMeasurementReport{
6934 tDot11fFfCategory Category;
6935 tDot11fFfAction Action;
6936 tDot11fFfDialogToken DialogToken;
6937 tDot11fFfTPCEleID TPCEleID;
6938 tDot11fFfTPCEleLen TPCEleLen;
6939 tDot11fFfTxPower TxPower;
6940 tDot11fFfLinkMargin LinkMargin;
6941 tDot11fFfRxAntennaId RxAntennaId;
6942 tDot11fFfTxAntennaId TxAntennaId;
6943 tDot11fFfRCPI RCPI;
6944 tDot11fFfRSNI RSNI;
6945} tDot11fLinkMeasurementReport;
6946
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306947#define DOT11F_LINKMEASUREMENTREPORT ( 26 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006948
6949#ifdef __cplusplus
6950extern "C" {
6951#endif /* C++ */
6952
6953tANI_U32 dot11fUnpackLinkMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementReport *pFrm);
6954tANI_U32 dot11fPackLinkMeasurementReport(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6955tANI_U32 dot11fGetPackedLinkMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6956
6957#ifdef __cplusplus
6958} /* End extern "C". */
6959#endif /* C++ */
6960
6961typedef struct sDot11fLinkMeasurementRequest{
6962 tDot11fFfCategory Category;
6963 tDot11fFfAction Action;
6964 tDot11fFfDialogToken DialogToken;
6965 tDot11fFfTxPower TxPower;
6966 tDot11fFfMaxTxPower MaxTxPower;
6967} tDot11fLinkMeasurementRequest;
6968
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306969#define DOT11F_LINKMEASUREMENTREQUEST ( 27 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006970
6971#ifdef __cplusplus
6972extern "C" {
6973#endif /* C++ */
6974
6975tANI_U32 dot11fUnpackLinkMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementRequest *pFrm);
6976tANI_U32 dot11fPackLinkMeasurementRequest(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6977tANI_U32 dot11fGetPackedLinkMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
6978
6979#ifdef __cplusplus
6980} /* End extern "C". */
6981#endif /* C++ */
6982
6983typedef struct sDot11fMeasurementReport{
6984 tDot11fFfCategory Category;
6985 tDot11fFfAction Action;
6986 tDot11fFfDialogToken DialogToken;
6987 tDot11fIEMeasurementReport MeasurementReport;
6988} tDot11fMeasurementReport;
6989
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05306990#define DOT11F_MEASUREMENTREPORT ( 28 )
Jeff Johnson295189b2012-06-20 16:38:30 -07006991
6992#ifdef __cplusplus
6993extern "C" {
6994#endif /* C++ */
6995
6996tANI_U32 dot11fUnpackMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementReport *pFrm);
6997tANI_U32 dot11fPackMeasurementReport(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
6998tANI_U32 dot11fGetPackedMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U32 *pnNeeded);
6999
7000#ifdef __cplusplus
7001} /* End extern "C". */
7002#endif /* C++ */
7003
7004typedef struct sDot11fMeasurementRequest{
7005 tDot11fFfCategory Category;
7006 tDot11fFfAction Action;
7007 tDot11fFfDialogToken DialogToken;
7008 tANI_U16 num_MeasurementRequest;
7009 tDot11fIEMeasurementRequest MeasurementRequest[4];
7010} tDot11fMeasurementRequest;
7011
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307012#define DOT11F_MEASUREMENTREQUEST ( 29 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007013
7014#ifdef __cplusplus
7015extern "C" {
7016#endif /* C++ */
7017
7018tANI_U32 dot11fUnpackMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementRequest *pFrm);
7019tANI_U32 dot11fPackMeasurementRequest(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7020tANI_U32 dot11fGetPackedMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
7021
7022#ifdef __cplusplus
7023} /* End extern "C". */
7024#endif /* C++ */
7025
7026typedef struct sDot11fNeighborReportRequest{
7027 tDot11fFfCategory Category;
7028 tDot11fFfAction Action;
7029 tDot11fFfDialogToken DialogToken;
7030 tDot11fIESSID SSID;
7031} tDot11fNeighborReportRequest;
7032
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307033#define DOT11F_NEIGHBORREPORTREQUEST ( 30 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007034
7035#ifdef __cplusplus
7036extern "C" {
7037#endif /* C++ */
7038
7039tANI_U32 dot11fUnpackNeighborReportRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportRequest *pFrm);
7040tANI_U32 dot11fPackNeighborReportRequest(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7041tANI_U32 dot11fGetPackedNeighborReportRequestSize(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U32 *pnNeeded);
7042
7043#ifdef __cplusplus
7044} /* End extern "C". */
7045#endif /* C++ */
7046
7047typedef struct sDot11fNeighborReportResponse{
7048 tDot11fFfCategory Category;
7049 tDot11fFfAction Action;
7050 tDot11fFfDialogToken DialogToken;
7051 tANI_U16 num_NeighborReport;
7052 tDot11fIENeighborReport NeighborReport[4];
7053} tDot11fNeighborReportResponse;
7054
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307055#define DOT11F_NEIGHBORREPORTRESPONSE ( 31 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007056
7057#ifdef __cplusplus
7058extern "C" {
7059#endif /* C++ */
7060
7061tANI_U32 dot11fUnpackNeighborReportResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportResponse *pFrm);
7062tANI_U32 dot11fPackNeighborReportResponse(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7063tANI_U32 dot11fGetPackedNeighborReportResponseSize(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U32 *pnNeeded);
7064
7065#ifdef __cplusplus
7066} /* End extern "C". */
7067#endif /* C++ */
7068
7069typedef struct sDot11fNoticeOfAbs{
7070 tDot11fFfCategory Category;
7071 tDot11fFfP2POUI P2POUI;
7072 tDot11fFfP2POUISubType P2POUISubType;
7073 tDot11fFfDialogToken DialogToken;
7074 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
7075} tDot11fNoticeOfAbs;
7076
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307077#define DOT11F_NOTICEOFABS ( 32 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007078
7079#ifdef __cplusplus
7080extern "C" {
7081#endif /* C++ */
7082
7083tANI_U32 dot11fUnpackNoticeOfAbs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNoticeOfAbs *pFrm);
7084tANI_U32 dot11fPackNoticeOfAbs(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7085tANI_U32 dot11fGetPackedNoticeOfAbsSize(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U32 *pnNeeded);
7086
7087#ifdef __cplusplus
7088} /* End extern "C". */
7089#endif /* C++ */
7090
Mohit Khanna4a70d262012-09-11 16:30:12 -07007091typedef struct sDot11fOperatingMode{
7092 tDot11fFfCategory Category;
7093 tDot11fFfAction Action;
7094 tDot11fFfOperatingMode OperatingMode;
7095} tDot11fOperatingMode;
7096
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307097#define DOT11F_OPERATINGMODE ( 33 )
Mohit Khanna4a70d262012-09-11 16:30:12 -07007098
7099#ifdef __cplusplus
7100extern "C" {
7101#endif /* C++ */
7102
7103tANI_U32 dot11fUnpackOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fOperatingMode *pFrm);
7104tANI_U32 dot11fPackOperatingMode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7105tANI_U32 dot11fGetPackedOperatingModeSize(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U32 *pnNeeded);
7106
7107#ifdef __cplusplus
7108} /* End extern "C". */
7109#endif /* C++ */
7110
Jeff Johnson295189b2012-06-20 16:38:30 -07007111typedef struct sDot11fPresenceReq{
7112 tDot11fFfCategory Category;
7113 tDot11fFfP2POUI P2POUI;
7114 tDot11fFfP2POUISubType P2POUISubType;
7115 tDot11fFfDialogToken DialogToken;
7116 tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
7117} tDot11fPresenceReq;
7118
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307119#define DOT11F_PRESENCEREQ ( 34 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007120
7121#ifdef __cplusplus
7122extern "C" {
7123#endif /* C++ */
7124
7125tANI_U32 dot11fUnpackPresenceReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceReq *pFrm);
7126tANI_U32 dot11fPackPresenceReq(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7127tANI_U32 dot11fGetPackedPresenceReqSize(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U32 *pnNeeded);
7128
7129#ifdef __cplusplus
7130} /* End extern "C". */
7131#endif /* C++ */
7132
7133typedef struct sDot11fPresenceRes{
7134 tDot11fFfCategory Category;
7135 tDot11fFfP2POUI P2POUI;
7136 tDot11fFfP2POUISubType P2POUISubType;
7137 tDot11fFfDialogToken DialogToken;
7138 tDot11fIEP2PPresenceResponse P2PPresenceResponse;
7139} tDot11fPresenceRes;
7140
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307141#define DOT11F_PRESENCERES ( 35 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007142
7143#ifdef __cplusplus
7144extern "C" {
7145#endif /* C++ */
7146
7147tANI_U32 dot11fUnpackPresenceRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceRes *pFrm);
7148tANI_U32 dot11fPackPresenceRes(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7149tANI_U32 dot11fGetPackedPresenceResSize(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U32 *pnNeeded);
7150
7151#ifdef __cplusplus
7152} /* End extern "C". */
7153#endif /* C++ */
7154
7155typedef struct sDot11fProbeRequest{
7156 tDot11fIESSID SSID;
7157 tDot11fIESuppRates SuppRates;
7158 tDot11fIERequestedInfo RequestedInfo;
7159 tDot11fIEExtSuppRates ExtSuppRates;
7160 tDot11fIEDSParams DSParams;
7161 tDot11fIEHTCaps HTCaps;
7162 tDot11fIEWscProbeReq WscProbeReq;
7163 tDot11fIEWFATPC WFATPC;
7164 tDot11fIEP2PProbeReq P2PProbeReq;
Jeff Johnsone7245742012-09-05 17:12:55 -07007165 tDot11fIEVHTCaps VHTCaps;
Jeff Johnson295189b2012-06-20 16:38:30 -07007166} tDot11fProbeRequest;
7167
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307168#define DOT11F_PROBEREQUEST ( 36 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007169
7170#ifdef __cplusplus
7171extern "C" {
7172#endif /* C++ */
7173
7174tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeRequest *pFrm);
7175tANI_U32 dot11fPackProbeRequest(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7176tANI_U32 dot11fGetPackedProbeRequestSize(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U32 *pnNeeded);
7177
7178#ifdef __cplusplus
7179} /* End extern "C". */
7180#endif /* C++ */
7181
7182typedef struct sDot11fProbeResponse{
Abhishek Singhccbeea22014-02-07 17:58:47 +05307183 tDot11fFfTimeStamp TimeStamp;
7184 tDot11fFfBeaconInterval BeaconInterval;
7185 tDot11fFfCapabilities Capabilities;
7186 tDot11fIESSID SSID;
7187 tDot11fIESuppRates SuppRates;
7188 tDot11fIEFHParamSet FHParamSet;
7189 tDot11fIEDSParams DSParams;
7190 tDot11fIECFParams CFParams;
7191 tDot11fIEIBSSParams IBSSParams;
7192 tDot11fIECountry Country;
7193 tDot11fIEFHParams FHParams;
7194 tDot11fIEFHPattTable FHPattTable;
7195 tDot11fIEPowerConstraints PowerConstraints;
7196 tDot11fIEChanSwitchAnn ChanSwitchAnn;
7197 tDot11fIEQuiet Quiet;
7198 tDot11fIETPCReport TPCReport;
7199 tDot11fIEERPInfo ERPInfo;
7200 tDot11fIEExtSuppRates ExtSuppRates;
7201 tDot11fIERSNOpaque RSNOpaque;
7202 tDot11fIEQBSSLoad QBSSLoad;
7203 tDot11fIEEDCAParamSet EDCAParamSet;
7204 tDot11fIERRMEnabledCap RRMEnabledCap;
7205 tDot11fIEAPChannelReport APChannelReport;
7206 tDot11fIEMobilityDomain MobilityDomain;
7207 tDot11fIEWPA WPA;
7208 tDot11fIEHTCaps HTCaps;
7209 tDot11fIEHTInfo HTInfo;
7210 tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
7211 tDot11fIEWMMInfoAp WMMInfoAp;
7212 tDot11fIEWMMParams WMMParams;
7213 tDot11fIEWMMCaps WMMCaps;
7214 tDot11fIEWAPI WAPI;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007215 tDot11fIEESERadMgmtCap ESERadMgmtCap;
7216 tDot11fIEESETrafStrmMet ESETrafStrmMet;
7217 tDot11fIEESETxmitPower ESETxmitPower;
Abhishek Singhccbeea22014-02-07 17:58:47 +05307218 tDot11fIEAirgo Airgo;
7219 tDot11fIEWscProbeRes WscProbeRes;
7220 tDot11fIEP2PProbeRes P2PProbeRes;
7221 tDot11fIEVHTCaps VHTCaps;
7222 tDot11fIEVHTOperation VHTOperation;
7223 tDot11fIEVHTExtBssLoad VHTExtBssLoad;
7224 tDot11fIEExtCap ExtCap;
7225 tDot11fIEOBSSScanParameters OBSSScanParameters;
Jeff Johnson295189b2012-06-20 16:38:30 -07007226} tDot11fProbeResponse;
7227
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307228#define DOT11F_PROBERESPONSE ( 37 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007229
7230#ifdef __cplusplus
7231extern "C" {
7232#endif /* C++ */
7233
7234tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeResponse *pFrm);
7235tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7236tANI_U32 dot11fGetPackedProbeResponseSize(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U32 *pnNeeded);
7237
7238#ifdef __cplusplus
7239} /* End extern "C". */
7240#endif /* C++ */
7241
7242typedef struct sDot11fProvisionDiscoveryReq{
7243 tDot11fFfCategory Category;
7244 tDot11fFfAction Action;
7245 tDot11fFfP2POUI P2POUI;
7246 tDot11fFfP2POUISubType P2POUISubType;
7247 tDot11fFfDialogToken DialogToken;
7248 tDot11fIEP2PProvisionDiscoveryReq P2PProvisionDiscoveryReq;
7249} tDot11fProvisionDiscoveryReq;
7250
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307251#define DOT11F_PROVISIONDISCOVERYREQ ( 38 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007252
7253#ifdef __cplusplus
7254extern "C" {
7255#endif /* C++ */
7256
7257tANI_U32 dot11fUnpackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryReq *pFrm);
7258tANI_U32 dot11fPackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7259tANI_U32 dot11fGetPackedProvisionDiscoveryReqSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U32 *pnNeeded);
7260
7261#ifdef __cplusplus
7262} /* End extern "C". */
7263#endif /* C++ */
7264
7265typedef struct sDot11fProvisionDiscoveryRes{
7266 tDot11fFfCategory Category;
7267 tDot11fFfAction Action;
7268 tDot11fFfP2POUI P2POUI;
7269 tDot11fFfP2POUISubType P2POUISubType;
7270 tDot11fFfDialogToken DialogToken;
7271 tDot11fIEP2PWSCProvisionDiscoveryRes P2PWSCProvisionDiscoveryRes;
7272} tDot11fProvisionDiscoveryRes;
7273
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307274#define DOT11F_PROVISIONDISCOVERYRES ( 39 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007275
7276#ifdef __cplusplus
7277extern "C" {
7278#endif /* C++ */
7279
7280tANI_U32 dot11fUnpackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryRes *pFrm);
7281tANI_U32 dot11fPackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7282tANI_U32 dot11fGetPackedProvisionDiscoveryResSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U32 *pnNeeded);
7283
7284#ifdef __cplusplus
7285} /* End extern "C". */
7286#endif /* C++ */
7287
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07007288typedef struct sDot11fQosMapConfigure{
7289 tDot11fFfCategory Category;
7290 tDot11fFfAction Action;
7291 tDot11fIEQosMapSet QosMapSet;
7292} tDot11fQosMapConfigure;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007293
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307294#define DOT11F_QOSMAPCONFIGURE ( 40 )
Chet Lanctot8cecea22014-02-11 19:09:36 -08007295
7296#ifdef __cplusplus
7297extern "C" {
7298#endif /* C++ */
7299
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07007300tANI_U32 dot11fUnpackQosMapConfigure(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fQosMapConfigure *pFrm);
7301tANI_U32 dot11fPackQosMapConfigure(tpAniSirGlobal pCtx, tDot11fQosMapConfigure *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7302tANI_U32 dot11fGetPackedQosMapConfigureSize(tpAniSirGlobal pCtx, tDot11fQosMapConfigure *pFrm, tANI_U32 *pnNeeded);
Chet Lanctot8cecea22014-02-11 19:09:36 -08007303
7304#ifdef __cplusplus
7305} /* End extern "C". */
7306#endif /* C++ */
7307
Jeff Johnson295189b2012-06-20 16:38:30 -07007308typedef struct sDot11fRadioMeasurementReport{
7309 tDot11fFfCategory Category;
7310 tDot11fFfAction Action;
7311 tDot11fFfDialogToken DialogToken;
7312 tANI_U16 num_MeasurementReport;
7313 tDot11fIEMeasurementReport MeasurementReport[4];
7314} tDot11fRadioMeasurementReport;
7315
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307316#define DOT11F_RADIOMEASUREMENTREPORT ( 41 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007317
7318#ifdef __cplusplus
7319extern "C" {
7320#endif /* C++ */
7321
7322tANI_U32 dot11fUnpackRadioMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementReport *pFrm);
7323tANI_U32 dot11fPackRadioMeasurementReport(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7324tANI_U32 dot11fGetPackedRadioMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U32 *pnNeeded);
7325
7326#ifdef __cplusplus
7327} /* End extern "C". */
7328#endif /* C++ */
7329
7330typedef struct sDot11fRadioMeasurementRequest{
7331 tDot11fFfCategory Category;
7332 tDot11fFfAction Action;
7333 tDot11fFfDialogToken DialogToken;
7334 tDot11fFfNumOfRepetitions NumOfRepetitions;
7335 tANI_U16 num_MeasurementRequest;
7336 tDot11fIEMeasurementRequest MeasurementRequest[2];
7337} tDot11fRadioMeasurementRequest;
7338
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307339#define DOT11F_RADIOMEASUREMENTREQUEST ( 42 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007340
7341#ifdef __cplusplus
7342extern "C" {
7343#endif /* C++ */
7344
7345tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementRequest *pFrm);
7346tANI_U32 dot11fPackRadioMeasurementRequest(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7347tANI_U32 dot11fGetPackedRadioMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
7348
7349#ifdef __cplusplus
7350} /* End extern "C". */
7351#endif /* C++ */
7352
7353typedef struct sDot11fReAssocRequest{
7354 tDot11fFfCapabilities Capabilities;
7355 tDot11fFfListenInterval ListenInterval;
7356 tDot11fFfCurrentAPAddress CurrentAPAddress;
7357 tDot11fIESSID SSID;
7358 tDot11fIESuppRates SuppRates;
7359 tDot11fIEExtSuppRates ExtSuppRates;
7360 tDot11fIEPowerCaps PowerCaps;
7361 tDot11fIESuppChannels SuppChannels;
7362 tDot11fIERSNOpaque RSNOpaque;
7363 tDot11fIEQOSCapsStation QOSCapsStation;
7364 tDot11fIERRMEnabledCap RRMEnabledCap;
7365 tDot11fIEMobilityDomain MobilityDomain;
7366 tDot11fIEFTInfo FTInfo;
7367 tANI_U16 num_RICDataDesc;
7368 tDot11fIERICDataDesc RICDataDesc[2];
7369 tDot11fIEWPAOpaque WPAOpaque;
7370 tDot11fIEHTCaps HTCaps;
7371 tDot11fIEWMMCaps WMMCaps;
7372 tDot11fIEWMMInfoStation WMMInfoStation;
7373 tDot11fIEAirgo Airgo;
7374 tDot11fIEWscIEOpaque WscIEOpaque;
7375 tDot11fIEWAPIOpaque WAPIOpaque;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007376 tDot11fIEESERadMgmtCap ESERadMgmtCap;
7377 tDot11fIEESEVersion ESEVersion;
7378 tDot11fIEESECckmOpaque ESECckmOpaque;
Jeff Johnson295189b2012-06-20 16:38:30 -07007379 tANI_U16 num_WMMTSPEC;
7380 tDot11fIEWMMTSPEC WMMTSPEC[4];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007381 tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007382 tDot11fIEP2PIEOpaque P2PIEOpaque;
Jeff Johnsone7245742012-09-05 17:12:55 -07007383 tDot11fIEWFDIEOpaque WFDIEOpaque;
7384 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007385 tDot11fIEExtCap ExtCap;
Mohit Khanna7d5aeb22012-09-11 16:21:57 -07007386 tDot11fIEOperatingMode OperatingMode;
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07007387 tDot11fIEQosMapSet QosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007388} tDot11fReAssocRequest;
7389
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307390#define DOT11F_REASSOCREQUEST ( 43 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007391
7392#ifdef __cplusplus
7393extern "C" {
7394#endif /* C++ */
7395
7396tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm);
7397tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7398tANI_U32 dot11fGetPackedReAssocRequestSize(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U32 *pnNeeded);
7399
7400#ifdef __cplusplus
7401} /* End extern "C". */
7402#endif /* C++ */
7403
7404typedef struct sDot11fReAssocResponse{
7405 tDot11fFfCapabilities Capabilities;
7406 tDot11fFfStatus Status;
7407 tDot11fFfAID AID;
7408 tDot11fIESuppRates SuppRates;
7409 tDot11fIEExtSuppRates ExtSuppRates;
7410 tDot11fIEEDCAParamSet EDCAParamSet;
7411 tDot11fIERCPIIE RCPIIE;
7412 tDot11fIERSNIIE RSNIIE;
7413 tDot11fIERRMEnabledCap RRMEnabledCap;
7414 tDot11fIERSNOpaque RSNOpaque;
7415 tDot11fIEMobilityDomain MobilityDomain;
7416 tDot11fIEFTInfo FTInfo;
7417 tANI_U16 num_RICDataDesc;
7418 tDot11fIERICDataDesc RICDataDesc[2];
7419 tDot11fIEWPA WPA;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007420 tDot11fIETimeoutInterval TimeoutInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07007421 tDot11fIEHTCaps HTCaps;
7422 tDot11fIEHTInfo HTInfo;
7423 tDot11fIEWMMParams WMMParams;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007424 tDot11fIEESERadMgmtCap ESERadMgmtCap;
7425 tDot11fIEESETrafStrmMet ESETrafStrmMet;
7426 tDot11fIEESETxmitPower ESETxmitPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07007427 tANI_U16 num_WMMTSPEC;
7428 tDot11fIEWMMTSPEC WMMTSPEC[4];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007429 tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007430 tDot11fIEAirgo Airgo;
7431 tDot11fIEWscReassocRes WscReassocRes;
7432 tDot11fIEP2PAssocRes P2PAssocRes;
Jeff Johnsone7245742012-09-05 17:12:55 -07007433 tDot11fIEVHTCaps VHTCaps;
7434 tDot11fIEVHTOperation VHTOperation;
Mohit Khanna4a70d262012-09-11 16:30:12 -07007435 tDot11fIEExtCap ExtCap;
Abhishek Singhccbeea22014-02-07 17:58:47 +05307436 tDot11fIEOBSSScanParameters OBSSScanParameters;
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07007437 tDot11fIEQosMapSet QosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007438} tDot11fReAssocResponse;
7439
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307440#define DOT11F_REASSOCRESPONSE ( 44 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007441
7442#ifdef __cplusplus
7443extern "C" {
7444#endif /* C++ */
7445
7446tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm);
7447tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7448tANI_U32 dot11fGetPackedReAssocResponseSize(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U32 *pnNeeded);
7449
7450#ifdef __cplusplus
7451} /* End extern "C". */
7452#endif /* C++ */
7453
7454typedef struct sDot11fSMPowerSave{
7455 tDot11fFfCategory Category;
7456 tDot11fFfAction Action;
7457 tDot11fFfSMPowerModeSet SMPowerModeSet;
7458} tDot11fSMPowerSave;
7459
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307460#define DOT11F_SMPOWERSAVE ( 45 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007461
7462#ifdef __cplusplus
7463extern "C" {
7464#endif /* C++ */
7465
7466tANI_U32 dot11fUnpackSMPowerSave(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSMPowerSave *pFrm);
7467tANI_U32 dot11fPackSMPowerSave(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7468tANI_U32 dot11fGetPackedSMPowerSaveSize(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U32 *pnNeeded);
7469
7470#ifdef __cplusplus
7471} /* End extern "C". */
7472#endif /* C++ */
7473
Chet Lanctot8cecea22014-02-11 19:09:36 -08007474typedef struct sDot11fSaQueryReq{
7475 tDot11fFfCategory Category;
7476 tDot11fFfAction Action;
7477 tDot11fFfTransactionId TransactionId;
7478} tDot11fSaQueryReq;
7479
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307480#define DOT11F_SAQUERYREQ ( 46 )
Chet Lanctot8cecea22014-02-11 19:09:36 -08007481
7482#ifdef __cplusplus
7483extern "C" {
7484#endif /* C++ */
7485
7486tANI_U32 dot11fUnpackSaQueryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryReq *pFrm);
7487tANI_U32 dot11fPackSaQueryReq(tpAniSirGlobal pCtx, tDot11fSaQueryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7488tANI_U32 dot11fGetPackedSaQueryReqSize(tpAniSirGlobal pCtx, tDot11fSaQueryReq *pFrm, tANI_U32 *pnNeeded);
7489
7490#ifdef __cplusplus
7491} /* End extern "C". */
7492#endif /* C++ */
7493
Chet Lanctot186b5732013-03-18 10:26:30 -07007494typedef struct sDot11fSaQueryRsp{
7495 tDot11fFfCategory Category;
7496 tDot11fFfAction Action;
7497 tDot11fFfTransactionId TransactionId;
7498} tDot11fSaQueryRsp;
7499
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307500#define DOT11F_SAQUERYRSP ( 47 )
Chet Lanctot186b5732013-03-18 10:26:30 -07007501
7502#ifdef __cplusplus
7503extern "C" {
7504#endif /* C++ */
7505
7506tANI_U32 dot11fUnpackSaQueryRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryRsp *pFrm);
7507tANI_U32 dot11fPackSaQueryRsp(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7508tANI_U32 dot11fGetPackedSaQueryRspSize(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U32 *pnNeeded);
7509
7510#ifdef __cplusplus
7511} /* End extern "C". */
7512#endif /* C++ */
7513
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007514typedef struct sDot11fTDLSDisReq{
7515 tDot11fFfCategory Category;
7516 tDot11fFfAction Action;
7517 tDot11fFfDialogToken DialogToken;
7518 tDot11fIELinkIdentifier LinkIdentifier;
7519} tDot11fTDLSDisReq;
7520
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307521#define DOT11F_TDLSDISREQ ( 48 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007522
7523#ifdef __cplusplus
7524extern "C" {
7525#endif /* C++ */
7526
7527tANI_U32 dot11fUnpackTDLSDisReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisReq *pFrm);
7528tANI_U32 dot11fPackTDLSDisReq(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7529tANI_U32 dot11fGetPackedTDLSDisReqSize(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U32 *pnNeeded);
7530
7531#ifdef __cplusplus
7532} /* End extern "C". */
7533#endif /* C++ */
7534
7535typedef struct sDot11fTDLSDisRsp{
Abhishek Singhccbeea22014-02-07 17:58:47 +05307536 tDot11fFfCategory Category;
7537 tDot11fFfAction Action;
7538 tDot11fFfDialogToken DialogToken;
7539 tDot11fFfCapabilities Capabilities;
7540 tDot11fIESuppRates SuppRates;
7541 tDot11fIEExtSuppRates ExtSuppRates;
7542 tDot11fIESuppChannels SuppChannels;
7543 tDot11fIESuppOperatingClasses SuppOperatingClasses;
7544 tDot11fIERSN RSN;
7545 tDot11fIEExtCap ExtCap;
7546 tDot11fIEFTInfo FTInfo;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007547 tDot11fIETimeoutInterval TimeoutInterval;
Abhishek Singhccbeea22014-02-07 17:58:47 +05307548 tDot11fIERICData RICData;
7549 tDot11fIEHTCaps HTCaps;
7550 tDot11fIELinkIdentifier LinkIdentifier;
7551 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007552} tDot11fTDLSDisRsp;
7553
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307554#define DOT11F_TDLSDISRSP ( 49 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007555
7556#ifdef __cplusplus
7557extern "C" {
7558#endif /* C++ */
7559
7560tANI_U32 dot11fUnpackTDLSDisRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisRsp *pFrm);
7561tANI_U32 dot11fPackTDLSDisRsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7562tANI_U32 dot11fGetPackedTDLSDisRspSize(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U32 *pnNeeded);
7563
7564#ifdef __cplusplus
7565} /* End extern "C". */
7566#endif /* C++ */
7567
7568typedef struct sDot11fTDLSPeerTrafficInd{
7569 tDot11fFfCategory Category;
7570 tDot11fFfAction Action;
7571 tDot11fFfDialogToken DialogToken;
7572 tDot11fIELinkIdentifier LinkIdentifier;
7573 tDot11fIEPTIControl PTIControl;
7574 tDot11fIEPUBufferStatus PUBufferStatus;
7575} tDot11fTDLSPeerTrafficInd;
7576
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307577#define DOT11F_TDLSPEERTRAFFICIND ( 50 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007578
7579#ifdef __cplusplus
7580extern "C" {
7581#endif /* C++ */
7582
7583tANI_U32 dot11fUnpackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficInd *pFrm);
7584tANI_U32 dot11fPackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7585tANI_U32 dot11fGetPackedTDLSPeerTrafficIndSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U32 *pnNeeded);
7586
7587#ifdef __cplusplus
7588} /* End extern "C". */
7589#endif /* C++ */
7590
7591typedef struct sDot11fTDLSPeerTrafficRsp{
7592 tDot11fFfCategory Category;
7593 tDot11fFfAction Action;
7594 tDot11fFfDialogToken DialogToken;
7595 tDot11fIELinkIdentifier LinkIdentifier;
7596} tDot11fTDLSPeerTrafficRsp;
7597
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307598#define DOT11F_TDLSPEERTRAFFICRSP ( 51 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007599
7600#ifdef __cplusplus
7601extern "C" {
7602#endif /* C++ */
7603
7604tANI_U32 dot11fUnpackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficRsp *pFrm);
7605tANI_U32 dot11fPackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7606tANI_U32 dot11fGetPackedTDLSPeerTrafficRspSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U32 *pnNeeded);
7607
7608#ifdef __cplusplus
7609} /* End extern "C". */
7610#endif /* C++ */
7611
7612typedef struct sDot11fTDLSSetupCnf{
Chet Lanctot8cecea22014-02-11 19:09:36 -08007613 tDot11fFfCategory Category;
7614 tDot11fFfAction Action;
7615 tDot11fFfStatus Status;
7616 tDot11fFfDialogToken DialogToken;
7617 tDot11fIERSN RSN;
7618 tDot11fIEEDCAParamSet EDCAParamSet;
7619 tDot11fIEFTInfo FTInfo;
7620 tDot11fIETimeoutInterval TimeoutInterval;
7621 tDot11fIEHTInfo HTInfo;
7622 tDot11fIELinkIdentifier LinkIdentifier;
Pradeep Reddy POTTETI8946b9d2014-04-10 19:56:01 +05307623 tDot11fIEWMMParams WMMParams;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007624 tDot11fIEVHTOperation VHTOperation;
7625 tDot11fIEOperatingMode OperatingMode;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007626} tDot11fTDLSSetupCnf;
7627
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307628#define DOT11F_TDLSSETUPCNF ( 52 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007629
7630#ifdef __cplusplus
7631extern "C" {
7632#endif /* C++ */
7633
7634tANI_U32 dot11fUnpackTDLSSetupCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupCnf *pFrm);
7635tANI_U32 dot11fPackTDLSSetupCnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7636tANI_U32 dot11fGetPackedTDLSSetupCnfSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U32 *pnNeeded);
7637
7638#ifdef __cplusplus
7639} /* End extern "C". */
7640#endif /* C++ */
7641
7642typedef struct sDot11fTDLSSetupReq{
Abhishek Singhccbeea22014-02-07 17:58:47 +05307643 tDot11fFfCategory Category;
7644 tDot11fFfAction Action;
7645 tDot11fFfDialogToken DialogToken;
7646 tDot11fFfCapabilities Capabilities;
7647 tDot11fIESuppRates SuppRates;
7648 tDot11fIECountry Country;
7649 tDot11fIEExtSuppRates ExtSuppRates;
7650 tDot11fIESuppChannels SuppChannels;
7651 tDot11fIERSN RSN;
7652 tDot11fIEExtCap ExtCap;
7653 tDot11fIESuppOperatingClasses SuppOperatingClasses;
7654 tDot11fIEQOSCapsStation QOSCapsStation;
7655 tDot11fIEFTInfo FTInfo;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007656 tDot11fIETimeoutInterval TimeoutInterval;
Abhishek Singhccbeea22014-02-07 17:58:47 +05307657 tDot11fIERICData RICData;
7658 tDot11fIEHTCaps HTCaps;
7659 tDot11fIELinkIdentifier LinkIdentifier;
7660 tDot11fIEWMMInfoStation WMMInfoStation;
7661 tDot11fIEAID AID;
7662 tDot11fIEVHTCaps VHTCaps;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007663} tDot11fTDLSSetupReq;
7664
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307665#define DOT11F_TDLSSETUPREQ ( 53 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007666
7667#ifdef __cplusplus
7668extern "C" {
7669#endif /* C++ */
7670
7671tANI_U32 dot11fUnpackTDLSSetupReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupReq *pFrm);
7672tANI_U32 dot11fPackTDLSSetupReq(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7673tANI_U32 dot11fGetPackedTDLSSetupReqSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U32 *pnNeeded);
7674
7675#ifdef __cplusplus
7676} /* End extern "C". */
7677#endif /* C++ */
7678
7679typedef struct sDot11fTDLSSetupRsp{
Abhishek Singhccbeea22014-02-07 17:58:47 +05307680 tDot11fFfCategory Category;
7681 tDot11fFfAction Action;
7682 tDot11fFfStatus Status;
7683 tDot11fFfDialogToken DialogToken;
7684 tDot11fFfCapabilities Capabilities;
7685 tDot11fIESuppRates SuppRates;
7686 tDot11fIECountry Country;
7687 tDot11fIEExtSuppRates ExtSuppRates;
7688 tDot11fIESuppChannels SuppChannels;
7689 tDot11fIERSN RSN;
7690 tDot11fIEExtCap ExtCap;
7691 tDot11fIESuppOperatingClasses SuppOperatingClasses;
7692 tDot11fIEQOSCapsStation QOSCapsStation;
7693 tDot11fIEFTInfo FTInfo;
Chet Lanctot8cecea22014-02-11 19:09:36 -08007694 tDot11fIETimeoutInterval TimeoutInterval;
Abhishek Singhccbeea22014-02-07 17:58:47 +05307695 tDot11fIERICData RICData;
7696 tDot11fIEHTCaps HTCaps;
7697 tDot11fIELinkIdentifier LinkIdentifier;
7698 tDot11fIEWMMInfoStation WMMInfoStation;
7699 tDot11fIEAID AID;
7700 tDot11fIEVHTCaps VHTCaps;
7701 tDot11fIEOperatingMode OperatingMode;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007702} tDot11fTDLSSetupRsp;
7703
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307704#define DOT11F_TDLSSETUPRSP ( 54 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007705
7706#ifdef __cplusplus
7707extern "C" {
7708#endif /* C++ */
7709
7710tANI_U32 dot11fUnpackTDLSSetupRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupRsp *pFrm);
7711tANI_U32 dot11fPackTDLSSetupRsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7712tANI_U32 dot11fGetPackedTDLSSetupRspSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U32 *pnNeeded);
7713
7714#ifdef __cplusplus
7715} /* End extern "C". */
7716#endif /* C++ */
7717
7718typedef struct sDot11fTDLSTeardown{
7719 tDot11fFfCategory Category;
7720 tDot11fFfAction Action;
7721 tDot11fFfReason Reason;
7722 tDot11fIEFTInfo FTInfo;
7723 tDot11fIELinkIdentifier LinkIdentifier;
7724} tDot11fTDLSTeardown;
7725
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307726#define DOT11F_TDLSTEARDOWN ( 55 )
Mohit Khanna698ba2a2012-12-04 15:08:18 -08007727
7728#ifdef __cplusplus
7729extern "C" {
7730#endif /* C++ */
7731
7732tANI_U32 dot11fUnpackTDLSTeardown(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSTeardown *pFrm);
7733tANI_U32 dot11fPackTDLSTeardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7734tANI_U32 dot11fGetPackedTDLSTeardownSize(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U32 *pnNeeded);
7735
7736#ifdef __cplusplus
7737} /* End extern "C". */
7738#endif /* C++ */
7739
Jeff Johnson295189b2012-06-20 16:38:30 -07007740typedef struct sDot11fTPCReport{
7741 tDot11fFfCategory Category;
7742 tDot11fFfAction Action;
7743 tDot11fFfDialogToken DialogToken;
7744 tDot11fIETPCReport TPCReport;
7745} tDot11fTPCReport;
7746
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307747#define DOT11F_TPCREPORT ( 56 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007748
7749#ifdef __cplusplus
7750extern "C" {
7751#endif /* C++ */
7752
7753tANI_U32 dot11fUnpackTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCReport *pFrm);
7754tANI_U32 dot11fPackTPCReport(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7755tANI_U32 dot11fGetPackedTPCReportSize(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U32 *pnNeeded);
7756
7757#ifdef __cplusplus
7758} /* End extern "C". */
7759#endif /* C++ */
7760
7761typedef struct sDot11fTPCRequest{
7762 tDot11fFfCategory Category;
7763 tDot11fFfAction Action;
7764 tDot11fFfDialogToken DialogToken;
7765 tDot11fIETPCRequest TPCRequest;
7766} tDot11fTPCRequest;
7767
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307768#define DOT11F_TPCREQUEST ( 57 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007769
7770#ifdef __cplusplus
7771extern "C" {
7772#endif /* C++ */
7773
7774tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCRequest *pFrm);
7775tANI_U32 dot11fPackTPCRequest(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7776tANI_U32 dot11fGetPackedTPCRequestSize(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U32 *pnNeeded);
7777
7778#ifdef __cplusplus
7779} /* End extern "C". */
7780#endif /* C++ */
7781
Abhishek Singhccbeea22014-02-07 17:58:47 +05307782typedef struct sDot11fVHTGidManagementActionFrame{
7783 tDot11fFfCategory Category;
7784 tDot11fFfAction Action;
7785 tDot11fFfVhtMembershipStatusArray VhtMembershipStatusArray;
7786 tDot11fFfVhtUserPositionArray VhtUserPositionArray;
7787} tDot11fVHTGidManagementActionFrame;
7788
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307789#define DOT11F_VHTGIDMANAGEMENTACTIONFRAME ( 58 )
Abhishek Singhccbeea22014-02-07 17:58:47 +05307790
7791#ifdef __cplusplus
7792extern "C" {
7793#endif /* C++ */
7794
7795tANI_U32 dot11fUnpackVHTGidManagementActionFrame(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fVHTGidManagementActionFrame *pFrm);
7796tANI_U32 dot11fPackVHTGidManagementActionFrame(tpAniSirGlobal pCtx, tDot11fVHTGidManagementActionFrame *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7797tANI_U32 dot11fGetPackedVHTGidManagementActionFrameSize(tpAniSirGlobal pCtx, tDot11fVHTGidManagementActionFrame *pFrm, tANI_U32 *pnNeeded);
7798
7799#ifdef __cplusplus
7800} /* End extern "C". */
7801#endif /* C++ */
7802
Jeff Johnson295189b2012-06-20 16:38:30 -07007803typedef struct sDot11fWMMAddTSRequest{
7804 tDot11fFfCategory Category;
7805 tDot11fFfAction Action;
7806 tDot11fFfDialogToken DialogToken;
7807 tDot11fFfStatusCode StatusCode;
7808 tDot11fIEWMMTSPEC WMMTSPEC;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007809 tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007810} tDot11fWMMAddTSRequest;
7811
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307812#define DOT11F_WMMADDTSREQUEST ( 59 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007813
7814#ifdef __cplusplus
7815extern "C" {
7816#endif /* C++ */
7817
7818tANI_U32 dot11fUnpackWMMAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSRequest *pFrm);
7819tANI_U32 dot11fPackWMMAddTSRequest(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7820tANI_U32 dot11fGetPackedWMMAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U32 *pnNeeded);
7821
7822#ifdef __cplusplus
7823} /* End extern "C". */
7824#endif /* C++ */
7825
7826typedef struct sDot11fWMMAddTSResponse{
7827 tDot11fFfCategory Category;
7828 tDot11fFfAction Action;
7829 tDot11fFfDialogToken DialogToken;
7830 tDot11fFfStatusCode StatusCode;
7831 tDot11fIEWMMTSPEC WMMTSPEC;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08007832 tDot11fIEESETrafStrmMet ESETrafStrmMet;
Jeff Johnson295189b2012-06-20 16:38:30 -07007833} tDot11fWMMAddTSResponse;
7834
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307835#define DOT11F_WMMADDTSRESPONSE ( 60 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007836
7837#ifdef __cplusplus
7838extern "C" {
7839#endif /* C++ */
7840
7841tANI_U32 dot11fUnpackWMMAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSResponse *pFrm);
7842tANI_U32 dot11fPackWMMAddTSResponse(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7843tANI_U32 dot11fGetPackedWMMAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U32 *pnNeeded);
7844
7845#ifdef __cplusplus
7846} /* End extern "C". */
7847#endif /* C++ */
7848
7849typedef struct sDot11fWMMDelTS{
7850 tDot11fFfCategory Category;
7851 tDot11fFfAction Action;
7852 tDot11fFfDialogToken DialogToken;
7853 tDot11fFfStatusCode StatusCode;
7854 tDot11fIEWMMTSPEC WMMTSPEC;
7855} tDot11fWMMDelTS;
7856
Hardik Kantilal Patel402f8a02014-11-10 18:35:34 +05307857#define DOT11F_WMMDELTS ( 61 )
Jeff Johnson295189b2012-06-20 16:38:30 -07007858
7859#ifdef __cplusplus
7860extern "C" {
7861#endif /* C++ */
7862
7863tANI_U32 dot11fUnpackWMMDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMDelTS *pFrm);
7864tANI_U32 dot11fPackWMMDelTS(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
7865tANI_U32 dot11fGetPackedWMMDelTSSize(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U32 *pnNeeded);
7866
7867#ifdef __cplusplus
7868} /* End extern "C". */
7869#endif /* C++ */
7870
7871#endif /* DOT11F_H */