blob: 4a12ccb971d365764fd932e1b5989295f981cbf3 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Abhishek Singhd0854382019-01-03 11:40:22 +05302 * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/*
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080020 *
21 * This file lim_global.h contains the definitions exported by
22 * LIM module.
23 * Author: Chandra Modumudi
24 * Date: 02/11/02
25 * History:-
26 * Date Modified by Modification Information
27 * --------------------------------------------------------------------
28 *
29 */
30#ifndef __LIM_GLOBAL_H
31#define __LIM_GLOBAL_H
32
33#include "wni_api.h"
34#include "sir_api.h"
35#include "sir_mac_prot_def.h"
36#include "sir_mac_prop_exts.h"
37#include "sir_common.h"
38#include "sir_debug.h"
39#include "wni_cfg.h"
40#include "csr_api.h"
41#include "sap_api.h"
42#include "dot11f.h"
43#include "wma_if.h"
44
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080045/* Deferred Message Queue Length */
46#define MAX_DEFERRED_QUEUE_LEN 80
47
48/* Maximum number of PS - TIM's to be sent with out wakeup from STA */
49#define LIM_TIM_WAIT_COUNT_FACTOR 5
50
51/*
52 * Use this count if (LIM_TIM_WAIT_FACTOR * ListenInterval)
53 * is less than LIM_MIN_TIM_WAIT_CNT
54 */
55#define LIM_MIN_TIM_WAIT_COUNT 50
56
57#define GET_TIM_WAIT_COUNT(LIntrvl) \
58 ((LIntrvl * LIM_TIM_WAIT_COUNT_FACTOR) > LIM_MIN_TIM_WAIT_COUNT ? \
59 (LIntrvl * LIM_TIM_WAIT_COUNT_FACTOR) : LIM_MIN_TIM_WAIT_COUNT)
60
gaolez76d2a162017-03-21 19:23:58 +080061#ifdef CHANNEL_HOPPING_ALL_BANDS
62#define CHAN_HOP_ALL_BANDS_ENABLE 1
63#else
64#define CHAN_HOP_ALL_BANDS_ENABLE 0
65#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080066
67/* enums exported by LIM are as follows */
68
69/*System role definition */
70typedef enum eLimSystemRole {
71 eLIM_UNKNOWN_ROLE,
72 eLIM_AP_ROLE,
73 eLIM_STA_IN_IBSS_ROLE,
74 eLIM_STA_ROLE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080075 eLIM_P2P_DEVICE_ROLE,
76 eLIM_P2P_DEVICE_GO,
Deepak Dhamdherec9acc442016-05-26 02:12:58 -070077 eLIM_P2P_DEVICE_CLIENT,
78 eLIM_NDI_ROLE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080079} tLimSystemRole;
80
81/*
82 * SME state definition accessible across all Sirius modules.
83 * AP only states are LIM_SME_CHANNEL_SCAN_STATE &
84 * LIM_SME_NORMAL_CHANNEL_SCAN_STATE.
85 * Note that these states may also be present in STA
86 * side too when DFS support is present for a STA in IBSS mode.
87 */
88typedef enum eLimSmeStates {
89 eLIM_SME_OFFLINE_STATE,
90 eLIM_SME_IDLE_STATE,
91 eLIM_SME_SUSPEND_STATE,
92 eLIM_SME_WT_SCAN_STATE,
93 eLIM_SME_WT_JOIN_STATE,
94 eLIM_SME_WT_AUTH_STATE,
95 eLIM_SME_WT_ASSOC_STATE,
96 eLIM_SME_WT_REASSOC_STATE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080097 eLIM_SME_JOIN_FAILURE_STATE,
98 eLIM_SME_ASSOCIATED_STATE,
99 eLIM_SME_REASSOCIATED_STATE,
100 eLIM_SME_LINK_EST_STATE,
101 eLIM_SME_LINK_EST_WT_SCAN_STATE,
102 eLIM_SME_WT_PRE_AUTH_STATE,
103 eLIM_SME_WT_DISASSOC_STATE,
104 eLIM_SME_WT_DEAUTH_STATE,
105 eLIM_SME_WT_START_BSS_STATE,
106 eLIM_SME_WT_STOP_BSS_STATE,
107 eLIM_SME_NORMAL_STATE,
108 eLIM_SME_CHANNEL_SCAN_STATE,
109 eLIM_SME_NORMAL_CHANNEL_SCAN_STATE
110} tLimSmeStates;
111
112/*
113 * MLM state definition.
114 * While these states are present on AP too when it is
115 * STA mode, per-STA MLM state exclusive to AP is:
116 * eLIM_MLM_WT_AUTH_FRAME3.
117 */
118typedef enum eLimMlmStates {
119 eLIM_MLM_OFFLINE_STATE,
120 eLIM_MLM_IDLE_STATE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800121 eLIM_MLM_WT_JOIN_BEACON_STATE,
122 eLIM_MLM_JOINED_STATE,
123 eLIM_MLM_BSS_STARTED_STATE,
124 eLIM_MLM_WT_AUTH_FRAME2_STATE,
125 eLIM_MLM_WT_AUTH_FRAME3_STATE,
126 eLIM_MLM_WT_AUTH_FRAME4_STATE,
127 eLIM_MLM_AUTH_RSP_TIMEOUT_STATE,
128 eLIM_MLM_AUTHENTICATED_STATE,
129 eLIM_MLM_WT_ASSOC_RSP_STATE,
130 eLIM_MLM_WT_REASSOC_RSP_STATE,
131 eLIM_MLM_ASSOCIATED_STATE,
132 eLIM_MLM_REASSOCIATED_STATE,
133 eLIM_MLM_LINK_ESTABLISHED_STATE,
134 eLIM_MLM_WT_ASSOC_CNF_STATE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800135 eLIM_MLM_WT_ADD_BSS_RSP_STATE,
136 eLIM_MLM_WT_DEL_BSS_RSP_STATE,
137 eLIM_MLM_WT_ADD_BSS_RSP_ASSOC_STATE,
138 eLIM_MLM_WT_ADD_BSS_RSP_REASSOC_STATE,
139 eLIM_MLM_WT_ADD_BSS_RSP_PREASSOC_STATE,
140 eLIM_MLM_WT_ADD_STA_RSP_STATE,
141 eLIM_MLM_WT_DEL_STA_RSP_STATE,
142 /*
143 * MLM goes to this state when LIM initiates DELETE_STA
144 * as processing of Assoc req because the entry already exists.
145 * LIM comes out of this state when DELETE_STA response from
146 * HAL is received. LIM needs to maintain this state so that ADD_STA
147 * can be issued while processing DELETE_STA response from HAL.
148 */
149 eLIM_MLM_WT_ASSOC_DEL_STA_RSP_STATE,
150 eLIM_MLM_WT_SET_BSS_KEY_STATE,
151 eLIM_MLM_WT_SET_STA_KEY_STATE,
152 eLIM_MLM_WT_SET_STA_BCASTKEY_STATE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800153 eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE,
154 eLIM_MLM_WT_FT_REASSOC_RSP_STATE,
Padma, Santhosh Kumarb38ab512018-01-16 16:16:46 +0530155 eLIM_MLM_WT_SAE_AUTH_STATE,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800156} tLimMlmStates;
157
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800158/* 11h channel switch states */
159
160/*
161 * This enum indicates in which state the channel-swith
162 * is presently operating.
163 * eLIM_11H_CHANSW_INIT - Default state
164 * eLIM_11H_CHANSW_RUNNING - When channel switch is running
165 * eLIM_11H_CHANSW_END - After channel switch is complete
166 */
167typedef enum eLimDot11hChanSwStates {
168 eLIM_11H_CHANSW_INIT,
169 eLIM_11H_CHANSW_RUNNING,
170 eLIM_11H_CHANSW_END
171} tLimDot11hChanSwStates;
172
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800173/* MLM Req/Cnf structure definitions */
174typedef struct sLimMlmAuthReq {
175 tSirMacAddr peerMacAddr;
176 tAniAuthType authType;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800177 uint8_t sessionId;
178} tLimMlmAuthReq, *tpLimMlmAuthReq;
179
180typedef struct sLimMlmJoinReq {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800181 tSirMacRateSet operationalRateSet;
182 uint8_t sessionId;
183 tSirBssDescription bssDescription;
Selvaraj, Sridhar81ab80d2017-06-08 12:21:39 +0530184 /*
185 * WARNING: Pls make bssDescription as last variable in struct
186 * tLimMlmJoinReq as it has ieFields followed after this bss
187 * description. Adding a variable after this corrupts the ieFields
188 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800189} tLimMlmJoinReq, *tpLimMlmJoinReq;
190
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800191#ifdef FEATURE_OEM_DATA_SUPPORT
192
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800193/* OEM Data related structure definitions */
194typedef struct sLimMlmOemDataReq {
Anurag Chouhan6d760662016-02-20 16:05:43 +0530195 struct qdf_mac_addr selfMacAddr;
Gupta, Kapil8a605e12016-06-08 14:14:35 +0530196 uint32_t data_len;
Krishna Kumaar Natarajan9ac8efd2015-11-20 13:40:24 -0800197 uint8_t *data;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800198} tLimMlmOemDataReq, *tpLimMlmOemDataReq;
199
200typedef struct sLimMlmOemDataRsp {
Krishna Kumaar Natarajan4e9cf392015-11-20 13:35:05 -0800201 bool target_rsp;
Krishna Kumaar Natarajan608291e2015-12-14 18:17:27 -0800202 uint32_t rsp_len;
203 uint8_t *oem_data_rsp;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800204} tLimMlmOemDataRsp, *tpLimMlmOemDataRsp;
205#endif
206
207/* Pre-authentication structure definition */
208typedef struct tLimPreAuthNode {
209 struct tLimPreAuthNode *next;
210 tSirMacAddr peerMacAddr;
211 tAniAuthType authType;
212 tLimMlmStates mlmState;
213 uint8_t authNodeIdx;
214 uint8_t challengeText[SIR_MAC_AUTH_CHALLENGE_LENGTH];
215 uint8_t fTimerStarted:1;
216 uint8_t fSeen:1;
217 uint8_t fFree:1;
218 uint8_t rsvd:5;
219 TX_TIMER timer;
220 uint16_t seq_num;
Anurag Chouhan6d760662016-02-20 16:05:43 +0530221 unsigned long timestamp;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800222} tLimPreAuthNode, *tpLimPreAuthNode;
223
224/* Pre-authentication table definition */
225typedef struct tLimPreAuthTable {
226 uint32_t numEntry;
Naveen Rawate6ddcaa2016-02-05 16:50:18 -0800227 tLimPreAuthNode **pTable;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800228} tLimPreAuthTable, *tpLimPreAuthTable;
229
230/* / Per STA context structure definition */
231typedef struct sLimMlmStaContext {
232 tLimMlmStates mlmState;
233 tAniAuthType authType;
234 uint16_t listenInterval;
235 tSirMacCapabilityInfo capabilityInfo;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800236 tSirMacReasonCodes disassocReason;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800237
238 tSirResultCodes resultCode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800239
Rachit Kankane02471912017-12-27 17:13:57 +0530240 tSirMacPropRateSet propRateSet;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800241 uint8_t subType:1; /* Indicates ASSOC (0) or REASSOC (1) */
242 uint8_t updateContext:1;
243 uint8_t schClean:1;
244 /* 802.11n HT Capability in Station: Enabled 1 or DIsabled 0 */
245 uint8_t htCapability:1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800246 uint8_t vhtCapability:1;
Rachit Kankane02471912017-12-27 17:13:57 +0530247 uint16_t cleanupTrigger;
248 uint16_t protStatusCode;
Krishna Kumaar Natarajan0103ef82017-02-17 18:15:56 -0800249#ifdef WLAN_FEATURE_11AX
250 bool he_capable;
251#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800252} tLimMlmStaContext, *tpLimMlmStaContext;
253
254/* Structure definition to hold deferred messages queue parameters */
255typedef struct sLimDeferredMsgQParams {
Rajeev Kumar416b73f2017-01-21 16:45:21 -0800256 struct scheduler_msg deferredQueue[MAX_DEFERRED_QUEUE_LEN];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800257 uint16_t size;
258 uint16_t read;
259 uint16_t write;
260} tLimDeferredMsgQParams, *tpLimDeferredMsgQParams;
261
262typedef struct sCfgProtection {
263 uint32_t overlapFromlla:1;
264 uint32_t overlapFromllb:1;
265 uint32_t overlapFromllg:1;
266 uint32_t overlapHt20:1;
267 uint32_t overlapNonGf:1;
268 uint32_t overlapLsigTxop:1;
269 uint32_t overlapRifs:1;
270 uint32_t overlapOBSS:1; /* added for obss */
271 uint32_t fromlla:1;
272 uint32_t fromllb:1;
273 uint32_t fromllg:1;
274 uint32_t ht20:1;
275 uint32_t nonGf:1;
276 uint32_t lsigTxop:1;
277 uint32_t rifs:1;
278 uint32_t obss:1; /* added for Obss */
279} tCfgProtection, *tpCfgProtection;
280
281typedef enum eLimProtStaCacheType {
282 eLIM_PROT_STA_CACHE_TYPE_INVALID,
283 eLIM_PROT_STA_CACHE_TYPE_llB,
284 eLIM_PROT_STA_CACHE_TYPE_llG,
285 eLIM_PROT_STA_CACHE_TYPE_HT20
286} tLimProtStaCacheType;
287
288typedef struct sCacheParams {
289 uint8_t active;
290 tSirMacAddr addr;
291 tLimProtStaCacheType protStaCacheType;
292
293} tCacheParams, *tpCacheParams;
294
295#define LIM_PROT_STA_OVERLAP_CACHE_SIZE HAL_NUM_ASSOC_STA
296#define LIM_PROT_STA_CACHE_SIZE HAL_NUM_ASSOC_STA
297
298typedef struct sLimProtStaParams {
299 uint8_t numSta;
300 uint8_t protectionEnabled;
301} tLimProtStaParams, *tpLimProtStaParams;
302
303typedef struct sLimNoShortParams {
304 uint8_t numNonShortPreambleSta;
305 tCacheParams staNoShortCache[LIM_PROT_STA_CACHE_SIZE];
306} tLimNoShortParams, *tpLimNoShortParams;
307
308typedef struct sLimNoShortSlotParams {
309 uint8_t numNonShortSlotSta;
310 tCacheParams staNoShortSlotCache[LIM_PROT_STA_CACHE_SIZE];
311} tLimNoShortSlotParams, *tpLimNoShortSlotParams;
312
313typedef struct tLimIbssPeerNode tLimIbssPeerNode;
314struct tLimIbssPeerNode {
315 tLimIbssPeerNode *next;
316 tSirMacAddr peerMacAddr;
317 uint8_t extendedRatesPresent:1;
318 uint8_t edcaPresent:1;
319 uint8_t wmeEdcaPresent:1;
320 uint8_t wmeInfoPresent:1;
321 uint8_t htCapable:1;
322 uint8_t vhtCapable:1;
323 uint8_t rsvd:2;
324 uint8_t htSecondaryChannelOffset;
325 tSirMacCapabilityInfo capabilityInfo;
326 tSirMacRateSet supportedRates;
327 tSirMacRateSet extendedRates;
328 uint8_t supportedMCSSet[SIZE_OF_SUPPORTED_MCS_SET];
329 tSirMacEdcaParamSetIE edcaParams;
330 uint8_t erpIePresent;
331
332 /* HT Capabilities of IBSS Peer */
333 uint8_t htGreenfield;
334 uint8_t htShortGI40Mhz;
335 uint8_t htShortGI20Mhz;
336
337 /* DSSS/CCK at 40 MHz: Enabled 1 or Disabled */
338 uint8_t htDsssCckRate40MHzSupport;
339
340 /* MIMO Power Save */
341 tSirMacHTMIMOPowerSaveState htMIMOPSState;
342
343 /* */
344 /* A-MPDU Density */
345 /* 000 - No restriction */
346 /* 001 - 1/8 usec */
347 /* 010 - 1/4 usec */
348 /* 011 - 1/2 usec */
349 /* 100 - 1 usec */
350 /* 101 - 2 usec */
351 /* 110 - 4 usec */
352 /* 111 - 8 usec */
353 /* */
354 uint8_t htAMpduDensity;
355
356 /* Maximum Rx A-MPDU factor */
357 uint8_t htMaxRxAMpduFactor;
358
359 /* Set to 0 for 3839 octets */
360 /* Set to 1 for 7935 octets */
361 uint8_t htMaxAmsduLength;
362
363 /* */
364 /* Recommended Tx Width Set */
365 /* 0 - use 20 MHz channel (control channel) */
366 /* 1 - use 40 Mhz channel */
367 /* */
368 uint8_t htSupportedChannelWidthSet;
369
370 uint8_t htLdpcCapable;
371
372 uint8_t beaconHBCount;
373 uint8_t heartbeatFailure;
374
375 uint8_t *beacon; /* Hold beacon to be sent to HDD/CSR */
376 uint16_t beaconLen;
377
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800378 tDot11fIEVHTCaps VHTCaps;
379 uint8_t vhtSupportedChannelWidthSet;
380 uint8_t vhtBeamFormerCapable;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800381 /*
382 * Peer Atim Info
383 */
384 uint8_t atimIePresent;
385 uint32_t peerAtimWindowLength;
386};
387
388/* Enums used for channel switching. */
389typedef enum eLimChannelSwitchState {
390 eLIM_CHANNEL_SWITCH_IDLE,
391 eLIM_CHANNEL_SWITCH_PRIMARY_ONLY,
392 eLIM_CHANNEL_SWITCH_PRIMARY_AND_SECONDARY
393} tLimChannelSwitchState;
394
395/* Channel Switch Info */
396typedef struct sLimChannelSwitchInfo {
397 tLimChannelSwitchState state;
398 uint8_t primaryChannel;
399 uint8_t ch_center_freq_seg0;
400 uint8_t ch_center_freq_seg1;
Kiran Kumar Lokere999e58c2016-01-07 02:18:39 -0800401 uint8_t sec_ch_offset;
Kiran Kumar Lokere13644672016-02-29 15:40:10 -0800402 enum phy_ch_width ch_width;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800403 int8_t switchCount;
404 uint32_t switchTimeoutValue;
405 uint8_t switchMode;
406} tLimChannelSwitchInfo, *tpLimChannelSwitchInfo;
407
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800408typedef struct sLimOperatingModeInfo {
409 uint8_t present;
410 uint8_t chanWidth:2;
411 uint8_t reserved:2;
412 uint8_t rxNSS:3;
413 uint8_t rxNSSType:1;
414} tLimOperatingModeInfo, *tpLimOperatingModeInfo;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800415
416typedef struct sLimWiderBWChannelSwitch {
417 uint8_t newChanWidth;
418 uint8_t newCenterChanFreq0;
419 uint8_t newCenterChanFreq1;
420} tLimWiderBWChannelSwitchInfo, *tpLimWiderBWChannelSwitchInfo;
421
422/* Enums used when stopping the Tx. */
423typedef enum eLimQuietTxMode {
424 /* Stop/resume transmission of all stations,Uses the global flag */
425 eLIM_TX_ALL = 0,
426 /*
427 * Stops/resumes the transmission of specific stations identified
428 * by staId.
429 */
430 eLIM_TX_STA,
431 /* Stops/resumes the transmission of all the packets in BSS */
432 eLIM_TX_BSS,
433 /*
434 * Stops/resumes the transmission of all packets except beacons in BSS
435 * This is used when radar is detected in the current operating channel.
436 * Beacon has to be sent to notify the stations associated about the
437 * scheduled channel switch
438 */
439 eLIM_TX_BSS_BUT_BEACON
440} tLimQuietTxMode;
441
442typedef enum eLimControlTx {
443 eLIM_RESUME_TX = 0,
444 eLIM_STOP_TX
445} tLimControlTx;
446
447/* -------------------------------------------------------------------- */
448
449typedef struct sLimTspecInfo {
450 /* 0==free, else used */
451 uint8_t inuse;
452 /* index in list */
453 uint8_t idx;
454 tSirMacAddr staAddr;
455 uint16_t assocId;
Jeff Johnson56471b92018-12-22 14:36:06 -0800456 struct mac_tspec_ie tspec;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800457 /* number of Tclas elements */
458 uint8_t numTclas;
459 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
460 uint8_t tclasProc;
461 /* tclassProc is valid only if this is set to 1. */
462 uint8_t tclasProcPresent:1;
Anurag Chouhan6d760662016-02-20 16:05:43 +0530463} qdf_packed tLimTspecInfo, *tpLimTspecInfo;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800464
465typedef struct sLimAdmitPolicyInfo {
466 /* admit control policy type */
467 uint8_t type;
468 /* oversubscription factor : 0 means nothing is allowed */
469 uint8_t bw_factor;
470 /* valid only when 'type' is set BW_FACTOR */
471} tLimAdmitPolicyInfo, *tpLimAdmitPolicyInfo;
472
473typedef enum eLimWscEnrollState {
474 eLIM_WSC_ENROLL_NOOP,
475 eLIM_WSC_ENROLL_BEGIN,
476 eLIM_WSC_ENROLL_IN_PROGRESS,
477 eLIM_WSC_ENROLL_END
478} tLimWscEnrollState;
479
480#define WSC_PASSWD_ID_PUSH_BUTTON (0x0004)
481
482typedef struct sLimWscIeInfo {
483 bool apSetupLocked;
484 bool selectedRegistrar;
485 uint16_t selectedRegistrarConfigMethods;
486 tLimWscEnrollState wscEnrollmentState;
487 tLimWscEnrollState probeRespWscEnrollmentState;
488 uint8_t reqType;
489 uint8_t respType;
490} tLimWscIeInfo, *tpLimWscIeInfo;
491
492/* maximum number of tspec's supported */
493#define LIM_NUM_TSPEC_MAX 15
494
495/* structure to hold all 11h specific data */
496typedef struct sLimSpecMgmtInfo {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800497 tLimDot11hChanSwStates dot11hChanSwState;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800498} tLimSpecMgmtInfo, *tpLimSpecMgmtInfo;
499
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800500#endif