add MTK-combo-module,continue with commit 17f39ed917874e77e80411f33faba1b7ee8138c8
[firefly-linux-kernel-4.4.55.git] / drivers / mtk_wcn_combo / drv_wlan / p2p / include / wlan_p2p.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/WIFI_P2P_DRIVER_V2_2/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 * Copyright (c) 2007 MediaTek Inc.
12 *
13 * All rights reserved. Copying, compilation, modification, distribution
14 * or any other use whatsoever of this material is strictly prohibited
15 * except in accordance with a Software License Agreement with
16 * MediaTek Inc.
17 ********************************************************************************
18 */
19
20 /*******************************************************************************
21 * LEGAL DISCLAIMER
22 *
23 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
24 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
25 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
26 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
27 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
29 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
30 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
31 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
32 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
33 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
34 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
35 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
36 *
37 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
38 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
39 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
40 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
41 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
42 *
43 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
44 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
45 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
46 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
47 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
48 * (ICC).
49 ********************************************************************************
50 */
51
52 /*
53 ** $Log: wlan_p2p.h $
54  *
55  * 02 23 2012 chinglan.wang
56  * [ALPS00240621] [Wifi P2P]Run Sigma tool of A69. Always run fail on 7.1.3. sniffer check  Sta-IsActive-No-Frames-With-PowerMgmt-1
57  * .
58  *
59  * 01 17 2012 wh.su
60  * [WCXRP00001173] [MT6620 Wi-Fi][Driver] Adding the ICS Tethering WPA2-PSK supporting
61  * adding the code to fix the add key function.
62  *
63  * 01 13 2012 yuche.tsai
64  * NULL
65  * WiFi Hot Spot Tethering for ICS ALPHA testing version.
66  *
67  * 11 19 2011 yuche.tsai
68  * NULL
69  * Add RSSI support for P2P network.
70  *
71  * 11 08 2011 yuche.tsai
72  * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version query & set support for service discovery version check.
73  * Add support for driver version query & p2p supplicant verseion set.
74  * For new service discovery mechanism sync.
75  *
76  * 10 18 2011 yuche.tsai
77  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
78  * Support Channle Query.
79  *
80  * 10 18 2011 yuche.tsai
81  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
82  * New 2.1 branch
83
84  *
85  * 04 27 2011 george.huang
86  * [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
87  * Support P2P ARP filter setting on early suspend/ late resume
88  *
89  * 04 08 2011 george.huang
90  * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
91  * separate settings of P2P and AIS
92  *
93  * 03 22 2011 george.huang
94  * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
95  * link with supplicant commands
96  *
97  * 03 19 2011 terry.wu
98  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
99  * create V2.0 p2p driver release based on label "MT6620_WIFI_P2P_DRIVER_V2_0_2100_0319_2011" from main trunk.
100  *
101  * 03 07 2011 wh.su
102  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
103  * rename the define to anti_pviracy.
104  *
105  * 03 02 2011 wh.su
106  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
107  * Add Security check related code.
108  *
109  * 01 05 2011 cp.wu
110  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
111  * ioctl implementations for P2P Service Discovery
112  *
113  * 12 22 2010 cp.wu
114  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
115  * 1. header file restructure for more clear module isolation
116  * 2. add function interface definition for implementing Service Discovery callbacks
117  *
118  * 09 21 2010 kevin.huang
119  * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
120  * Isolate P2P related function for Hardware Software Bundle
121  *
122  * 08 16 2010 cp.wu
123  * NULL
124  * add subroutines for P2P to set multicast list.
125  *
126  * 08 16 2010 george.huang
127  * NULL
128  * support wlanoidSetP2pPowerSaveProfile() in P2P
129  *
130  * 08 16 2010 george.huang
131  * NULL
132  * Support wlanoidSetNetworkAddress() for P2P
133  *
134  * 07 08 2010 cp.wu
135  *
136  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
137  *
138  * 06 06 2010 kevin.huang
139  * [WPD00003832][MT6620 5931] Create driver base
140  * [MT6620 5931] Create driver base
141  *
142  * 05 17 2010 cp.wu
143  * [WPD00001943]Create WiFi test driver framework on WinXP
144  * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
145  *
146
147  *
148 **
149 */
150
151 #ifndef _WLAN_P2P_H
152 #define _WLAN_P2P_H
153
154 /*******************************************************************************
155 *                         C O M P I L E R   F L A G S
156 ********************************************************************************
157 */
158
159 /*******************************************************************************
160 *                    E X T E R N A L   R E F E R E N C E S
161 ********************************************************************************
162 */
163
164 #if CFG_ENABLE_WIFI_DIRECT
165 /*******************************************************************************
166 *                              C O N S T A N T S
167 ********************************************************************************
168 */
169
170 /*******************************************************************************
171 *                            P U B L I C   D A T A
172 ********************************************************************************
173 */
174
175 /* Service Discovery */
176 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
177     PARAM_MAC_ADDRESS   rReceiverAddr;
178     UINT_8              fgNeedTxDoneIndication;
179     UINT_8              ucChannelNum;
180     UINT_16                 u2PacketLength;
181     UINT_8              aucPacketContent[0]; /*native 802.11*/
182 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
183
184 typedef struct _PARAM_P2P_GET_SD_REQUEST {
185     PARAM_MAC_ADDRESS   rTransmitterAddr;
186     UINT_16                 u2PacketLength;
187     UINT_8              aucPacketContent[0]; /*native 802.11*/
188 } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
189
190 typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
191     PARAM_MAC_ADDRESS   rTransmitterAddr;
192     UINT_16                 u2PacketLength;
193     UINT_8                  ucChannelNum;            /* Channel Number Where SD Request is received. */
194     UINT_8                  ucSeqNum;                   /* Get SD Request by sequence number. */
195     UINT_8              aucPacketContent[0]; /*native 802.11*/
196 } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
197
198 typedef struct _PARAM_P2P_SEND_SD_REQUEST {
199     PARAM_MAC_ADDRESS   rReceiverAddr;
200     UINT_8              fgNeedTxDoneIndication;
201     UINT_8              ucVersionNum;               /* Indicate the Service Discovery Supplicant Version. */
202     UINT_16             u2PacketLength;
203     UINT_8              aucPacketContent[0]; /*native 802.11*/
204 } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
205
206 /* Service Discovery 1.0. */
207 typedef struct _PARAM_P2P_GET_SD_RESPONSE {
208     PARAM_MAC_ADDRESS   rTransmitterAddr;
209     UINT_16             u2PacketLength;
210     UINT_8              aucPacketContent[0]; /*native 802.11*/
211 } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
212
213 /* Service Discovery 2.0. */
214 typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
215     PARAM_MAC_ADDRESS   rTransmitterAddr;
216     UINT_16             u2PacketLength;
217     UINT_8              ucSeqNum;                       /* Get SD Response by sequence number. */
218     UINT_8              aucPacketContent[0]; /*native 802.11*/
219 } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
220
221
222 typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
223     PARAM_MAC_ADDRESS   rPeerAddr;
224 } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
225
226
227 /*! \brief Key mapping of BSSID */
228 typedef struct _P2P_PARAM_KEY_T
229 {
230     UINT_32             u4Length;             /*!< Length of structure */
231     UINT_32             u4KeyIndex;           /*!< KeyID */
232     UINT_32             u4KeyLength;          /*!< Key length in bytes */
233     PARAM_MAC_ADDRESS   arBSSID;              /*!< MAC address */
234     PARAM_KEY_RSC       rKeyRSC;
235     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
236 } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
237
238 #if CONFIG_NL80211_TESTMODE
239
240 typedef struct _NL80211_DRIVER_TEST_PARAMS {
241         UINT_16 idx_mode;
242         UINT_16 idx;
243         UINT_32 value;
244 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
245
246 #endif
247
248
249 /*******************************************************************************
250 *                           P R I V A T E   D A T A
251 ********************************************************************************
252 */
253
254 /*******************************************************************************
255 *                                 M A C R O S
256 ********************************************************************************
257 */
258
259 /*******************************************************************************
260 *                   F U N C T I O N   D E C L A R A T I O N S
261 ********************************************************************************
262 */
263
264 /*--------------------------------------------------------------*/
265 /* Routines to handle command                                   */
266 /*--------------------------------------------------------------*/
267 WLAN_STATUS
268 wlanoidSetAddP2PKey(
269     IN  P_ADAPTER_T prAdapter,
270     IN  PVOID       pvSetBuffer,
271     IN  UINT_32     u4SetBufferLen,
272     OUT PUINT_32    pu4SetInfoLen
273     );
274
275 WLAN_STATUS
276 wlanoidSetRemoveP2PKey(
277     IN  P_ADAPTER_T prAdapter,
278     IN  PVOID       pvSetBuffer,
279     IN  UINT_32     u4SetBufferLen,
280     OUT PUINT_32    pu4SetInfoLen
281     );
282
283 WLAN_STATUS
284 wlanoidSetNetworkAddress(
285     IN  P_ADAPTER_T prAdapter,
286     IN  PVOID       pvSetBuffer,
287     IN  UINT_32     u4SetBufferLen,
288     OUT PUINT_32    pu4SetInfoLen
289     );
290
291 WLAN_STATUS
292 wlanoidSetP2PMulticastList(
293     IN  P_ADAPTER_T prAdapter,
294     IN  PVOID       pvSetBuffer,
295     IN  UINT_32     u4SetBufferLen,
296     OUT PUINT_32    pu4SetInfoLen
297     );
298
299 /*--------------------------------------------------------------*/
300 /* Service Discovery Subroutines                                */
301 /*--------------------------------------------------------------*/
302 WLAN_STATUS
303 wlanoidSendP2PSDRequest(
304     IN  P_ADAPTER_T prAdapter,
305     IN  PVOID       pvSetBuffer,
306     IN  UINT_32     u4SetBufferLen,
307     OUT PUINT_32    pu4SetInfoLen
308     );
309
310 WLAN_STATUS
311 wlanoidSendP2PSDResponse(
312     IN  P_ADAPTER_T prAdapter,
313     IN  PVOID       pvSetBuffer,
314     IN  UINT_32     u4SetBufferLen,
315     OUT PUINT_32    pu4SetInfoLen
316     );
317
318 WLAN_STATUS
319 wlanoidGetP2PSDRequest(
320     IN  P_ADAPTER_T prAdapter,
321     IN  PVOID       pvSetBuffer,
322     IN  UINT_32     u4SetBufferLen,
323     OUT PUINT_32    pu4SetInfoLen
324     );
325
326 WLAN_STATUS
327 wlanoidGetP2PSDResponse(
328     IN  P_ADAPTER_T prAdapter,
329     IN  PVOID       pvQueryBuffer,
330     IN  UINT_32     u4QueryBufferLen,
331     OUT PUINT_32    puQueryInfoLen
332     );
333
334 WLAN_STATUS
335 wlanoidSetP2PTerminateSDPhase(
336     IN  P_ADAPTER_T prAdapter,
337     IN  PVOID       pvQueryBuffer,
338     IN  UINT_32     u4QueryBufferLen,
339     OUT PUINT_32    pu4QueryInfoLen
340     );
341
342 #if CFG_SUPPORT_ANTI_PIRACY
343 WLAN_STATUS
344 wlanoidSetSecCheckRequest(
345     IN  P_ADAPTER_T prAdapter,
346     IN  PVOID       pvSetBuffer,
347     IN  UINT_32     u4SetBufferLen,
348     OUT PUINT_32    pu4SetInfoLen
349     );
350
351 WLAN_STATUS
352 wlanoidGetSecCheckResponse(
353     IN  P_ADAPTER_T prAdapter,
354     IN  PVOID       pvQueryBuffer,
355     IN  UINT_32     u4QueryBufferLen,
356     OUT PUINT_32    pu4QueryInfoLen
357     );
358 #endif
359
360 WLAN_STATUS
361 wlanoidSetNoaParam (
362     IN  P_ADAPTER_T       prAdapter,
363     IN  PVOID             pvSetBuffer,
364     IN  UINT_32           u4SetBufferLen,
365     OUT PUINT_32          pu4SetInfoLen
366     );
367
368 WLAN_STATUS
369 wlanoidSetOppPsParam (
370     IN  P_ADAPTER_T       prAdapter,
371     IN  PVOID             pvSetBuffer,
372     IN  UINT_32           u4SetBufferLen,
373     OUT PUINT_32          pu4SetInfoLen
374     );
375
376 WLAN_STATUS
377 wlanoidSetUApsdParam (
378     IN  P_ADAPTER_T       prAdapter,
379     IN  PVOID             pvSetBuffer,
380     IN  UINT_32           u4SetBufferLen,
381     OUT PUINT_32          pu4SetInfoLen
382     );
383
384 WLAN_STATUS
385 wlanoidQueryP2pPowerSaveProfile (
386     IN  P_ADAPTER_T prAdapter,
387     IN  PVOID       pvQueryBuffer,
388     IN  UINT_32     u4QueryBufferLen,
389     OUT PUINT_32    pu4QueryInfoLen
390     );
391
392 WLAN_STATUS
393 wlanoidSetP2pPowerSaveProfile (
394     IN  P_ADAPTER_T prAdapter,
395     IN  PVOID       pvSetBuffer,
396     IN  UINT_32     u4SetBufferLen,
397     OUT PUINT_32    pu4SetInfoLen
398     );
399
400 WLAN_STATUS
401 wlanoidSetP2pSetNetworkAddress (
402     IN  P_ADAPTER_T prAdapter,
403     IN  PVOID       pvSetBuffer,
404     IN  UINT_32     u4SetBufferLen,
405     OUT PUINT_32    pu4SetInfoLen
406     );
407
408 WLAN_STATUS
409 wlanoidQueryP2pOpChannel(
410     IN P_ADAPTER_T prAdapter,
411     IN PVOID pvQueryBuffer,
412     IN UINT_32 u4QueryBufferLen,
413     OUT PUINT_32 pu4QueryInfoLen
414     );
415
416 WLAN_STATUS
417 wlanoidQueryP2pVersion(
418     IN P_ADAPTER_T prAdapter,
419     IN PVOID pvQueryBuffer,
420     IN UINT_32 u4QueryBufferLen,
421     OUT PUINT_32 pu4QueryInfoLen
422     );
423
424 WLAN_STATUS
425 wlanoidSetP2pSupplicantVersion(
426     IN  P_ADAPTER_T       prAdapter,
427     IN  PVOID             pvSetBuffer,
428     IN  UINT_32           u4SetBufferLen,
429     OUT PUINT_32          pu4SetInfoLen
430     );
431
432 #if CFG_SUPPORT_P2P_RSSI_QUERY
433 WLAN_STATUS
434 wlanoidQueryP2pRssi(
435     IN P_ADAPTER_T prAdapter,
436     IN PVOID pvQueryBuffer,
437     IN UINT_32 u4QueryBufferLen,
438     OUT PUINT_32 pu4QueryInfoLen
439     );
440 #endif
441
442
443 /*--------------------------------------------------------------*/
444 /* Callbacks for event indication                               */
445 /*--------------------------------------------------------------*/
446
447 /*******************************************************************************
448 *                              F U N C T I O N S
449 ********************************************************************************
450 */
451
452 #endif
453 #endif /* _WLAN_P2P_H */
454