support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / combo_mt66xx / mt6620 / wlan / include / wlan_p2p.h
1 /*
2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/wlan_p2p.h#3 $
3 */
4
5 /*! \file   "wlan_p2p.h"
6     \brief This file contains the declairations of Wi-Fi Direct command 
7            processing routines for MediaTek Inc. 802.11 Wireless LAN Adapters.
8 */
9
10
11
12 /*
13 ** $Log: wlan_p2p.h $
14  *
15  * 07 17 2012 yuche.tsai
16  * NULL
17  * Compile no error before trial run.
18  *
19  * 11 19 2011 yuche.tsai
20  * NULL
21  * Add RSSI support for P2P network.
22  *
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.
27  *
28  * 10 18 2011 yuche.tsai
29  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
30  * Support Channle Query.
31  *
32  * 10 18 2011 yuche.tsai
33  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
34  * New 2.1 branch
35
36  *
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
40  *
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
44  *
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
48  *
49  * 03 07 2011 wh.su
50  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
51  * rename the define to anti_pviracy.
52  *
53  * 03 02 2011 wh.su
54  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
55  * Add Security check related code.
56  *
57  * 01 05 2011 cp.wu
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
60  *
61  * 12 22 2010 cp.wu
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
65  *
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
69  *
70  * 08 16 2010 cp.wu
71  * NULL
72  * add subroutines for P2P to set multicast list.
73  *
74  * 08 16 2010 george.huang
75  * NULL
76  * support wlanoidSetP2pPowerSaveProfile() in P2P
77  *
78  * 08 16 2010 george.huang
79  * NULL
80  * Support wlanoidSetNetworkAddress() for P2P
81  *
82  * 07 08 2010 cp.wu
83  *
84  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
85  *
86  * 06 06 2010 kevin.huang
87  * [WPD00003832][MT6620 5931] Create driver base
88  * [MT6620 5931] Create driver base
89  *
90  * 05 17 2010 cp.wu
91  * [WPD00001943]Create WiFi test driver framework on WinXP
92  * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
93  *
94
95  *
96 **
97 */
98
99 #ifndef _WLAN_P2P_H
100 #define _WLAN_P2P_H
101
102 /*******************************************************************************
103 *                         C O M P I L E R   F L A G S
104 ********************************************************************************
105 */
106
107 /*******************************************************************************
108 *                    E X T E R N A L   R E F E R E N C E S
109 ********************************************************************************
110 */
111
112 #if CFG_ENABLE_WIFI_DIRECT
113 /*******************************************************************************
114 *                              C O N S T A N T S
115 ********************************************************************************
116 */
117
118 /*******************************************************************************
119 *                            P U B L I C   D A T A
120 ********************************************************************************
121 */
122
123 /* Service Discovery */
124 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
125     PARAM_MAC_ADDRESS   rReceiverAddr;
126     UINT_8              fgNeedTxDoneIndication;
127     UINT_8              ucChannelNum;
128     UINT_16                 u2PacketLength;
129     UINT_8              aucPacketContent[0]; /*native 802.11*/
130 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
131
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;
137
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;
145
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;
153
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;
160
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;
168
169
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;
173
174
175 /*! \brief Key mapping of BSSID */
176 typedef struct _P2P_PARAM_KEY_T
177 {
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;
185
186 #if CONFIG_NL80211_TESTMODE
187
188 typedef struct _NL80211_DRIVER_TEST_PRE_PARAMS {
189         UINT_16 idx_mode;
190         UINT_16 idx;
191         UINT_32 value;
192 } NL80211_DRIVER_TEST_PRE_PARAMS, *P_NL80211_DRIVER_TEST_PRE_PARAMS;
193
194
195 typedef struct _NL80211_DRIVER_TEST_PARAMS {
196         UINT_32  index;
197         UINT_32  buflen;
198 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
199
200
201 /* P2P Sigma*/
202 typedef struct _NL80211_DRIVER_P2P_SIGMA_PARAMS {
203     NL80211_DRIVER_TEST_PARAMS hdr;
204     UINT_32  idx;
205     UINT_32  value;
206 }NL80211_DRIVER_P2P_SIGMA_PARAMS, *P_NL80211_DRIVER_P2P_SIGMA_PARAMS;
207
208
209 /* Hotspot Client Management */
210 typedef struct _NL80211_DRIVER_hotspot_block_PARAMS {
211     NL80211_DRIVER_TEST_PARAMS hdr;
212     UINT_8   ucblocked;
213     UINT_8   aucBssid[MAC_ADDR_LEN];
214 }NL80211_DRIVER_hotspot_block_PARAMS, *P_NL80211_DRIVER_hotspot_block_PARAMS;
215
216
217 #if CFG_SUPPORT_WFD
218 typedef struct _NL80211_DRIVER_WFD_PARAMS {
219     NL80211_DRIVER_TEST_PARAMS hdr;
220     UINT_32  WfdCmdType;
221     UINT_8       WfdEnable;
222     UINT_8       WfdCoupleSinkStatus;
223     UINT_8   WfdSessionAvailable;
224     UINT_8   WfdSigmaMode;
225     UINT_16  WfdDevInfo;
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;
235     UINT_32  WfdFlag;
236     UINT_32  WfdPolicy;
237     UINT_32  WfdState;
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;
249 #endif
250
251
252
253 #endif
254
255
256 /*******************************************************************************
257 *                           P R I V A T E   D A T A
258 ********************************************************************************
259 */
260
261 /*******************************************************************************
262 *                                 M A C R O S
263 ********************************************************************************
264 */
265
266 /*******************************************************************************
267 *                   F U N C T I O N   D E C L A R A T I O N S
268 ********************************************************************************
269 */
270
271 /*--------------------------------------------------------------*/
272 /* Routines to handle command                                   */
273 /*--------------------------------------------------------------*/
274 WLAN_STATUS
275 wlanoidSetAddP2PKey(
276     IN  P_ADAPTER_T prAdapter,
277     IN  PVOID       pvSetBuffer,
278     IN  UINT_32     u4SetBufferLen,
279     OUT PUINT_32    pu4SetInfoLen
280     );
281
282 WLAN_STATUS
283 wlanoidSetRemoveP2PKey(
284     IN  P_ADAPTER_T prAdapter,
285     IN  PVOID       pvSetBuffer,
286     IN  UINT_32     u4SetBufferLen,
287     OUT PUINT_32    pu4SetInfoLen
288     );
289
290 WLAN_STATUS
291 wlanoidSetNetworkAddress(
292     IN  P_ADAPTER_T prAdapter,
293     IN  PVOID       pvSetBuffer,
294     IN  UINT_32     u4SetBufferLen,
295     OUT PUINT_32    pu4SetInfoLen
296     );
297
298 WLAN_STATUS
299 wlanoidSetP2PMulticastList(
300     IN  P_ADAPTER_T prAdapter,
301     IN  PVOID       pvSetBuffer,
302     IN  UINT_32     u4SetBufferLen,
303     OUT PUINT_32    pu4SetInfoLen
304     );
305
306 /*--------------------------------------------------------------*/
307 /* Service Discovery Subroutines                                */
308 /*--------------------------------------------------------------*/
309 WLAN_STATUS
310 wlanoidSendP2PSDRequest(
311     IN  P_ADAPTER_T prAdapter,
312     IN  PVOID       pvSetBuffer,
313     IN  UINT_32     u4SetBufferLen,
314     OUT PUINT_32    pu4SetInfoLen
315     );
316
317 WLAN_STATUS
318 wlanoidSendP2PSDResponse(
319     IN  P_ADAPTER_T prAdapter,
320     IN  PVOID       pvSetBuffer,
321     IN  UINT_32     u4SetBufferLen,
322     OUT PUINT_32    pu4SetInfoLen
323     );
324
325 WLAN_STATUS
326 wlanoidGetP2PSDRequest(
327     IN  P_ADAPTER_T prAdapter,
328     IN  PVOID       pvSetBuffer,
329     IN  UINT_32     u4SetBufferLen,
330     OUT PUINT_32    pu4SetInfoLen
331     );
332
333 WLAN_STATUS
334 wlanoidGetP2PSDResponse(
335     IN  P_ADAPTER_T prAdapter,
336     IN  PVOID       pvQueryBuffer,
337     IN  UINT_32     u4QueryBufferLen,
338     OUT PUINT_32    puQueryInfoLen
339     );
340
341 WLAN_STATUS
342 wlanoidSetP2PTerminateSDPhase(
343     IN  P_ADAPTER_T prAdapter,
344     IN  PVOID       pvQueryBuffer,
345     IN  UINT_32     u4QueryBufferLen,
346     OUT PUINT_32    pu4QueryInfoLen
347     );
348
349 #if CFG_SUPPORT_ANTI_PIRACY
350 WLAN_STATUS
351 wlanoidSetSecCheckRequest(
352     IN  P_ADAPTER_T prAdapter,
353     IN  PVOID       pvSetBuffer,
354     IN  UINT_32     u4SetBufferLen,
355     OUT PUINT_32    pu4SetInfoLen
356     );
357
358 WLAN_STATUS
359 wlanoidGetSecCheckResponse(
360     IN  P_ADAPTER_T prAdapter,
361     IN  PVOID       pvQueryBuffer,
362     IN  UINT_32     u4QueryBufferLen,
363     OUT PUINT_32    pu4QueryInfoLen
364     );
365 #endif
366
367 WLAN_STATUS
368 wlanoidSetNoaParam (
369     IN  P_ADAPTER_T       prAdapter,
370     IN  PVOID             pvSetBuffer,
371     IN  UINT_32           u4SetBufferLen,
372     OUT PUINT_32          pu4SetInfoLen
373     );
374
375 WLAN_STATUS
376 wlanoidSetOppPsParam (
377     IN  P_ADAPTER_T       prAdapter,
378     IN  PVOID             pvSetBuffer,
379     IN  UINT_32           u4SetBufferLen,
380     OUT PUINT_32          pu4SetInfoLen
381     );
382
383 WLAN_STATUS
384 wlanoidSetUApsdParam (
385     IN  P_ADAPTER_T       prAdapter,
386     IN  PVOID             pvSetBuffer,
387     IN  UINT_32           u4SetBufferLen,
388     OUT PUINT_32          pu4SetInfoLen
389     );
390
391 WLAN_STATUS
392 wlanoidQueryP2pPowerSaveProfile (
393     IN  P_ADAPTER_T prAdapter,
394     IN  PVOID       pvQueryBuffer,
395     IN  UINT_32     u4QueryBufferLen,
396     OUT PUINT_32    pu4QueryInfoLen
397     );
398
399 WLAN_STATUS
400 wlanoidSetP2pPowerSaveProfile (
401     IN  P_ADAPTER_T prAdapter,
402     IN  PVOID       pvSetBuffer,
403     IN  UINT_32     u4SetBufferLen,
404     OUT PUINT_32    pu4SetInfoLen
405     );
406
407 WLAN_STATUS
408 wlanoidSetP2pSetNetworkAddress (
409     IN  P_ADAPTER_T prAdapter,
410     IN  PVOID       pvSetBuffer,
411     IN  UINT_32     u4SetBufferLen,
412     OUT PUINT_32    pu4SetInfoLen
413     );
414
415 WLAN_STATUS
416 wlanoidQueryP2pOpChannel(
417     IN P_ADAPTER_T prAdapter,
418     IN PVOID pvQueryBuffer,
419     IN UINT_32 u4QueryBufferLen,
420     OUT PUINT_32 pu4QueryInfoLen
421     );
422
423 WLAN_STATUS
424 wlanoidQueryP2pVersion(
425     IN P_ADAPTER_T prAdapter,
426     IN PVOID pvQueryBuffer,
427     IN UINT_32 u4QueryBufferLen,
428     OUT PUINT_32 pu4QueryInfoLen
429     );
430
431 WLAN_STATUS
432 wlanoidSetP2pSupplicantVersion(
433     IN  P_ADAPTER_T       prAdapter,
434     IN  PVOID             pvSetBuffer,
435     IN  UINT_32           u4SetBufferLen,
436     OUT PUINT_32          pu4SetInfoLen
437     );
438
439 WLAN_STATUS
440 wlanoidSetP2pWPSmode (
441     IN  P_ADAPTER_T prAdapter,
442     IN  PVOID       pvQueryBuffer,
443     IN  UINT_32     u4QueryBufferLen,
444     OUT PUINT_32    pu4QueryInfoLen
445     );
446
447 #if CFG_SUPPORT_P2P_RSSI_QUERY
448 WLAN_STATUS
449 wlanoidQueryP2pRssi(
450     IN P_ADAPTER_T prAdapter,
451     IN PVOID pvQueryBuffer,
452     IN UINT_32 u4QueryBufferLen,
453     OUT PUINT_32 pu4QueryInfoLen
454     );
455 #endif
456
457
458 /*--------------------------------------------------------------*/
459 /* Callbacks for event indication                               */
460 /*--------------------------------------------------------------*/
461
462 /*******************************************************************************
463 *                              F U N C T I O N S
464 ********************************************************************************
465 */
466
467 #endif
468 #endif /* _WLAN_P2P_H */
469