2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/wlan_bow.h#1 $
6 \brief This file contains the declairations of 802.11 PAL
7 command processing routines for
8 MediaTek Inc. 802.11 Wireless LAN Adapters.
17 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
18 * Add BoW Cancel Scan Request and Turn On deactive network function.
21 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
22 * Add some BoW error handling.
25 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
26 * Protect BoW connection establishment.
29 * [WCXRP00000730] [MT6620 Wi-Fi][BoW] Send deauth while disconnecting
30 * Send deauth while disconnecting BoW link.
33 * [WCXRP00000707] [MT6620 Wi-Fi][Driver] Fix BoW Multiple Physical Link connect/disconnect issue
34 * Fix BoW Multiple Physical Link connect/disconnect issue.
36 * 04 15 2011 chinghwa.yu
37 * [WCXRP00000065] Update BoW design and settings
38 * Add BOW short range mode.
40 * 03 27 2011 chinghwa.yu
41 * [WCXRP00000065] Update BoW design and settings
42 * Support multiple physical link.
44 * 03 10 2011 chinghwa.yu
45 * [WCXRP00000065] Update BoW design and settings
48 * 02 16 2011 chinghwa.yu
49 * [WCXRP00000065] Update BoW design and settings
50 * Add bowNotifyAllLinkDisconnected interface and change channel grant procedure for bow starting..
52 * 02 15 2011 chinghwa.yu
53 * [WCXRP00000065] Update BoW design and settings
54 * Update bowString and channel grant.
56 * 01 11 2011 chinghwa.yu
57 * [WCXRP00000065] Update BoW design and settings
58 * Update BOW Activity Report structure and bug fix.
60 * 09 27 2010 chinghwa.yu
61 * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000065] Update BoW design and settings
62 * Update BCM/BoW design and settings.
64 * 09 14 2010 chinghwa.yu
66 * Add bowRunEventAAAComplete.
68 * 08 24 2010 chinghwa.yu
70 * Update BOW for the 1st time.
74 * 1) BoW wrapper: use definitions instead of hard-coded constant for error code
75 * 2) AIS-FSM: eliminate use of desired RF parameters, use prTargetBssDesc instead
76 * 3) add handling for RX_PKT_DESTINATION_HOST_WITH_FORWARD for GO-broadcast frames
80 * sync. bluetooth-over-Wi-Fi interface to driver interface document v0.2.6.
84 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
86 * 06 06 2010 kevin.huang
87 * [WPD00003832][MT6620 5931] Create driver base
88 * [MT6620 5931] Create driver base
91 * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
92 * 1) add timeout handler mechanism for pending command packets
93 * 2) add p2p add/removal key
96 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
97 * 1) all BT physical handles shares the same RSSI/Link Quality.
98 * 2) simplify BT command composing
101 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
102 * change prefix for data structure used to communicate with 802.11 PAL
103 * to avoid ambiguous naming with firmware interface
106 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
107 * add multiple physical link support
110 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
111 * add framework for BT-over-Wi-Fi support.
112 * * * * * * * * * * * * 1) prPendingCmdInfo is replaced by queue for multiple handler capability
113 * * * * * * * * * * * * 2) command sequence number is now increased atomically
114 * * * * * * * * * * * * 3) private data could be hold and taken use for other purpose
121 /*******************************************************************************
122 * C O M P I L E R F L A G S
123 ********************************************************************************
126 /*******************************************************************************
127 * E X T E R N A L R E F E R E N C E S
128 ********************************************************************************
131 #include "nic/cmd_buf.h"
133 #if CFG_ENABLE_BT_OVER_WIFI
134 /*******************************************************************************
136 ********************************************************************************
138 #define BOWCMD_STATUS_SUCCESS 0
139 #define BOWCMD_STATUS_FAILURE 1
140 #define BOWCMD_STATUS_UNACCEPTED 2
141 #define BOWCMD_STATUS_INVALID 3
142 #define BOWCMD_STATUS_TIMEOUT 4
144 #define BOW_WILDCARD_SSID "AMP"
145 #define BOW_WILDCARD_SSID_LEN 3
146 #define BOW_SSID_LEN 21
148 /* 0: query, 1: setup, 2: destroy */
149 #define BOW_QUERY_CMD 0
150 #define BOW_SETUP_CMD 1
151 #define BOW_DESTROY_CMD 2
153 #define BOW_INITIATOR 0
154 #define BOW_RESPONDER 1
156 /*******************************************************************************
157 * P U B L I C D A T A
158 ********************************************************************************
161 typedef struct _BOW_TABLE_T {
164 ENUM_BOW_DEVICE_STATE eState;
165 UINT_8 aucPeerAddress[6];
167 //UINT_8 ucChannelNum;
169 } BOW_TABLE_T, *P_BOW_TABLE_T;
171 typedef WLAN_STATUS (*PFN_BOW_CMD_HANDLE)(P_ADAPTER_T, P_AMPC_COMMAND);
173 typedef struct _BOW_CMD_T {
175 PFN_BOW_CMD_HANDLE pfCmdHandle;
176 } BOW_CMD_T, *P_BOW_CMD_T;
178 typedef struct _BOW_EVENT_ACTIVITY_REPORT_T {
181 UINT_8 aucPeerAddress[6];
182 } BOW_EVENT_ACTIVITY_REPORT_T, *P_BOW_EVENT_ACTIVITY_REPORT_T;
187 2: too much time (> 2/3 second totally) requested for scheduling.
191 typedef struct _BOW_EVENT_SYNC_TSF_T {
193 UINT_32 u4TsfSysTime;
195 UINT_32 u4ScoSysTime;
196 } BOW_EVENT_SYNC_TSF_T, *P_BOW_EVENT_SYNC_TSF_T;
198 typedef struct _BOW_ACTIVITY_REPORT_BODY_T {
201 UINT_32 u4Periodicity;
202 } BOW_ACTIVITY_REPORT_BODY_T, *P_BOW_ACTIVITY_REPORT_BODY_T;
204 typedef struct _BOW_ACTIVITY_REPORT_T {
205 UINT_8 aucPeerAddress[6];
206 UINT_8 ucScheduleKnown;
208 BOW_ACTIVITY_REPORT_BODY_T arBowActivityReportBody[MAX_ACTIVITY_REPORT];
209 } BOW_ACTIVITY_REPORT_T, *P_BOW_ACTIVITY_REPORT_T;
211 /*******************************************************************************
212 * P R I V A T E D A T A
213 ********************************************************************************
216 /*******************************************************************************
218 ********************************************************************************
221 /*******************************************************************************
222 * F U N C T I O N D E C L A R A T I O N S
223 ********************************************************************************
225 /*--------------------------------------------------------------*/
226 /* Firmware Command Packer */
227 /*--------------------------------------------------------------*/
229 wlanoidSendSetQueryBowCmd (
230 IN P_ADAPTER_T prAdapter,
234 PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
235 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
236 UINT_32 u4SetQueryInfoLen,
237 PUINT_8 pucInfoBuffer,
238 IN UINT_8 ucSeqNumber
242 /*--------------------------------------------------------------*/
243 /* Command Dispatcher */
244 /*--------------------------------------------------------------*/
246 wlanbowHandleCommand(
247 IN P_ADAPTER_T prAdapter,
248 IN P_AMPC_COMMAND prCmd
252 /*--------------------------------------------------------------*/
253 /* Routines to handle command */
254 /*--------------------------------------------------------------*/
257 IN P_ADAPTER_T prAdapter,
258 IN P_AMPC_COMMAND prCmd
262 bowCmdSetupConnection(
263 IN P_ADAPTER_T prAdapter,
264 IN P_AMPC_COMMAND prCmd
268 bowCmdDestroyConnection(
269 IN P_ADAPTER_T prAdapter,
270 IN P_AMPC_COMMAND prCmd
275 IN P_ADAPTER_T prAdapter,
276 IN P_AMPC_COMMAND prCmd
281 IN P_ADAPTER_T prAdapter,
282 IN P_AMPC_COMMAND prCmd
286 bowCmdReadLinkQuality(
287 IN P_ADAPTER_T prAdapter,
288 IN P_AMPC_COMMAND prCmd
292 bowCmdShortRangeMode(
293 IN P_ADAPTER_T prAdapter,
294 IN P_AMPC_COMMAND prCmd
298 bowCmdGetChannelList(
299 IN P_ADAPTER_T prAdapter,
300 IN P_AMPC_COMMAND prCmd
304 wlanbowCmdEventSetStatus(
305 IN P_ADAPTER_T prAdapter,
306 IN P_AMPC_COMMAND prCmd,
310 /*--------------------------------------------------------------*/
311 /* Callbacks for event indication */
312 /*--------------------------------------------------------------*/
314 wlanbowCmdEventSetCommon (
315 IN P_ADAPTER_T prAdapter,
316 IN P_CMD_INFO_T prCmdInfo,
317 IN PUINT_8 pucEventBuf
321 wlanbowCmdEventLinkConnected (
322 IN P_ADAPTER_T prAdapter,
323 IN P_CMD_INFO_T prCmdInfo,
324 IN PUINT_8 pucEventBuf
328 wlanbowCmdEventLinkDisconnected (
329 IN P_ADAPTER_T prAdapter,
330 IN P_CMD_INFO_T prCmdInfo,
331 IN PUINT_8 pucEventBuf
335 wlanbowCmdEventSetSetupConnection (
336 IN P_ADAPTER_T prAdapter,
337 IN P_CMD_INFO_T prCmdInfo,
338 IN PUINT_8 pucEventBuf
342 wlanbowCmdEventReadLinkQuality (
343 IN P_ADAPTER_T prAdapter,
344 IN P_CMD_INFO_T prCmdInfo,
345 IN PUINT_8 pucEventBuf
349 wlanbowCmdEventReadRssi (
350 IN P_ADAPTER_T prAdapter,
351 IN P_CMD_INFO_T prCmdInfo,
352 IN PUINT_8 pucEventBuf
356 wlanbowCmdTimeoutHandler (
357 IN P_ADAPTER_T prAdapter,
358 IN P_CMD_INFO_T prCmdInfo
363 IN P_ADAPTER_T prAdapter);
367 IN P_ADAPTER_T prAdapter
373 IN PUINT_8 pucSsidLen
377 bowValidateProbeReq (
378 IN P_ADAPTER_T prAdapter,
379 IN P_SW_RFB_T prSwRfb,
380 OUT PUINT_32 pu4ControlFlags
385 IN P_ADAPTER_T prAdapter,
391 IN P_ADAPTER_T prAdapter
395 bowResponderScanDone(
396 IN P_ADAPTER_T prAdapter,
397 IN P_MSG_HDR_T prMsgHdr
401 bowResponderCancelScan (
402 IN P_ADAPTER_T prAdapter,
403 IN BOOLEAN fgIsChannelExtention
408 IN P_ADAPTER_T prAdapter,
409 P_BSS_DESC_T prBssDesc
413 bowFsmRunEventJoinComplete(
414 IN P_ADAPTER_T prAdapter,
415 IN P_MSG_HDR_T prMsgHdr
419 bowIndicationOfMediaStateToHost(
420 IN P_ADAPTER_T prAdapter,
421 ENUM_PARAM_MEDIA_STATE_T eConnectionState,
422 BOOLEAN fgDelayIndication
426 bowRunEventAAATxFail(
427 IN P_ADAPTER_T prAdapter,
428 IN P_STA_RECORD_T prStaRec
432 bowRunEventAAAComplete(
433 IN P_ADAPTER_T prAdapter,
434 IN P_STA_RECORD_T prStaRec
438 bowRunEventRxDeAuth (
439 IN P_ADAPTER_T prAdapter,
440 IN P_STA_RECORD_T prStaRec,
441 IN P_SW_RFB_T prSwRfb
446 IN P_ADAPTER_T prAdapter,
447 IN P_MSDU_INFO_T prMsduInfo,
448 IN ENUM_TX_RESULT_CODE_T rTxDoneStatus
453 IN P_ADAPTER_T prAdapter,
454 IN P_SW_RFB_T prSwRfb,
455 OUT PUINT_16 pu2StatusCode
460 IN P_ADAPTER_T prAdapter,
461 IN P_SW_RFB_T prSwRfb,
462 IN PP_STA_RECORD_T pprStaRec,
463 OUT PUINT_16 pu2StatusCode
468 IN P_ADAPTER_T prAdapter,
469 IN P_MSG_HDR_T prMsgHdr
474 IN P_ADAPTER_T prAdapter
479 IN P_ADAPTER_T prAdapter
484 IN P_ADAPTER_T prAdapter,
489 bowNotifyAllLinkDisconnected (
490 IN P_ADAPTER_T prAdapter
494 bowCheckBowTableIfVaild(
495 IN P_ADAPTER_T prAdapter,
496 IN UINT_8 aucPeerAddress[6]
500 bowGetBowTableContent(
501 IN P_ADAPTER_T prAdapter,
502 IN UINT_8 ucBowTableIdx,
503 OUT P_BOW_TABLE_T prBowTable
507 bowGetBowTableEntryByPeerAddress(
508 IN P_ADAPTER_T prAdapter,
509 IN UINT_8 aucPeerAddress[6],
510 OUT PUINT_8 pucBowTableIdx
514 bowGetBowTableFreeEntry(
515 IN P_ADAPTER_T prAdapter,
516 OUT PUINT_8 pucBowTableIdx
519 ENUM_BOW_DEVICE_STATE
521 IN P_ADAPTER_T prAdapter,
522 IN UINT_8 aucPeerAddress[6]
527 IN P_ADAPTER_T prAdapter,
528 IN UINT_8 aucPeerAddress[6],
529 IN ENUM_BOW_DEVICE_STATE eState
534 bowSetBowTableContent(
535 IN P_ADAPTER_T prAdapter,
536 IN UINT_8 ucBowTableIdx,
537 IN P_BOW_TABLE_T prBowTable
540 /*******************************************************************************
542 ********************************************************************************
546 #endif /* _WLAN_BOW_H */