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