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