| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- /*
- ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/wlan_bow.h#1
- */
- /*! \file "wlan_bow.h"
- \brief This file contains the declairations of 802.11 PAL
- command processing routines for
- MediaTek Inc. 802.11 Wireless LAN Adapters.
- */
- /*
- ** Log: wlan_bow.h
- *
- * 05 25 2011 terry.wu
- * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
- * Add BoW Cancel Scan Request and Turn On deactive network function.
- *
- * 05 23 2011 terry.wu
- * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
- * Add some BoW error handling.
- *
- * 05 21 2011 terry.wu
- * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
- * Protect BoW connection establishment.
- *
- * 05 17 2011 terry.wu
- * [WCXRP00000730] [MT6620 Wi-Fi][BoW] Send deauth while disconnecting
- * Send deauth while disconnecting BoW link.
- *
- * 05 06 2011 terry.wu
- * [WCXRP00000707] [MT6620 Wi-Fi][Driver] Fix BoW Multiple Physical Link connect/disconnect issue
- * Fix BoW Multiple Physical Link connect/disconnect issue.
- *
- * 04 15 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Add BOW short range mode.
- *
- * 03 27 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Support multiple physical link.
- *
- * 03 10 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Add BOW table.
- *
- * 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
- * Update bowString and channel grant.
- *
- * 01 11 2011 chinghwa.yu
- * [WCXRP00000065] Update BoW design and settings
- * Update BOW Activity Report structure and bug fix.
- *
- * 09 27 2010 chinghwa.yu
- * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000065] Update BoW design and settings
- * Update BCM/BoW design and settings.
- *
- * 09 14 2010 chinghwa.yu
- * NULL
- * Add bowRunEventAAAComplete.
- *
- * 08 24 2010 chinghwa.yu
- * NULL
- * Update BOW for the 1st time.
- *
- * 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 15 2010 cp.wu
- *
- * sync. bluetooth-over-Wi-Fi interface to driver interface document v0.2.6.
- *
- * 07 08 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
- *
- * 06 06 2010 kevin.huang
- * [WPD00003832][MT6620 5931] Create driver base
- * [MT6620 5931] Create driver base
- *
- * 05 17 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * 1) add timeout handler mechanism for pending command packets
- * 2) add p2p add/removal key
- *
- * 05 13 2010 cp.wu
- * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
- * 1) all BT physical handles shares the same RSSI/Link Quality.
- * 2) simplify BT command composing
- *
- * 04 28 2010 cp.wu
- * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
- * change prefix for data structure used to communicate with 802.11 PAL
- * to avoid ambiguous naming with firmware interface
- *
- * 04 27 2010 cp.wu
- * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
- * add multiple physical link support
- *
- * 04 13 2010 cp.wu
- * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
- * add framework for BT-over-Wi-Fi support.
- * * * * * * * * * * * * 1) prPendingCmdInfo is replaced by queue for multiple handler capability
- * * * * * * * * * * * * 2) command sequence number is now increased atomically
- * * * * * * * * * * * * 3) private data could be hold and taken use for other purpose
- **
- */
- #ifndef _WLAN_BOW_H
- #define _WLAN_BOW_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
- ********************************************************************************
- */
- #include "nic/bow.h"
- #include "nic/cmd_buf.h"
- #if CFG_ENABLE_BT_OVER_WIFI
- #if CFG_BOW_TEST
- extern UINT_32 g_arBowRevPalPacketTime[32];
- #endif
- /*******************************************************************************
- * C O N S T A N T S
- ********************************************************************************
- */
- #define BOWCMD_STATUS_SUCCESS 0
- #define BOWCMD_STATUS_FAILURE 1
- #define BOWCMD_STATUS_UNACCEPTED 2
- #define BOWCMD_STATUS_INVALID 3
- #define BOWCMD_STATUS_TIMEOUT 4
- #define BOW_WILDCARD_SSID "AMP"
- #define BOW_WILDCARD_SSID_LEN 3
- #define BOW_SSID_LEN 21
- /* 0: query, 1: setup, 2: destroy */
- #define BOW_QUERY_CMD 0
- #define BOW_SETUP_CMD 1
- #define BOW_DESTROY_CMD 2
- #define BOW_INITIATOR 0
- #define BOW_RESPONDER 1
- /*******************************************************************************
- * P U B L I C D A T A
- ********************************************************************************
- */
- typedef struct _BOW_TABLE_T {
- UINT_8 ucAcquireID;
- BOOLEAN fgIsValid;
- ENUM_BOW_DEVICE_STATE eState;
- UINT_8 aucPeerAddress[6];
- /* UINT_8 ucRole; */
- /* UINT_8 ucChannelNum; */
- UINT_16 u2Reserved;
- } BOW_TABLE_T, *P_BOW_TABLE_T;
- typedef WLAN_STATUS(*PFN_BOW_CMD_HANDLE) (P_ADAPTER_T, P_AMPC_COMMAND);
- typedef struct _BOW_CMD_T {
- UINT_8 uCmdID;
- PFN_BOW_CMD_HANDLE pfCmdHandle;
- } BOW_CMD_T, *P_BOW_CMD_T;
- typedef struct _BOW_EVENT_ACTIVITY_REPORT_T {
- UINT_8 ucReason;
- UINT_8 aucReserved;
- UINT_8 aucPeerAddress[6];
- } BOW_EVENT_ACTIVITY_REPORT_T, *P_BOW_EVENT_ACTIVITY_REPORT_T;
- /*
- ucReason: 0: success
- 1: general failure
- 2: too much time (> 2/3 second totally) requested for scheduling.
- Others: reserved.
- */
- typedef struct _BOW_EVENT_SYNC_TSF_T {
- UINT_64 u4TsfTime;
- UINT_32 u4TsfSysTime;
- UINT_32 u4ScoTime;
- UINT_32 u4ScoSysTime;
- } BOW_EVENT_SYNC_TSF_T, *P_BOW_EVENT_SYNC_TSF_T;
- typedef struct _BOW_ACTIVITY_REPORT_BODY_T {
- UINT_32 u4StartTime;
- UINT_32 u4Duration;
- UINT_32 u4Periodicity;
- } BOW_ACTIVITY_REPORT_BODY_T, *P_BOW_ACTIVITY_REPORT_BODY_T;
- typedef struct _BOW_ACTIVITY_REPORT_T {
- UINT_8 aucPeerAddress[6];
- UINT_8 ucScheduleKnown;
- UINT_8 ucNumReports;
- BOW_ACTIVITY_REPORT_BODY_T arBowActivityReportBody[MAX_ACTIVITY_REPORT];
- } BOW_ACTIVITY_REPORT_T, *P_BOW_ACTIVITY_REPORT_T;
- /*******************************************************************************
- * P R I V A T E D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * M A C R O S
- ********************************************************************************
- */
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- /*--------------------------------------------------------------*/
- /* Firmware Command Packer */
- /*--------------------------------------------------------------*/
- WLAN_STATUS
- wlanoidSendSetQueryBowCmd(IN P_ADAPTER_T prAdapter,
- UINT_8 ucCID,
- BOOLEAN fgSetQuery,
- BOOLEAN fgNeedResp,
- PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
- PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
- UINT_32 u4SetQueryInfoLen, PUINT_8 pucInfoBuffer, IN UINT_8 ucSeqNumber);
- /*--------------------------------------------------------------*/
- /* Command Dispatcher */
- /*--------------------------------------------------------------*/
- WLAN_STATUS wlanbowHandleCommand(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- /*--------------------------------------------------------------*/
- /* Routines to handle command */
- /*--------------------------------------------------------------*/
- WLAN_STATUS bowCmdGetMacStatus(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdSetupConnection(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdDestroyConnection(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdSetPTK(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdReadRSSI(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdReadLinkQuality(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdShortRangeMode(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- WLAN_STATUS bowCmdGetChannelList(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd);
- VOID wlanbowCmdEventSetStatus(IN P_ADAPTER_T prAdapter, IN P_AMPC_COMMAND prCmd, IN UINT_8 ucEventBuf);
- /*--------------------------------------------------------------*/
- /* Callbacks for event indication */
- /*--------------------------------------------------------------*/
- VOID wlanbowCmdEventSetCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdEventLinkConnected(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdEventLinkDisconnected(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdEventSetSetupConnection(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdEventReadLinkQuality(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdEventReadRssi(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
- VOID wlanbowCmdTimeoutHandler(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
- VOID bowStopping(IN P_ADAPTER_T prAdapter);
- VOID bowStarting(IN P_ADAPTER_T prAdapter);
- VOID bowAssignSsid(IN PUINT_8 pucSsid, IN PUINT_8 pucSsidLen);
- BOOLEAN bowValidateProbeReq(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb, OUT PUINT_32 pu4ControlFlags);
- VOID bowSendBeacon(IN P_ADAPTER_T prAdapter, ULONG ulParam);
- VOID bowResponderScan(IN P_ADAPTER_T prAdapter);
- VOID bowResponderScanDone(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID bowResponderCancelScan(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgIsChannelExtention);
- VOID bowResponderJoin(IN P_ADAPTER_T prAdapter, P_BSS_DESC_T prBssDesc);
- VOID bowFsmRunEventJoinComplete(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID
- bowIndicationOfMediaStateToHost(IN P_ADAPTER_T prAdapter,
- ENUM_PARAM_MEDIA_STATE_T eConnectionState, BOOLEAN fgDelayIndication);
- VOID bowRunEventAAATxFail(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- WLAN_STATUS bowRunEventAAAComplete(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- WLAN_STATUS bowRunEventRxDeAuth(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prSwRfb);
- VOID bowDisconnectLink(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- BOOLEAN bowValidateAssocReq(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb, OUT PUINT_16 pu2StatusCode);
- BOOLEAN
- bowValidateAuth(IN P_ADAPTER_T prAdapter,
- IN P_SW_RFB_T prSwRfb, IN PP_STA_RECORD_T pprStaRec, OUT PUINT_16 pu2StatusCode);
- VOID bowRunEventChGrant(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID bowRequestCh(IN P_ADAPTER_T prAdapter);
- VOID bowReleaseCh(IN P_ADAPTER_T prAdapter);
- VOID bowChGrantedTimeout(IN P_ADAPTER_T prAdapter, IN ULONG ulParam);
- BOOLEAN bowNotifyAllLinkDisconnected(IN P_ADAPTER_T prAdapter);
- BOOLEAN bowCheckBowTableIfVaild(IN P_ADAPTER_T prAdapter, IN UINT_8 aucPeerAddress[6]);
- BOOLEAN bowGetBowTableContent(IN P_ADAPTER_T prAdapter, IN UINT_8 ucBowTableIdx, OUT P_BOW_TABLE_T prBowTable);
- BOOLEAN
- bowGetBowTableEntryByPeerAddress(IN P_ADAPTER_T prAdapter, IN UINT_8 aucPeerAddress[6], OUT PUINT_8 pucBowTableIdx);
- BOOLEAN bowGetBowTableFreeEntry(IN P_ADAPTER_T prAdapter, OUT PUINT_8 pucBowTableIdx);
- ENUM_BOW_DEVICE_STATE bowGetBowTableState(IN P_ADAPTER_T prAdapter, IN UINT_8 aucPeerAddress[6]);
- BOOLEAN bowSetBowTableState(IN P_ADAPTER_T prAdapter, IN UINT_8 aucPeerAddress[6], IN ENUM_BOW_DEVICE_STATE eState);
- BOOLEAN bowSetBowTableContent(IN P_ADAPTER_T prAdapter, IN UINT_8 ucBowTableIdx, IN P_BOW_TABLE_T prBowTable);
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #endif
- #endif /* _WLAN_BOW_H */
|