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