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