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