⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pararoamingproc.h

📁 marvell8385 GSPI开发驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
* File	 : ParaRoamingProc.h
* Timer    : 2006-03-07
* Creater : Stephen Zhang 
*/
 
#ifndef	_PARA_ROAMING_PROC_H_
#define	_PARA_ROAMING_PROC_H_

//#include "Dsdef.h"
//#include "Ndisdef.h"
//#include "Eagledev.h"
#include "Precomp.h"
#include "datestructure.h"   //Included the header for the xml parser class

//#define	  RMM_MSG_BASE		0x0000C000
//#define  RMM_MSG_ROVEOUT_ROVEIN        RMM_MSG_BASE+80L  // p1 = Roveout; p2 = Rovein
//#define  RMM_MSG_ROAMINGTIMER          RMM_MSG_BASE+81L  // p1 = RoamingTimer


#define DEBUG_PARA_ROAMING
//#define DEBUG_PARA_ROAMING_PRINT
#define FW_REQUIRED_SEND_AUTH_BEFORE_ASSO
//#define DEBUG_PARA_ROAMING_ONLY
//#define CONFIG_VERTICAL_HANDOFF /*macro for adding the feature of vertical handoff */

#ifdef CONFIG_VERTICAL_HANDOFF
/*get beacon's rssi per 2000 ms*/
#define BEACON_RSSI_LISTEN_INTERVAL			2000
/* Beacon's RSSI is higher than given threshold for more than 2 times,handset will report WiFi available event*/
#define BEACON_RSSI_GOOD_COUNT_THRESHOLD			2
#endif

/*OID_SET_SSID cost time must be larger than (ROAMING_LINKLOST_TIMEOUT + 2500 + 4000)*/
#define ASYNC_OID_SET_SSID_TIMEOUT 12000

//Extend  PARA defined IOCTL OID
/*PARA ALL SCAN*/
#define OID_802_11_PARA_SET_ALL_SCAN                0xABC10121
/*PARA GET SCAN LIST*/
#define OID_802_11_PARA_GET_SCAN_LIST               0xABC10122
#ifdef CONFIG_VERTICAL_HANDOFF
/*PARA GET WIFI QUALITY*/
#define OID_PARA_GET_WIFI_QUALITY				 0xABC10123
#endif
/*PARA GET ROAMING STATUS*/
#define OID_PARA_GET_ROAMING_STATUS                 0xABC10124
/*PARA GET AP RSSI*/
#define OID_PARA_GET_RSSI           				0xABC10125
/*PARA GET POWER STATUS*/
#define OID_PARA_GET_POWER_STATUS        		0xABC10126

/*during call, linklost happenned if NOT receive any 802.3 data package within 300 ms */
#define CALL_LINKLOST_TIMEOUT		300
/*during roaming,linklost happenned if NOT associated with any AP within 2800  ms  */
#define ROAMING_LINKLOST_TIMEOUT	2800
/*check the rxdata's rssi per 10 rx data packages*/
#define RXDATA_RSSI_INTERVAL		10
/*Fix the bug 2779/3151 by Stephen Zhang on 2007-06-25<<<<<<<<<*/ 
/*auto-roaming maxium retry counts*/
#define AUTO_ROAMING_MAX_COUNTS	MRVDRV_MAX_BSSID_LIST
/*Fix the bug 2779/3151 by Stephen Zhang on 2007-06-25>>>>>>>>>*/ 
/*during auto-roaming,send smart scan if roaming try every 3 times */
#define AUTO_ROAMING_COUNTS_FOR_SMART_SCAN 3 
/*during upper layer's data transaction still in process, try for roaming again after stop-roaming happenned event past 5s */
#define REROAMING_INTERVAL_STILL_IN_TRANSACTION  5000

/*wlan FW's linklost event will be triggered if 60 consecutive beacons are missed by wlan card*/
#define MAX_MISSED_BEACONS  (60)
/*wlan software's linklost event will be triggerer if 40 FW's linklost events is NOT in action.*/
#define MULTIPLE_LINK_LOST_EVENTS	(40)

#if 0
/*get beacon's rssi per 300 ms*/
#define BEACON_RSSI_INTERVAL		300  
#endif

/* channel 1 is set defaultly while smart scan */
#define DEFAULT_SMART_SCAN_CHANNEL	1

#define PARA_802_11_TXRETRY		3
#define PARA_802_11_AUTORATE 		0


#define PARA_SMART_ACTIVE_SCAN_MIN_CH_TIME		20/*20 ms*/
#define PARA_SMART_ACTIVE_SCAN_MAX_CH_TIME		50/*50 ms*/
#define PARA_SMART_PASSIVE_SCAN_MIN_CH_TIME		150/*150 ms*/
#define PARA_SMART_PASSIVE_SCAN_MAX_CH_TIME 	150/*150 ms*/
#define PARA_ALL_SCAN_MIN_CH_TIME					150/*150 ms*/
#define PARA_ALL_SCAN_MAX_CH_TIME 				150/*150 ms*/
/*
#define HostCmd_SCAN_PROBE_DELAY_TIME           0(0 ms)

#define HostCmd_SCAN_MIN_CH_TIME                18(18 ms)

#ifdef FWVERSION3
#define HostCmd_SCAN_MAX_CH_TIME                200(200 ms)
#else
#define HostCmd_SCAN_MAX_CH_TIME                15(150 ms)
#endif
*/
/*Here we use the firmware 2.0.  
If there are NOT any APs around handset, the active scan time totally will cost 
HostCmd_SCAN_MAX_CH_TIME*13(13 channels of USA standard)
= 240 *13 = 3120 ms
*/

	/*
	 * AT+CSQ :
	 * 
	 * <rssi> : define for WLAN
	 *	11M	-81dbm 
	 * 	5M	-86dbm
	 * 	2M	-88dbm
	 * 	1M	-90dbm
	 * * * * * * * * * * * * * * * * * * * *
	 * Defined by TechFaith for GUI
	 * 
	 *					| level
	 * -------------------------------------------------------------------------
	 * 	(x >=0  && x <= 5) || x > 99 	| 0
	 * 	(x > 5  && x <= 8) 		| 1
	 * 	(x > 8  && x <= 11)		| 2
	 * 	(x > 11 && x <= 14)		| 3
	 * 	(x > 14 && x <= 31)		| 4
	 * 
	 * * * * * * * * * * * * * * * * * * * *
	 * We define :
	 * 	>= -70dbm  	| level 4 | 30
	 * 	-81dbm ~ -70dbm	| level 3 | 13
	 * 	-86dbm ~ -81dbm	| level 2 | 10
	 * 	-90dbm ~ -86dbm	| level 1 | 6
	 * 	< -90dbm	| none	  | 1
	 * 	
	 * */
/*smart scan only if rssi_Average changed whthin the range (-2 < rssi_Delta > 2)*/
#define PARA_RSSI_DELTA		1
#define PARA_RSSI_ROAMING_THRESHOLD 		-82   	//Rssi roaming threshold
#define PARA_RSSI_SMARTSCAN_THRESHOLD	-72	 	//Rssi smartscan threshold

#define MAX_KEY_SIZE			13	// 128 (?) bits
#define MIN_KEY_SIZE			5	// 40 bits RC4 - WEP
#define WEP_KEY_MAX_SIZE_IN_BYTE	16
#define WPA_USERNAME_MAX_LENGTH	16
#define WPA_PASSWORD_MAX_LENGTH	16

#define WLAN_MAX_PROFILES			16

/*Error code*/
#define EWLANUNREACH                       255
#define EINVAL						1
#define EFAIL						2

/*WinMobile defined Macro*/
#define WSF_POWER_ON 				(0x00000002)
#define WSF_CONNECTING 			(0x00000008)
#define WSF_CONNECTED 				(0x00000010)
#define WSF_HARDWARE_PRESENT 		(0x00000001)
#define WSF_NETWORKS_AVAILABLE 	(0x00000004)

/*Paragon defined registery wifi_power value*/
#define PARA_REG_WIFI_POWER_ON		(0)
#define PARA_REG_WIFI_POWER_OFF		(1)

#ifdef CONFIG_VERTICAL_HANDOFF
#define PARA_RSSI_ROVE_IN_INIT_THRESHOLD	(-70)
#define PARA_RSSI_ROVE_OUT_INIT_THRESHOLD 	(-82)
typedef struct _PARA_VERTICAL_HANDOFF_CONFIG
{
	int RoveIn_RSSIThreshold; 		//WiFi's beacon average RSSI threshold for vertical rove in handoff towards WiFi
	int RoveOut_RSSIThreshold;		//WiFi's data average RSSI threshold for vertical rove out handoff towards GSM or CDMA
}PARA_VERTICAL_HANDOFF_CONFIG, *PPARA_VERTICAL_HANDOFF_CONFIG;
#endif


typedef enum
{
	BEST_RSSI_ONLY = 0,
	BEST_RSSI_GIVEN_PROFILES,
	BEST_RSSI_GIVEN_SSID,
	BEST_RSSI_GIVEN_SSID_WITHOUT_PREVOIUS_BSSID,
	BEST_RSSI_GIVEN_PROFILES_WITHOUT_PREVOIUS_BSSID,
	GIVEN_SSID_BSSID,
	NO_ROAMING	
} PARA_ROAMING_POLICY;

#if 0
typedef enum _WLAN_PRIVACY_MODE
{
    PRIVACY_NONE = 0,	    //no encyption
    PRIVACY_WEP,		    // WEP encyption
    PRIVACY_WPA,	      // WPA AUTHENTICATION MODE
    PRIVACY_1X     //802.1x AUTHENTICATION MODE
}WLAN_PRIVACY_MODE;

typedef struct _USER_IDENTIFY
{
    struct{
        char username[MAX_USERNAME_LENGTH];
        char passwd[MAX_PASSWD_LENGTH];
    }user_pwd;
    struct{
        char Key[MAX_PASSWD_LENGTH];
    }psk;
    struct{
        char CACertificate[MAX_CERTIFICCATE_NAME_LENGTH];
        char PCertificate[MAX_CERTIFICCATE_NAME_LENGTH];
    }certificate;
} USER_IDENTIFY, *PUSER_IDENTIFY;//the using identify information collection,to save space union is used

typedef enum _WLAN_WPA_TYPE
{
    TYPE_WPA_NONE = 0,
    TYPE_WPA_PSK,           
    TYPE_WPA_EAP,
} WLAN_WPA_TYPE;

typedef struct _WPA_INFO
{
    WLAN_WPA_TYPE   WpaType;
    EAP_METHOD 	EapMethod;
    USER_IDENTIFY UserInfo;
} WPA_INFO;
#endif // #if 0

typedef struct _WLAN_PROFILE
{
	NDIS_802_11_SSID   Ssid;						// SSID information field
	unsigned char		CurrentUsed;				// 0: not Used; 1: Used
    NONE_WPA_1x_AUTHENTICATION_MODE  AuthMode;	
	WLAN_PRIVACY_MODE	PrivacyMode;			// encryption mode
	WPA_INFO			WpaInfo;				// WPA information
	MRVL_WEP_KEY		WepKey[4];				// 4 WEP Keys information
} WLAN_PROFILE, *PWLAN_PROFILE;

typedef struct _WLAN_PROFILE_ALLLIST
{
	unsigned int	    ProfilesNumber;				// total numbers of profiles
	WLAN_PROFILE   Profiles[WLAN_MAX_PROFILES];	// total profiles records
	unsigned char	    ChanList[WLAN_MAX_PROFILES][MRVDRV_MAX_CHANNEL_NUMBER];//total channels records
	unsigned char	    ChanNumList[WLAN_MAX_PROFILES];//total channel numbers list of profiles 
	NDIS_802_11_SSID SsidList[WLAN_MAX_PROFILES];//total ssid list of profiles
	unsigned char	    CurrentProfileIndex; // the index of current used profile
	unsigned char     PreviousProfileIndex; // the index of previous used profile
#ifdef CONFIG_WLAN_DHCP_PROXY
    UI_NDIS_MACIPInfo     MacInfo[WLAN_MAX_PROFILES];
#endif
} WLAN_PROFILE_ALLLIST, *PWLAN_PROFILE_ALLLIST;



typedef unsigned char WPA_RESULT; // 0: failed;  1:successful.

/**
 * Private roaming structure for the MV device.
 * The comments in parenthesis are in relation to the user of this
 * structure.
 */

typedef struct _PRIVATE_PARAROAMING_ADAPTER{

	WLAN_PROFILE_ALLLIST	ProfileAllList;
	
	MRVDRV_ADAPTER			*pAdapter;

#ifdef CONFIG_VERTICAL_HANDOFF
	PARA_VERTICAL_HANDOFF_CONFIG	VerticalHandoffCfg;
#endif
	
	/*Trigger event for auto-roaming*/
	HANDLE hAutoRoamingEvent;

	/*Trigger event for manual-roaming*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -