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