| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- /*
- ** 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
- **
- ** 09 03 2013 tsaiyuan.hsu
- ** [BORA00002775] MT6630 unified MAC ROAMING
- ** 1. modify roaming fsm.
- ** 2. add roaming control.
- **
- ** 09 17 2012 cm.chang
- ** [BORA00002149] [MT6630 Wi-Fi] Initial software development
- ** Duplicate source from MT6620 v2.3 driver branch
- ** (Davinci label: MT6620_WIFI_Driver_V2_3_120913_1942_As_MT6630_Base)
- *
- * 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;
- typedef struct _CMD_ROAMING_TRANSIT_T {
- UINT_16 u2Event;
- UINT_16 u2Data;
- } CMD_ROAMING_TRANSIT_T, *P_CMD_ROAMING_TRANSIT_T;
- typedef struct _CMD_ROAMING_CTRL_T {
- UINT_8 fgEnable;
- UINT_8 ucRcpiAdjustStep;
- UINT_16 u2RcpiLowThr;
- UINT_8 ucRoamingRetryLimit;
- UINT_8 ucRoamingStableTimeout;
- } CMD_ROAMING_CTRL_T, *P_CMD_ROAMING_CTRL_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;
- } 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_CMD_ROAMING_TRANSIT_T prTransit);
- 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 UINT_32 u4Param);
- 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_CMD_ROAMING_TRANSIT_T prTransit);
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #endif /* _ROAMING_FSM_H */
|