2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/wlan_p2p.h#3 $
6 \brief This file contains the declairations of Wi-Fi Direct command
7 processing routines for MediaTek Inc. 802.11 Wireless LAN Adapters.
10 /*******************************************************************************
11 * Copyright (c) 2007 MediaTek Inc.
13 * All rights reserved. Copying, compilation, modification, distribution
14 * or any other use whatsoever of this material is strictly prohibited
15 * except in accordance with a Software License Agreement with
17 ********************************************************************************
20 /*******************************************************************************
23 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
24 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
25 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
26 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
27 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
29 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
30 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
31 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
32 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
33 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
34 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
35 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
37 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
38 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
39 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
40 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
41 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
43 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
44 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
45 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
46 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
47 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
49 ********************************************************************************
56 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
60 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
61 ** cfg80211 support merge back from ALPS.JB to DaVinci - MT6620 Driver v2.3 branch.
63 * 07 17 2012 yuche.tsai
65 * Compile no error before trial run.
67 * 11 19 2011 yuche.tsai
69 * Add RSSI support for P2P network.
71 * 11 08 2011 yuche.tsai
72 * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version query & set support for service discovery version check.
73 * Add support for driver version query & p2p supplicant verseion set.
74 * For new service discovery mechanism sync.
76 * 10 18 2011 yuche.tsai
77 * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
78 * Support Channle Query.
80 * 10 18 2011 yuche.tsai
81 * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
85 * 04 27 2011 george.huang
86 * [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
87 * Support P2P ARP filter setting on early suspend/ late resume
89 * 04 08 2011 george.huang
90 * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
91 * separate settings of P2P and AIS
93 * 03 22 2011 george.huang
94 * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
95 * link with supplicant commands
98 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
99 * rename the define to anti_pviracy.
102 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
103 * Add Security check related code.
106 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
107 * ioctl implementations for P2P Service Discovery
110 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
111 * 1. header file restructure for more clear module isolation
112 * 2. add function interface definition for implementing Service Discovery callbacks
114 * 09 21 2010 kevin.huang
115 * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
116 * Isolate P2P related function for Hardware Software Bundle
120 * add subroutines for P2P to set multicast list.
122 * 08 16 2010 george.huang
124 * support wlanoidSetP2pPowerSaveProfile() in P2P
126 * 08 16 2010 george.huang
128 * Support wlanoidSetNetworkAddress() for P2P
132 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
134 * 06 06 2010 kevin.huang
135 * [WPD00003832][MT6620 5931] Create driver base
136 * [MT6620 5931] Create driver base
139 * [WPD00001943]Create WiFi test driver framework on WinXP
140 * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
150 /*******************************************************************************
151 * C O M P I L E R F L A G S
152 ********************************************************************************
155 /*******************************************************************************
156 * E X T E R N A L R E F E R E N C E S
157 ********************************************************************************
160 #if CFG_ENABLE_WIFI_DIRECT
161 /*******************************************************************************
163 ********************************************************************************
166 /*******************************************************************************
167 * P U B L I C D A T A
168 ********************************************************************************
171 /* Service Discovery */
172 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
173 PARAM_MAC_ADDRESS rReceiverAddr;
174 UINT_8 fgNeedTxDoneIndication;
176 UINT_16 u2PacketLength;
177 UINT_8 aucPacketContent[0]; /*native 802.11*/
178 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
180 typedef struct _PARAM_P2P_GET_SD_REQUEST {
181 PARAM_MAC_ADDRESS rTransmitterAddr;
182 UINT_16 u2PacketLength;
183 UINT_8 aucPacketContent[0]; /*native 802.11*/
184 } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
186 typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
187 PARAM_MAC_ADDRESS rTransmitterAddr;
188 UINT_16 u2PacketLength;
189 UINT_8 ucChannelNum; /* Channel Number Where SD Request is received. */
190 UINT_8 ucSeqNum; /* Get SD Request by sequence number. */
191 UINT_8 aucPacketContent[0]; /*native 802.11*/
192 } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
194 typedef struct _PARAM_P2P_SEND_SD_REQUEST {
195 PARAM_MAC_ADDRESS rReceiverAddr;
196 UINT_8 fgNeedTxDoneIndication;
197 UINT_8 ucVersionNum; /* Indicate the Service Discovery Supplicant Version. */
198 UINT_16 u2PacketLength;
199 UINT_8 aucPacketContent[0]; /*native 802.11*/
200 } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
202 /* Service Discovery 1.0. */
203 typedef struct _PARAM_P2P_GET_SD_RESPONSE {
204 PARAM_MAC_ADDRESS rTransmitterAddr;
205 UINT_16 u2PacketLength;
206 UINT_8 aucPacketContent[0]; /*native 802.11*/
207 } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
209 /* Service Discovery 2.0. */
210 typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
211 PARAM_MAC_ADDRESS rTransmitterAddr;
212 UINT_16 u2PacketLength;
213 UINT_8 ucSeqNum; /* Get SD Response by sequence number. */
214 UINT_8 aucPacketContent[0]; /*native 802.11*/
215 } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
218 typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
219 PARAM_MAC_ADDRESS rPeerAddr;
220 } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
223 /*! \brief Key mapping of BSSID */
224 typedef struct _P2P_PARAM_KEY_T
226 UINT_32 u4Length; /*!< Length of structure */
227 UINT_32 u4KeyIndex; /*!< KeyID */
228 UINT_32 u4KeyLength; /*!< Key length in bytes */
229 PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
230 PARAM_KEY_RSC rKeyRSC;
231 UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
232 } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
234 #if CONFIG_NL80211_TESTMODE
236 typedef struct _NL80211_DRIVER_TEST_PRE_PARAMS {
240 } NL80211_DRIVER_TEST_PRE_PARAMS, *P_NL80211_DRIVER_TEST_PRE_PARAMS;
243 typedef struct _NL80211_DRIVER_TEST_PARAMS {
246 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
250 typedef struct _NL80211_DRIVER_P2P_SIGMA_PARAMS {
251 NL80211_DRIVER_TEST_PARAMS hdr;
254 }NL80211_DRIVER_P2P_SIGMA_PARAMS, *P_NL80211_DRIVER_P2P_SIGMA_PARAMS;
257 /* Hotspot Client Management */
258 typedef struct _NL80211_DRIVER_hotspot_block_PARAMS {
259 NL80211_DRIVER_TEST_PARAMS hdr;
261 UINT_8 aucBssid[MAC_ADDR_LEN];
262 }NL80211_DRIVER_hotspot_block_PARAMS, *P_NL80211_DRIVER_hotspot_block_PARAMS;
266 typedef struct _NL80211_DRIVER_WFD_PARAMS {
267 NL80211_DRIVER_TEST_PARAMS hdr;
270 UINT_8 WfdCoupleSinkStatus;
271 UINT_8 WfdSessionAvailable;
274 UINT_16 WfdControlPort;
275 UINT_16 WfdMaximumTp;
276 UINT_16 WfdExtendCap;
277 UINT_8 WfdCoupleSinkAddress[MAC_ADDR_LEN];
278 UINT_8 WfdAssociatedBssid[MAC_ADDR_LEN];
279 UINT_8 WfdVideoIp[4];
280 UINT_8 WfdAudioIp[4];
281 UINT_16 WfdVideoPort;
282 UINT_16 WfdAudioPort;
286 UINT_8 WfdSessionInformationIE[24*8]; // Include Subelement ID, length
287 UINT_16 WfdSessionInformationIELen;
288 UINT_8 aucReserved1[2];
289 UINT_8 aucWfdPrimarySinkMac[MAC_ADDR_LEN];
290 UINT_8 aucWfdSecondarySinkMac[MAC_ADDR_LEN];
291 UINT_32 WfdAdvanceFlag;
292 UINT_8 aucWfdLocalIp[4];
293 UINT_8 aucReserved2[64];
294 UINT_8 aucReserved3[64];
295 UINT_8 aucReserved4[64];
296 }NL80211_DRIVER_WFD_PARAMS, *P_NL80211_DRIVER_WFD_PARAMS;
304 /*******************************************************************************
305 * P R I V A T E D A T A
306 ********************************************************************************
309 /*******************************************************************************
311 ********************************************************************************
314 /*******************************************************************************
315 * F U N C T I O N D E C L A R A T I O N S
316 ********************************************************************************
319 /*--------------------------------------------------------------*/
320 /* Routines to handle command */
321 /*--------------------------------------------------------------*/
324 IN P_ADAPTER_T prAdapter,
325 IN PVOID pvSetBuffer,
326 IN UINT_32 u4SetBufferLen,
327 OUT PUINT_32 pu4SetInfoLen
331 wlanoidSetRemoveP2PKey(
332 IN P_ADAPTER_T prAdapter,
333 IN PVOID pvSetBuffer,
334 IN UINT_32 u4SetBufferLen,
335 OUT PUINT_32 pu4SetInfoLen
339 wlanoidSetNetworkAddress(
340 IN P_ADAPTER_T prAdapter,
341 IN PVOID pvSetBuffer,
342 IN UINT_32 u4SetBufferLen,
343 OUT PUINT_32 pu4SetInfoLen
347 wlanoidSetP2PMulticastList(
348 IN P_ADAPTER_T prAdapter,
349 IN PVOID pvSetBuffer,
350 IN UINT_32 u4SetBufferLen,
351 OUT PUINT_32 pu4SetInfoLen
354 /*--------------------------------------------------------------*/
355 /* Service Discovery Subroutines */
356 /*--------------------------------------------------------------*/
358 wlanoidSendP2PSDRequest(
359 IN P_ADAPTER_T prAdapter,
360 IN PVOID pvSetBuffer,
361 IN UINT_32 u4SetBufferLen,
362 OUT PUINT_32 pu4SetInfoLen
366 wlanoidSendP2PSDResponse(
367 IN P_ADAPTER_T prAdapter,
368 IN PVOID pvSetBuffer,
369 IN UINT_32 u4SetBufferLen,
370 OUT PUINT_32 pu4SetInfoLen
374 wlanoidGetP2PSDRequest(
375 IN P_ADAPTER_T prAdapter,
376 IN PVOID pvSetBuffer,
377 IN UINT_32 u4SetBufferLen,
378 OUT PUINT_32 pu4SetInfoLen
382 wlanoidGetP2PSDResponse(
383 IN P_ADAPTER_T prAdapter,
384 IN PVOID pvQueryBuffer,
385 IN UINT_32 u4QueryBufferLen,
386 OUT PUINT_32 puQueryInfoLen
390 wlanoidSetP2PTerminateSDPhase(
391 IN P_ADAPTER_T prAdapter,
392 IN PVOID pvQueryBuffer,
393 IN UINT_32 u4QueryBufferLen,
394 OUT PUINT_32 pu4QueryInfoLen
397 #if CFG_SUPPORT_ANTI_PIRACY
399 wlanoidSetSecCheckRequest(
400 IN P_ADAPTER_T prAdapter,
401 IN PVOID pvSetBuffer,
402 IN UINT_32 u4SetBufferLen,
403 OUT PUINT_32 pu4SetInfoLen
407 wlanoidGetSecCheckResponse(
408 IN P_ADAPTER_T prAdapter,
409 IN PVOID pvQueryBuffer,
410 IN UINT_32 u4QueryBufferLen,
411 OUT PUINT_32 pu4QueryInfoLen
417 IN P_ADAPTER_T prAdapter,
418 IN PVOID pvSetBuffer,
419 IN UINT_32 u4SetBufferLen,
420 OUT PUINT_32 pu4SetInfoLen
424 wlanoidSetOppPsParam (
425 IN P_ADAPTER_T prAdapter,
426 IN PVOID pvSetBuffer,
427 IN UINT_32 u4SetBufferLen,
428 OUT PUINT_32 pu4SetInfoLen
432 wlanoidSetUApsdParam (
433 IN P_ADAPTER_T prAdapter,
434 IN PVOID pvSetBuffer,
435 IN UINT_32 u4SetBufferLen,
436 OUT PUINT_32 pu4SetInfoLen
440 wlanoidQueryP2pPowerSaveProfile (
441 IN P_ADAPTER_T prAdapter,
442 IN PVOID pvQueryBuffer,
443 IN UINT_32 u4QueryBufferLen,
444 OUT PUINT_32 pu4QueryInfoLen
448 wlanoidSetP2pPowerSaveProfile (
449 IN P_ADAPTER_T prAdapter,
450 IN PVOID pvSetBuffer,
451 IN UINT_32 u4SetBufferLen,
452 OUT PUINT_32 pu4SetInfoLen
456 wlanoidSetP2pSetNetworkAddress (
457 IN P_ADAPTER_T prAdapter,
458 IN PVOID pvSetBuffer,
459 IN UINT_32 u4SetBufferLen,
460 OUT PUINT_32 pu4SetInfoLen
464 wlanoidQueryP2pOpChannel(
465 IN P_ADAPTER_T prAdapter,
466 IN PVOID pvQueryBuffer,
467 IN UINT_32 u4QueryBufferLen,
468 OUT PUINT_32 pu4QueryInfoLen
472 wlanoidQueryP2pVersion(
473 IN P_ADAPTER_T prAdapter,
474 IN PVOID pvQueryBuffer,
475 IN UINT_32 u4QueryBufferLen,
476 OUT PUINT_32 pu4QueryInfoLen
480 wlanoidSetP2pSupplicantVersion(
481 IN P_ADAPTER_T prAdapter,
482 IN PVOID pvSetBuffer,
483 IN UINT_32 u4SetBufferLen,
484 OUT PUINT_32 pu4SetInfoLen
487 #if CFG_SUPPORT_P2P_RSSI_QUERY
490 IN P_ADAPTER_T prAdapter,
491 IN PVOID pvQueryBuffer,
492 IN UINT_32 u4QueryBufferLen,
493 OUT PUINT_32 pu4QueryInfoLen
498 /*--------------------------------------------------------------*/
499 /* Callbacks for event indication */
500 /*--------------------------------------------------------------*/
502 /*******************************************************************************
504 ********************************************************************************
508 #endif /* _WLAN_P2P_H */