Commit | Line | Data |
---|---|---|
635d2b00 GKH |
1 | /***************************************************************************** |
2 | ||
95edd09e | 3 | (c) Cambridge Silicon Radio Limited 2012 |
635d2b00 GKH |
4 | All rights reserved and confidential information of CSR |
5 | ||
6 | Refer to LICENSE.txt included with this source for details | |
7 | on the license terms. | |
8 | ||
9 | *****************************************************************************/ | |
10 | ||
11 | /* Note: this is an auto-generated file. */ | |
12 | ||
13 | #ifndef CSR_WIFI_NME_AP_PRIM_H__ | |
14 | #define CSR_WIFI_NME_AP_PRIM_H__ | |
15 | ||
eaae2e92 | 16 | #include <linux/types.h> |
635d2b00 GKH |
17 | #include "csr_prim_defs.h" |
18 | #include "csr_sched.h" | |
19 | #include "csr_wifi_common.h" | |
20 | #include "csr_result.h" | |
21 | #include "csr_wifi_fsm_event.h" | |
22 | #include "csr_wifi_sme_ap_prim.h" | |
23 | #include "csr_wifi_nme_prim.h" | |
24 | ||
635d2b00 GKH |
25 | #ifndef CSR_WIFI_NME_ENABLE |
26 | #error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_ap_prim.h | |
27 | #endif | |
28 | #ifndef CSR_WIFI_AP_ENABLE | |
29 | #error CSR_WIFI_AP_ENABLE MUST be defined inorder to use csr_wifi_nme_ap_prim.h | |
30 | #endif | |
31 | ||
32 | #define CSR_WIFI_NME_AP_PRIM (0x0426) | |
33 | ||
34 | typedef CsrPrim CsrWifiNmeApPrim; | |
35 | ||
36 | ||
37 | /******************************************************************************* | |
38 | ||
39 | NAME | |
40 | CsrWifiNmeApPersCredentialType | |
41 | ||
42 | DESCRIPTION | |
43 | NME Credential Types | |
44 | ||
45 | VALUES | |
46 | CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PSK | |
47 | - Use PSK as credential. | |
48 | CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE | |
49 | - Use the specified passphrase as credential | |
50 | ||
51 | *******************************************************************************/ | |
7e6f5794 | 52 | typedef u8 CsrWifiNmeApPersCredentialType; |
635d2b00 GKH |
53 | #define CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PSK ((CsrWifiNmeApPersCredentialType) 0x00) |
54 | #define CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE ((CsrWifiNmeApPersCredentialType) 0x01) | |
55 | ||
56 | ||
57 | /******************************************************************************* | |
58 | ||
59 | NAME | |
60 | CsrWifiNmeApConfig | |
61 | ||
62 | DESCRIPTION | |
63 | Structure holding AP config data. | |
64 | ||
65 | MEMBERS | |
66 | apGroupkeyTimeout - Access point group key timeout. | |
67 | apStrictGtkRekey - Access point strict GTK rekey flag. If set TRUE, the AP | |
68 | shall rekey GTK every time a connected STA leaves BSS. | |
69 | apGmkTimeout - Access point GMK timeout | |
70 | apResponseTimeout - Response timeout | |
71 | apRetransLimit - Max allowed retransmissions | |
72 | ||
73 | *******************************************************************************/ | |
74 | typedef struct | |
75 | { | |
8c87f69a | 76 | u16 apGroupkeyTimeout; |
5379b13d | 77 | u8 apStrictGtkRekey; |
8c87f69a GKH |
78 | u16 apGmkTimeout; |
79 | u16 apResponseTimeout; | |
7e6f5794 | 80 | u8 apRetransLimit; |
635d2b00 GKH |
81 | } CsrWifiNmeApConfig; |
82 | ||
83 | /******************************************************************************* | |
84 | ||
85 | NAME | |
86 | CsrWifiNmeApAuthPers | |
87 | ||
88 | DESCRIPTION | |
89 | ||
90 | MEMBERS | |
91 | authSupport - Credential type value (as defined in the | |
92 | enumeration type). | |
93 | rsnCapabilities - RSN capabilities mask | |
94 | wapiCapabilities - WAPI capabilities mask | |
95 | pskOrPassphrase - Credential type value (as defined in the | |
96 | enumeration type). | |
97 | authPers_credentials - Union containing credentials which depends | |
98 | on credentialType parameter. | |
99 | authPers_credentialspsk - | |
100 | authPers_credentialspassphrase - | |
101 | ||
102 | *******************************************************************************/ | |
103 | typedef struct | |
104 | { | |
105 | CsrWifiSmeApAuthSupportMask authSupport; | |
106 | CsrWifiSmeApRsnCapabilitiesMask rsnCapabilities; | |
107 | CsrWifiSmeApWapiCapabilitiesMask wapiCapabilities; | |
108 | CsrWifiNmeApPersCredentialType pskOrPassphrase; | |
109 | union { | |
110 | CsrWifiNmePsk psk; | |
111 | CsrWifiNmePassphrase passphrase; | |
112 | } authPers_credentials; | |
113 | } CsrWifiNmeApAuthPers; | |
114 | ||
115 | /******************************************************************************* | |
116 | ||
117 | NAME | |
118 | CsrWifiNmeApCredentials | |
119 | ||
120 | DESCRIPTION | |
121 | Structure containing the Credentials data. | |
122 | ||
123 | MEMBERS | |
124 | authType - Authentication type | |
125 | nmeAuthType - Authentication parameters | |
126 | nmeAuthTypeopenSystemEmpty - | |
127 | nmeAuthTypeauthwep - | |
128 | nmeAuthTypeauthTypePersonal - | |
129 | ||
130 | *******************************************************************************/ | |
131 | typedef struct | |
132 | { | |
133 | CsrWifiSmeApAuthType authType; | |
134 | union { | |
135 | CsrWifiSmeEmpty openSystemEmpty; | |
136 | CsrWifiSmeWepAuth authwep; | |
137 | CsrWifiNmeApAuthPers authTypePersonal; | |
138 | } nmeAuthType; | |
139 | } CsrWifiNmeApCredentials; | |
140 | ||
141 | ||
142 | /* Downstream */ | |
143 | #define CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST (0x0000) | |
144 | ||
145 | #define CSR_WIFI_NME_AP_CONFIG_SET_REQ ((CsrWifiNmeApPrim) (0x0000 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
146 | #define CSR_WIFI_NME_AP_WPS_REGISTER_REQ ((CsrWifiNmeApPrim) (0x0001 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
147 | #define CSR_WIFI_NME_AP_START_REQ ((CsrWifiNmeApPrim) (0x0002 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
148 | #define CSR_WIFI_NME_AP_STOP_REQ ((CsrWifiNmeApPrim) (0x0003 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
149 | #define CSR_WIFI_NME_AP_WMM_PARAM_UPDATE_REQ ((CsrWifiNmeApPrim) (0x0004 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
150 | #define CSR_WIFI_NME_AP_STA_REMOVE_REQ ((CsrWifiNmeApPrim) (0x0005 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST)) | |
151 | ||
152 | ||
153 | #define CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_HIGHEST (0x0005 + CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST) | |
154 | ||
155 | /* Upstream */ | |
156 | #define CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST (0x0000 + CSR_PRIM_UPSTREAM) | |
157 | ||
158 | #define CSR_WIFI_NME_AP_CONFIG_SET_CFM ((CsrWifiNmeApPrim)(0x0000 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
159 | #define CSR_WIFI_NME_AP_WPS_REGISTER_CFM ((CsrWifiNmeApPrim)(0x0001 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
160 | #define CSR_WIFI_NME_AP_START_CFM ((CsrWifiNmeApPrim)(0x0002 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
161 | #define CSR_WIFI_NME_AP_STOP_CFM ((CsrWifiNmeApPrim)(0x0003 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
162 | #define CSR_WIFI_NME_AP_STOP_IND ((CsrWifiNmeApPrim)(0x0004 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
163 | #define CSR_WIFI_NME_AP_WMM_PARAM_UPDATE_CFM ((CsrWifiNmeApPrim)(0x0005 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
164 | #define CSR_WIFI_NME_AP_STATION_IND ((CsrWifiNmeApPrim)(0x0006 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST)) | |
165 | ||
166 | #define CSR_WIFI_NME_AP_PRIM_UPSTREAM_HIGHEST (0x0006 + CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST) | |
167 | ||
168 | #define CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_COUNT (CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_NME_AP_PRIM_DOWNSTREAM_LOWEST) | |
169 | #define CSR_WIFI_NME_AP_PRIM_UPSTREAM_COUNT (CSR_WIFI_NME_AP_PRIM_UPSTREAM_HIGHEST + 1 - CSR_WIFI_NME_AP_PRIM_UPSTREAM_LOWEST) | |
170 | ||
171 | /******************************************************************************* | |
172 | ||
173 | NAME | |
174 | CsrWifiNmeApConfigSetReq | |
175 | ||
176 | DESCRIPTION | |
177 | This primitive passes AP configuration info for NME. This can be sent at | |
178 | any time but will be acted upon when the AP is started again. This | |
179 | information is common to both P2P GO and AP | |
180 | ||
181 | MEMBERS | |
182 | common - Common header for use with the CsrWifiFsm Module | |
183 | apConfig - AP configuration for the NME. | |
184 | apMacConfig - MAC configuration to be acted on when | |
185 | CSR_WIFI_NME_AP_START.request is sent. | |
186 | ||
187 | *******************************************************************************/ | |
188 | typedef struct | |
189 | { | |
190 | CsrWifiFsmEvent common; | |
191 | CsrWifiNmeApConfig apConfig; | |
192 | CsrWifiSmeApMacConfig apMacConfig; | |
193 | } CsrWifiNmeApConfigSetReq; | |
194 | ||
195 | /******************************************************************************* | |
196 | ||
197 | NAME | |
198 | CsrWifiNmeApWpsRegisterReq | |
199 | ||
200 | DESCRIPTION | |
201 | This primitive allows the NME to accept the WPS registration from an | |
202 | enrollee. Such registration procedure can be cancelled by sending | |
203 | CSR_WIFI_NME_WPS_CANCEL.request. | |
204 | ||
205 | MEMBERS | |
206 | common - Common header for use with the CsrWifiFsm Module | |
207 | interfaceTag - Interface Identifier; unique identifier of an | |
208 | interface | |
209 | selectedDevicePasswordId - Selected password type | |
210 | selectedConfigMethod - Selected WPS configuration method type | |
211 | pin - PIN value. | |
212 | Relevant if selected device password ID is PIN.4 | |
213 | digit pin is passed by sending the pin digits in | |
214 | pin[0]..pin[3] and rest of the contents filled | |
215 | with '-'. | |
216 | ||
217 | *******************************************************************************/ | |
218 | typedef struct | |
219 | { | |
220 | CsrWifiFsmEvent common; | |
8c87f69a | 221 | u16 interfaceTag; |
635d2b00 GKH |
222 | CsrWifiSmeWpsDpid selectedDevicePasswordId; |
223 | CsrWifiSmeWpsConfigType selectedConfigMethod; | |
7e6f5794 | 224 | u8 pin[8]; |
635d2b00 GKH |
225 | } CsrWifiNmeApWpsRegisterReq; |
226 | ||
227 | /******************************************************************************* | |
228 | ||
229 | NAME | |
230 | CsrWifiNmeApStartReq | |
231 | ||
232 | DESCRIPTION | |
233 | This primitive requests NME to started the AP operation. | |
234 | ||
235 | MEMBERS | |
236 | common - Common header for use with the CsrWifiFsm Module | |
237 | interfaceTag - Interface identifier; unique identifier of an interface | |
238 | apType - AP Type specifies the Legacy AP or P2P GO operation | |
239 | cloakSsid - Indicates whether the SSID should be cloaked (hidden and | |
240 | not broadcast in beacon) or not | |
241 | ssid - Service Set Identifier | |
242 | ifIndex - Radio interface | |
243 | channel - Channel number of the channel to use | |
244 | apCredentials - Security credential configuration. | |
245 | maxConnections - Maximum number of stations/P2P clients allowed | |
246 | p2pGoParam - P2P specific GO parameters. | |
635d2b00 GKH |
247 | wpsEnabled - Indicates whether WPS should be enabled or not |
248 | ||
249 | *******************************************************************************/ | |
250 | typedef struct | |
251 | { | |
252 | CsrWifiFsmEvent common; | |
8c87f69a | 253 | u16 interfaceTag; |
635d2b00 | 254 | CsrWifiSmeApType apType; |
5379b13d | 255 | u8 cloakSsid; |
635d2b00 GKH |
256 | CsrWifiSsid ssid; |
257 | CsrWifiSmeRadioIF ifIndex; | |
7e6f5794 | 258 | u8 channel; |
635d2b00 | 259 | CsrWifiNmeApCredentials apCredentials; |
7e6f5794 | 260 | u8 maxConnections; |
635d2b00 | 261 | CsrWifiSmeApP2pGoConfig p2pGoParam; |
5379b13d | 262 | u8 wpsEnabled; |
635d2b00 GKH |
263 | } CsrWifiNmeApStartReq; |
264 | ||
265 | /******************************************************************************* | |
266 | ||
267 | NAME | |
268 | CsrWifiNmeApStopReq | |
269 | ||
270 | DESCRIPTION | |
271 | This primitive requests NME to stop the AP operation. | |
272 | ||
273 | MEMBERS | |
274 | common - Common header for use with the CsrWifiFsm Module | |
275 | interfaceTag - Interface identifier; unique identifier of an interface | |
276 | ||
277 | *******************************************************************************/ | |
278 | typedef struct | |
279 | { | |
280 | CsrWifiFsmEvent common; | |
8c87f69a | 281 | u16 interfaceTag; |
635d2b00 GKH |
282 | } CsrWifiNmeApStopReq; |
283 | ||
284 | /******************************************************************************* | |
285 | ||
286 | NAME | |
287 | CsrWifiNmeApWmmParamUpdateReq | |
288 | ||
289 | DESCRIPTION | |
290 | Application uses this primitive to update the WMM parameters | |
291 | ||
292 | MEMBERS | |
293 | common - Common header for use with the CsrWifiFsm Module | |
294 | wmmApParams - WMM Access point parameters per access category. The array | |
295 | index corresponds to the ACI | |
296 | wmmApBcParams - WMM station parameters per access category to be advertised | |
297 | in the beacons and probe response The array index | |
298 | corresponds to the ACI | |
299 | ||
300 | *******************************************************************************/ | |
301 | typedef struct | |
302 | { | |
303 | CsrWifiFsmEvent common; | |
304 | CsrWifiSmeWmmAcParams wmmApParams[4]; | |
305 | CsrWifiSmeWmmAcParams wmmApBcParams[4]; | |
306 | } CsrWifiNmeApWmmParamUpdateReq; | |
307 | ||
308 | /******************************************************************************* | |
309 | ||
310 | NAME | |
311 | CsrWifiNmeApStaRemoveReq | |
312 | ||
313 | DESCRIPTION | |
314 | This primitive disconnects a connected station. If keepBlocking is set to | |
315 | TRUE, the station with the specified MAC address is not allowed to | |
316 | connect. If the requested station is not already connected,it may be | |
317 | blocked based on keepBlocking parameter. | |
318 | ||
319 | MEMBERS | |
320 | common - Common header for use with the CsrWifiFsm Module | |
321 | interfaceTag - Interface Identifier; unique identifier of an interface | |
322 | staMacAddress - Mac Address of the station to be disconnected or blocked | |
323 | keepBlocking - If TRUE, the station is blocked. If FALSE and the station is | |
324 | connected, disconnect the station. If FALSE and the station | |
325 | is not connected, no action is taken. | |
326 | ||
327 | *******************************************************************************/ | |
328 | typedef struct | |
329 | { | |
330 | CsrWifiFsmEvent common; | |
8c87f69a | 331 | u16 interfaceTag; |
635d2b00 | 332 | CsrWifiMacAddress staMacAddress; |
5379b13d | 333 | u8 keepBlocking; |
635d2b00 GKH |
334 | } CsrWifiNmeApStaRemoveReq; |
335 | ||
336 | /******************************************************************************* | |
337 | ||
338 | NAME | |
339 | CsrWifiNmeApConfigSetCfm | |
340 | ||
341 | DESCRIPTION | |
342 | This primitive reports the result of the request. | |
343 | ||
344 | MEMBERS | |
345 | common - Common header for use with the CsrWifiFsm Module | |
346 | status - Status of the request. | |
347 | ||
348 | *******************************************************************************/ | |
349 | typedef struct | |
350 | { | |
351 | CsrWifiFsmEvent common; | |
352 | CsrResult status; | |
353 | } CsrWifiNmeApConfigSetCfm; | |
354 | ||
355 | /******************************************************************************* | |
356 | ||
357 | NAME | |
358 | CsrWifiNmeApWpsRegisterCfm | |
359 | ||
360 | DESCRIPTION | |
361 | This primitive reports the result of WPS procedure. | |
362 | ||
363 | MEMBERS | |
364 | common - Common header for use with the CsrWifiFsm Module | |
365 | interfaceTag - Interface identifier; unique identifier of an interface | |
366 | status - Status of the request. | |
367 | ||
368 | *******************************************************************************/ | |
369 | typedef struct | |
370 | { | |
371 | CsrWifiFsmEvent common; | |
8c87f69a | 372 | u16 interfaceTag; |
635d2b00 GKH |
373 | CsrResult status; |
374 | } CsrWifiNmeApWpsRegisterCfm; | |
375 | ||
376 | /******************************************************************************* | |
377 | ||
378 | NAME | |
379 | CsrWifiNmeApStartCfm | |
380 | ||
381 | DESCRIPTION | |
382 | This primitive reports the result of CSR_WIFI_NME_AP_START.request. | |
383 | ||
384 | MEMBERS | |
385 | common - Common header for use with the CsrWifiFsm Module | |
386 | interfaceTag - Interface identifier; unique identifier of an interface | |
387 | status - Status of the request. | |
388 | ssid - Service Set Identifier | |
389 | ||
390 | *******************************************************************************/ | |
391 | typedef struct | |
392 | { | |
393 | CsrWifiFsmEvent common; | |
8c87f69a | 394 | u16 interfaceTag; |
635d2b00 GKH |
395 | CsrResult status; |
396 | CsrWifiSsid ssid; | |
397 | } CsrWifiNmeApStartCfm; | |
398 | ||
399 | /******************************************************************************* | |
400 | ||
401 | NAME | |
402 | CsrWifiNmeApStopCfm | |
403 | ||
404 | DESCRIPTION | |
405 | This primitive confirms that the AP operation is stopped. NME shall send | |
406 | this primitive in response to the request even if AP operation has | |
407 | already been stopped | |
408 | ||
409 | MEMBERS | |
410 | common - Common header for use with the CsrWifiFsm Module | |
411 | interfaceTag - Interface identifier; unique identifier of an interface | |
412 | status - Status of the request. | |
413 | ||
414 | *******************************************************************************/ | |
415 | typedef struct | |
416 | { | |
417 | CsrWifiFsmEvent common; | |
8c87f69a | 418 | u16 interfaceTag; |
635d2b00 GKH |
419 | CsrResult status; |
420 | } CsrWifiNmeApStopCfm; | |
421 | ||
422 | /******************************************************************************* | |
423 | ||
424 | NAME | |
425 | CsrWifiNmeApStopInd | |
426 | ||
427 | DESCRIPTION | |
428 | Indicates that AP operation had stopped because of some unrecoverable | |
429 | error after AP operation was started successfully. NME sends this signal | |
430 | after failing to restart the AP operation internally following an error | |
431 | ||
432 | MEMBERS | |
433 | common - Common header for use with the CsrWifiFsm Module | |
434 | interfaceTag - Interface Identifier; unique identifier of an interface | |
435 | apType - Reports AP Type (P2PGO or AP) | |
436 | status - Error Status | |
437 | ||
438 | *******************************************************************************/ | |
439 | typedef struct | |
440 | { | |
441 | CsrWifiFsmEvent common; | |
8c87f69a | 442 | u16 interfaceTag; |
635d2b00 GKH |
443 | CsrWifiSmeApType apType; |
444 | CsrResult status; | |
445 | } CsrWifiNmeApStopInd; | |
446 | ||
447 | /******************************************************************************* | |
448 | ||
449 | NAME | |
450 | CsrWifiNmeApWmmParamUpdateCfm | |
451 | ||
452 | DESCRIPTION | |
453 | A confirm for for the WMM parameters update | |
454 | ||
455 | MEMBERS | |
456 | common - Common header for use with the CsrWifiFsm Module | |
457 | status - Status of the request. | |
458 | ||
459 | *******************************************************************************/ | |
460 | typedef struct | |
461 | { | |
462 | CsrWifiFsmEvent common; | |
463 | CsrResult status; | |
464 | } CsrWifiNmeApWmmParamUpdateCfm; | |
465 | ||
466 | /******************************************************************************* | |
467 | ||
468 | NAME | |
469 | CsrWifiNmeApStationInd | |
470 | ||
471 | DESCRIPTION | |
472 | This primitive indicates that a station has joined or a previously joined | |
473 | station has left the BSS/group | |
474 | ||
475 | MEMBERS | |
476 | common - Common header for use with the CsrWifiFsm Module | |
477 | interfaceTag - Interface Identifier; unique identifier of an interface | |
478 | mediaStatus - Indicates whether the station is connected or | |
479 | disconnected | |
480 | peerMacAddress - MAC address of the station | |
481 | peerDeviceAddress - P2P Device Address | |
482 | ||
483 | *******************************************************************************/ | |
484 | typedef struct | |
485 | { | |
486 | CsrWifiFsmEvent common; | |
8c87f69a | 487 | u16 interfaceTag; |
635d2b00 GKH |
488 | CsrWifiSmeMediaStatus mediaStatus; |
489 | CsrWifiMacAddress peerMacAddress; | |
490 | CsrWifiMacAddress peerDeviceAddress; | |
491 | } CsrWifiNmeApStationInd; | |
492 | ||
635d2b00 GKH |
493 | #endif /* CSR_WIFI_NME_AP_PRIM_H__ */ |
494 |