blob: 26ba47da467b0cc81164e534ac4babf4857dd686 [file] [log] [blame]
Forest Bond92b96792009-06-13 07:38:31 -04001/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 *
20 * File: wmgr.h
21 *
22 * Purpose:
23 *
24 * Author: lyndon chen
25 *
26 * Date: Jan 2, 2003
27 *
28 * Functions:
29 *
30 * Revision History:
31 *
32 */
33
Forest Bond92b96792009-06-13 07:38:31 -040034#ifndef __WMGR_H__
35#define __WMGR_H__
36
Forest Bond92b96792009-06-13 07:38:31 -040037#include "80211mgr.h"
Forest Bond92b96792009-06-13 07:38:31 -040038#include "80211hdr.h"
Forest Bond92b96792009-06-13 07:38:31 -040039#include "wcmd.h"
Forest Bond92b96792009-06-13 07:38:31 -040040#include "bssdb.h"
Forest Bond92b96792009-06-13 07:38:31 -040041#include "wpa2.h"
Forest Bond92b96792009-06-13 07:38:31 -040042#include "card.h"
Forest Bond92b96792009-06-13 07:38:31 -040043
Forest Bond92b96792009-06-13 07:38:31 -040044// Scan time
45#define PROBE_DELAY 100 // (us)
46#define SWITCH_CHANNEL_DELAY 200 // (us)
47#define WLAN_SCAN_MINITIME 25 // (ms)
48#define WLAN_SCAN_MAXTIME 100 // (ms)
49#define TRIVIAL_SYNC_DIFFERENCE 0 // (us)
50#define DEFAULT_IBSS_BI 100 // (ms)
51
52#define WCMD_ACTIVE_SCAN_TIME 20 //(ms)
53#define WCMD_PASSIVE_SCAN_TIME 100 //(ms)
54
Forest Bond92b96792009-06-13 07:38:31 -040055#define DEFAULT_MSDU_LIFETIME 512 // ms
56#define DEFAULT_MSDU_LIFETIME_RES_64us 8000 // 64us
57
58#define DEFAULT_MGN_LIFETIME 8 // ms
59#define DEFAULT_MGN_LIFETIME_RES_64us 125 // 64us
60
61#define MAKE_BEACON_RESERVED 10 //(us)
62
Forest Bond92b96792009-06-13 07:38:31 -040063#define TIM_MULTICAST_MASK 0x01
64#define TIM_BITMAPOFFSET_MASK 0xFE
65#define DEFAULT_DTIM_PERIOD 1
66
67#define AP_LONG_RETRY_LIMIT 4
68
69#define DEFAULT_IBSS_CHANNEL 6 //2.4G
70
Forest Bond92b96792009-06-13 07:38:31 -040071//mike define: make timer to expire after desired times
Andres Mored9d1ccb2010-05-26 20:00:36 -030072#define timer_expire(timer, next_tick) mod_timer(&timer, RUN_AT(next_tick))
Forest Bond92b96792009-06-13 07:38:31 -040073
Andres Morecc856e62010-05-17 21:34:01 -030074typedef void (*TimerFunction)(unsigned long);
Forest Bond92b96792009-06-13 07:38:31 -040075
Forest Bond92b96792009-06-13 07:38:31 -040076//+++ NDIS related
77
Malcolm Priestley1d651be2012-11-11 15:59:11 +000078typedef u8 NDIS_802_11_MAC_ADDRESS[ETH_ALEN];
Forest Bond92b96792009-06-13 07:38:31 -040079typedef struct _NDIS_802_11_AI_REQFI
80{
Malcolm Priestley1d651be2012-11-11 15:59:11 +000081 u16 Capabilities;
82 u16 ListenInterval;
Forest Bond92b96792009-06-13 07:38:31 -040083 NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
84} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
85
86typedef struct _NDIS_802_11_AI_RESFI
87{
Malcolm Priestley1d651be2012-11-11 15:59:11 +000088 u16 Capabilities;
89 u16 StatusCode;
90 u16 AssociationId;
Forest Bond92b96792009-06-13 07:38:31 -040091} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
92
93typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION
94{
Malcolm Priestley1d651be2012-11-11 15:59:11 +000095 u32 Length;
96 u16 AvailableRequestFixedIEs;
97 NDIS_802_11_AI_REQFI RequestFixedIEs;
98 u32 RequestIELength;
99 u32 OffsetRequestIEs;
100 u16 AvailableResponseFixedIEs;
101 NDIS_802_11_AI_RESFI ResponseFixedIEs;
102 u32 ResponseIELength;
103 u32 OffsetResponseIEs;
Forest Bond92b96792009-06-13 07:38:31 -0400104} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
105
Forest Bond92b96792009-06-13 07:38:31 -0400106typedef struct tagSAssocInfo {
Malcolm Priestley1d651be2012-11-11 15:59:11 +0000107 NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo;
108 u8 abyIEs[WLAN_BEACON_FR_MAXLEN+WLAN_BEACON_FR_MAXLEN];
109 /* store ReqIEs set by OID_802_11_ASSOCIATION_INFORMATION */
110 u32 RequestIELength;
111 u8 abyReqIEs[WLAN_BEACON_FR_MAXLEN];
Jim Lieb193a8232009-08-12 14:54:06 -0700112} SAssocInfo, *PSAssocInfo;
Malcolm Priestley1d651be2012-11-11 15:59:11 +0000113
Forest Bond92b96792009-06-13 07:38:31 -0400114typedef enum tagWMAC_AUTHENTICATION_MODE {
115
116 WMAC_AUTH_OPEN,
117 WMAC_AUTH_SHAREKEY,
118 WMAC_AUTH_AUTO,
119 WMAC_AUTH_WPA,
120 WMAC_AUTH_WPAPSK,
121 WMAC_AUTH_WPANONE,
122 WMAC_AUTH_WPA2,
123 WMAC_AUTH_WPA2PSK,
124 WMAC_AUTH_MAX // Not a real mode, defined as upper bound
125} WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE;
126
Forest Bond92b96792009-06-13 07:38:31 -0400127// Pre-configured Mode (from XP)
128
129typedef enum tagWMAC_CONFIG_MODE {
130 WMAC_CONFIG_ESS_STA,
131 WMAC_CONFIG_IBSS_STA,
132 WMAC_CONFIG_AUTO,
133 WMAC_CONFIG_AP
134
135} WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE;
136
Forest Bond92b96792009-06-13 07:38:31 -0400137typedef enum tagWMAC_SCAN_TYPE {
138
139 WMAC_SCAN_ACTIVE,
140 WMAC_SCAN_PASSIVE,
141 WMAC_SCAN_HYBRID
142
143} WMAC_SCAN_TYPE, *PWMAC_SCAN_TYPE;
144
Forest Bond92b96792009-06-13 07:38:31 -0400145typedef enum tagWMAC_SCAN_STATE {
146
147 WMAC_NO_SCANNING,
148 WMAC_IS_SCANNING,
149 WMAC_IS_PROBEPENDING
150
151} WMAC_SCAN_STATE, *PWMAC_SCAN_STATE;
152
Forest Bond92b96792009-06-13 07:38:31 -0400153// Notes:
154// Basic Service Set state explained as following:
155// WMAC_STATE_IDLE : no BSS is selected (Adhoc or Infra)
156// WMAC_STATE_STARTED : no BSS is selected, start own IBSS (Adhoc only)
157// WMAC_STATE_JOINTED : BSS is selected and synchronized (Adhoc or Infra)
158// WMAC_STATE_AUTHPENDING : Authentication pending (Infra)
159// WMAC_STATE_AUTH : Authenticated (Infra)
160// WMAC_STATE_ASSOCPENDING : Association pending (Infra)
161// WMAC_STATE_ASSOC : Associated (Infra)
162
163typedef enum tagWMAC_BSS_STATE {
164
165 WMAC_STATE_IDLE,
166 WMAC_STATE_STARTED,
167 WMAC_STATE_JOINTED,
168 WMAC_STATE_AUTHPENDING,
169 WMAC_STATE_AUTH,
170 WMAC_STATE_ASSOCPENDING,
171 WMAC_STATE_ASSOC
172
173} WMAC_BSS_STATE, *PWMAC_BSS_STATE;
174
175// WMAC selected running mode
176typedef enum tagWMAC_CURRENT_MODE {
177
178 WMAC_MODE_STANDBY,
179 WMAC_MODE_ESS_STA,
180 WMAC_MODE_IBSS_STA,
181 WMAC_MODE_ESS_AP
182
183} WMAC_CURRENT_MODE, *PWMAC_CURRENT_MODE;
184
Forest Bond92b96792009-06-13 07:38:31 -0400185typedef enum tagWMAC_POWER_MODE {
186
187 WMAC_POWER_CAM,
188 WMAC_POWER_FAST,
189 WMAC_POWER_MAX
190
191} WMAC_POWER_MODE, *PWMAC_POWER_MODE;
192
Malcolm Priestley4f4a89c2012-12-10 21:55:59 +0000193/* Tx Management Packet descriptor */
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000194struct vnt_tx_mgmt {
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000195 PUWLAN_80211HDR p80211Header;
196 u32 cbMPDULen;
197 u32 cbPayloadLen;
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000198};
Forest Bond92b96792009-06-13 07:38:31 -0400199
Malcolm Priestley4f4a89c2012-12-10 21:55:59 +0000200/* Rx Management Packet descriptor */
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000201struct vnt_rx_mgmt {
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000202 PUWLAN_80211HDR p80211Header;
Malcolm Priestley7c65fa22012-11-28 21:11:02 +0000203 u64 qwLocalTSF;
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000204 u32 cbMPDULen;
205 u32 cbPayloadLen;
206 u32 uRSSI;
207 u8 bySQ;
208 u8 byRxRate;
209 u8 byRxChannel;
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000210};
Forest Bond92b96792009-06-13 07:38:31 -0400211
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000212struct vnt_manager {
Andres More8611a292010-05-01 14:25:00 -0300213 void *pAdapter;
Forest Bond92b96792009-06-13 07:38:31 -0400214
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000215 /* MAC address */
216 u8 abyMACAddr[WLAN_ADDR_LEN];
Forest Bond92b96792009-06-13 07:38:31 -0400217
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000218 /* Configuration Mode */
219 WMAC_CONFIG_MODE eConfigMode; /* MAC pre-configed mode */
Forest Bond92b96792009-06-13 07:38:31 -0400220
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000221 CARD_PHY_TYPE eCurrentPHYMode;
Forest Bond92b96792009-06-13 07:38:31 -0400222
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000223 /* Operation state variables */
224 WMAC_CURRENT_MODE eCurrMode; /* MAC current connection mode */
225 WMAC_BSS_STATE eCurrState; /* MAC current BSS state */
226 WMAC_BSS_STATE eLastState; /* MAC last BSS state */
Forest Bond92b96792009-06-13 07:38:31 -0400227
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000228 PKnownBSS pCurrBSS;
229 u8 byCSSGK;
230 u8 byCSSPK;
Forest Bond92b96792009-06-13 07:38:31 -0400231
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000232 int bCurrBSSIDFilterOn;
Forest Bond92b96792009-06-13 07:38:31 -0400233
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000234 /* Current state vars */
235 u32 uCurrChannel;
236 u8 abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
237 u8 abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
238 u8 abyCurrSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
239 u8 abyCurrBSSID[WLAN_BSSID_LEN];
240 u16 wCurrCapInfo;
241 u16 wCurrAID;
242 u32 uRSSITrigger;
243 u16 wCurrATIMWindow;
244 u16 wCurrBeaconPeriod;
245 int bIsDS;
246 u8 byERPContext;
Forest Bond92b96792009-06-13 07:38:31 -0400247
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000248 CMD_STATE eCommandState;
249 u32 uScanChannel;
Forest Bond92b96792009-06-13 07:38:31 -0400250
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000251 /* Desire joinning BSS vars */
252 u8 abyDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
253 u8 abyDesireBSSID[WLAN_BSSID_LEN];
Forest Bond92b96792009-06-13 07:38:31 -0400254
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000255 /*restore BSS info for Ad-Hoc mode */
256 u8 abyAdHocSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
Forest Bond92b96792009-06-13 07:38:31 -0400257
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000258 /* Adhoc or AP configuration vars */
259 u16 wIBSSBeaconPeriod;
260 u16 wIBSSATIMWindow;
261 u32 uIBSSChannel;
262 u8 abyIBSSSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
263 u8 byAPBBType;
264 u8 abyWPAIE[MAX_WPA_IE_LEN];
265 u16 wWPAIELen;
Forest Bond92b96792009-06-13 07:38:31 -0400266
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000267 u32 uAssocCount;
268 int bMoreData;
Forest Bond92b96792009-06-13 07:38:31 -0400269
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000270 /* Scan state vars */
271 WMAC_SCAN_STATE eScanState;
272 WMAC_SCAN_TYPE eScanType;
273 u32 uScanStartCh;
274 u32 uScanEndCh;
275 u16 wScanSteps;
276 u32 uScanBSSType;
277 /* Desire scannig vars */
278 u8 abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
279 u8 abyScanBSSID[WLAN_BSSID_LEN];
Forest Bond92b96792009-06-13 07:38:31 -0400280
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000281 /* Privacy */
282 WMAC_AUTHENTICATION_MODE eAuthenMode;
283 int bShareKeyAlgorithm;
284 u8 abyChallenge[WLAN_CHALLENGE_LEN];
285 int bPrivacyInvoked;
Forest Bond92b96792009-06-13 07:38:31 -0400286
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000287 /* Received beacon state vars */
288 int bInTIM;
289 int bMulticastTIM;
290 u8 byDTIMCount;
291 u8 byDTIMPeriod;
Forest Bond92b96792009-06-13 07:38:31 -0400292
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000293 /* Power saving state vars */
294 WMAC_POWER_MODE ePSMode;
295 u16 wListenInterval;
296 u16 wCountToWakeUp;
297 int bInTIMWake;
298 u8 *pbyPSPacketPool;
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000299 u8 byPSPacketPool[sizeof(struct vnt_tx_mgmt)
300 + WLAN_NULLDATA_FR_MAXLEN];
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000301 int bRxBeaconInTBTTWake;
302 u8 abyPSTxMap[MAX_NODE_NUM + 1];
Forest Bond92b96792009-06-13 07:38:31 -0400303
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000304 /* management command related */
305 u32 uCmdBusy;
306 u32 uCmdHostAPBusy;
Forest Bond92b96792009-06-13 07:38:31 -0400307
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000308 /* management packet pool */
309 u8 *pbyMgmtPacketPool;
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000310 u8 byMgmtPacketPool[sizeof(struct vnt_tx_mgmt)
311 + WLAN_A3FR_MAXLEN];
Forest Bond92b96792009-06-13 07:38:31 -0400312
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000313 /* Temporarily Rx Mgmt Packet Descriptor */
314 struct vnt_rx_mgmt sRxPacket;
Forest Bond92b96792009-06-13 07:38:31 -0400315
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000316 /* link list of known bss's (scan results) */
317 KnownBSS sBSSList[MAX_BSS_NUM];
Andres More465711b2010-08-03 20:25:50 -0300318 /* link list of same bss's */
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000319 KnownBSS pSameBSS[6];
320 int Cisco_cckm;
321 u8 Roam_dbm;
Forest Bond92b96792009-06-13 07:38:31 -0400322
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000323 /* table list of known node */
324 /* sNodeDBList[0] is reserved for AP under Infra mode */
325 /* sNodeDBList[0] is reserved for Multicast under adhoc/AP mode */
326 KnownNodeDB sNodeDBTable[MAX_NODE_NUM + 1];
Forest Bond92b96792009-06-13 07:38:31 -0400327
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000328 /* WPA2 PMKID Cache */
329 SPMKIDCache gsPMKIDCache;
330 int bRoaming;
Forest Bond92b96792009-06-13 07:38:31 -0400331
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000332 /* associate info */
333 SAssocInfo sAssocInfo;
Forest Bond92b96792009-06-13 07:38:31 -0400334
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000335 /* for 802.11h */
336 int b11hEnable;
337 int bSwitchChannel;
338 u8 byNewChannel;
339 PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep;
340 u32 uLengthOfRepEIDs;
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000341 u8 abyCurrentMSRReq[sizeof(struct vnt_tx_mgmt)
342 + WLAN_A3FR_MAXLEN];
343 u8 abyCurrentMSRRep[sizeof(struct vnt_tx_mgmt)
344 + WLAN_A3FR_MAXLEN];
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000345 u8 abyIECountry[WLAN_A3FR_MAXLEN];
346 u8 abyIBSSDFSOwner[6];
347 u8 byIBSSDFSRecovery;
Forest Bond92b96792009-06-13 07:38:31 -0400348
Malcolm Priestley0e0a8242013-01-17 23:23:37 +0000349 struct sk_buff skb;
Forest Bond92b96792009-06-13 07:38:31 -0400350
Malcolm Priestley14c5ef52013-01-17 23:19:37 +0000351};
Forest Bond92b96792009-06-13 07:38:31 -0400352
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000353void vMgrObjectInit(struct vnt_private *pDevice);
Forest Bond92b96792009-06-13 07:38:31 -0400354
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000355void vMgrAssocBeginSta(struct vnt_private *pDevice,
356 struct vnt_manager *, PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400357
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000358void vMgrReAssocBeginSta(struct vnt_private *pDevice,
359 struct vnt_manager *, PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400360
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000361void vMgrDisassocBeginSta(struct vnt_private *pDevice,
362 struct vnt_manager *, u8 *abyDestAddress, u16 wReason,
363 PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400364
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000365void vMgrAuthenBeginSta(struct vnt_private *pDevice,
366 struct vnt_manager *, PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400367
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000368void vMgrCreateOwnIBSS(struct vnt_private *pDevice,
369 PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400370
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000371void vMgrJoinBSSBegin(struct vnt_private *pDevice,
372 PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400373
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000374void vMgrRxManagePacket(struct vnt_private *pDevice,
375 struct vnt_manager *, struct vnt_rx_mgmt *);
Forest Bond92b96792009-06-13 07:38:31 -0400376
377/*
Andres More8611a292010-05-01 14:25:00 -0300378void
Forest Bond92b96792009-06-13 07:38:31 -0400379vMgrScanBegin(
Andres More0cbd8d92010-05-06 20:34:29 -0300380 void *hDeviceContext,
Andres More6f8c13c2010-05-04 20:40:10 -0300381 PCMD_STATUS pStatus
Forest Bond92b96792009-06-13 07:38:31 -0400382 );
383*/
384
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000385void vMgrDeAuthenBeginSta(struct vnt_private *pDevice,
386 struct vnt_manager *, u8 *abyDestAddress, u16 wReason,
387 PCMD_STATUS pStatus);
Forest Bond92b96792009-06-13 07:38:31 -0400388
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000389int bMgrPrepareBeaconToSend(struct vnt_private *pDevice,
390 struct vnt_manager *);
Forest Bond92b96792009-06-13 07:38:31 -0400391
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000392int bAdd_PMKID_Candidate(struct vnt_private *pDevice,
393 u8 *pbyBSSID, PSRSNCapObject psRSNCapObj);
Forest Bond92b96792009-06-13 07:38:31 -0400394
Malcolm Priestley78f41c92012-12-10 22:03:56 +0000395void vFlush_PMKID_Candidate(struct vnt_private *pDevice);
Forest Bond92b96792009-06-13 07:38:31 -0400396
Andres Moree7b07d12010-05-01 19:12:26 -0300397#endif /* __WMGR_H__ */