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