📄 wmgr.h
字号:
/* * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * All rights reserved. * * This software is copyrighted by and is the sole property of * VIA Networking Technologies, Inc. This software may only be used * in accordance with the corresponding license agreement. Any unauthorized * use, duplication, transmission, distribution, or disclosure of this * software is expressly forbidden. * * This software is provided by VIA Networking Technologies, Inc. "as is" * and any express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular purpose * are disclaimed. In no event shall VIA Networking Technologies, Inc. * be liable for any direct, indirect, incidental, special, exemplary, or * consequential damages. * * * File: wmgr.h * * Purpose: * * Author: lyndon chen * * Date: Jan 2, 2003 * * Functions: * * Revision History: * */ #ifndef __WMGR_H__#define __WMGR_H__#if !defined(__TTYPE_H__)#include "ttype.h"#endif#if !defined(__80211MGR_H__)#include "80211mgr.h"#endif#if !defined(__80211HDR_H__)#include "80211hdr.h"#endif#if !defined(__WCMD_H__)#include "wcmd.h"#endif#if !defined(__BSSDB_H__)#include "bssdb.h"#endif#if !defined(__WPA2_H__)#include "wpa2.h"#endif#if !defined(__CARD_H__)#include "card.h"#endif/*--------------------- Export Definitions -------------------------*/// Scan time#define PROBE_DELAY 100 // (us)#define SWITCH_CHANNEL_DELAY 200 // (us)#define WLAN_SCAN_MINITIME 25 // (ms)#define WLAN_SCAN_MAXTIME 100 // (ms)#define TRIVIAL_SYNC_DIFFERENCE 0 // (us)#define DEFAULT_IBSS_BI 100 // (ms)#define WCMD_ACTIVE_SCAN_TIME 20 //(ms)#define WCMD_PASSIVE_SCAN_TIME 100 //(ms)#define DEFAULT_MSDU_LIFETIME 512 // ms#define DEFAULT_MSDU_LIFETIME_RES_64us 8000 // 64us#define DEFAULT_MGN_LIFETIME 8 // ms#define DEFAULT_MGN_LIFETIME_RES_64us 125 // 64us#define MAKE_BEACON_RESERVED 10 //(us)#define TIM_MULTICAST_MASK 0x01#define TIM_BITMAPOFFSET_MASK 0xFE #define DEFAULT_DTIM_PERIOD 1#define AP_LONG_RETRY_LIMIT 4#define DEFAULT_IBSS_CHANNEL 6 //2.4G /*--------------------- Export Classes ----------------------------*/ /*--------------------- Export Variables --------------------------*//*--------------------- Export Types ------------------------------*/typedef void (*TimerFunction)(ULONG);//+++ NDIS relatedtypedef UCHAR NDIS_802_11_MAC_ADDRESS[6];typedef struct _NDIS_802_11_AI_REQFI{ USHORT Capabilities; USHORT ListenInterval; NDIS_802_11_MAC_ADDRESS CurrentAPAddress;} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;typedef struct _NDIS_802_11_AI_RESFI{ USHORT Capabilities; USHORT StatusCode; USHORT AssociationId;} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION{ ULONG Length; USHORT AvailableRequestFixedIEs; NDIS_802_11_AI_REQFI RequestFixedIEs; ULONG RequestIELength; ULONG OffsetRequestIEs; USHORT AvailableResponseFixedIEs; NDIS_802_11_AI_RESFI ResponseFixedIEs; ULONG ResponseIELength; ULONG OffsetResponseIEs;} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;typedef struct tagSAssocInfo { NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo; BYTE abyIEs[WLAN_BEACON_FR_MAXLEN+WLAN_BEACON_FR_MAXLEN]; // store ReqIEs set by OID_802_11_ASSOCIATION_INFORMATION ULONG RequestIELength; BYTE abyReqIEs[WLAN_BEACON_FR_MAXLEN];} SAssocInfo, DEF* PSAssocInfo;//---typedef enum tagWMAC_AUTHENTICATION_MODE { WMAC_AUTH_OPEN, WMAC_AUTH_SHAREKEY, WMAC_AUTH_AUTO, WMAC_AUTH_WPA, WMAC_AUTH_WPAPSK, WMAC_AUTH_WPANONE, WMAC_AUTH_WPA2, WMAC_AUTH_WPA2PSK, WMAC_AUTH_MAX // Not a real mode, defined as upper bound #ifdef SndEvt_ToAPI , WMAC_AUTH_WEPOPENEKEY, WMAC_AUTH_WEPSHAREKEY #endif } WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE;// Pre-configured Mode (from XP)typedef enum tagWMAC_CONFIG_MODE { WMAC_CONFIG_ESS_STA, WMAC_CONFIG_IBSS_STA, WMAC_CONFIG_AUTO, WMAC_CONFIG_AP } WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE;typedef enum tagWMAC_SCAN_TYPE { WMAC_SCAN_ACTIVE, WMAC_SCAN_PASSIVE, WMAC_SCAN_HYBRID } WMAC_SCAN_TYPE, *PWMAC_SCAN_TYPE;typedef enum tagWMAC_SCAN_STATE { WMAC_NO_SCANNING, WMAC_IS_SCANNING, WMAC_IS_PROBEPENDING } WMAC_SCAN_STATE, *PWMAC_SCAN_STATE;// Notes:// Basic Service Set state explained as following:// WMAC_STATE_IDLE : no BSS is selected (Adhoc or Infra)// WMAC_STATE_STARTED : no BSS is selected, start own IBSS (Adhoc only)// WMAC_STATE_JOINTED : BSS is selected and synchronized (Adhoc or Infra)// WMAC_STATE_AUTHPENDING : Authentication pending (Infra)// WMAC_STATE_AUTH : Authenticated (Infra)// WMAC_STATE_ASSOCPENDING : Association pending (Infra)// WMAC_STATE_ASSOC : Associated (Infra) typedef enum tagWMAC_BSS_STATE { WMAC_STATE_IDLE, WMAC_STATE_STARTED, WMAC_STATE_JOINTED, WMAC_STATE_AUTHPENDING, WMAC_STATE_AUTH, WMAC_STATE_ASSOCPENDING, WMAC_STATE_ASSOC} WMAC_BSS_STATE, *PWMAC_BSS_STATE;// WMAC selected running mode typedef enum tagWMAC_CURRENT_MODE { WMAC_MODE_STANDBY, WMAC_MODE_ESS_STA, WMAC_MODE_IBSS_STA, WMAC_MODE_ESS_AP} WMAC_CURRENT_MODE, *PWMAC_CURRENT_MODE;typedef enum tagWMAC_POWER_MODE { WMAC_POWER_CAM, WMAC_POWER_FAST, WMAC_POWER_MAX } WMAC_POWER_MODE, *PWMAC_POWER_MODE;// Tx Managment Packet descriptortypedef struct tagSTxMgmtPacket { PUWLAN_80211HDR p80211Header; UINT cbMPDULen; UINT cbPayloadLen; } STxMgmtPacket, DEF* PSTxMgmtPacket;// Rx Managment Packet descriptortypedef struct tagSRxMgmtPacket { PUWLAN_80211HDR p80211Header; QWORD qwLocalTSF; UINT cbMPDULen; UINT cbPayloadLen; UINT uRSSI; BYTE bySQ; BYTE byRxRate; BYTE byRxChannel;} SRxMgmtPacket, DEF* PSRxMgmtPacket; typedef struct tagSMgmtObject{ PVOID pAdapter; // MAC address BYTE abyMACAddr[WLAN_ADDR_LEN]; // Configuration Mode WMAC_CONFIG_MODE eConfigMode; // MAC pre-configed mode CARD_PHY_TYPE eCurrentPHYMode; // Operation state variables WMAC_CURRENT_MODE eCurrMode; // MAC current connection mode WMAC_BSS_STATE eCurrState; // MAC current BSS state PKnownBSS pCurrBSS; BYTE byCSSGK; BYTE byCSSPK; // BYTE abyNewSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN];// BYTE abyNewExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN]; BOOL bCurrBSSIDFilterOn; // Current state vars UINT uCurrChannel; BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; BYTE abyCurrSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abyCurrBSSID[WLAN_BSSID_LEN]; WORD wCurrCapInfo; WORD wCurrAID; UINT uRSSITrigger; WORD wCurrATIMWindow; WORD wCurrBeaconPeriod; BOOL bIsDS; BYTE byERPContext; CMD_STATE eCommandState; UINT uScanChannel; // Desire joinning BSS vars BYTE abyDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abyDesireBSSID[WLAN_BSSID_LEN]; //restore BSS info for Ad-Hoc mode//20080131-05,<Add> by Mike Liu#ifdef Adhoc_STA BYTE abyAdHocSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];#endif // Adhoc or AP configuration vars WORD wIBSSBeaconPeriod; WORD wIBSSATIMWindow; UINT uIBSSChannel; BYTE abyIBSSSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; BYTE byAPBBType; BYTE abyWPAIE[MAX_WPA_IE_LEN]; WORD wWPAIELen; UINT uAssocCount; BOOL bMoreData; // Scan state vars WMAC_SCAN_STATE eScanState; WMAC_SCAN_TYPE eScanType; UINT uScanStartCh; UINT uScanEndCh; WORD wScanSteps; UINT uScanBSSType; // Desire scannig vars BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; BYTE abyScanBSSID[WLAN_BSSID_LEN]; // Privacy WMAC_AUTHENTICATION_MODE eAuthenMode; BOOL bShareKeyAlgorithm; BYTE abyChallenge[WLAN_CHALLENGE_LEN]; BOOL bPrivacyInvoked; // Received beacon state vars BOOL bInTIM; BOOL bMulticastTIM; BYTE byDTIMCount; BYTE byDTIMPeriod; // Power saving state vars WMAC_POWER_MODE ePSMode; WORD wListenInterval; WORD wCountToWakeUp; BOOL bInTIMWake; PBYTE pbyPSPacketPool; BYTE byPSPacketPool[sizeof(STxMgmtPacket) + WLAN_NULLDATA_FR_MAXLEN]; BOOL bRxBeaconInTBTTWake; BYTE abyPSTxMap[MAX_NODE_NUM + 1]; // managment command related UINT uCmdBusy; UINT uCmdHostAPBusy; // managment packet pool PBYTE pbyMgmtPacketPool; BYTE byMgmtPacketPool[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; // One second callback timer struct timer_list sTimerSecondCallback; // Temporarily Rx Mgmt Packet Descriptor SRxMgmtPacket sRxPacket; // link list of known bss's (scan results) KnownBSS sBSSList[MAX_BSS_NUM]; //link list of same bss's //DavidWang KnownBSS pSameBSS[6] ; BOOL Cisco_cckm ; BYTE Roam_dbm; // table list of known node // sNodeDBList[0] is reserved for AP under Infra mode // sNodeDBList[0] is reserved for Multicast under adhoc/AP mode KnownNodeDB sNodeDBTable[MAX_NODE_NUM + 1]; // WPA2 PMKID Cache SPMKIDCache gsPMKIDCache; BOOL bRoaming; // rate fall back vars // associate info SAssocInfo sAssocInfo; // for 802.11h BOOL b11hEnable; BOOL bSwitchChannel; BYTE byNewChannel; PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep; UINT uLengthOfRepEIDs; BYTE abyCurrentMSRReq[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; BYTE abyCurrentMSRRep[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; BYTE abyIECountry[WLAN_A3FR_MAXLEN]; BYTE abyIBSSDFSOwner[6]; BYTE byIBSSDFSRecovery; struct sk_buff skb; } SMgmtObject, DEF *PSMgmtObject;/*--------------------- Export Macros ------------------------------*//*--------------------- Export Functions --------------------------*/voidvMgrObjectInit( IN HANDLE hDeviceContext ); void vMgrAssocBeginSta( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, OUT PCMD_STATUS pStatus );VOID vMgrReAssocBeginSta( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, OUT PCMD_STATUS pStatus ); VOIDvMgrDisassocBeginSta( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, IN PBYTE abyDestAddress, IN WORD wReason, OUT PCMD_STATUS pStatus ); VOIDvMgrAuthenBeginSta( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, OUT PCMD_STATUS pStatus ); VOIDvMgrCreateOwnIBSS( IN HANDLE hDeviceContext, OUT PCMD_STATUS pStatus ); VOIDvMgrJoinBSSBegin( IN HANDLE hDeviceContext, OUT PCMD_STATUS pStatus ); VOID vMgrRxManagePacket( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, IN PSRxMgmtPacket pRxPacket );/*VOIDvMgrScanBegin( IN HANDLE hDeviceContext, OUT PCMD_STATUS pStatus ); */ VOIDvMgrDeAuthenBeginSta( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt, IN PBYTE abyDestAddress, IN WORD wReason, OUT PCMD_STATUS pStatus ); BOOLbMgrPrepareBeaconToSend( IN HANDLE hDeviceContext, IN PSMgmtObject pMgmt ); BOOLbAdd_PMKID_Candidate ( IN HANDLE hDeviceContext, IN PBYTE pbyBSSID, IN PSRSNCapObject psRSNCapObj );VOIDvFlush_PMKID_Candidate ( IN HANDLE hDeviceContext ); #endif // __WMGR_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -