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