| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- /*
- ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/bow_fsm.h#1
- */
- /*! \file bow_fsm.h
- \brief Declaration of functions and finite state machine for BOW Module.
- Declaration of functions and finite state machine for BOW Module.
- */
- /*
- ** Log: bow_fsm.h
- *
- * 05 22 2011 terry.wu
- * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
- * Submit missing BoW header files.
- *
- * 03 27 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Support multiple physical link.
- *
- * 02 16 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Add bowNotifyAllLinkDisconnected interface and change channel grant procedure for bow starting..
- *
- * 02 15 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Add channel previledge into _BOW_FSM_INFO_T.
- *
- * 09 16 2010 chinghwa.yu
- * NULL
- * update bowChangeMediaState.
- *
- * 08 24 2010 chinghwa.yu
- * NULL
- * Update BOW for the 1st time.
- */
- #ifndef _BOW_FSM_H
- #define _BOW_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 BOW_BG_SCAN_INTERVAL_MIN_SEC 2 /* 30 // exponential to 960 */
- #define BOW_BG_SCAN_INTERVAL_MAX_SEC 2 /* 960 // 16min */
- #define BOW_DELAY_TIME_OF_DISCONNECT_SEC 10
- #define BOW_BEACON_TIMEOUT_COUNT_STARTING 10
- #define BOW_BEACON_TIMEOUT_GUARD_TIME_SEC 1 /* Second */
- #define BOW_BEACON_MAX_TIMEOUT_TU 100
- #define BOW_BEACON_MIN_TIMEOUT_TU 5
- #define BOW_BEACON_MAX_TIMEOUT_VALID TRUE
- #define BOW_BEACON_MIN_TIMEOUT_VALID TRUE
- #define BOW_BMC_MAX_TIMEOUT_TU 100
- #define BOW_BMC_MIN_TIMEOUT_TU 5
- #define BOW_BMC_MAX_TIMEOUT_VALID TRUE
- #define BOW_BMC_MIN_TIMEOUT_VALID TRUE
- #define BOW_JOIN_CH_GRANT_THRESHOLD 10
- #define BOW_JOIN_CH_REQUEST_INTERVAL 2000
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- typedef enum _ENUM_BOW_STATE_T {
- BOW_STATE_IDLE = 0,
- BOW_STATE_SEARCH,
- BOW_STATE_SCAN,
- BOW_STATE_ONLINE_SCAN,
- BOW_STATE_LOOKING_FOR,
- BOW_STATE_WAIT_FOR_NEXT_SCAN,
- BOW_STATE_REQ_CHANNEL_JOIN,
- BOW_STATE_REQ_CHANNEL_ALONE,
- BOW_STATE_REQ_CHANNEL_MERGE,
- BOW_STATE_JOIN,
- BOW_STATE_IBSS_ALONE,
- BOW_STATE_IBSS_MERGE,
- BOW_STATE_NORMAL_TR,
- BOW_STATE_NUM
- } ENUM_BOW_STATE_T;
- typedef struct _BOW_FSM_INFO_T {
- ENUM_BOW_STATE_T ePreviousState;
- ENUM_BOW_STATE_T eCurrentState;
- BOOLEAN fgTryScan;
- /* Channel Privilege */
- BOOLEAN fgIsInfraChannelFinished;
- BOOLEAN fgIsChannelRequested;
- BOOLEAN fgIsChannelGranted;
- BOOLEAN fgIsScanPending;
- UINT_32 u4ChGrantedInterval;
- UINT_8 ucPrimaryChannel;
- ENUM_BAND_T eBand;
- UINT_16 u2BeaconInterval;
- ENUM_BOW_STATE_T eReturnState; /* Return state after current activity finished or abort. */
- ENUM_BOW_STATE_T eForwardState; /* Step to next state if ACTION frame is TX successfully. */
- P_BSS_DESC_T prTargetBss; /* BSS of target P2P Device. For Connection/Service Discovery */
- P_STA_RECORD_T prTargetStaRec;
- P_BSS_DESC_T prTargetBssDesc; /* For destination */
- UINT_8 aucPeerAddress[6];
- UINT_8 ucRole;
- BOOLEAN fgSupportQoS;
- BOOLEAN fgIsRsponseProbe; /* Indicate if BOW can response probe request frame. */
- /* Sequence number of requested message. */
- UINT_8 ucSeqNumOfChReq;
- UINT_8 ucSeqNumOfReqMsg;
- UINT_8 ucSeqNumOfScnMsg;
- UINT_8 ucSeqNumOfScanReq;
- UINT_8 ucSeqNumOfCancelMsg;
- UINT_8 ucDialogToken;
- /* Timer */
- TIMER_T rStartingBeaconTimer; /* For device discovery time of each discovery request from user. */
- TIMER_T rStartingDiscoveryTimer;
- TIMER_T rOperationListenTimer; /* For Find phase under operational state. */
- TIMER_T rFSMTimer; /* A timer used for Action frame timeout usage. */
- TIMER_T rIndicationOfDisconnectTimer;
- TIMER_T rChGrantedTimer;
- UINT_8 ucAvailableAuthTypes; /* Used for AUTH_MODE_AUTO_SWITCH */
- } BOW_FSM_INFO_T, *P_BOW_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 bowChangeMediaState(_prAdapter, _eNewMediaState) \
- (_prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_BOW_INDEX].eConnectionState = (_eNewMediaState))
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #endif
|