bow_fsm.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /*
  2. ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/bow_fsm.h#1
  3. */
  4. /*! \file bow_fsm.h
  5. \brief Declaration of functions and finite state machine for BOW Module.
  6. Declaration of functions and finite state machine for BOW Module.
  7. */
  8. /*
  9. ** Log: bow_fsm.h
  10. **
  11. ** 09 17 2012 cm.chang
  12. ** [BORA00002149] [MT6630 Wi-Fi] Initial software development
  13. ** Duplicate source from MT6620 v2.3 driver branch
  14. ** (Davinci label: MT6620_WIFI_Driver_V2_3_120913_1942_As_MT6630_Base)
  15. *
  16. * 05 22 2011 terry.wu
  17. * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
  18. * Submit missing BoW header files.
  19. *
  20. * 03 27 2011 chinghwa.yu
  21. * [WCXRP00000065] Update BoW design and settings
  22. * Support multiple physical link.
  23. *
  24. * 02 16 2011 chinghwa.yu
  25. * [WCXRP00000065] Update BoW design and settings
  26. * Add bowNotifyAllLinkDisconnected interface and change channel grant procedure for bow starting..
  27. *
  28. * 02 15 2011 chinghwa.yu
  29. * [WCXRP00000065] Update BoW design and settings
  30. * Add channel previledge into _BOW_FSM_INFO_T.
  31. *
  32. * 09 16 2010 chinghwa.yu
  33. * NULL
  34. * update bowChangeMediaState.
  35. *
  36. * 08 24 2010 chinghwa.yu
  37. * NULL
  38. * Update BOW for the 1st time.
  39. */
  40. #ifndef _BOW_FSM_H
  41. #define _BOW_FSM_H
  42. /*******************************************************************************
  43. * C O M P I L E R F L A G S
  44. ********************************************************************************
  45. */
  46. /*******************************************************************************
  47. * E X T E R N A L R E F E R E N C E S
  48. ********************************************************************************
  49. */
  50. /*******************************************************************************
  51. * C O N S T A N T S
  52. ********************************************************************************
  53. */
  54. #define BOW_BG_SCAN_INTERVAL_MIN_SEC 2 /* 30 // exponential to 960 */
  55. #define BOW_BG_SCAN_INTERVAL_MAX_SEC 2 /* 960 // 16min */
  56. #define BOW_DELAY_TIME_OF_DISCONNECT_SEC 10
  57. #define BOW_BEACON_TIMEOUT_COUNT_STARTING 10
  58. #define BOW_BEACON_TIMEOUT_GUARD_TIME_SEC 1 /* Second */
  59. #define BOW_BEACON_MAX_TIMEOUT_TU 100
  60. #define BOW_BEACON_MIN_TIMEOUT_TU 5
  61. #define BOW_BEACON_MAX_TIMEOUT_VALID TRUE
  62. #define BOW_BEACON_MIN_TIMEOUT_VALID TRUE
  63. #define BOW_BMC_MAX_TIMEOUT_TU 100
  64. #define BOW_BMC_MIN_TIMEOUT_TU 5
  65. #define BOW_BMC_MAX_TIMEOUT_VALID TRUE
  66. #define BOW_BMC_MIN_TIMEOUT_VALID TRUE
  67. #define BOW_JOIN_CH_GRANT_THRESHOLD 10
  68. #define BOW_JOIN_CH_REQUEST_INTERVAL 2000
  69. /*******************************************************************************
  70. * D A T A T Y P E S
  71. ********************************************************************************
  72. */
  73. typedef enum _ENUM_BOW_STATE_T {
  74. BOW_STATE_IDLE = 0,
  75. BOW_STATE_SEARCH,
  76. BOW_STATE_SCAN,
  77. BOW_STATE_ONLINE_SCAN,
  78. BOW_STATE_LOOKING_FOR,
  79. BOW_STATE_WAIT_FOR_NEXT_SCAN,
  80. BOW_STATE_REQ_CHANNEL_JOIN,
  81. BOW_STATE_REQ_CHANNEL_ALONE,
  82. BOW_STATE_REQ_CHANNEL_MERGE,
  83. BOW_STATE_JOIN,
  84. BOW_STATE_IBSS_ALONE,
  85. BOW_STATE_IBSS_MERGE,
  86. BOW_STATE_NORMAL_TR,
  87. BOW_STATE_NUM
  88. } ENUM_BOW_STATE_T;
  89. typedef struct _BOW_FSM_INFO_T {
  90. /* Channel Privilege */
  91. BOOLEAN fgIsChannelRequested;
  92. BOOLEAN fgIsChannelGranted;
  93. UINT_32 u4ChGrantedInterval;
  94. UINT_8 ucPrimaryChannel;
  95. ENUM_BAND_T eBand;
  96. UINT_16 u2BeaconInterval;
  97. P_STA_RECORD_T prTargetStaRec;
  98. P_BSS_DESC_T prTargetBssDesc; /* For destination */
  99. UINT_8 aucPeerAddress[6];
  100. UINT_8 ucBssIndex; /* Assume there is only 1 BSS for BOW */
  101. UINT_8 ucRole; /* Initiator or responder */
  102. UINT_8 ucAvailableAuthTypes; /* Used for AUTH_MODE_AUTO_SWITCH */
  103. BOOLEAN fgSupportQoS;
  104. /* Sequence number of requested message. */
  105. UINT_8 ucSeqNumOfChReq;
  106. UINT_8 ucSeqNumOfReqMsg;
  107. UINT_8 ucSeqNumOfScnMsg;
  108. UINT_8 ucSeqNumOfScanReq;
  109. UINT_8 ucSeqNumOfCancelMsg;
  110. /* Timer */
  111. TIMER_T rStartingBeaconTimer; /* For device discovery time of each discovery request from user. */
  112. TIMER_T rChGrantedTimer;
  113. /* can be deleted? */
  114. TIMER_T rIndicationOfDisconnectTimer;
  115. } BOW_FSM_INFO_T, *P_BOW_FSM_INFO_T;
  116. /*******************************************************************************
  117. * P U B L I C D A T A
  118. ********************************************************************************
  119. */
  120. /*******************************************************************************
  121. * P R I V A T E D A T A
  122. ********************************************************************************
  123. */
  124. /*******************************************************************************
  125. * M A C R O S
  126. ********************************************************************************
  127. */
  128. #define bowChangeMediaState(_prBssInfo, _eNewMediaState) \
  129. (_prBssInfo->eConnectionState = (_eNewMediaState))
  130. /* (_prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_BOW_INDEX].eConnectionState = (_eNewMediaState)); */
  131. /*******************************************************************************
  132. * F U N C T I O N D E C L A R A T I O N S
  133. ********************************************************************************
  134. */
  135. /*******************************************************************************
  136. * F U N C T I O N S
  137. ********************************************************************************
  138. */
  139. #endif