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;
218 typedef struct _NL80211_DRIVER_WFD_PARAMS {
219 NL80211_DRIVER_TEST_PARAMS hdr;
222 UINT_8 WfdCoupleSinkStatus;
223 UINT_8 WfdSessionAvailable;
226 UINT_16 WfdControlPort;
227 UINT_16 WfdMaximumTp;
228 UINT_16 WfdExtendCap;
229 UINT_8 WfdCoupleSinkAddress[MAC_ADDR_LEN];
230 UINT_8 WfdAssociatedBssid[MAC_ADDR_LEN];
231 UINT_8 WfdVideoIp[4];
232 UINT_8 WfdAudioIp[4];
233 UINT_16 WfdVideoPort;
234 UINT_16 WfdAudioPort;
238 UINT_8 WfdSessionInformationIE[24*8]; // Include Subelement ID, length
239 UINT_16 WfdSessionInformationIELen;
240 UINT_8 aucReserved1[2];
241 UINT_8 aucWfdPrimarySinkMac[MAC_ADDR_LEN];
242 UINT_8 aucWfdSecondarySinkMac[MAC_ADDR_LEN];
243 UINT_32 WfdAdvanceFlag;
244 UINT_8 aucWfdLocalIp[4];
245 UINT_8 aucReserved2[64];
246 UINT_8 aucReserved3[64];
247 UINT_8 aucReserved4[64];
248 }NL80211_DRIVER_WFD_PARAMS, *P_NL80211_DRIVER_WFD_PARAMS;
256 /*******************************************************************************
257 * P R I V A T E D A T A
258 ********************************************************************************
261 /*******************************************************************************
263 ********************************************************************************
266 /*******************************************************************************
267 * F U N C T I O N D E C L A R A T I O N S
268 ********************************************************************************
271 /*--------------------------------------------------------------*/
272 /* Routines to handle command */
273 /*--------------------------------------------------------------*/
276 IN P_ADAPTER_T prAdapter,
277 IN PVOID pvSetBuffer,
278 IN UINT_32 u4SetBufferLen,
279 OUT PUINT_32 pu4SetInfoLen
283 wlanoidSetRemoveP2PKey(
284 IN P_ADAPTER_T prAdapter,
285 IN PVOID pvSetBuffer,
286 IN UINT_32 u4SetBufferLen,
287 OUT PUINT_32 pu4SetInfoLen
291 wlanoidSetNetworkAddress(
292 IN P_ADAPTER_T prAdapter,
293 IN PVOID pvSetBuffer,
294 IN UINT_32 u4SetBufferLen,
295 OUT PUINT_32 pu4SetInfoLen
299 wlanoidSetP2PMulticastList(
300 IN P_ADAPTER_T prAdapter,
301 IN PVOID pvSetBuffer,
302 IN UINT_32 u4SetBufferLen,
303 OUT PUINT_32 pu4SetInfoLen
306 /*--------------------------------------------------------------*/
307 /* Service Discovery Subroutines */
308 /*--------------------------------------------------------------*/
310 wlanoidSendP2PSDRequest(
311 IN P_ADAPTER_T prAdapter,
312 IN PVOID pvSetBuffer,
313 IN UINT_32 u4SetBufferLen,
314 OUT PUINT_32 pu4SetInfoLen
318 wlanoidSendP2PSDResponse(
319 IN P_ADAPTER_T prAdapter,
320 IN PVOID pvSetBuffer,
321 IN UINT_32 u4SetBufferLen,
322 OUT PUINT_32 pu4SetInfoLen
326 wlanoidGetP2PSDRequest(
327 IN P_ADAPTER_T prAdapter,
328 IN PVOID pvSetBuffer,
329 IN UINT_32 u4SetBufferLen,
330 OUT PUINT_32 pu4SetInfoLen
334 wlanoidGetP2PSDResponse(
335 IN P_ADAPTER_T prAdapter,
336 IN PVOID pvQueryBuffer,
337 IN UINT_32 u4QueryBufferLen,
338 OUT PUINT_32 puQueryInfoLen
342 wlanoidSetP2PTerminateSDPhase(
343 IN P_ADAPTER_T prAdapter,
344 IN PVOID pvQueryBuffer,
345 IN UINT_32 u4QueryBufferLen,
346 OUT PUINT_32 pu4QueryInfoLen
349 #if CFG_SUPPORT_ANTI_PIRACY
351 wlanoidSetSecCheckRequest(
352 IN P_ADAPTER_T prAdapter,
353 IN PVOID pvSetBuffer,
354 IN UINT_32 u4SetBufferLen,
355 OUT PUINT_32 pu4SetInfoLen
359 wlanoidGetSecCheckResponse(
360 IN P_ADAPTER_T prAdapter,
361 IN PVOID pvQueryBuffer,
362 IN UINT_32 u4QueryBufferLen,
363 OUT PUINT_32 pu4QueryInfoLen
369 IN P_ADAPTER_T prAdapter,
370 IN PVOID pvSetBuffer,
371 IN UINT_32 u4SetBufferLen,
372 OUT PUINT_32 pu4SetInfoLen
376 wlanoidSetOppPsParam (
377 IN P_ADAPTER_T prAdapter,
378 IN PVOID pvSetBuffer,
379 IN UINT_32 u4SetBufferLen,
380 OUT PUINT_32 pu4SetInfoLen
384 wlanoidSetUApsdParam (
385 IN P_ADAPTER_T prAdapter,
386 IN PVOID pvSetBuffer,
387 IN UINT_32 u4SetBufferLen,
388 OUT PUINT_32 pu4SetInfoLen
392 wlanoidQueryP2pPowerSaveProfile (
393 IN P_ADAPTER_T prAdapter,
394 IN PVOID pvQueryBuffer,
395 IN UINT_32 u4QueryBufferLen,
396 OUT PUINT_32 pu4QueryInfoLen
400 wlanoidSetP2pPowerSaveProfile (
401 IN P_ADAPTER_T prAdapter,
402 IN PVOID pvSetBuffer,
403 IN UINT_32 u4SetBufferLen,
404 OUT PUINT_32 pu4SetInfoLen
408 wlanoidSetP2pSetNetworkAddress (
409 IN P_ADAPTER_T prAdapter,
410 IN PVOID pvSetBuffer,
411 IN UINT_32 u4SetBufferLen,
412 OUT PUINT_32 pu4SetInfoLen
416 wlanoidQueryP2pOpChannel(
417 IN P_ADAPTER_T prAdapter,
418 IN PVOID pvQueryBuffer,
419 IN UINT_32 u4QueryBufferLen,
420 OUT PUINT_32 pu4QueryInfoLen
424 wlanoidQueryP2pVersion(
425 IN P_ADAPTER_T prAdapter,
426 IN PVOID pvQueryBuffer,
427 IN UINT_32 u4QueryBufferLen,
428 OUT PUINT_32 pu4QueryInfoLen
432 wlanoidSetP2pSupplicantVersion(
433 IN P_ADAPTER_T prAdapter,
434 IN PVOID pvSetBuffer,
435 IN UINT_32 u4SetBufferLen,
436 OUT PUINT_32 pu4SetInfoLen
440 wlanoidSetP2pWPSmode (
441 IN P_ADAPTER_T prAdapter,
442 IN PVOID pvQueryBuffer,
443 IN UINT_32 u4QueryBufferLen,
444 OUT PUINT_32 pu4QueryInfoLen
447 #if CFG_SUPPORT_P2P_RSSI_QUERY
450 IN P_ADAPTER_T prAdapter,
451 IN PVOID pvQueryBuffer,
452 IN UINT_32 u4QueryBufferLen,
453 OUT PUINT_32 pu4QueryInfoLen
458 /*--------------------------------------------------------------*/
459 /* Callbacks for event indication */
460 /*--------------------------------------------------------------*/
462 /*******************************************************************************
464 ********************************************************************************
468 #endif /* _WLAN_P2P_H */