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
{
177 UINT_32 u4Length
; /*!< Length of structure */
178 UINT_32 u4KeyIndex
; /*!< KeyID */
179 UINT_32 u4KeyLength
; /*!< Key length in bytes */
180 PARAM_MAC_ADDRESS arBSSID
; /*!< MAC address */
181 PARAM_KEY_RSC rKeyRSC
;
182 UINT_8 aucKeyMaterial
[32]; /*!< Key content by above setting */
183 } P2P_PARAM_KEY_T
, *P_P2P_PARAM_KEY_T
;
185 #if CONFIG_NL80211_TESTMODE
187 typedef struct _NL80211_DRIVER_TEST_PRE_PARAMS
{
191 } NL80211_DRIVER_TEST_PRE_PARAMS
, *P_NL80211_DRIVER_TEST_PRE_PARAMS
;
194 typedef struct _NL80211_DRIVER_TEST_PARAMS
{
197 } NL80211_DRIVER_TEST_PARAMS
, *P_NL80211_DRIVER_TEST_PARAMS
;
201 typedef struct _NL80211_DRIVER_P2P_SIGMA_PARAMS
{
202 NL80211_DRIVER_TEST_PARAMS hdr
;
205 } NL80211_DRIVER_P2P_SIGMA_PARAMS
, *P_NL80211_DRIVER_P2P_SIGMA_PARAMS
;
208 /* Hotspot Client Management */
209 typedef struct _NL80211_DRIVER_HOTSPOT_BLOCK_PARAMS
{
210 NL80211_DRIVER_TEST_PARAMS hdr
;
212 UINT_8 aucBssid
[MAC_ADDR_LEN
];
213 } NL80211_DRIVER_HOTSPOT_BLOCK_PARAMS
, *P_NL80211_DRIVER_HOTSPOT_BLOCK_PARAMS
;
217 typedef struct _NL80211_DRIVER_WFD_PARAMS
{
218 NL80211_DRIVER_TEST_PARAMS hdr
;
221 UINT_8 WfdCoupleSinkStatus
;
222 UINT_8 WfdSessionAvailable
;
225 UINT_16 WfdControlPort
;
226 UINT_16 WfdMaximumTp
;
227 UINT_16 WfdExtendCap
;
228 UINT_8 WfdCoupleSinkAddress
[MAC_ADDR_LEN
];
229 UINT_8 WfdAssociatedBssid
[MAC_ADDR_LEN
];
230 UINT_8 WfdVideoIp
[4];
231 UINT_8 WfdAudioIp
[4];
232 UINT_16 WfdVideoPort
;
233 UINT_16 WfdAudioPort
;
237 UINT_8 WfdSessionInformationIE
[24 * 8]; /* Include Subelement ID, length */
238 UINT_16 WfdSessionInformationIELen
;
239 UINT_8 aucReserved1
[2];
240 UINT_8 aucWfdPrimarySinkMac
[MAC_ADDR_LEN
];
241 UINT_8 aucWfdSecondarySinkMac
[MAC_ADDR_LEN
];
242 UINT_32 WfdAdvanceFlag
;
243 UINT_8 aucWfdLocalIp
[4];
244 UINT_8 aucReserved2
[64];
245 UINT_8 aucReserved3
[64];
246 UINT_8 aucReserved4
[64];
247 } NL80211_DRIVER_WFD_PARAMS
, *P_NL80211_DRIVER_WFD_PARAMS
;
255 /*******************************************************************************
256 * P R I V A T E D A T A
257 ********************************************************************************
260 /*******************************************************************************
262 ********************************************************************************
265 /*******************************************************************************
266 * F U N C T I O N D E C L A R A T I O N S
267 ********************************************************************************
270 /*--------------------------------------------------------------*/
271 /* Routines to handle command */
272 /*--------------------------------------------------------------*/
274 wlanoidSetAddP2PKey(IN P_ADAPTER_T prAdapter
,
275 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
278 wlanoidSetRemoveP2PKey(IN P_ADAPTER_T prAdapter
,
279 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
282 wlanoidSetNetworkAddress(IN P_ADAPTER_T prAdapter
,
283 IN PVOID pvSetBuffer
,
284 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
287 wlanoidSetP2PMulticastList(IN P_ADAPTER_T prAdapter
,
288 IN PVOID pvSetBuffer
,
289 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
291 /*--------------------------------------------------------------*/
292 /* Service Discovery Subroutines */
293 /*--------------------------------------------------------------*/
295 wlanoidSendP2PSDRequest(IN P_ADAPTER_T prAdapter
,
296 IN PVOID pvSetBuffer
,
297 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
300 wlanoidSendP2PSDResponse(IN P_ADAPTER_T prAdapter
,
301 IN PVOID pvSetBuffer
,
302 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
305 wlanoidGetP2PSDRequest(IN P_ADAPTER_T prAdapter
,
306 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
309 wlanoidGetP2PSDResponse(IN P_ADAPTER_T prAdapter
,
310 IN PVOID pvQueryBuffer
,
311 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 puQueryInfoLen
);
314 wlanoidSetP2PTerminateSDPhase(IN P_ADAPTER_T prAdapter
,
315 IN PVOID pvQueryBuffer
,
316 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
318 #if CFG_SUPPORT_ANTI_PIRACY
320 wlanoidSetSecCheckRequest(IN P_ADAPTER_T prAdapter
,
321 IN PVOID pvSetBuffer
,
322 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
325 wlanoidGetSecCheckResponse(IN P_ADAPTER_T prAdapter
,
326 IN PVOID pvQueryBuffer
,
327 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
331 wlanoidSetNoaParam(IN P_ADAPTER_T prAdapter
,
332 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
335 wlanoidSetOppPsParam(IN P_ADAPTER_T prAdapter
,
336 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
339 wlanoidSetUApsdParam(IN P_ADAPTER_T prAdapter
,
340 IN PVOID pvSetBuffer
, IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
343 wlanoidQueryP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter
,
344 IN PVOID pvQueryBuffer
,
345 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
348 wlanoidSetP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter
,
349 IN PVOID pvSetBuffer
,
350 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
353 wlanoidSetP2pSetNetworkAddress(IN P_ADAPTER_T prAdapter
,
354 IN PVOID pvSetBuffer
,
355 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
358 wlanoidQueryP2pOpChannel(IN P_ADAPTER_T prAdapter
,
359 IN PVOID pvQueryBuffer
,
360 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
363 wlanoidQueryP2pVersion(IN P_ADAPTER_T prAdapter
,
364 IN PVOID pvQueryBuffer
,
365 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
368 wlanoidSetP2pSupplicantVersion(IN P_ADAPTER_T prAdapter
,
369 IN PVOID pvSetBuffer
,
370 IN UINT_32 u4SetBufferLen
, OUT PUINT_32 pu4SetInfoLen
);
373 wlanoidSetP2pWPSmode(IN P_ADAPTER_T prAdapter
,
374 IN PVOID pvQueryBuffer
,
375 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
377 #if CFG_SUPPORT_P2P_RSSI_QUERY
379 wlanoidQueryP2pRssi(IN P_ADAPTER_T prAdapter
,
380 IN PVOID pvQueryBuffer
,
381 IN UINT_32 u4QueryBufferLen
, OUT PUINT_32 pu4QueryInfoLen
);
385 /*--------------------------------------------------------------*/
386 /* Callbacks for event indication */
387 /*--------------------------------------------------------------*/
389 /*******************************************************************************
391 ********************************************************************************
395 #endif /* _WLAN_P2P_H */