]> Pileus Git - ~andy/linux/blob - drivers/staging/csr/csr_wifi_nme_ap_prim.h
mwifiex: don't try to associate when bss_mode is not STA
[~andy/linux] / drivers / staging / csr / csr_wifi_nme_ap_prim.h
1 /*****************************************************************************
2
3             (c) Cambridge Silicon Radio Limited 2012
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
16 #include <linux/types.h>
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
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 *******************************************************************************/
52 typedef u8 CsrWifiNmeApPersCredentialType;
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 {
76     u16 apGroupkeyTimeout;
77     u8   apStrictGtkRekey;
78     u16 apGmkTimeout;
79     u16 apResponseTimeout;
80     u8  apRetransLimit;
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;
221     u16               interfaceTag;
222     CsrWifiSmeWpsDpid       selectedDevicePasswordId;
223     CsrWifiSmeWpsConfigType selectedConfigMethod;
224     u8                pin[8];
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.
247     wpsEnabled     - Indicates whether WPS should be enabled or not
248
249 *******************************************************************************/
250 typedef struct
251 {
252     CsrWifiFsmEvent         common;
253     u16               interfaceTag;
254     CsrWifiSmeApType        apType;
255     u8                 cloakSsid;
256     CsrWifiSsid             ssid;
257     CsrWifiSmeRadioIF       ifIndex;
258     u8                channel;
259     CsrWifiNmeApCredentials apCredentials;
260     u8                maxConnections;
261     CsrWifiSmeApP2pGoConfig p2pGoParam;
262     u8                 wpsEnabled;
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;
281     u16       interfaceTag;
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;
331     u16         interfaceTag;
332     CsrWifiMacAddress staMacAddress;
333     u8           keepBlocking;
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;
372     u16       interfaceTag;
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;
394     u16       interfaceTag;
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;
418     u16       interfaceTag;
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;
442     u16        interfaceTag;
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;
487     u16             interfaceTag;
488     CsrWifiSmeMediaStatus mediaStatus;
489     CsrWifiMacAddress     peerMacAddress;
490     CsrWifiMacAddress     peerDeviceAddress;
491 } CsrWifiNmeApStationInd;
492
493 #endif /* CSR_WIFI_NME_AP_PRIM_H__ */
494