?? pararoamingproc.h
字號(hào):
/*
* 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*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -