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.
15 * 07 17 2012 yuche.tsai
17 * Compile no error before trial run.
19 * 11 19 2011 yuche.tsai
21 * Add RSSI support for P2P network.
23 * 11 08 2011 yuche.tsai
24 * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version query & set support for service discovery version check.
25 * Add support for driver version query & p2p supplicant verseion set.
26 * For new service discovery mechanism sync.
28 * 10 18 2011 yuche.tsai
29 * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
30 * Support Channle Query.
32 * 10 18 2011 yuche.tsai
33 * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
37 * 04 27 2011 george.huang
38 * [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
39 * Support P2P ARP filter setting on early suspend/ late resume
41 * 04 08 2011 george.huang
42 * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
43 * separate settings of P2P and AIS
45 * 03 22 2011 george.huang
46 * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
47 * link with supplicant commands
50 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
51 * rename the define to anti_pviracy.
54 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
55 * Add Security check related code.
58 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
59 * ioctl implementations for P2P Service Discovery
62 * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
63 * 1. header file restructure for more clear module isolation
64 * 2. add function interface definition for implementing Service Discovery callbacks
66 * 09 21 2010 kevin.huang
67 * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
68 * Isolate P2P related function for Hardware Software Bundle
72 * add subroutines for P2P to set multicast list.
74 * 08 16 2010 george.huang
76 * support wlanoidSetP2pPowerSaveProfile() in P2P
78 * 08 16 2010 george.huang
80 * Support wlanoidSetNetworkAddress() for P2P
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 * [WPD00001943]Create WiFi test driver framework on WinXP
92 * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
102 /*******************************************************************************
103 * C O M P I L E R F L A G S
104 ********************************************************************************
107 /*******************************************************************************
108 * E X T E R N A L R E F E R E N C E S
109 ********************************************************************************
112 #if CFG_ENABLE_WIFI_DIRECT
113 /*******************************************************************************
115 ********************************************************************************
118 /*******************************************************************************
119 * P U B L I C D A T A
120 ********************************************************************************
123 /* Service Discovery */
124 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
125 PARAM_MAC_ADDRESS rReceiverAddr;
126 UINT_8 fgNeedTxDoneIndication;
128 UINT_16 u2PacketLength;
129 UINT_8 aucPacketContent[0]; /*native 802.11*/
130 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
132 typedef struct _PARAM_P2P_GET_SD_REQUEST {
133 PARAM_MAC_ADDRESS rTransmitterAddr;
134 UINT_16 u2PacketLength;
135 UINT_8 aucPacketContent[0]; /*native 802.11*/
136 } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
138 typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
139 PARAM_MAC_ADDRESS rTransmitterAddr;
140 UINT_16 u2PacketLength;
141 UINT_8 ucChannelNum; /* Channel Number Where SD Request is received. */
142 UINT_8 ucSeqNum; /* Get SD Request by sequence number. */
143 UINT_8 aucPacketContent[0]; /*native 802.11*/
144 } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
146 typedef struct _PARAM_P2P_SEND_SD_REQUEST {
147 PARAM_MAC_ADDRESS rReceiverAddr;
148 UINT_8 fgNeedTxDoneIndication;
149 UINT_8 ucVersionNum; /* Indicate the Service Discovery Supplicant Version. */
150 UINT_16 u2PacketLength;
151 UINT_8 aucPacketContent[0]; /*native 802.11*/
152 } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
154 /* Service Discovery 1.0. */
155 typedef struct _PARAM_P2P_GET_SD_RESPONSE {
156 PARAM_MAC_ADDRESS rTransmitterAddr;
157 UINT_16 u2PacketLength;
158 UINT_8 aucPacketContent[0]; /*native 802.11*/
159 } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
161 /* Service Discovery 2.0. */
162 typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
163 PARAM_MAC_ADDRESS rTransmitterAddr;
164 UINT_16 u2PacketLength;
165 UINT_8 ucSeqNum; /* Get SD Response by sequence number. */
166 UINT_8 aucPacketContent[0]; /*native 802.11*/
167 } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
170 typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
171 PARAM_MAC_ADDRESS rPeerAddr;
172 } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
175 /*! \brief Key mapping of BSSID */
176 typedef struct _P2P_PARAM_KEY_T
178 UINT_32 u4Length; /*!< Length of structure */
179 UINT_32 u4KeyIndex; /*!< KeyID */
180 UINT_32 u4KeyLength; /*!< Key length in bytes */
181 PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
182 PARAM_KEY_RSC rKeyRSC;
183 UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
184 } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
186 #if CONFIG_NL80211_TESTMODE
188 typedef struct _NL80211_DRIVER_TEST_PRE_PARAMS {
192 } NL80211_DRIVER_TEST_PRE_PARAMS, *P_NL80211_DRIVER_TEST_PRE_PARAMS;
195 typedef struct _NL80211_DRIVER_TEST_PARAMS {
198 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
202 typedef struct _NL80211_DRIVER_P2P_SIGMA_PARAMS {
203 NL80211_DRIVER_TEST_PARAMS hdr;
206 }NL80211_DRIVER_P2P_SIGMA_PARAMS, *P_NL80211_DRIVER_P2P_SIGMA_PARAMS;
209 /* Hotspot Client Management */
210 typedef struct _NL80211_DRIVER_hotspot_block_PARAMS {
211 NL80211_DRIVER_TEST_PARAMS hdr;
213 UINT_8 aucBssid[MAC_ADDR_LEN];
214 }NL80211_DRIVER_hotspot_block_PARAMS, *P_NL80211_DRIVER_hotspot_block_PARAMS;
219 /*******************************************************************************
220 * P R I V A T E D A T A
221 ********************************************************************************
224 /*******************************************************************************
226 ********************************************************************************
229 /*******************************************************************************
230 * F U N C T I O N D E C L A R A T I O N S
231 ********************************************************************************
234 /*--------------------------------------------------------------*/
235 /* Routines to handle command */
236 /*--------------------------------------------------------------*/
239 IN P_ADAPTER_T prAdapter,
240 IN PVOID pvSetBuffer,
241 IN UINT_32 u4SetBufferLen,
242 OUT PUINT_32 pu4SetInfoLen
246 wlanoidSetRemoveP2PKey(
247 IN P_ADAPTER_T prAdapter,
248 IN PVOID pvSetBuffer,
249 IN UINT_32 u4SetBufferLen,
250 OUT PUINT_32 pu4SetInfoLen
254 wlanoidSetNetworkAddress(
255 IN P_ADAPTER_T prAdapter,
256 IN PVOID pvSetBuffer,
257 IN UINT_32 u4SetBufferLen,
258 OUT PUINT_32 pu4SetInfoLen
262 wlanoidSetP2PMulticastList(
263 IN P_ADAPTER_T prAdapter,
264 IN PVOID pvSetBuffer,
265 IN UINT_32 u4SetBufferLen,
266 OUT PUINT_32 pu4SetInfoLen
269 /*--------------------------------------------------------------*/
270 /* Service Discovery Subroutines */
271 /*--------------------------------------------------------------*/
273 wlanoidSendP2PSDRequest(
274 IN P_ADAPTER_T prAdapter,
275 IN PVOID pvSetBuffer,
276 IN UINT_32 u4SetBufferLen,
277 OUT PUINT_32 pu4SetInfoLen
281 wlanoidSendP2PSDResponse(
282 IN P_ADAPTER_T prAdapter,
283 IN PVOID pvSetBuffer,
284 IN UINT_32 u4SetBufferLen,
285 OUT PUINT_32 pu4SetInfoLen
289 wlanoidGetP2PSDRequest(
290 IN P_ADAPTER_T prAdapter,
291 IN PVOID pvSetBuffer,
292 IN UINT_32 u4SetBufferLen,
293 OUT PUINT_32 pu4SetInfoLen
297 wlanoidGetP2PSDResponse(
298 IN P_ADAPTER_T prAdapter,
299 IN PVOID pvQueryBuffer,
300 IN UINT_32 u4QueryBufferLen,
301 OUT PUINT_32 puQueryInfoLen
305 wlanoidSetP2PTerminateSDPhase(
306 IN P_ADAPTER_T prAdapter,
307 IN PVOID pvQueryBuffer,
308 IN UINT_32 u4QueryBufferLen,
309 OUT PUINT_32 pu4QueryInfoLen
312 #if CFG_SUPPORT_ANTI_PIRACY
314 wlanoidSetSecCheckRequest(
315 IN P_ADAPTER_T prAdapter,
316 IN PVOID pvSetBuffer,
317 IN UINT_32 u4SetBufferLen,
318 OUT PUINT_32 pu4SetInfoLen
322 wlanoidGetSecCheckResponse(
323 IN P_ADAPTER_T prAdapter,
324 IN PVOID pvQueryBuffer,
325 IN UINT_32 u4QueryBufferLen,
326 OUT PUINT_32 pu4QueryInfoLen
332 IN P_ADAPTER_T prAdapter,
333 IN PVOID pvSetBuffer,
334 IN UINT_32 u4SetBufferLen,
335 OUT PUINT_32 pu4SetInfoLen
339 wlanoidSetOppPsParam (
340 IN P_ADAPTER_T prAdapter,
341 IN PVOID pvSetBuffer,
342 IN UINT_32 u4SetBufferLen,
343 OUT PUINT_32 pu4SetInfoLen
347 wlanoidSetUApsdParam (
348 IN P_ADAPTER_T prAdapter,
349 IN PVOID pvSetBuffer,
350 IN UINT_32 u4SetBufferLen,
351 OUT PUINT_32 pu4SetInfoLen
355 wlanoidQueryP2pPowerSaveProfile (
356 IN P_ADAPTER_T prAdapter,
357 IN PVOID pvQueryBuffer,
358 IN UINT_32 u4QueryBufferLen,
359 OUT PUINT_32 pu4QueryInfoLen
363 wlanoidSetP2pPowerSaveProfile (
364 IN P_ADAPTER_T prAdapter,
365 IN PVOID pvSetBuffer,
366 IN UINT_32 u4SetBufferLen,
367 OUT PUINT_32 pu4SetInfoLen
371 wlanoidSetP2pSetNetworkAddress (
372 IN P_ADAPTER_T prAdapter,
373 IN PVOID pvSetBuffer,
374 IN UINT_32 u4SetBufferLen,
375 OUT PUINT_32 pu4SetInfoLen
379 wlanoidQueryP2pOpChannel(
380 IN P_ADAPTER_T prAdapter,
381 IN PVOID pvQueryBuffer,
382 IN UINT_32 u4QueryBufferLen,
383 OUT PUINT_32 pu4QueryInfoLen
387 wlanoidQueryP2pVersion(
388 IN P_ADAPTER_T prAdapter,
389 IN PVOID pvQueryBuffer,
390 IN UINT_32 u4QueryBufferLen,
391 OUT PUINT_32 pu4QueryInfoLen
395 wlanoidSetP2pSupplicantVersion(
396 IN P_ADAPTER_T prAdapter,
397 IN PVOID pvSetBuffer,
398 IN UINT_32 u4SetBufferLen,
399 OUT PUINT_32 pu4SetInfoLen
402 #if CFG_SUPPORT_P2P_RSSI_QUERY
405 IN P_ADAPTER_T prAdapter,
406 IN PVOID pvQueryBuffer,
407 IN UINT_32 u4QueryBufferLen,
408 OUT PUINT_32 pu4QueryInfoLen
413 /*--------------------------------------------------------------*/
414 /* Callbacks for event indication */
415 /*--------------------------------------------------------------*/
417 /*******************************************************************************
419 ********************************************************************************
423 #endif /* _WLAN_P2P_H */