| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- /*
- ** Id:
- */
- /*! \file "roaming_fsm.h"
- \brief This file defines the FSM for Roaming MODULE.
- This file defines the FSM for Roaming MODULE.
- */
- /*
- ** Log: roaming_fsm.h
- *
- * 08 31 2011 tsaiyuan.hsu
- * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver
- * remove obsolete code.
- *
- * 08 15 2011 tsaiyuan.hsu
- * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver
- * add swcr in driver reg, 0x9fxx0000, to disable roaming .
- *
- * 03 16 2011 tsaiyuan.hsu
- * [WCXRP00000517] [MT6620 Wi-Fi][Driver][FW] Fine Tune Performance of Roaming
- * remove obsolete definition and unused variables.
- *
- * 02 26 2011 tsaiyuan.hsu
- * [WCXRP00000391] [MT6620 Wi-Fi][FW] Add Roaming Support
- * not send disassoc or deauth to leaving AP so as to improve performace of roaming.
- *
- * 01 27 2011 tsaiyuan.hsu
- * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
- * add roaming fsm
- * 1. not support 11r, only use strength of signal to determine roaming.
- * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
- * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
- * 4. assume that change of link quality in smooth way.
- *
- * 01 27 2011 tsaiyuan.hsu
- * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
- * add roaming fsm
- * 1. not support 11r, only use strength of signal to determine roaming.
- * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
- * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
- * 4. assume that change of link quality in smooth way.
- *
- */
- #ifndef _ROAMING_FSM_H
- #define _ROAMING_FSM_H
- /*******************************************************************************
- * C O M P I L E R F L A G S
- ********************************************************************************
- */
- /*******************************************************************************
- * E X T E R N A L R E F E R E N C E S
- ********************************************************************************
- */
- /*******************************************************************************
- * C O N S T A N T S
- ********************************************************************************
- */
- /* Roaming Discovery interval, SCAN result need to be updated */
- #define ROAMING_DISCOVERY_TIMEOUT_SEC 5 /* Seconds. */
- /* #define ROAMING_NO_SWING_RCPI_STEP 5 //rcpi */
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- typedef enum _ENUM_ROAMING_FAIL_REASON_T {
- ROAMING_FAIL_REASON_CONNLIMIT = 0,
- ROAMING_FAIL_REASON_NOCANDIDATE,
- ROAMING_FAIL_REASON_NUM
- } ENUM_ROAMING_FAIL_REASON_T;
- /* events of roaming between driver and firmware */
- typedef enum _ENUM_ROAMING_EVENT_T {
- ROAMING_EVENT_START = 0,
- ROAMING_EVENT_DISCOVERY,
- ROAMING_EVENT_ROAM,
- ROAMING_EVENT_FAIL,
- ROAMING_EVENT_ABORT,
- ROAMING_EVENT_NUM
- } ENUM_ROAMING_EVENT_T;
- #define ROAMING_EVENT_REASON_TX_ERR BIT(0)
- #define ROAMING_EVENT_REASON_RCPI BIT(1)
- typedef struct _ROAMING_PARAM_T {
- UINT_16 u2Event;
- UINT_16 u2Data;
- UINT_16 u2Reason;
- } ROAMING_PARAM_T, *P_ROAMING_PARAM_T;
- /**/ typedef enum _ENUM_ROAMING_STATE_T {
- ROAMING_STATE_IDLE = 0,
- ROAMING_STATE_DECISION,
- ROAMING_STATE_DISCOVERY,
- ROAMING_STATE_ROAM,
- ROAMING_STATE_NUM
- } ENUM_ROAMING_STATE_T;
- typedef struct _ROAMING_INFO_T {
- BOOLEAN fgIsEnableRoaming;
- ENUM_ROAMING_STATE_T eCurrentState;
- OS_SYSTIME rRoamingDiscoveryUpdateTime;
- #define ROAMING_ENTRY_TIMEOUT_SKIP_COUNT_MAX 2
- UINT_32 RoamingEntryTimeoutSkipCount;
- } ROAMING_INFO_T, *P_ROAMING_INFO_T;
- /*******************************************************************************
- * P U B L I C D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * P R I V A T E D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * M A C R O S
- ********************************************************************************
- */
- #if CFG_SUPPORT_ROAMING
- #define IS_ROAMING_ACTIVE(prAdapter) \
- (prAdapter->rWifiVar.rRoamingInfo.eCurrentState == ROAMING_STATE_ROAM)
- #else
- #define IS_ROAMING_ACTIVE(prAdapter) FALSE
- #endif /* CFG_SUPPORT_ROAMING */
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- VOID roamingFsmInit(IN P_ADAPTER_T prAdapter);
- VOID roamingFsmUninit(IN P_ADAPTER_T prAdapter);
- VOID roamingFsmSendCmd(IN P_ADAPTER_T prAdapter, IN P_ROAMING_PARAM_T prParam);
- VOID roamingFsmScanResultsUpdate(IN P_ADAPTER_T prAdapter);
- VOID roamingFsmSteps(IN P_ADAPTER_T prAdapter, IN ENUM_ROAMING_STATE_T eNextState);
- VOID roamingFsmRunEventStart(IN P_ADAPTER_T prAdapter);
- VOID roamingFsmRunEventDiscovery(IN P_ADAPTER_T prAdapter, IN P_ROAMING_PARAM_T prParam);
- VOID roamingFsmRunEventRoam(IN P_ADAPTER_T prAdapter);
- VOID roamingFsmRunEventFail(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Reason);
- VOID roamingFsmRunEventAbort(IN P_ADAPTER_T prAdapter);
- WLAN_STATUS roamingFsmProcessEvent(IN P_ADAPTER_T prAdapter, IN P_ROAMING_PARAM_T prParam);
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #endif /* _ROAMING_FSM_H */
|