2 ** $Id: //Department/DaVinci/BRANCHES/WIFI_P2P_DRIVER_V2_2/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 ********************************************************************************
55 * 02 23 2012 chinglan.wang
56 * [ALPS00240621] [Wifi P2P]Run Sigma tool of A69. Always run fail on 7.1.3. sniffer check Sta-IsActive-No-Frames-With-PowerMgmt-1
60 * [WCXRP00001173] [MT6620 Wi-Fi][Driver] Adding the ICS Tethering WPA2-PSK supporting
61 * adding the code to fix the add key function.
63 * 01 13 2012 yuche.tsai
65 * WiFi Hot Spot Tethering for ICS ALPHA testing version.
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 * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
99 * create V2.0 p2p driver release based on label "MT6620_WIFI_P2P_DRIVER_V2_0_2100_0319_2011" from main trunk.
102 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
103 * rename the define to anti_pviracy.
106 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
107 * Add Security check related code.
110 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
111 * ioctl implementations for P2P Service Discovery
114 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
115 * 1. header file restructure for more clear module isolation
116 * 2. add function interface definition for implementing Service Discovery callbacks
118 * 09 21 2010 kevin.huang
119 * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
120 * Isolate P2P related function for Hardware Software Bundle
124 * add subroutines for P2P to set multicast list.
126 * 08 16 2010 george.huang
128 * support wlanoidSetP2pPowerSaveProfile() in P2P
130 * 08 16 2010 george.huang
132 * Support wlanoidSetNetworkAddress() for P2P
136 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
138 * 06 06 2010 kevin.huang
139 * [WPD00003832][MT6620 5931] Create driver base
140 * [MT6620 5931] Create driver base
143 * [WPD00001943]Create WiFi test driver framework on WinXP
144 * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
154 /*******************************************************************************
155 * C O M P I L E R F L A G S
156 ********************************************************************************
159 /*******************************************************************************
160 * E X T E R N A L R E F E R E N C E S
161 ********************************************************************************
164 #if CFG_ENABLE_WIFI_DIRECT
165 /*******************************************************************************
167 ********************************************************************************
170 /*******************************************************************************
171 * P U B L I C D A T A
172 ********************************************************************************
175 /* Service Discovery */
176 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
177 PARAM_MAC_ADDRESS rReceiverAddr;
178 UINT_8 fgNeedTxDoneIndication;
180 UINT_16 u2PacketLength;
181 UINT_8 aucPacketContent[0]; /*native 802.11*/
182 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
184 typedef struct _PARAM_P2P_GET_SD_REQUEST {
185 PARAM_MAC_ADDRESS rTransmitterAddr;
186 UINT_16 u2PacketLength;
187 UINT_8 aucPacketContent[0]; /*native 802.11*/
188 } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
190 typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
191 PARAM_MAC_ADDRESS rTransmitterAddr;
192 UINT_16 u2PacketLength;
193 UINT_8 ucChannelNum; /* Channel Number Where SD Request is received. */
194 UINT_8 ucSeqNum; /* Get SD Request by sequence number. */
195 UINT_8 aucPacketContent[0]; /*native 802.11*/
196 } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
198 typedef struct _PARAM_P2P_SEND_SD_REQUEST {
199 PARAM_MAC_ADDRESS rReceiverAddr;
200 UINT_8 fgNeedTxDoneIndication;
201 UINT_8 ucVersionNum; /* Indicate the Service Discovery Supplicant Version. */
202 UINT_16 u2PacketLength;
203 UINT_8 aucPacketContent[0]; /*native 802.11*/
204 } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
206 /* Service Discovery 1.0. */
207 typedef struct _PARAM_P2P_GET_SD_RESPONSE {
208 PARAM_MAC_ADDRESS rTransmitterAddr;
209 UINT_16 u2PacketLength;
210 UINT_8 aucPacketContent[0]; /*native 802.11*/
211 } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
213 /* Service Discovery 2.0. */
214 typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
215 PARAM_MAC_ADDRESS rTransmitterAddr;
216 UINT_16 u2PacketLength;
217 UINT_8 ucSeqNum; /* Get SD Response by sequence number. */
218 UINT_8 aucPacketContent[0]; /*native 802.11*/
219 } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
222 typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
223 PARAM_MAC_ADDRESS rPeerAddr;
224 } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
227 /*! \brief Key mapping of BSSID */
228 typedef struct _P2P_PARAM_KEY_T
230 UINT_32 u4Length; /*!< Length of structure */
231 UINT_32 u4KeyIndex; /*!< KeyID */
232 UINT_32 u4KeyLength; /*!< Key length in bytes */
233 PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
234 PARAM_KEY_RSC rKeyRSC;
235 UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
236 } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
238 #if CONFIG_NL80211_TESTMODE
240 typedef struct _NL80211_DRIVER_TEST_PARAMS {
244 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
249 /*******************************************************************************
250 * P R I V A T E D A T A
251 ********************************************************************************
254 /*******************************************************************************
256 ********************************************************************************
259 /*******************************************************************************
260 * F U N C T I O N D E C L A R A T I O N S
261 ********************************************************************************
264 /*--------------------------------------------------------------*/
265 /* Routines to handle command */
266 /*--------------------------------------------------------------*/
269 IN P_ADAPTER_T prAdapter,
270 IN PVOID pvSetBuffer,
271 IN UINT_32 u4SetBufferLen,
272 OUT PUINT_32 pu4SetInfoLen
276 wlanoidSetRemoveP2PKey(
277 IN P_ADAPTER_T prAdapter,
278 IN PVOID pvSetBuffer,
279 IN UINT_32 u4SetBufferLen,
280 OUT PUINT_32 pu4SetInfoLen
284 wlanoidSetNetworkAddress(
285 IN P_ADAPTER_T prAdapter,
286 IN PVOID pvSetBuffer,
287 IN UINT_32 u4SetBufferLen,
288 OUT PUINT_32 pu4SetInfoLen
292 wlanoidSetP2PMulticastList(
293 IN P_ADAPTER_T prAdapter,
294 IN PVOID pvSetBuffer,
295 IN UINT_32 u4SetBufferLen,
296 OUT PUINT_32 pu4SetInfoLen
299 /*--------------------------------------------------------------*/
300 /* Service Discovery Subroutines */
301 /*--------------------------------------------------------------*/
303 wlanoidSendP2PSDRequest(
304 IN P_ADAPTER_T prAdapter,
305 IN PVOID pvSetBuffer,
306 IN UINT_32 u4SetBufferLen,
307 OUT PUINT_32 pu4SetInfoLen
311 wlanoidSendP2PSDResponse(
312 IN P_ADAPTER_T prAdapter,
313 IN PVOID pvSetBuffer,
314 IN UINT_32 u4SetBufferLen,
315 OUT PUINT_32 pu4SetInfoLen
319 wlanoidGetP2PSDRequest(
320 IN P_ADAPTER_T prAdapter,
321 IN PVOID pvSetBuffer,
322 IN UINT_32 u4SetBufferLen,
323 OUT PUINT_32 pu4SetInfoLen
327 wlanoidGetP2PSDResponse(
328 IN P_ADAPTER_T prAdapter,
329 IN PVOID pvQueryBuffer,
330 IN UINT_32 u4QueryBufferLen,
331 OUT PUINT_32 puQueryInfoLen
335 wlanoidSetP2PTerminateSDPhase(
336 IN P_ADAPTER_T prAdapter,
337 IN PVOID pvQueryBuffer,
338 IN UINT_32 u4QueryBufferLen,
339 OUT PUINT_32 pu4QueryInfoLen
342 #if CFG_SUPPORT_ANTI_PIRACY
344 wlanoidSetSecCheckRequest(
345 IN P_ADAPTER_T prAdapter,
346 IN PVOID pvSetBuffer,
347 IN UINT_32 u4SetBufferLen,
348 OUT PUINT_32 pu4SetInfoLen
352 wlanoidGetSecCheckResponse(
353 IN P_ADAPTER_T prAdapter,
354 IN PVOID pvQueryBuffer,
355 IN UINT_32 u4QueryBufferLen,
356 OUT PUINT_32 pu4QueryInfoLen
362 IN P_ADAPTER_T prAdapter,
363 IN PVOID pvSetBuffer,
364 IN UINT_32 u4SetBufferLen,
365 OUT PUINT_32 pu4SetInfoLen
369 wlanoidSetOppPsParam (
370 IN P_ADAPTER_T prAdapter,
371 IN PVOID pvSetBuffer,
372 IN UINT_32 u4SetBufferLen,
373 OUT PUINT_32 pu4SetInfoLen
377 wlanoidSetUApsdParam (
378 IN P_ADAPTER_T prAdapter,
379 IN PVOID pvSetBuffer,
380 IN UINT_32 u4SetBufferLen,
381 OUT PUINT_32 pu4SetInfoLen
385 wlanoidQueryP2pPowerSaveProfile (
386 IN P_ADAPTER_T prAdapter,
387 IN PVOID pvQueryBuffer,
388 IN UINT_32 u4QueryBufferLen,
389 OUT PUINT_32 pu4QueryInfoLen
393 wlanoidSetP2pPowerSaveProfile (
394 IN P_ADAPTER_T prAdapter,
395 IN PVOID pvSetBuffer,
396 IN UINT_32 u4SetBufferLen,
397 OUT PUINT_32 pu4SetInfoLen
401 wlanoidSetP2pSetNetworkAddress (
402 IN P_ADAPTER_T prAdapter,
403 IN PVOID pvSetBuffer,
404 IN UINT_32 u4SetBufferLen,
405 OUT PUINT_32 pu4SetInfoLen
409 wlanoidQueryP2pOpChannel(
410 IN P_ADAPTER_T prAdapter,
411 IN PVOID pvQueryBuffer,
412 IN UINT_32 u4QueryBufferLen,
413 OUT PUINT_32 pu4QueryInfoLen
417 wlanoidQueryP2pVersion(
418 IN P_ADAPTER_T prAdapter,
419 IN PVOID pvQueryBuffer,
420 IN UINT_32 u4QueryBufferLen,
421 OUT PUINT_32 pu4QueryInfoLen
425 wlanoidSetP2pSupplicantVersion(
426 IN P_ADAPTER_T prAdapter,
427 IN PVOID pvSetBuffer,
428 IN UINT_32 u4SetBufferLen,
429 OUT PUINT_32 pu4SetInfoLen
432 #if CFG_SUPPORT_P2P_RSSI_QUERY
435 IN P_ADAPTER_T prAdapter,
436 IN PVOID pvQueryBuffer,
437 IN UINT_32 u4QueryBufferLen,
438 OUT PUINT_32 pu4QueryInfoLen
443 /*--------------------------------------------------------------*/
444 /* Callbacks for event indication */
445 /*--------------------------------------------------------------*/
447 /*******************************************************************************
449 ********************************************************************************
453 #endif /* _WLAN_P2P_H */