4dc0a46a81a38b89622a8947b6dbee0954bb9b57
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931 / 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 #endif
217
218
219 /*******************************************************************************
220 *                           P R I V A T E   D A T A
221 ********************************************************************************
222 */
223
224 /*******************************************************************************
225 *                                 M A C R O S
226 ********************************************************************************
227 */
228
229 /*******************************************************************************
230 *                   F U N C T I O N   D E C L A R A T I O N S
231 ********************************************************************************
232 */
233
234 /*--------------------------------------------------------------*/
235 /* Routines to handle command                                   */
236 /*--------------------------------------------------------------*/
237 WLAN_STATUS
238 wlanoidSetAddP2PKey(
239     IN  P_ADAPTER_T prAdapter,
240     IN  PVOID       pvSetBuffer,
241     IN  UINT_32     u4SetBufferLen,
242     OUT PUINT_32    pu4SetInfoLen
243     );
244
245 WLAN_STATUS
246 wlanoidSetRemoveP2PKey(
247     IN  P_ADAPTER_T prAdapter,
248     IN  PVOID       pvSetBuffer,
249     IN  UINT_32     u4SetBufferLen,
250     OUT PUINT_32    pu4SetInfoLen
251     );
252
253 WLAN_STATUS
254 wlanoidSetNetworkAddress(
255     IN  P_ADAPTER_T prAdapter,
256     IN  PVOID       pvSetBuffer,
257     IN  UINT_32     u4SetBufferLen,
258     OUT PUINT_32    pu4SetInfoLen
259     );
260
261 WLAN_STATUS
262 wlanoidSetP2PMulticastList(
263     IN  P_ADAPTER_T prAdapter,
264     IN  PVOID       pvSetBuffer,
265     IN  UINT_32     u4SetBufferLen,
266     OUT PUINT_32    pu4SetInfoLen
267     );
268
269 /*--------------------------------------------------------------*/
270 /* Service Discovery Subroutines                                */
271 /*--------------------------------------------------------------*/
272 WLAN_STATUS
273 wlanoidSendP2PSDRequest(
274     IN  P_ADAPTER_T prAdapter,
275     IN  PVOID       pvSetBuffer,
276     IN  UINT_32     u4SetBufferLen,
277     OUT PUINT_32    pu4SetInfoLen
278     );
279
280 WLAN_STATUS
281 wlanoidSendP2PSDResponse(
282     IN  P_ADAPTER_T prAdapter,
283     IN  PVOID       pvSetBuffer,
284     IN  UINT_32     u4SetBufferLen,
285     OUT PUINT_32    pu4SetInfoLen
286     );
287
288 WLAN_STATUS
289 wlanoidGetP2PSDRequest(
290     IN  P_ADAPTER_T prAdapter,
291     IN  PVOID       pvSetBuffer,
292     IN  UINT_32     u4SetBufferLen,
293     OUT PUINT_32    pu4SetInfoLen
294     );
295
296 WLAN_STATUS
297 wlanoidGetP2PSDResponse(
298     IN  P_ADAPTER_T prAdapter,
299     IN  PVOID       pvQueryBuffer,
300     IN  UINT_32     u4QueryBufferLen,
301     OUT PUINT_32    puQueryInfoLen
302     );
303
304 WLAN_STATUS
305 wlanoidSetP2PTerminateSDPhase(
306     IN  P_ADAPTER_T prAdapter,
307     IN  PVOID       pvQueryBuffer,
308     IN  UINT_32     u4QueryBufferLen,
309     OUT PUINT_32    pu4QueryInfoLen
310     );
311
312 #if CFG_SUPPORT_ANTI_PIRACY
313 WLAN_STATUS
314 wlanoidSetSecCheckRequest(
315     IN  P_ADAPTER_T prAdapter,
316     IN  PVOID       pvSetBuffer,
317     IN  UINT_32     u4SetBufferLen,
318     OUT PUINT_32    pu4SetInfoLen
319     );
320
321 WLAN_STATUS
322 wlanoidGetSecCheckResponse(
323     IN  P_ADAPTER_T prAdapter,
324     IN  PVOID       pvQueryBuffer,
325     IN  UINT_32     u4QueryBufferLen,
326     OUT PUINT_32    pu4QueryInfoLen
327     );
328 #endif
329
330 WLAN_STATUS
331 wlanoidSetNoaParam (
332     IN  P_ADAPTER_T       prAdapter,
333     IN  PVOID             pvSetBuffer,
334     IN  UINT_32           u4SetBufferLen,
335     OUT PUINT_32          pu4SetInfoLen
336     );
337
338 WLAN_STATUS
339 wlanoidSetOppPsParam (
340     IN  P_ADAPTER_T       prAdapter,
341     IN  PVOID             pvSetBuffer,
342     IN  UINT_32           u4SetBufferLen,
343     OUT PUINT_32          pu4SetInfoLen
344     );
345
346 WLAN_STATUS
347 wlanoidSetUApsdParam (
348     IN  P_ADAPTER_T       prAdapter,
349     IN  PVOID             pvSetBuffer,
350     IN  UINT_32           u4SetBufferLen,
351     OUT PUINT_32          pu4SetInfoLen
352     );
353
354 WLAN_STATUS
355 wlanoidQueryP2pPowerSaveProfile (
356     IN  P_ADAPTER_T prAdapter,
357     IN  PVOID       pvQueryBuffer,
358     IN  UINT_32     u4QueryBufferLen,
359     OUT PUINT_32    pu4QueryInfoLen
360     );
361
362 WLAN_STATUS
363 wlanoidSetP2pPowerSaveProfile (
364     IN  P_ADAPTER_T prAdapter,
365     IN  PVOID       pvSetBuffer,
366     IN  UINT_32     u4SetBufferLen,
367     OUT PUINT_32    pu4SetInfoLen
368     );
369
370 WLAN_STATUS
371 wlanoidSetP2pSetNetworkAddress (
372     IN  P_ADAPTER_T prAdapter,
373     IN  PVOID       pvSetBuffer,
374     IN  UINT_32     u4SetBufferLen,
375     OUT PUINT_32    pu4SetInfoLen
376     );
377
378 WLAN_STATUS
379 wlanoidQueryP2pOpChannel(
380     IN P_ADAPTER_T prAdapter,
381     IN PVOID pvQueryBuffer,
382     IN UINT_32 u4QueryBufferLen,
383     OUT PUINT_32 pu4QueryInfoLen
384     );
385
386 WLAN_STATUS
387 wlanoidQueryP2pVersion(
388     IN P_ADAPTER_T prAdapter,
389     IN PVOID pvQueryBuffer,
390     IN UINT_32 u4QueryBufferLen,
391     OUT PUINT_32 pu4QueryInfoLen
392     );
393
394 WLAN_STATUS
395 wlanoidSetP2pSupplicantVersion(
396     IN  P_ADAPTER_T       prAdapter,
397     IN  PVOID             pvSetBuffer,
398     IN  UINT_32           u4SetBufferLen,
399     OUT PUINT_32          pu4SetInfoLen
400     );
401
402 #if CFG_SUPPORT_P2P_RSSI_QUERY
403 WLAN_STATUS
404 wlanoidQueryP2pRssi(
405     IN P_ADAPTER_T prAdapter,
406     IN PVOID pvQueryBuffer,
407     IN UINT_32 u4QueryBufferLen,
408     OUT PUINT_32 pu4QueryInfoLen
409     );
410 #endif
411
412
413 /*--------------------------------------------------------------*/
414 /* Callbacks for event indication                               */
415 /*--------------------------------------------------------------*/
416
417 /*******************************************************************************
418 *                              F U N C T I O N S
419 ********************************************************************************
420 */
421
422 #endif
423 #endif /* _WLAN_P2P_H */
424