Linux-libre 3.10.54-gnu
[librecmc/linux-libre.git] / drivers / staging / csr / csr_wifi_sme_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_SME_AP_PRIM_H__
14 #define CSR_WIFI_SME_AP_PRIM_H__
15
16 #include "csr_prim_defs.h"
17 #include "csr_sched.h"
18 #include "csr_wifi_common.h"
19 #include "csr_result.h"
20 #include "csr_wifi_fsm_event.h"
21 #include "csr_wifi_sme_prim.h"
22
23 #ifndef CSR_WIFI_AP_ENABLE
24 #error CSR_WIFI_AP_ENABLE MUST be defined inorder to use csr_wifi_sme_ap_prim.h
25 #endif
26
27 #define CSR_WIFI_SME_AP_PRIM                                            (0x0407)
28
29 typedef CsrPrim CsrWifiSmeApPrim;
30
31
32 /*******************************************************************************
33
34   NAME
35     CsrWifiSmeApAccessType
36
37   DESCRIPTION
38     Allow or deny STAs based on MAC address
39
40  VALUES
41     CSR_WIFI_AP_ACCESS_TYPE_NONE  - None
42     CSR_WIFI_AP_ACCESS_TYPE_ALLOW - Allow only if MAC address is from the list
43     CSR_WIFI_AP_ACCESS_TYPE_DENY  - Disallow if MAC address is from the list
44
45 *******************************************************************************/
46 typedef u8 CsrWifiSmeApAccessType;
47 #define CSR_WIFI_AP_ACCESS_TYPE_NONE    ((CsrWifiSmeApAccessType) 0x00)
48 #define CSR_WIFI_AP_ACCESS_TYPE_ALLOW   ((CsrWifiSmeApAccessType) 0x01)
49 #define CSR_WIFI_AP_ACCESS_TYPE_DENY    ((CsrWifiSmeApAccessType) 0x02)
50
51 /*******************************************************************************
52
53   NAME
54     CsrWifiSmeApAuthSupport
55
56   DESCRIPTION
57     Define bits for AP authentication support
58
59  VALUES
60     CSR_WIFI_SME_RSN_AUTH_WPAPSK  - RSN WPA-PSK Support
61     CSR_WIFI_SME_RSN_AUTH_WPA2PSK - RSN WPA2-PSK Support
62     CSR_WIFI_SME_AUTH_WAPIPSK     - WAPI-PSK Support
63
64 *******************************************************************************/
65 typedef u8 CsrWifiSmeApAuthSupport;
66 #define CSR_WIFI_SME_RSN_AUTH_WPAPSK    ((CsrWifiSmeApAuthSupport) 0x01)
67 #define CSR_WIFI_SME_RSN_AUTH_WPA2PSK   ((CsrWifiSmeApAuthSupport) 0x02)
68 #define CSR_WIFI_SME_AUTH_WAPIPSK       ((CsrWifiSmeApAuthSupport) 0x04)
69
70 /*******************************************************************************
71
72   NAME
73     CsrWifiSmeApAuthType
74
75   DESCRIPTION
76     Definition of the SME AP Authentication Options
77
78  VALUES
79     CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM
80                    - Open  authentication
81     CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL
82                    - Personal authentication using a passphrase or a pre-shared
83                      key.
84     CSR_WIFI_SME_AP_AUTH_TYPE_WEP
85                    - WEP authentication. This can be either open or shared key
86
87 *******************************************************************************/
88 typedef u8 CsrWifiSmeApAuthType;
89 #define CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM   ((CsrWifiSmeApAuthType) 0x00)
90 #define CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL      ((CsrWifiSmeApAuthType) 0x01)
91 #define CSR_WIFI_SME_AP_AUTH_TYPE_WEP           ((CsrWifiSmeApAuthType) 0x02)
92
93 /*******************************************************************************
94
95   NAME
96     CsrWifiSmeApDirection
97
98   DESCRIPTION
99     Definition of Direction
100
101  VALUES
102     CSR_WIFI_AP_DIRECTION_RECEIPIENT - Receipient
103     CSR_WIFI_AP_DIRECTION_ORIGINATOR - Originator
104
105 *******************************************************************************/
106 typedef u8 CsrWifiSmeApDirection;
107 #define CSR_WIFI_AP_DIRECTION_RECEIPIENT   ((CsrWifiSmeApDirection) 0x00)
108 #define CSR_WIFI_AP_DIRECTION_ORIGINATOR   ((CsrWifiSmeApDirection) 0x01)
109
110 /*******************************************************************************
111
112   NAME
113     CsrWifiSmeApPhySupport
114
115   DESCRIPTION
116     Define bits for CsrWifiSmeApPhySupportMask
117
118  VALUES
119     CSR_WIFI_SME_AP_PHY_SUPPORT_A - 802.11a. It is not supported in the current
120                                     release.
121     CSR_WIFI_SME_AP_PHY_SUPPORT_B - 802.11b
122     CSR_WIFI_SME_AP_PHY_SUPPORT_G - 802.11g
123     CSR_WIFI_SME_AP_PHY_SUPPORT_N - 802.11n
124
125 *******************************************************************************/
126 typedef u8 CsrWifiSmeApPhySupport;
127 #define CSR_WIFI_SME_AP_PHY_SUPPORT_A   ((CsrWifiSmeApPhySupport) 0x01)
128 #define CSR_WIFI_SME_AP_PHY_SUPPORT_B   ((CsrWifiSmeApPhySupport) 0x02)
129 #define CSR_WIFI_SME_AP_PHY_SUPPORT_G   ((CsrWifiSmeApPhySupport) 0x04)
130 #define CSR_WIFI_SME_AP_PHY_SUPPORT_N   ((CsrWifiSmeApPhySupport) 0x08)
131
132 /*******************************************************************************
133
134   NAME
135     CsrWifiSmeApType
136
137   DESCRIPTION
138     Definition of AP types
139
140  VALUES
141     CSR_WIFI_AP_TYPE_LEGACY - Legacy AP
142     CSR_WIFI_AP_TYPE_P2P    - P2P Group Owner(GO)
143
144 *******************************************************************************/
145 typedef u8 CsrWifiSmeApType;
146 #define CSR_WIFI_AP_TYPE_LEGACY   ((CsrWifiSmeApType) 0x00)
147 #define CSR_WIFI_AP_TYPE_P2P      ((CsrWifiSmeApType) 0x01)
148
149
150 /*******************************************************************************
151
152   NAME
153     CsrWifiSmeApAuthSupportMask
154
155   DESCRIPTION
156     See CsrWifiSmeApAuthSupport for bit definitions
157
158 *******************************************************************************/
159 typedef u8 CsrWifiSmeApAuthSupportMask;
160 /*******************************************************************************
161
162   NAME
163     CsrWifiSmeApPhySupportMask
164
165   DESCRIPTION
166     Mask type for use with the values defined by CsrWifiSmeApPhySupport
167
168 *******************************************************************************/
169 typedef u8 CsrWifiSmeApPhySupportMask;
170 /*******************************************************************************
171
172   NAME
173     CsrWifiSmeApRsnCapabilities
174
175   DESCRIPTION
176     Set to 0 for the current release
177
178 *******************************************************************************/
179 typedef u16 CsrWifiSmeApRsnCapabilities;
180 /*******************************************************************************
181
182   NAME
183     CsrWifiSmeApRsnCapabilitiesMask
184
185   DESCRIPTION
186     Mask type for use with the values defined by CsrWifiSmeApRsnCapabilities
187
188 *******************************************************************************/
189 typedef u16 CsrWifiSmeApRsnCapabilitiesMask;
190 /*******************************************************************************
191
192   NAME
193     CsrWifiSmeApWapiCapabilities
194
195   DESCRIPTION
196     Ignored by the stack as WAPI is not supported for AP operations in the
197     current release
198
199 *******************************************************************************/
200 typedef u16 CsrWifiSmeApWapiCapabilities;
201 /*******************************************************************************
202
203   NAME
204     CsrWifiSmeApWapiCapabilitiesMask
205
206   DESCRIPTION
207     Mask type for use with the values defined by CsrWifiSmeApWapiCapabilities
208
209 *******************************************************************************/
210 typedef u16 CsrWifiSmeApWapiCapabilitiesMask;
211
212
213 /*******************************************************************************
214
215   NAME
216     CsrWifiSmeApHtParams
217
218   DESCRIPTION
219     Structure holding HT parameters
220
221   MEMBERS
222     greenfieldSupported - Indicates if the AP supports Htgreenfield operation
223                           subject to the chip capability. If the chip does not
224                           support Htgreenfield operation, this parameter will be
225                           ignored.
226                           NOTE: if shortGi20MHz is set to TRUE and the chip
227                           supports short GI operation for 20MHz this field will
228                           be be ignored and the AP will not support Htgreenfield
229                           operation.
230                           NOTE: This field is ignored by the Wi-Fi stack for the
231                           current release. It implies that AP does not support
232                           greenfield operation.
233     shortGi20MHz        - Indicates if the AP support short GI operation for
234                           20MHz subject to the chip capability.If the chip does
235                           not support short GI for 20MHz, this parameter is
236                           ignored
237     rxStbc              - Support for STBC for receive. 0 => No support for STBC
238                           , 1=> Use STBC for Rx
239     rifsModeAllowed     - RIFS Mode is allowed to protect overlapping non-HT BSS
240     htProtection        - Deprecated
241     dualCtsProtection   - Dual CTS Protection enabled
242
243 *******************************************************************************/
244 typedef struct
245 {
246     u8  greenfieldSupported;
247     u8  shortGi20MHz;
248     u8 rxStbc;
249     u8  rifsModeAllowed;
250     u8 htProtection;
251     u8  dualCtsProtection;
252 } CsrWifiSmeApHtParams;
253
254 /*******************************************************************************
255
256   NAME
257     CsrWifiSmeApP2pOperatingChanEntry
258
259   DESCRIPTION
260
261   MEMBERS
262     operatingClass        - Channel operating class
263     operatingChannelCount - Number of channels in this entry
264     operatingChannel      - List of channels
265
266 *******************************************************************************/
267 typedef struct
268 {
269     u8  operatingClass;
270     u8  operatingChannelCount;
271     u8 *operatingChannel;
272 } CsrWifiSmeApP2pOperatingChanEntry;
273
274 /*******************************************************************************
275
276   NAME
277     CsrWifiSmeApP2pOperatingChanList
278
279   DESCRIPTION
280     This structure contains the lists of P2P operating channels
281
282   MEMBERS
283     country               - Country
284     channelEntryListCount - Number of entries
285     channelEntryList      - List of entries
286
287 *******************************************************************************/
288 typedef struct
289 {
290     u8                           country[3];
291     u8                           channelEntryListCount;
292     CsrWifiSmeApP2pOperatingChanEntry *channelEntryList;
293 } CsrWifiSmeApP2pOperatingChanList;
294
295 /*******************************************************************************
296
297   NAME
298     CsrWifiSmeApAuthPers
299
300   DESCRIPTION
301
302   MEMBERS
303     authSupport        -
304     encryptionModeMask -
305     rsnCapabilities    -
306     wapiCapabilities   -
307
308 *******************************************************************************/
309 typedef struct
310 {
311     CsrWifiSmeApAuthSupportMask      authSupport;
312     CsrWifiSmeEncryptionMask         encryptionModeMask;
313     CsrWifiSmeApRsnCapabilitiesMask  rsnCapabilities;
314     CsrWifiSmeApWapiCapabilitiesMask wapiCapabilities;
315 } CsrWifiSmeApAuthPers;
316
317 /*******************************************************************************
318
319   NAME
320     CsrWifiSmeApBaSession
321
322   DESCRIPTION
323
324   MEMBERS
325     peerMacAddress - Indicates MAC address of the peer station
326     tid            - Specifies the TID of the MSDUs for which this Block Ack has
327                      been set up. Range: 0-15
328     direction      - Specifies if the AP is the originator or the recipient of
329                      the data stream that uses the Block Ack.
330
331 *******************************************************************************/
332 typedef struct
333 {
334     CsrWifiMacAddress     peerMacAddress;
335     u8              tid;
336     CsrWifiSmeApDirection direction;
337 } CsrWifiSmeApBaSession;
338
339 /*******************************************************************************
340
341   NAME
342     CsrWifiSmeApMacConfig
343
344   DESCRIPTION
345     Structure holding AP MAC configuration.
346
347   MEMBERS
348     phySupportedBitmap   - Indicates supported physical layers
349     beaconInterval       - Beacon interval in terms of TUs
350     dtimPeriod           - DTIM period in terms of number of beacon intervals
351     maxListenInterval    - Maximum allowed listen interval as number of beacon
352                            intervals
353     supportedRatesCount  - Number of supported rates. Range : 0  to 20
354     supportedRates       - List of supportedRates. A rate is specied in the
355                            units of 500kbps. An entry for a basic rate shall
356                            have the MSB set to 1.
357     preamble             - Preamble to be advertised in beacons and probe
358                            responses
359     shortSlotTimeEnabled - TRUE indicates the AP shall use short slot time if
360                            all the stations use short slot operation.
361     ctsProtectionType    - CTS protection to be used
362     wmmEnabled           - Indicate whether WMM is enabled or not. If set to
363                            FALSE,the WMM parameters shall be ignored by the
364                            receiver.
365     wmmApParams          - WMM parameters to be used for local firmware queue
366                            configuration. Array index corresponds to the ACI.
367     wmmApBcParams        - WMM parameters to be advertised in beacon/probe
368                            response. Array index corresponds to the ACI
369     accessType           - Specifies whether the MAC addresses from the list
370                            should be allowed or denied
371     macAddressListCount  - Number of MAC addresses
372     macAddressList       - List of MAC addresses
373     apHtParams           - AP HT parameters. The stack shall use these
374                            parameters only if phySupportedBitmap indicates
375                            support for IEEE 802.11n
376
377 *******************************************************************************/
378 typedef struct
379 {
380     CsrWifiSmeApPhySupportMask  phySupportedBitmap;
381     u16                   beaconInterval;
382     u8                    dtimPeriod;
383     u16                   maxListenInterval;
384     u8                    supportedRatesCount;
385     u8                    supportedRates[20];
386     CsrWifiSmePreambleType      preamble;
387     u8                     shortSlotTimeEnabled;
388     CsrWifiSmeCtsProtectionType ctsProtectionType;
389     u8                     wmmEnabled;
390     CsrWifiSmeWmmAcParams       wmmApParams[4];
391     CsrWifiSmeWmmAcParams       wmmApBcParams[4];
392     CsrWifiSmeApAccessType      accessType;
393     u8                    macAddressListCount;
394     CsrWifiMacAddress          *macAddressList;
395     CsrWifiSmeApHtParams        apHtParams;
396 } CsrWifiSmeApMacConfig;
397
398 /*******************************************************************************
399
400   NAME
401     CsrWifiSmeApP2pGoConfig
402
403   DESCRIPTION
404
405   MEMBERS
406     groupCapability           - Indicates the P2P group capabilities
407     operatingChanList         - List of operating channels in the order of
408                                 decreasing priority. It may contain channel
409                                 entry/entries not supported by the wifi stack.
410                                 These shall be filtered out by the wifi stack
411     opPsEnabled               - Indicates whether opportunistic power save can
412                                 be used.
413                                 Note: This parameter is ignored by the WiFi
414                                 stack for the current release
415     ctWindow                  - Define Client Traffic window to be used in terms
416                                 of number of TUs. Range: 0 to 127.
417                                 Note: This parameter is ignored by the WiFi
418                                 stack for the current release.
419     noaConfigMethod           - Notice of Absence configuration method.
420                                 Note: This parameter is ignored by the WiFi
421                                 stack for the current release.
422     allowNoaWithNonP2pDevices - Indicates if NOA should be allowed if non P2P
423                                 devices are connected. If allowed the non P2P
424                                 devices may suffer in throughput.
425                                 Note: This parameter is ignored by the WiFi
426                                 stack for the current release.
427
428 *******************************************************************************/
429 typedef struct
430 {
431     CsrWifiSmeP2pGroupCapabilityMask groupCapability;
432     CsrWifiSmeApP2pOperatingChanList operatingChanList;
433     u8                          opPsEnabled;
434     u8                         ctWindow;
435     CsrWifiSmeP2pNoaConfigMethod     noaConfigMethod;
436     u8                          allowNoaWithNonP2pDevices;
437 } CsrWifiSmeApP2pGoConfig;
438
439 /*******************************************************************************
440
441   NAME
442     CsrWifiSmeApCredentials
443
444   DESCRIPTION
445
446   MEMBERS
447     authType                    -
448     smeAuthType                 -
449     smeAuthTypeopenSystemEmpty  -
450     smeAuthTypeauthwep          -
451     smeAuthTypeauthPers         -
452
453 *******************************************************************************/
454 typedef struct
455 {
456     CsrWifiSmeApAuthType authType;
457     union {
458         CsrWifiSmeEmpty      openSystemEmpty;
459         CsrWifiSmeWepAuth    authwep;
460         CsrWifiSmeApAuthPers authPers;
461     } smeAuthType;
462 } CsrWifiSmeApCredentials;
463
464 /*******************************************************************************
465
466   NAME
467     CsrWifiSmeApSecConfig
468
469   DESCRIPTION
470
471   MEMBERS
472     apCredentials -
473     wpsEnabled    -
474
475 *******************************************************************************/
476 typedef struct
477 {
478     CsrWifiSmeApCredentials apCredentials;
479     u8                 wpsEnabled;
480 } CsrWifiSmeApSecConfig;
481
482
483 /* Downstream */
484 #define CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST            (0x0000)
485
486 #define CSR_WIFI_SME_AP_BEACONING_START_REQ               ((CsrWifiSmeApPrim) (0x0000 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
487 #define CSR_WIFI_SME_AP_BEACONING_STOP_REQ                ((CsrWifiSmeApPrim) (0x0001 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
488 #define CSR_WIFI_SME_AP_WPS_REGISTRATION_STARTED_REQ      ((CsrWifiSmeApPrim) (0x0002 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
489 #define CSR_WIFI_SME_AP_WPS_REGISTRATION_FINISHED_REQ     ((CsrWifiSmeApPrim) (0x0003 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
490 #define CSR_WIFI_SME_AP_WMM_PARAM_UPDATE_REQ              ((CsrWifiSmeApPrim) (0x0004 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
491 #define CSR_WIFI_SME_AP_STA_DISCONNECT_REQ                ((CsrWifiSmeApPrim) (0x0005 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
492 #define CSR_WIFI_SME_AP_WPS_CONFIGURATION_REQ             ((CsrWifiSmeApPrim) (0x0006 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
493 #define CSR_WIFI_SME_AP_ACTIVE_BA_GET_REQ                 ((CsrWifiSmeApPrim) (0x0007 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
494 #define CSR_WIFI_SME_AP_BA_DELETE_REQ                     ((CsrWifiSmeApPrim) (0x0008 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST))
495
496
497 #define CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_HIGHEST           (0x0008 + CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST)
498
499 /* Upstream */
500 #define CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST              (0x0000 + CSR_PRIM_UPSTREAM)
501
502 #define CSR_WIFI_SME_AP_BEACONING_START_CFM               ((CsrWifiSmeApPrim)(0x0000 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
503 #define CSR_WIFI_SME_AP_BEACONING_STOP_CFM                ((CsrWifiSmeApPrim)(0x0001 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
504 #define CSR_WIFI_SME_AP_STA_NOTIFY_IND                    ((CsrWifiSmeApPrim)(0x0002 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
505 #define CSR_WIFI_SME_AP_STA_CONNECT_START_IND             ((CsrWifiSmeApPrim)(0x0003 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
506 #define CSR_WIFI_SME_AP_WPS_REGISTRATION_STARTED_CFM      ((CsrWifiSmeApPrim)(0x0004 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
507 #define CSR_WIFI_SME_AP_WPS_REGISTRATION_FINISHED_CFM     ((CsrWifiSmeApPrim)(0x0005 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
508 #define CSR_WIFI_SME_AP_WMM_PARAM_UPDATE_CFM              ((CsrWifiSmeApPrim)(0x0006 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
509 #define CSR_WIFI_SME_AP_STA_DISCONNECT_CFM                ((CsrWifiSmeApPrim)(0x0007 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
510 #define CSR_WIFI_SME_AP_WPS_CONFIGURATION_CFM             ((CsrWifiSmeApPrim)(0x0008 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
511 #define CSR_WIFI_SME_AP_ERROR_IND                         ((CsrWifiSmeApPrim)(0x0009 + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
512 #define CSR_WIFI_SME_AP_ACTIVE_BA_GET_CFM                 ((CsrWifiSmeApPrim)(0x000A + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
513 #define CSR_WIFI_SME_AP_BA_DELETE_CFM                     ((CsrWifiSmeApPrim)(0x000B + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST))
514
515 #define CSR_WIFI_SME_AP_PRIM_UPSTREAM_HIGHEST             (0x000B + CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST)
516
517 #define CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_COUNT             (CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_SME_AP_PRIM_DOWNSTREAM_LOWEST)
518 #define CSR_WIFI_SME_AP_PRIM_UPSTREAM_COUNT               (CSR_WIFI_SME_AP_PRIM_UPSTREAM_HIGHEST   + 1 - CSR_WIFI_SME_AP_PRIM_UPSTREAM_LOWEST)
519
520 /*******************************************************************************
521
522   NAME
523     CsrWifiSmeApBeaconingStartReq
524
525   DESCRIPTION
526     This primitive requests the SME to start AP or GO functionality
527
528   MEMBERS
529     common          - Common header for use with the CsrWifiFsm Module
530     interfaceTag    -
531     initialPresence - Set to 0, if Not in a group fomration phase, set to 1 ,
532                       during group formation phase
533     apType          - apType : Legacy AP or P2PGO
534     cloakSsid       - cloakSsid flag.
535     ssid            - ssid.
536     ifIndex         - Radio Interface
537     channel         - channel.
538     maxConnections  - Maximum Stations + P2PClients allowed
539     apCredentials   - AP security credeitals used to advertise in beacon /probe
540                       response
541     smeApConfig     - AP configuration
542     p2pGoParam      - P2P specific GO parameters. Ignored if it is a leagacy AP
543
544 *******************************************************************************/
545 typedef struct
546 {
547     CsrWifiFsmEvent         common;
548     u16               interfaceTag;
549     u8                initialPresence;
550     CsrWifiSmeApType        apType;
551     u8                 cloakSsid;
552     CsrWifiSsid             ssid;
553     CsrWifiSmeRadioIF       ifIndex;
554     u8                channel;
555     u8                maxConnections;
556     CsrWifiSmeApSecConfig   apCredentials;
557     CsrWifiSmeApMacConfig   smeApConfig;
558     CsrWifiSmeApP2pGoConfig p2pGoParam;
559 } CsrWifiSmeApBeaconingStartReq;
560
561 /*******************************************************************************
562
563   NAME
564     CsrWifiSmeApBeaconingStopReq
565
566   DESCRIPTION
567     This primitive requests the SME to STOP AP or P2PGO operation
568
569   MEMBERS
570     common       - Common header for use with the CsrWifiFsm Module
571     interfaceTag -
572
573 *******************************************************************************/
574 typedef struct
575 {
576     CsrWifiFsmEvent common;
577     u16       interfaceTag;
578 } CsrWifiSmeApBeaconingStopReq;
579
580 /*******************************************************************************
581
582   NAME
583     CsrWifiSmeApWpsRegistrationStartedReq
584
585   DESCRIPTION
586     This primitive tells SME that WPS registration procedure has started
587
588   MEMBERS
589     common                   - Common header for use with the CsrWifiFsm Module
590     interfaceTag             -
591     SelectedDevicePasswordId -
592     SelectedconfigMethod     -
593
594 *******************************************************************************/
595 typedef struct
596 {
597     CsrWifiFsmEvent         common;
598     u16               interfaceTag;
599     CsrWifiSmeWpsDpid       SelectedDevicePasswordId;
600     CsrWifiSmeWpsConfigType SelectedconfigMethod;
601 } CsrWifiSmeApWpsRegistrationStartedReq;
602
603 /*******************************************************************************
604
605   NAME
606     CsrWifiSmeApWpsRegistrationFinishedReq
607
608   DESCRIPTION
609     This primitive tells SME that WPS registration procedure has finished
610
611   MEMBERS
612     common       - Common header for use with the CsrWifiFsm Module
613     interfaceTag -
614
615 *******************************************************************************/
616 typedef struct
617 {
618     CsrWifiFsmEvent common;
619     u16       interfaceTag;
620 } CsrWifiSmeApWpsRegistrationFinishedReq;
621
622 /*******************************************************************************
623
624   NAME
625     CsrWifiSmeApWmmParamUpdateReq
626
627   DESCRIPTION
628     Application uses this primitive to update the WMM parameters on the fly
629
630   MEMBERS
631     common        - Common header for use with the CsrWifiFsm Module
632     interfaceTag  -
633     wmmApParams   - WMM parameters to be used for local firmware queue
634                     configuration
635     wmmApBcParams - WMM parameters to be advertised in beacon/probe response
636
637 *******************************************************************************/
638 typedef struct
639 {
640     CsrWifiFsmEvent       common;
641     u16             interfaceTag;
642     CsrWifiSmeWmmAcParams wmmApParams[4];
643     CsrWifiSmeWmmAcParams wmmApBcParams[4];
644 } CsrWifiSmeApWmmParamUpdateReq;
645
646 /*******************************************************************************
647
648   NAME
649     CsrWifiSmeApStaDisconnectReq
650
651   DESCRIPTION
652     This primitive tells SME to deauth ot disassociate a particular station
653     within BSS
654
655   MEMBERS
656     common         - Common header for use with the CsrWifiFsm Module
657     interfaceTag   -
658     deauthReason   -
659     disassocReason -
660     peerMacaddress -
661     keepBlocking   - If TRUE, the station is blocked. If FALSE and the station
662                      is connected, disconnect the station. If FALSE and the
663                      station is not connected, no action is taken.
664
665 *******************************************************************************/
666 typedef struct
667 {
668     CsrWifiFsmEvent           common;
669     u16                 interfaceTag;
670     CsrWifiSmeIEEE80211Reason deauthReason;
671     CsrWifiSmeIEEE80211Reason disassocReason;
672     CsrWifiMacAddress         peerMacaddress;
673     u8                   keepBlocking;
674 } CsrWifiSmeApStaDisconnectReq;
675
676 /*******************************************************************************
677
678   NAME
679     CsrWifiSmeApWpsConfigurationReq
680
681   DESCRIPTION
682     This primitive passes the WPS information for the device to SME. This may
683     be accepted only if no interface is active.
684
685   MEMBERS
686     common    - Common header for use with the CsrWifiFsm Module
687     wpsConfig - WPS config.
688
689 *******************************************************************************/
690 typedef struct
691 {
692     CsrWifiFsmEvent     common;
693     CsrWifiSmeWpsConfig wpsConfig;
694 } CsrWifiSmeApWpsConfigurationReq;
695
696 /*******************************************************************************
697
698   NAME
699     CsrWifiSmeApActiveBaGetReq
700
701   DESCRIPTION
702     This primitive used to retrieve information related to the active block
703     ack sessions
704
705   MEMBERS
706     common       - Common header for use with the CsrWifiFsm Module
707     interfaceTag -
708
709 *******************************************************************************/
710 typedef struct
711 {
712     CsrWifiFsmEvent common;
713     u16       interfaceTag;
714 } CsrWifiSmeApActiveBaGetReq;
715
716 /*******************************************************************************
717
718   NAME
719     CsrWifiSmeApBaDeleteReq
720
721   DESCRIPTION
722     This primitive is used to delete an active block ack session
723
724   MEMBERS
725     common       - Common header for use with the CsrWifiFsm Module
726     interfaceTag -
727     reason       -
728     baSession    - BA session to be deleted
729
730 *******************************************************************************/
731 typedef struct
732 {
733     CsrWifiFsmEvent           common;
734     u16                 interfaceTag;
735     CsrWifiSmeIEEE80211Reason reason;
736     CsrWifiSmeApBaSession     baSession;
737 } CsrWifiSmeApBaDeleteReq;
738
739 /*******************************************************************************
740
741   NAME
742     CsrWifiSmeApBeaconingStartCfm
743
744   DESCRIPTION
745     This primitive confirms the completion of the request along with the
746     status
747
748   MEMBERS
749     common       - Common header for use with the CsrWifiFsm Module
750     interfaceTag -
751     status       -
752     secIeLength  -
753     secIe        -
754
755 *******************************************************************************/
756 typedef struct
757 {
758     CsrWifiFsmEvent common;
759     u16       interfaceTag;
760     CsrResult       status;
761     u16       secIeLength;
762     u8       *secIe;
763 } CsrWifiSmeApBeaconingStartCfm;
764
765 /*******************************************************************************
766
767   NAME
768     CsrWifiSmeApBeaconingStopCfm
769
770   DESCRIPTION
771     This primitive confirms AP or P2PGO operation is terminated
772
773   MEMBERS
774     common       - Common header for use with the CsrWifiFsm Module
775     interfaceTag -
776     status       -
777
778 *******************************************************************************/
779 typedef struct
780 {
781     CsrWifiFsmEvent common;
782     u16       interfaceTag;
783     CsrResult       status;
784 } CsrWifiSmeApBeaconingStopCfm;
785
786 /*******************************************************************************
787
788   NAME
789     CsrWifiSmeApStaNotifyInd
790
791   DESCRIPTION
792     This primitive indicates that a station has joined or a previously joined
793     station has left the BSS/group
794
795   MEMBERS
796     common            - Common header for use with the CsrWifiFsm Module
797     interfaceTag      -
798     mediaStatus       -
799     peerMacAddress    -
800     peerDeviceAddress -
801     disassocReason    -
802     deauthReason      -
803     WpsRegistration   -
804     secIeLength       -
805     secIe             -
806     groupKeyId        -
807     seqNumber         -
808
809 *******************************************************************************/
810 typedef struct
811 {
812     CsrWifiFsmEvent           common;
813     u16                 interfaceTag;
814     CsrWifiSmeMediaStatus     mediaStatus;
815     CsrWifiMacAddress         peerMacAddress;
816     CsrWifiMacAddress         peerDeviceAddress;
817     CsrWifiSmeIEEE80211Reason disassocReason;
818     CsrWifiSmeIEEE80211Reason deauthReason;
819     CsrWifiSmeWpsRegistration WpsRegistration;
820     u8                  secIeLength;
821     u8                 *secIe;
822     u8                  groupKeyId;
823     u16                 seqNumber[8];
824 } CsrWifiSmeApStaNotifyInd;
825
826 /*******************************************************************************
827
828   NAME
829     CsrWifiSmeApStaConnectStartInd
830
831   DESCRIPTION
832     This primitive indicates that a stations request to join the group/BSS is
833     accepted
834
835   MEMBERS
836     common         - Common header for use with the CsrWifiFsm Module
837     interfaceTag   -
838     peerMacAddress -
839
840 *******************************************************************************/
841 typedef struct
842 {
843     CsrWifiFsmEvent   common;
844     u16         interfaceTag;
845     CsrWifiMacAddress peerMacAddress;
846 } CsrWifiSmeApStaConnectStartInd;
847
848 /*******************************************************************************
849
850   NAME
851     CsrWifiSmeApWpsRegistrationStartedCfm
852
853   DESCRIPTION
854     A confirm for UNIFI_MGT_AP_WPS_REGISTRATION_STARTED.request
855
856   MEMBERS
857     common       - Common header for use with the CsrWifiFsm Module
858     interfaceTag -
859     status       -
860
861 *******************************************************************************/
862 typedef struct
863 {
864     CsrWifiFsmEvent common;
865     u16       interfaceTag;
866     CsrResult       status;
867 } CsrWifiSmeApWpsRegistrationStartedCfm;
868
869 /*******************************************************************************
870
871   NAME
872     CsrWifiSmeApWpsRegistrationFinishedCfm
873
874   DESCRIPTION
875     A confirm for UNIFI_MGT_AP_WPS_REGISTRATION_FINISHED.request
876
877   MEMBERS
878     common       - Common header for use with the CsrWifiFsm Module
879     interfaceTag -
880     status       -
881
882 *******************************************************************************/
883 typedef struct
884 {
885     CsrWifiFsmEvent common;
886     u16       interfaceTag;
887     CsrResult       status;
888 } CsrWifiSmeApWpsRegistrationFinishedCfm;
889
890 /*******************************************************************************
891
892   NAME
893     CsrWifiSmeApWmmParamUpdateCfm
894
895   DESCRIPTION
896     A confirm for CSR_WIFI_SME_AP_WMM_PARAM_UPDATE.request
897
898   MEMBERS
899     common       - Common header for use with the CsrWifiFsm Module
900     interfaceTag -
901     status       -
902
903 *******************************************************************************/
904 typedef struct
905 {
906     CsrWifiFsmEvent common;
907     u16       interfaceTag;
908     CsrResult       status;
909 } CsrWifiSmeApWmmParamUpdateCfm;
910
911 /*******************************************************************************
912
913   NAME
914     CsrWifiSmeApStaDisconnectCfm
915
916   DESCRIPTION
917     This primitive confirms the station is disconnected
918
919   MEMBERS
920     common         - Common header for use with the CsrWifiFsm Module
921     interfaceTag   -
922     status         -
923     peerMacaddress -
924
925 *******************************************************************************/
926 typedef struct
927 {
928     CsrWifiFsmEvent   common;
929     u16         interfaceTag;
930     CsrResult         status;
931     CsrWifiMacAddress peerMacaddress;
932 } CsrWifiSmeApStaDisconnectCfm;
933
934 /*******************************************************************************
935
936   NAME
937     CsrWifiSmeApWpsConfigurationCfm
938
939   DESCRIPTION
940     Confirm.
941
942   MEMBERS
943     common - Common header for use with the CsrWifiFsm Module
944     status - Status of the request.
945
946 *******************************************************************************/
947 typedef struct
948 {
949     CsrWifiFsmEvent common;
950     CsrResult       status;
951 } CsrWifiSmeApWpsConfigurationCfm;
952
953 /*******************************************************************************
954
955   NAME
956     CsrWifiSmeApErrorInd
957
958   DESCRIPTION
959     This primitve is sent by SME to indicate some error in AP operationi
960     after AP operations were started successfully and continuing the AP
961     operation may lead to undesired behaviour. It is the responsibility of
962     the upper layers to stop AP operation if needed
963
964   MEMBERS
965     common       - Common header for use with the CsrWifiFsm Module
966     interfaceTag - Range 0-1
967     apType       -
968     status       - Contains the error status
969
970 *******************************************************************************/
971 typedef struct
972 {
973     CsrWifiFsmEvent  common;
974     u16        interfaceTag;
975     CsrWifiSmeApType apType;
976     CsrResult        status;
977 } CsrWifiSmeApErrorInd;
978
979 /*******************************************************************************
980
981   NAME
982     CsrWifiSmeApActiveBaGetCfm
983
984   DESCRIPTION
985     This primitive carries the information related to the active ba sessions
986
987   MEMBERS
988     common           - Common header for use with the CsrWifiFsm Module
989     interfaceTag     -
990     status           - Reports the result of the request
991     activeBaCount    - Number of active block ack session
992     activeBaSessions - Points to a buffer containing an array of
993                        CsrWifiSmeApBaSession structures.
994
995 *******************************************************************************/
996 typedef struct
997 {
998     CsrWifiFsmEvent        common;
999     u16              interfaceTag;
1000     CsrResult              status;
1001     u16              activeBaCount;
1002     CsrWifiSmeApBaSession *activeBaSessions;
1003 } CsrWifiSmeApActiveBaGetCfm;
1004
1005 /*******************************************************************************
1006
1007   NAME
1008     CsrWifiSmeApBaDeleteCfm
1009
1010   DESCRIPTION
1011     This primitive confirms the BA is deleted
1012
1013   MEMBERS
1014     common       - Common header for use with the CsrWifiFsm Module
1015     interfaceTag -
1016     status       - Reports the result of the request
1017     baSession    - deleted BA session
1018
1019 *******************************************************************************/
1020 typedef struct
1021 {
1022     CsrWifiFsmEvent       common;
1023     u16             interfaceTag;
1024     CsrResult             status;
1025     CsrWifiSmeApBaSession baSession;
1026 } CsrWifiSmeApBaDeleteCfm;
1027
1028
1029 #endif /* CSR_WIFI_SME_AP_PRIM_H__ */
1030