| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580 |
- /*
- ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/ais_fsm.h#1
- */
- /*! \file ais_fsm.h
- \brief Declaration of functions and finite state machine for AIS Module.
- Declaration of functions and finite state machine for AIS Module.
- */
- /*
- ** Log: ais_fsm.h
- *
- * 11 22 2011 cp.wu
- * [WCXRP00001120] [MT6620 Wi-Fi][Driver] Modify roaming to AIS state transition
- * from synchronous to asynchronous approach to avoid incomplete state termination
- * 1. change RDD related compile option brace position.
- * 2. when roaming is triggered, ask AIS to transit immediately only when AIS
- * is in Normal TR state without join timeout timer ticking
- * 3. otherwise, insert AIS_REQUEST into pending request queue
- *
- * 04 25 2011 cp.wu
- * [WCXRP00000676] [MT6620 Wi-Fi][Driver] AIS to reduce request channel period from 5 seconds to 2 seconds
- * channel interval for joining is shortened to 2 seconds to avoid interruption of concurrent operating network.
- *
- * 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.
- *
- * 02 22 2011 cp.wu
- * [WCXRP00000487] [MT6620 Wi-Fi][Driver][AIS] Serve scan and connect request with
- * a queue-based approach to improve response time for scanning request
- * handle SCAN and RECONNECT with a FIFO approach.
- *
- * 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 14 2011 cp.wu
- * [WCXRP00000359] [MT6620 Wi-Fi][Driver] add an extra state to ensure DEAUTH frame is always sent
- * Add an extra state to guarantee DEAUTH frame is sent then connect to new BSS.
- * This change is due to WAPI AP needs DEAUTH frame as a necessary step in handshaking protocol.
- *
- * 11 25 2010 cp.wu
- * [WCXRP00000208] [MT6620 Wi-Fi][Driver] Add scanning with specified SSID to AIS FSM
- * add scanning with specified SSID facility to AIS-FSM
- *
- * 11 01 2010 cp.wu
- * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
- * [WCXRP00000150] [MT6620 Wi-Fi][Driver] Add implementation for querying current TX rate from firmware auto rate module
- * 1) Query link speed (TX rate) from firmware directly with buffering mechanism to reduce overhead
- * 2) Remove CNM CH-RECOVER event handling
- * 3) cfg read/write API renamed with kal prefix for unified naming rules.
- *
- * 09 06 2010 cp.wu
- * NULL
- * 1) initialize for correct parameter even for disassociation.
- * 2) AIS-FSM should have a limit on trials to build connection
- *
- * 09 03 2010 kevin.huang
- * NULL
- * Refine #include sequence and solve recursive/nested #include issue
- *
- * 08 25 2010 cp.wu
- * NULL
- * [AIS-FSM] IBSS no longer needs to acquire channel for beaconing, RLM/CNM will handle
- * the channel switching when BSS information is updated
- *
- * 08 12 2010 kevin.huang
- * NULL
- * Refine bssProcessProbeRequest() and bssSendBeaconProbeResponse()
- *
- * 08 12 2010 cp.wu
- * NULL
- * [AIS-FSM] honor registry setting for adhoc running mode. (A/B/G)
- *
- * 08 03 2010 cp.wu
- * NULL
- * surpress compilation warning.
- *
- * 07 30 2010 cp.wu
- * NULL
- * 1) BoW wrapper: use definitions instead of hard-coded constant for error code
- * 2) AIS-FSM: eliminate use of desired RF parameters, use prTargetBssDesc instead
- * 3) add handling for RX_PKT_DESTINATION_HOST_WITH_FORWARD for GO-broadcast frames
- *
- * 07 26 2010 cp.wu
- *
- * AIS-FSM: when scan request is coming in the 1st 5 seconds of channel privilege period,
- * just pend it til 5-sec. period finishes
- *
- * 07 26 2010 cp.wu
- *
- * AIS-FSM FIX: return channel privilege even when the privilege is not granted yet
- * QM: qmGetFrameAction() won't assert when corresponding STA-REC index is not found
- *
- * 07 23 2010 cp.wu
- *
- * add AIS-FSM handling for beacon timeout event.
- *
- * 07 21 2010 cp.wu
- *
- * separate AIS-FSM states into different cases of channel request.
- *
- * 07 21 2010 cp.wu
- *
- * 1) change BG_SCAN to ONLINE_SCAN for consistent term
- * 2) only clear scanning result when scan is permitted to do
- *
- * 07 19 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration.
- * Add Ad-Hoc support to AIS-FSM
- *
- * 07 14 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration.
- * Refine AIS-FSM by divided into more states
- *
- * 07 09 2010 cp.wu
- *
- * 1) separate AIS_FSM state for two kinds of scanning. (OID triggered scan, and scan-for-connection)
- * 2) eliminate PRE_BSS_DESC_T, Beacon/PrebResp is now parsed in single pass
- * 3) implment DRV-SCN module, currently only accepts single scan request,
- * other request will be directly dropped by returning BUSY
- *
- * 07 08 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
- *
- * 07 01 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * AIS-FSM integration with CNM channel request messages
- *
- * 07 01 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * implementation of DRV-SCN and related mailbox message handling.
- *
- * 06 10 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * add buildable & linkable ais_fsm.c
- *
- * related reference are still waiting to be resolved
- *
- * 06 09 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * add definitions for module migration.
- *
- * 06 07 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
- *
- * 05 12 2010 kevin.huang
- * [BORA00000794][WIFISYS][New Feature]Power Management Support
- * Add Power Management - Legacy PS-POLL support.
- *
- * 04 23 2010 wh.su
- * [BORA00000605][WIFISYS] Phase3 Integration
- * reduce the background ssid idle time min and max value
- *
- * 04 19 2010 kevin.huang
- * [BORA00000714][WIFISYS][New Feature]Beacon Timeout Support
- * Add Beacon Timeout Support
- * * and will send Null frame to diagnose connection
- *
- * 03 16 2010 kevin.huang
- * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
- * Add AdHoc Mode
- *
- * 03 10 2010 kevin.huang
- * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support
- *
- * * Add Channel Manager for arbitration of JOIN and SCAN Req
- *
- * 02 26 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Remove CFG_TEST_VIRTUAL_CMD and add support of Driver STA_RECORD_T activation
- *
- * 02 23 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Support dynamic channel selection
- *
- * 02 04 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
- *
- * 01 11 2010 kevin.huang
- * [BORA00000018]Integrate WIFI part into BORA for the 1st time
- * Add Deauth and Disassoc Handler
- *
- * 01 07 2010 kevin.huang
- * [BORA00000018]Integrate WIFI part into BORA for the 1st time
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * Add Media disconnect indication and related postpone functions
- *
- * Dec 3 2009 mtk01461
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * Add aisFsmRunEventJoinComplete()
- *
- * Nov 25 2009 mtk01461
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * Add Virtual CMD & RESP for testing CMD PATH
- *
- * Nov 23 2009 mtk01461
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * add aisFsmInitializeConnectionSettings()
- *
- * Nov 20 2009 mtk01461
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * Add CFG_TEST_MGMT_FSM for aisFsmTest()
- *
- * Nov 18 2009 mtk01104
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- * Add function prototype of aisFsmInit()
- *
- * Nov 16 2009 mtk01461
- * [BORA00000018] Integrate WIFI part into BORA for the 1st time
- *
- */
- #ifndef _AIS_FSM_H
- #define _AIS_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
- ********************************************************************************
- */
- #define AIS_BG_SCAN_INTERVAL_MIN_SEC 2 /* 30 // exponential to 960 */
- #define AIS_BG_SCAN_INTERVAL_MAX_SEC 2 /* 960 // 16min */
- #define AIS_DELAY_TIME_OF_DISC_SEC_ONLY_2G4 2 /* 2.4G scan need about 0.5s, so delay 2s to reconnect is enough */
- #define AIS_DELAY_TIME_OF_DISC_SEC_DUALBAND 5 /* 2.4G scan need about 3.3s, so delay 5s to reconnect is enough */
- #define AIS_IBSS_ALONE_TIMEOUT_SEC 20 /* seconds */
- #define AIS_BEACON_TIMEOUT_COUNT_ADHOC 30
- #define AIS_BEACON_TIMEOUT_COUNT_INFRA 10
- #define AIS_BEACON_TIMEOUT_GUARD_TIME_SEC 1 /* Second */
- #define AIS_BEACON_MAX_TIMEOUT_TU 100
- #define AIS_BEACON_MIN_TIMEOUT_TU 5
- #define AIS_BEACON_MAX_TIMEOUT_VALID TRUE
- #define AIS_BEACON_MIN_TIMEOUT_VALID TRUE
- #define AIS_BMC_MAX_TIMEOUT_TU 100
- #define AIS_BMC_MIN_TIMEOUT_TU 5
- #define AIS_BMC_MAX_TIMEOUT_VALID TRUE
- #define AIS_BMC_MIN_TIMEOUT_VALID TRUE
- #define AIS_JOIN_CH_GRANT_THRESHOLD 10
- #define AIS_JOIN_CH_REQUEST_INTERVAL 3000
- #define AIS_SCN_DONE_TIMEOUT_SEC 30 /* 15 for 2.4G + 5G */ /* 5 */
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- typedef enum _ENUM_AIS_STATE_T {
- AIS_STATE_IDLE = 0,
- AIS_STATE_SEARCH,
- AIS_STATE_SCAN,
- AIS_STATE_ONLINE_SCAN,
- AIS_STATE_LOOKING_FOR,
- AIS_STATE_WAIT_FOR_NEXT_SCAN,
- AIS_STATE_REQ_CHANNEL_JOIN,
- AIS_STATE_JOIN,
- AIS_STATE_IBSS_ALONE,
- AIS_STATE_IBSS_MERGE,
- AIS_STATE_NORMAL_TR,
- AIS_STATE_DISCONNECTING,
- AIS_STATE_REQ_REMAIN_ON_CHANNEL,
- AIS_STATE_REMAIN_ON_CHANNEL,
- AIS_STATE_NUM
- } ENUM_AIS_STATE_T;
- /* reconnect level for determining if we should reconnect */
- typedef enum _ENUM_RECONNECT_LEVEL_T {
- RECONNECT_LEVEL_MIN = 0,
- RECONNECT_LEVEL_ROAMING_FAIL, /* roaming failed */
- RECONNECT_LEVEL_BEACON_TIMEOUT, /* driver beacon timeout */
- RECONNECT_LEVEL_USER_SET, /* user set connect or disassociate */
- RECONNECT_LEVEL_MAX
- } ENUM_RECONNECT_LEVEL_T;
- typedef struct _MSG_AIS_ABORT_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_8 ucReasonOfDisconnect;
- BOOLEAN fgDelayIndication;
- } MSG_AIS_ABORT_T, *P_MSG_AIS_ABORT_T;
- typedef struct _MSG_AIS_IBSS_PEER_FOUND_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_8 ucNetTypeIndex;
- BOOLEAN fgIsMergeIn; /* TRUE: Merge In, FALSE: Merge Out */
- P_STA_RECORD_T prStaRec;
- } MSG_AIS_IBSS_PEER_FOUND_T, *P_MSG_AIS_IBSS_PEER_FOUND_T;
- typedef enum _ENUM_AIS_REQUEST_TYPE_T {
- AIS_REQUEST_SCAN,
- AIS_REQUEST_RECONNECT,
- AIS_REQUEST_ROAMING_SEARCH,
- AIS_REQUEST_ROAMING_CONNECT,
- AIS_REQUEST_REMAIN_ON_CHANNEL,
- AIS_REQUEST_NUM
- } ENUM_AIS_REQUEST_TYPE_T;
- typedef struct _AIS_REQ_HDR_T {
- LINK_ENTRY_T rLinkEntry;
- ENUM_AIS_REQUEST_TYPE_T eReqType;
- } AIS_REQ_HDR_T, *P_AIS_REQ_HDR_T;
- typedef struct _AIS_REQ_CHNL_INFO {
- ENUM_BAND_T eBand;
- ENUM_CHNL_EXT_T eSco;
- UINT_8 ucChannelNum;
- UINT_32 u4DurationMs;
- UINT_64 u8Cookie;
- } AIS_REQ_CHNL_INFO, *P_AIS_REQ_CHNL_INFO;
- typedef struct _AIS_MGMT_TX_REQ_INFO_T {
- BOOLEAN fgIsMgmtTxRequested;
- P_MSDU_INFO_T prMgmtTxMsdu;
- UINT_64 u8Cookie;
- } AIS_MGMT_TX_REQ_INFO_T, *P_AIS_MGMT_TX_REQ_INFO_T;
- typedef struct _AIS_FSM_INFO_T {
- ENUM_AIS_STATE_T ePreviousState;
- ENUM_AIS_STATE_T eCurrentState;
- BOOLEAN fgTryScan;
- BOOLEAN fgIsInfraChannelFinished;
- BOOLEAN fgIsChannelRequested;
- BOOLEAN fgIsChannelGranted;
- #if CFG_SUPPORT_ROAMING
- BOOLEAN fgIsRoamingScanPending;
- #endif /* CFG_SUPPORT_ROAMING */
- UINT_8 ucAvailableAuthTypes; /* Used for AUTH_MODE_AUTO_SWITCH */
- P_BSS_DESC_T prTargetBssDesc; /* For destination */
- P_STA_RECORD_T prTargetStaRec; /* For JOIN Abort */
- UINT_32 u4SleepInterval;
- TIMER_T rBGScanTimer;
- TIMER_T rIbssAloneTimer;
- UINT_32 u4PostponeIndStartTime;
- TIMER_T rJoinTimeoutTimer;
- TIMER_T rChannelTimeoutTimer;
- TIMER_T rScanDoneTimer;
- TIMER_T rDeauthDoneTimer;
- UINT_8 ucSeqNumOfReqMsg;
- UINT_8 ucSeqNumOfChReq;
- UINT_8 ucSeqNumOfScanReq;
- UINT_32 u4ChGrantedInterval;
- UINT_8 ucConnTrialCount;
- UINT_8 ucScanSSIDLen;
- UINT_8 aucScanSSID[ELEM_MAX_LEN_SSID];
- UINT_32 u4ScanIELength;
- UINT_8 aucScanIEBuf[MAX_IE_LENGTH];
- /* Pending Request List */
- LINK_T rPendingReqList;
- /* Join Request Timestamp */
- OS_SYSTIME rJoinReqTime;
- /* for cfg80211 REMAIN_ON_CHANNEL support */
- AIS_REQ_CHNL_INFO rChReqInfo;
- /* Mgmt tx related. */
- AIS_MGMT_TX_REQ_INFO_T rMgmtTxInfo;
- /* Packet filter for AIS module. */
- UINT_32 u4AisPacketFilter;
- } AIS_FSM_INFO_T, *P_AIS_FSM_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
- ********************************************************************************
- */
- #define aisChangeMediaState(_prAdapter, _eNewMediaState) \
- (_prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_AIS_INDEX].eConnectionState = (_eNewMediaState))
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- VOID aisInitializeConnectionSettings(IN P_ADAPTER_T prAdapter, IN P_REG_INFO_T prRegInfo);
- VOID aisFsmInit(IN P_ADAPTER_T prAdapter);
- VOID aisFsmUninit(IN P_ADAPTER_T prAdapter);
- VOID aisFsmStateInit_JOIN(IN P_ADAPTER_T prAdapter, P_BSS_DESC_T prBssDesc);
- BOOLEAN aisFsmStateInit_RetryJOIN(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- VOID aisFsmStateInit_IBSS_ALONE(IN P_ADAPTER_T prAdapter);
- VOID aisFsmStateInit_IBSS_MERGE(IN P_ADAPTER_T prAdapter, P_BSS_DESC_T prBssDesc);
- VOID aisFsmStateAbort(IN P_ADAPTER_T prAdapter, UINT_8 ucReasonOfDisconnect, BOOLEAN fgDelayIndication);
- VOID aisFsmStateAbort_JOIN(IN P_ADAPTER_T prAdapter);
- VOID aisFsmStateAbort_SCAN(IN P_ADAPTER_T prAdapter);
- VOID aisFsmStateAbort_NORMAL_TR(IN P_ADAPTER_T prAdapter);
- VOID aisFsmStateAbort_IBSS(IN P_ADAPTER_T prAdapter);
- VOID aisFsmSteps(IN P_ADAPTER_T prAdapter, ENUM_AIS_STATE_T eNextState);
- /*----------------------------------------------------------------------------*/
- /* Mailbox Message Handling */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmRunEventScanDone(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFsmRunEventAbort(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFsmRunEventJoinComplete(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFsmRunEventFoundIBSSPeer(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFsmRunEventRemainOnChannel(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFsmRunEventCancelRemainOnChannel(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- /*----------------------------------------------------------------------------*/
- /* Handling for Ad-Hoc Network */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmCreateIBSS(IN P_ADAPTER_T prAdapter);
- VOID aisFsmMergeIBSS(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- /*----------------------------------------------------------------------------*/
- /* Handling of Incoming Mailbox Message from CNM */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmRunEventChGrant(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- /*----------------------------------------------------------------------------*/
- /* Generating Outgoing Mailbox Message to CNM */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmReleaseCh(IN P_ADAPTER_T prAdapter);
- /*----------------------------------------------------------------------------*/
- /* Event Indication */
- /*----------------------------------------------------------------------------*/
- VOID
- aisIndicationOfMediaStateToHost(IN P_ADAPTER_T prAdapter,
- ENUM_PARAM_MEDIA_STATE_T eConnectionState, BOOLEAN fgDelayIndication);
- VOID aisPostponedEventOfDisconnTimeout(IN P_ADAPTER_T prAdapter, P_AIS_FSM_INFO_T prAisFsmInfo);
- VOID aisUpdateBssInfoForJOIN(IN P_ADAPTER_T prAdapter, P_STA_RECORD_T prStaRec, P_SW_RFB_T prAssocRspSwRfb);
- VOID aisUpdateBssInfoForCreateIBSS(IN P_ADAPTER_T prAdapter);
- VOID aisUpdateBssInfoForMergeIBSS(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- BOOLEAN aisValidateProbeReq(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb, OUT PUINT_32 pu4ControlFlags);
- WLAN_STATUS
- aisFsmRunEventMgmtFrameTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- /*----------------------------------------------------------------------------*/
- /* Disconnection Handling */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmDisconnect(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgDelayIndication);
- /*----------------------------------------------------------------------------*/
- /* Event Handling */
- /*----------------------------------------------------------------------------*/
- VOID aisBssBeaconTimeout(IN P_ADAPTER_T prAdapter);
- VOID aisBssSecurityChanged(IN P_ADAPTER_T prAdapter);
- WLAN_STATUS
- aisDeauthXmitComplete(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- #if CFG_SUPPORT_ROAMING
- VOID aisFsmRunEventRoamingDiscovery(IN P_ADAPTER_T prAdapter, UINT_32 u4ReqScan);
- ENUM_AIS_STATE_T aisFsmRoamingScanResultsUpdate(IN P_ADAPTER_T prAdapter);
- VOID aisFsmRoamingDisconnectPrevAP(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prTargetStaRec);
- VOID aisUpdateBssInfoForRoamingAP(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prAssocRspSwRfb);
- #endif /*CFG_SUPPORT_ROAMING */
- /*----------------------------------------------------------------------------*/
- /* Timeout Handling */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmRunEventBGSleepTimeOut(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID aisFsmRunEventIbssAloneTimeOut(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID aisFsmRunEventJoinTimeout(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID aisFsmRunEventChannelTimeout(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID aisFsmRunEventScanDoneTimeOut(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID aisFsmRunEventDeauthTimeout(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- /*----------------------------------------------------------------------------*/
- /* OID/IOCTL Handling */
- /*----------------------------------------------------------------------------*/
- VOID aisFsmScanRequest(IN P_ADAPTER_T prAdapter, IN P_PARAM_SSID_T prSsid, IN PUINT_8 pucIe, IN UINT_32 u4IeLength);
- /*----------------------------------------------------------------------------*/
- /* Internal State Checking */
- /*----------------------------------------------------------------------------*/
- BOOLEAN aisFsmIsRequestPending(IN P_ADAPTER_T prAdapter, IN ENUM_AIS_REQUEST_TYPE_T eReqType, IN BOOLEAN bRemove);
- P_AIS_REQ_HDR_T aisFsmGetNextRequest(IN P_ADAPTER_T prAdapter);
- BOOLEAN aisFsmInsertRequest(IN P_ADAPTER_T prAdapter, IN ENUM_AIS_REQUEST_TYPE_T eReqType);
- VOID aisFsmFlushRequest(IN P_ADAPTER_T prAdapter);
- WLAN_STATUS
- aisFuncTxMgmtFrame(IN P_ADAPTER_T prAdapter,
- IN P_AIS_MGMT_TX_REQ_INFO_T prMgmtTxReqInfo, IN P_MSDU_INFO_T prMgmtTxMsdu, IN UINT_64 u8Cookie);
- VOID aisFsmRunEventMgmtFrameTx(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID aisFuncValidateRxActionFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- #if defined(CFG_TEST_MGMT_FSM) && (CFG_TEST_MGMT_FSM != 0)
- VOID aisTest(VOID);
- #endif /* CFG_TEST_MGMT_FSM */
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #endif /* _AIS_FSM_H */
|