5 /*! \file "roaming_fsm.h"
6 \brief This file defines the FSM for Roaming MODULE.
8 This file defines the FSM for Roaming MODULE.
14 ** $Log: roaming_fsm.h $
16 * 08 31 2011 tsaiyuan.hsu
17 * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver
18 * remove obsolete code.
20 * 08 15 2011 tsaiyuan.hsu
21 * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver
22 * add swcr in driver reg, 0x9fxx0000, to disable roaming .
24 * 03 16 2011 tsaiyuan.hsu
25 * [WCXRP00000517] [MT6620 Wi-Fi][Driver][FW] Fine Tune Performance of Roaming
26 * remove obsolete definition and unused variables.
28 * 02 26 2011 tsaiyuan.hsu
29 * [WCXRP00000391] [MT6620 Wi-Fi][FW] Add Roaming Support
30 * not send disassoc or deauth to leaving AP so as to improve performace of roaming.
32 * 01 27 2011 tsaiyuan.hsu
33 * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
35 * 1. not support 11r, only use strength of signal to determine roaming.
36 * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
37 * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
38 * 4. assume that change of link quality in smooth way.
40 * 01 27 2011 tsaiyuan.hsu
41 * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
43 * 1. not support 11r, only use strength of signal to determine roaming.
44 * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
45 * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
46 * 4. assume that change of link quality in smooth way.
50 #ifndef _ROAMING_FSM_H
51 #define _ROAMING_FSM_H
53 /*******************************************************************************
54 * C O M P I L E R F L A G S
55 ********************************************************************************
58 /*******************************************************************************
59 * E X T E R N A L R E F E R E N C E S
60 ********************************************************************************
63 /*******************************************************************************
65 ********************************************************************************
67 /* Roaming Discovery interval, SCAN result need to be updated */
68 #define ROAMING_DISCOVERY_TIMEOUT_SEC 5 // Seconds.
70 //#define ROAMING_NO_SWING_RCPI_STEP 5 //rcpi
71 /*******************************************************************************
73 ********************************************************************************
75 typedef enum _ENUM_ROAMING_FAIL_REASON_T {
76 ROAMING_FAIL_REASON_CONNLIMIT = 0,
77 ROAMING_FAIL_REASON_NOCANDIDATE,
78 ROAMING_FAIL_REASON_NUM
79 } ENUM_ROAMING_FAIL_REASON_T;
81 /* events of roaming between driver and firmware */
82 typedef enum _ENUM_ROAMING_EVENT_T {
83 ROAMING_EVENT_START = 0,
84 ROAMING_EVENT_DISCOVERY,
89 } ENUM_ROAMING_EVENT_T;
91 typedef struct _ROAMING_PARAM_T {
94 } ROAMING_PARAM_T, *P_ROAMING_PARAM_T;
97 typedef enum _ENUM_ROAMING_STATE_T {
98 ROAMING_STATE_IDLE = 0,
99 ROAMING_STATE_DECISION,
100 ROAMING_STATE_DISCOVERY,
103 } ENUM_ROAMING_STATE_T;
105 typedef struct _ROAMING_INFO_T {
106 BOOLEAN fgIsEnableRoaming;
108 ENUM_ROAMING_STATE_T eCurrentState;
110 OS_SYSTIME rRoamingDiscoveryUpdateTime;
112 } ROAMING_INFO_T, *P_ROAMING_INFO_T;
114 /*******************************************************************************
115 * P U B L I C D A T A
116 ********************************************************************************
119 /*******************************************************************************
120 * P R I V A T E D A T A
121 ********************************************************************************
124 /*******************************************************************************
126 ********************************************************************************
129 #if CFG_SUPPORT_ROAMING
130 #define IS_ROAMING_ACTIVE(prAdapter) \
131 (prAdapter->rWifiVar.rRoamingInfo.eCurrentState == ROAMING_STATE_ROAM)
133 #define IS_ROAMING_ACTIVE(prAdapter) FALSE
134 #endif /* CFG_SUPPORT_ROAMING */
136 /*******************************************************************************
137 * F U N C T I O N D E C L A R A T I O N S
138 ********************************************************************************
142 IN P_ADAPTER_T prAdapter
147 IN P_ADAPTER_T prAdapter
152 IN P_ADAPTER_T prAdapter,
153 IN P_ROAMING_PARAM_T prParam
157 roamingFsmScanResultsUpdate (
158 IN P_ADAPTER_T prAdapter
163 IN P_ADAPTER_T prAdapter,
164 IN ENUM_ROAMING_STATE_T eNextState
168 roamingFsmRunEventStart (
169 IN P_ADAPTER_T prAdapter
173 roamingFsmRunEventDiscovery (
174 IN P_ADAPTER_T prAdapter,
179 roamingFsmRunEventRoam (
180 IN P_ADAPTER_T prAdapter
184 roamingFsmRunEventFail (
185 IN P_ADAPTER_T prAdapter,
190 roamingFsmRunEventAbort (
191 IN P_ADAPTER_T prAdapter
195 roamingFsmProcessEvent (
196 IN P_ADAPTER_T prAdapter,
197 IN P_ROAMING_PARAM_T prParam
200 /*******************************************************************************
202 ********************************************************************************
205 #endif /* _ROAMING_FSM_H */