1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
/*
** Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/wlan_p2p.h#3
*/
/*! \file "wlan_p2p.h"
\brief This file contains the declairations of Wi-Fi Direct command
processing routines for MediaTek Inc. 802.11 Wireless LAN Adapters.
*/
/*
** Log: wlan_p2p.h
*
* 07 17 2012 yuche.tsai
* NULL
* Compile no error before trial run.
*
* 11 19 2011 yuche.tsai
* NULL
* Add RSSI support for P2P network.
*
* 11 08 2011 yuche.tsai
* [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version
* query & set support for service discovery version check.
* Add support for driver version query & p2p supplicant verseion set.
* For new service discovery mechanism sync.
*
* 10 18 2011 yuche.tsai
* [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
* Support Channel Query.
*
* 10 18 2011 yuche.tsai
* [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
* New 2.1 branch
*
* 04 27 2011 george.huang
* [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
* Support P2P ARP filter setting on early suspend/ late resume
*
* 04 08 2011 george.huang
* [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
* separate settings of P2P and AIS
*
* 03 22 2011 george.huang
* [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
* link with supplicant commands
*
* 03 07 2011 wh.su
* [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
* rename the define to anti_pviracy.
*
* 03 02 2011 wh.su
* [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
* Add Security check related code.
*
* 01 05 2011 cp.wu
* [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface
* for supporting Wi-Fi Direct Service Discovery
* ioctl implementations for P2P Service Discovery
*
* 12 22 2010 cp.wu
* [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface
* for supporting Wi-Fi Direct Service Discovery
* 1. header file restructure for more clear module isolation
* 2. add function interface definition for implementing Service Discovery callbacks
*
* 09 21 2010 kevin.huang
* [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
* Isolate P2P related function for Hardware Software Bundle
*
* 08 16 2010 cp.wu
* NULL
* add subroutines for P2P to set multicast list.
*
* 08 16 2010 george.huang
* NULL
* support wlanoidSetP2pPowerSaveProfile() in P2P
*
* 08 16 2010 george.huang
* NULL
* Support wlanoidSetNetworkAddress() for P2P
*
* 07 08 2010 cp.wu
*
* [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
*
* 06 06 2010 kevin.huang
* [WPD00003832][MT6620 5931] Create driver base
* [MT6620 5931] Create driver base
*
* 05 17 2010 cp.wu
* [WPD00001943]Create WiFi test driver framework on WinXP
* MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
*
*
**
*/
#ifndef _WLAN_P2P_H
#define _WLAN_P2P_H
/*******************************************************************************
* C O M P I L E R F L A G S
********************************************************************************
*/
/*******************************************************************************
* E X T E R N A L R E F E R E N C E S
********************************************************************************
*/
#if CFG_ENABLE_WIFI_DIRECT
/*******************************************************************************
* C O N S T A N T S
********************************************************************************
*/
/*******************************************************************************
* P U B L I C D A T A
********************************************************************************
*/
/* Service Discovery */
typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
PARAM_MAC_ADDRESS rReceiverAddr;
UINT_8 fgNeedTxDoneIndication;
UINT_8 ucChannelNum;
UINT_16 u2PacketLength;
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
typedef struct _PARAM_P2P_GET_SD_REQUEST {
PARAM_MAC_ADDRESS rTransmitterAddr;
UINT_16 u2PacketLength;
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
PARAM_MAC_ADDRESS rTransmitterAddr;
UINT_16 u2PacketLength;
UINT_8 ucChannelNum; /* Channel Number Where SD Request is received. */
UINT_8 ucSeqNum; /* Get SD Request by sequence number. */
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
typedef struct _PARAM_P2P_SEND_SD_REQUEST {
PARAM_MAC_ADDRESS rReceiverAddr;
UINT_8 fgNeedTxDoneIndication;
UINT_8 ucVersionNum; /* Indicate the Service Discovery Supplicant Version. */
UINT_16 u2PacketLength;
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
/* Service Discovery 1.0. */
typedef struct _PARAM_P2P_GET_SD_RESPONSE {
PARAM_MAC_ADDRESS rTransmitterAddr;
UINT_16 u2PacketLength;
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
/* Service Discovery 2.0. */
typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
PARAM_MAC_ADDRESS rTransmitterAddr;
UINT_16 u2PacketLength;
UINT_8 ucSeqNum; /* Get SD Response by sequence number. */
UINT_8 aucPacketContent[0]; /*native 802.11 */
} PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
PARAM_MAC_ADDRESS rPeerAddr;
} PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
/*! \brief Key mapping of BSSID */
typedef struct _P2P_PARAM_KEY_T {
UINT_32 u4Length; /*!< Length of structure */
UINT_32 u4KeyIndex; /*!< KeyID */
UINT_32 u4KeyLength; /*!< Key length in bytes */
PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
PARAM_KEY_RSC rKeyRSC;
UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
} P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
/*******************************************************************************
* P R I V A T E D A T A
********************************************************************************
*/
/*******************************************************************************
* M A C R O S
********************************************************************************
*/
/*******************************************************************************
* F U N C T I O N D E C L A R A T I O N S
********************************************************************************
*/
/*--------------------------------------------------------------*/
/* Routines to handle command */
/*--------------------------------------------------------------*/
WLAN_STATUS
wlanoidSetAddP2PKey(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetRemoveP2PKey(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetNetworkAddress(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetP2PMulticastList(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
/*--------------------------------------------------------------*/
/* Service Discovery Subroutines */
/*--------------------------------------------------------------*/
WLAN_STATUS
wlanoidSendP2PSDRequest(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSendP2PSDResponse(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidGetP2PSDRequest(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidGetP2PSDResponse(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 puQueryInfoLen);
WLAN_STATUS
wlanoidSetP2PTerminateSDPhase(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#if CFG_SUPPORT_ANTI_PIRACY
WLAN_STATUS
wlanoidSetSecCheckRequest(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidGetSecCheckResponse(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
WLAN_STATUS
wlanoidSetNoaParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetOppPsParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetUApsdParam(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetP2pSetNetworkAddress(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidQueryP2pOpChannel(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidQueryP2pVersion(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
WLAN_STATUS
wlanoidSetP2pSupplicantVersion(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
WLAN_STATUS
wlanoidSetP2pWPSmode(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#if CFG_SUPPORT_P2P_RSSI_QUERY
WLAN_STATUS
wlanoidQueryP2pRssi(IN P_ADAPTER_T prAdapter,
IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
#endif
/*--------------------------------------------------------------*/
/* Callbacks for event indication */
/*--------------------------------------------------------------*/
/*******************************************************************************
* F U N C T I O N S
********************************************************************************
*/
#endif
#endif /* _WLAN_P2P_H */
|