Merge remote-tracking branch 'upstream' into next
[cascardo/linux.git] / drivers / staging / csr / csr_wifi_sme_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_PRIM_H__
14 #define CSR_WIFI_SME_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
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #define CSR_WIFI_SME_PRIM                                               (0x0404)
28
29 typedef CsrPrim CsrWifiSmePrim;
30
31
32 /*******************************************************************************
33
34   NAME
35     CsrWifiSme80211NetworkType
36
37   DESCRIPTION
38     Indicates the physical layer of the network
39
40  VALUES
41     CSR_WIFI_SME_80211_NETWORK_TYPE_DS
42                    - Direct-sequence spread spectrum
43     CSR_WIFI_SME_80211_NETWORK_TYPE_OFDM24
44                    - Orthogonal Frequency Division Multiplexing at 2.4 GHz
45     CSR_WIFI_SME_80211_NETWORK_TYPE_OFDM5
46                    - Orthogonal Frequency Division Multiplexing at 5 GHz
47     CSR_WIFI_SME_80211_NETWORK_TYPE_AUTO
48                    - Automatic
49
50 *******************************************************************************/
51 typedef u8 CsrWifiSme80211NetworkType;
52 #define CSR_WIFI_SME_80211_NETWORK_TYPE_DS       ((CsrWifiSme80211NetworkType) 0x00)
53 #define CSR_WIFI_SME_80211_NETWORK_TYPE_OFDM24   ((CsrWifiSme80211NetworkType) 0x01)
54 #define CSR_WIFI_SME_80211_NETWORK_TYPE_OFDM5    ((CsrWifiSme80211NetworkType) 0x02)
55 #define CSR_WIFI_SME_80211_NETWORK_TYPE_AUTO     ((CsrWifiSme80211NetworkType) 0x03)
56
57 /*******************************************************************************
58
59   NAME
60     CsrWifiSme80211PrivacyMode
61
62   DESCRIPTION
63     Bits to enable or disable the privacy mode
64
65  VALUES
66     CSR_WIFI_SME_80211_PRIVACY_MODE_DISABLED
67                    - Privacy mode is enabled: use of WEP for confidentiality is
68                      required.
69     CSR_WIFI_SME_80211_PRIVACY_MODE_ENABLED
70                    - Privacy mode is disabled
71
72 *******************************************************************************/
73 typedef u8 CsrWifiSme80211PrivacyMode;
74 #define CSR_WIFI_SME_80211_PRIVACY_MODE_DISABLED   ((CsrWifiSme80211PrivacyMode) 0x00)
75 #define CSR_WIFI_SME_80211_PRIVACY_MODE_ENABLED    ((CsrWifiSme80211PrivacyMode) 0x01)
76
77 /*******************************************************************************
78
79   NAME
80     CsrWifiSme80211dTrustLevel
81
82   DESCRIPTION
83     Level of trust for the information coming from the network
84
85  VALUES
86     CSR_WIFI_SME_80211D_TRUST_LEVEL_STRICT
87                    - Start with passive scanning and only accept country IE for
88                      updating channel lists
89     CSR_WIFI_SME_80211D_TRUST_LEVEL_ADJUNCT
90                    - As above plus accept adjunct technology location
91                      information
92     CSR_WIFI_SME_80211D_TRUST_LEVEL_BSS
93                    - As above accept plus receiving channel from infrastructure
94                      networks
95     CSR_WIFI_SME_80211D_TRUST_LEVEL_IBSS
96                    - As above accept plus receiving channel from the ad hoc
97                      networks
98     CSR_WIFI_SME_80211D_TRUST_LEVEL_MIB
99                    - Start with active scanning with list of active channels
100                      from the MIB and accept as above
101     CSR_WIFI_SME_80211D_TRUST_LEVEL_DISABLED
102                    - Start with active scanning with list of active channels
103                      from the MIB and ignore any channel information from the
104                      network
105
106 *******************************************************************************/
107 typedef u8 CsrWifiSme80211dTrustLevel;
108 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_STRICT     ((CsrWifiSme80211dTrustLevel) 0x01)
109 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_ADJUNCT    ((CsrWifiSme80211dTrustLevel) 0x02)
110 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_BSS        ((CsrWifiSme80211dTrustLevel) 0x03)
111 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_IBSS       ((CsrWifiSme80211dTrustLevel) 0x04)
112 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_MIB        ((CsrWifiSme80211dTrustLevel) 0x05)
113 #define CSR_WIFI_SME_80211D_TRUST_LEVEL_DISABLED   ((CsrWifiSme80211dTrustLevel) 0x06)
114
115 /*******************************************************************************
116
117   NAME
118     CsrWifiSmeAmpStatus
119
120   DESCRIPTION
121     AMP Current Status
122
123  VALUES
124     CSR_WIFI_SME_AMP_ACTIVE   - AMP ACTIVE.
125     CSR_WIFI_SME_AMP_INACTIVE - AMP INACTIVE
126
127 *******************************************************************************/
128 typedef u8 CsrWifiSmeAmpStatus;
129 #define CSR_WIFI_SME_AMP_ACTIVE     ((CsrWifiSmeAmpStatus) 0x00)
130 #define CSR_WIFI_SME_AMP_INACTIVE   ((CsrWifiSmeAmpStatus) 0x01)
131
132 /*******************************************************************************
133
134   NAME
135     CsrWifiSmeAuthMode
136
137   DESCRIPTION
138     Define bits for CsrWifiSmeAuthMode
139
140  VALUES
141     CSR_WIFI_SME_AUTH_MODE_80211_OPEN
142                    - Connects to an open system network (i.e. no authentication,
143                      no encryption) or to a WEP enabled network.
144     CSR_WIFI_SME_AUTH_MODE_80211_SHARED
145                    - Connect to a WEP enabled network.
146     CSR_WIFI_SME_AUTH_MODE_8021X_WPA
147                    - Connects to a WPA Enterprise enabled network.
148     CSR_WIFI_SME_AUTH_MODE_8021X_WPAPSK
149                    - Connects to a WPA with Pre-Shared Key enabled network.
150     CSR_WIFI_SME_AUTH_MODE_8021X_WPA2
151                    - Connects to a WPA2 Enterprise enabled network.
152     CSR_WIFI_SME_AUTH_MODE_8021X_WPA2PSK
153                    - Connects to a WPA2 with Pre-Shared Key enabled network.
154     CSR_WIFI_SME_AUTH_MODE_8021X_CCKM
155                    - Connects to a CCKM enabled network.
156     CSR_WIFI_SME_AUTH_MODE_WAPI_WAI
157                    - Connects to a WAPI Enterprise enabled network.
158     CSR_WIFI_SME_AUTH_MODE_WAPI_WAIPSK
159                    - Connects to a WAPI with Pre-Shared Key enabled network.
160     CSR_WIFI_SME_AUTH_MODE_8021X_OTHER1X
161                    - For future use.
162
163 *******************************************************************************/
164 typedef u16 CsrWifiSmeAuthMode;
165 #define CSR_WIFI_SME_AUTH_MODE_80211_OPEN      ((CsrWifiSmeAuthMode) 0x0001)
166 #define CSR_WIFI_SME_AUTH_MODE_80211_SHARED    ((CsrWifiSmeAuthMode) 0x0002)
167 #define CSR_WIFI_SME_AUTH_MODE_8021X_WPA       ((CsrWifiSmeAuthMode) 0x0004)
168 #define CSR_WIFI_SME_AUTH_MODE_8021X_WPAPSK    ((CsrWifiSmeAuthMode) 0x0008)
169 #define CSR_WIFI_SME_AUTH_MODE_8021X_WPA2      ((CsrWifiSmeAuthMode) 0x0010)
170 #define CSR_WIFI_SME_AUTH_MODE_8021X_WPA2PSK   ((CsrWifiSmeAuthMode) 0x0020)
171 #define CSR_WIFI_SME_AUTH_MODE_8021X_CCKM      ((CsrWifiSmeAuthMode) 0x0040)
172 #define CSR_WIFI_SME_AUTH_MODE_WAPI_WAI        ((CsrWifiSmeAuthMode) 0x0080)
173 #define CSR_WIFI_SME_AUTH_MODE_WAPI_WAIPSK     ((CsrWifiSmeAuthMode) 0x0100)
174 #define CSR_WIFI_SME_AUTH_MODE_8021X_OTHER1X   ((CsrWifiSmeAuthMode) 0x0200)
175
176 /*******************************************************************************
177
178   NAME
179     CsrWifiSmeBasicUsability
180
181   DESCRIPTION
182     Indicates the usability level of a channel
183
184  VALUES
185     CSR_WIFI_SME_BASIC_USABILITY_UNUSABLE
186                    - Not usable; connection not recommended
187     CSR_WIFI_SME_BASIC_USABILITY_POOR
188                    - Poor quality; connect only if nothing better is available
189     CSR_WIFI_SME_BASIC_USABILITY_SATISFACTORY
190                    - Quality is satisfactory
191     CSR_WIFI_SME_BASIC_USABILITY_NOT_CONNECTED
192                    - Not connected
193
194 *******************************************************************************/
195 typedef u8 CsrWifiSmeBasicUsability;
196 #define CSR_WIFI_SME_BASIC_USABILITY_UNUSABLE        ((CsrWifiSmeBasicUsability) 0x00)
197 #define CSR_WIFI_SME_BASIC_USABILITY_POOR            ((CsrWifiSmeBasicUsability) 0x01)
198 #define CSR_WIFI_SME_BASIC_USABILITY_SATISFACTORY    ((CsrWifiSmeBasicUsability) 0x02)
199 #define CSR_WIFI_SME_BASIC_USABILITY_NOT_CONNECTED   ((CsrWifiSmeBasicUsability) 0x03)
200
201 /*******************************************************************************
202
203   NAME
204     CsrWifiSmeBssType
205
206   DESCRIPTION
207     Indicates the BSS type
208
209  VALUES
210     CSR_WIFI_SME_BSS_TYPE_INFRASTRUCTURE
211                    - Infrastructure BSS.
212     CSR_WIFI_SME_BSS_TYPE_ADHOC
213                    - Ad hoc or Independent BSS.
214     CSR_WIFI_SME_BSS_TYPE_ANY_BSS
215                    - Specifies any type of BSS
216     CSR_WIFI_SME_BSS_TYPE_P2P
217                    - Specifies P2P
218
219 *******************************************************************************/
220 typedef u8 CsrWifiSmeBssType;
221 #define CSR_WIFI_SME_BSS_TYPE_INFRASTRUCTURE   ((CsrWifiSmeBssType) 0x00)
222 #define CSR_WIFI_SME_BSS_TYPE_ADHOC            ((CsrWifiSmeBssType) 0x01)
223 #define CSR_WIFI_SME_BSS_TYPE_ANY_BSS          ((CsrWifiSmeBssType) 0x02)
224 #define CSR_WIFI_SME_BSS_TYPE_P2P              ((CsrWifiSmeBssType) 0x03)
225
226 /*******************************************************************************
227
228   NAME
229     CsrWifiSmeCoexScheme
230
231   DESCRIPTION
232     Options for the coexistence signalling
233     Same as MibValues
234
235  VALUES
236     CSR_WIFI_SME_COEX_SCHEME_DISABLED
237                    - The coexistence signalling is disabled
238     CSR_WIFI_SME_COEX_SCHEME_CSR
239                    - Basic CSR coexistence signalling
240     CSR_WIFI_SME_COEX_SCHEME_CSR_CHANNEL
241                    - Full CSR coexistence signalling
242     CSR_WIFI_SME_COEX_SCHEME_PTA
243                    - Packet Traffic Arbitrator coexistence signalling
244
245 *******************************************************************************/
246 typedef u8 CsrWifiSmeCoexScheme;
247 #define CSR_WIFI_SME_COEX_SCHEME_DISABLED      ((CsrWifiSmeCoexScheme) 0x00)
248 #define CSR_WIFI_SME_COEX_SCHEME_CSR           ((CsrWifiSmeCoexScheme) 0x01)
249 #define CSR_WIFI_SME_COEX_SCHEME_CSR_CHANNEL   ((CsrWifiSmeCoexScheme) 0x02)
250 #define CSR_WIFI_SME_COEX_SCHEME_PTA           ((CsrWifiSmeCoexScheme) 0x03)
251
252 /*******************************************************************************
253
254   NAME
255     CsrWifiSmeControlIndication
256
257   DESCRIPTION
258     Indicates the reason why the Wi-Fi has been switched off.
259     The values of this type are used across the NME/SME/Router API's and they
260     must be kept consistent with the corresponding types in the .xml of the
261     ottherinterfaces
262
263  VALUES
264     CSR_WIFI_SME_CONTROL_INDICATION_ERROR
265                    - An unrecoverable error (for example, an unrecoverable SDIO
266                      error) has occurred.
267                      The wireless manager application should reinitialise the
268                      chip by calling CSR_WIFI_SME_WIFI_ON_REQ.
269     CSR_WIFI_SME_CONTROL_INDICATION_EXIT
270                    - The chip became unavailable due to an external action, for
271                      example, when a plug-in card is ejected or the driver is
272                      unloaded.
273     CSR_WIFI_SME_CONTROL_INDICATION_USER_REQUESTED
274                    - The Wi-Fi has been switched off as the wireless manager
275                      application has sent CSR_WIFI_SME_WIFI_OFF_REQ
276
277 *******************************************************************************/
278 typedef u8 CsrWifiSmeControlIndication;
279 #define CSR_WIFI_SME_CONTROL_INDICATION_ERROR            ((CsrWifiSmeControlIndication) 0x01)
280 #define CSR_WIFI_SME_CONTROL_INDICATION_EXIT             ((CsrWifiSmeControlIndication) 0x02)
281 #define CSR_WIFI_SME_CONTROL_INDICATION_USER_REQUESTED   ((CsrWifiSmeControlIndication) 0x03)
282
283 /*******************************************************************************
284
285   NAME
286     CsrWifiSmeCtsProtectionType
287
288   DESCRIPTION
289     SME CTS Protection Types
290
291  VALUES
292     CSR_WIFI_SME_CTS_PROTECTION_AUTOMATIC
293                    - AP CTS Protection automatic based on non-ERP station in own
294                      BSS or neighbouring BSS on the same channel based on OLBC.
295                      This requires monitoring of beacons from other APs.
296     CSR_WIFI_SME_CTS_PROTECTION_FORCE_ENABLED
297                    - AP CTS Protection Force enabled
298     CSR_WIFI_SME_CTS_PROTECTION_FORCE_DISABLED
299                    - AP CTS Protection Force disabled.
300     CSR_WIFI_SME_CTS_PROTECTION_AUTOMATIC_NO_OLBC
301                    - AP CTS Protection automatic without considering OLBC but
302                      considering non-ERP station in the own BSS Valid only if AP
303                      is configured to work in 802.11bg or 802.11g mode otherwise
304                      this option specifies the same behaviour as AUTOMATIC
305
306 *******************************************************************************/
307 typedef u8 CsrWifiSmeCtsProtectionType;
308 #define CSR_WIFI_SME_CTS_PROTECTION_AUTOMATIC           ((CsrWifiSmeCtsProtectionType) 0x00)
309 #define CSR_WIFI_SME_CTS_PROTECTION_FORCE_ENABLED       ((CsrWifiSmeCtsProtectionType) 0x01)
310 #define CSR_WIFI_SME_CTS_PROTECTION_FORCE_DISABLED      ((CsrWifiSmeCtsProtectionType) 0x02)
311 #define CSR_WIFI_SME_CTS_PROTECTION_AUTOMATIC_NO_OLBC   ((CsrWifiSmeCtsProtectionType) 0x03)
312
313 /*******************************************************************************
314
315   NAME
316     CsrWifiSmeD3AutoScanMode
317
318   DESCRIPTION
319     Autonomous scan status while in D3 suspended period
320
321  VALUES
322     CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSON
323                    - Autonomous scan stays on
324     CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSOFF
325                    - Autonomous scan is switched off
326     CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSAUTO
327                    - Automatically select autoscanning behaviour.
328                      CURRENTLY NOT SUPPORTED
329
330 *******************************************************************************/
331 typedef u8 CsrWifiSmeD3AutoScanMode;
332 #define CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSON     ((CsrWifiSmeD3AutoScanMode) 0x00)
333 #define CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSOFF    ((CsrWifiSmeD3AutoScanMode) 0x01)
334 #define CSR_WIFI_SME_D3AUTO_SCAN_MODE_PSAUTO   ((CsrWifiSmeD3AutoScanMode) 0x02)
335
336 /*******************************************************************************
337
338   NAME
339     CsrWifiSmeEncryption
340
341   DESCRIPTION
342     Defines bits for CsrWifiSmeEncryption
343     For a WEP enabled network, the caller must specify the correct
344     combination of flags in the encryptionModeMask.
345
346  VALUES
347     CSR_WIFI_SME_ENCRYPTION_CIPHER_NONE
348                    - No encryption set
349     CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_WEP40
350                    - Selects 40 byte key WEP for unicast communication
351     CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_WEP104
352                    - Selects 104 byte key WEP for unicast communication
353     CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_TKIP
354                    - Selects TKIP for unicast communication
355     CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_CCMP
356                    - Selects CCMP for unicast communication
357     CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_SMS4
358                    - Selects SMS4 for unicast communication
359     CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_WEP40
360                    - Selects 40 byte key WEP for broadcast messages
361     CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_WEP104
362                    - Selects 104 byte key WEP for broadcast messages
363     CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_TKIP
364                    - Selects a TKIP for broadcast messages
365     CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_CCMP
366                    - Selects CCMP for broadcast messages
367     CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_SMS4
368                    - Selects SMS4 for broadcast messages
369
370 *******************************************************************************/
371 typedef u16 CsrWifiSmeEncryption;
372 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_NONE              ((CsrWifiSmeEncryption) 0x0000)
373 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_WEP40    ((CsrWifiSmeEncryption) 0x0001)
374 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_WEP104   ((CsrWifiSmeEncryption) 0x0002)
375 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_TKIP     ((CsrWifiSmeEncryption) 0x0004)
376 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_CCMP     ((CsrWifiSmeEncryption) 0x0008)
377 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_PAIRWISE_SMS4     ((CsrWifiSmeEncryption) 0x0010)
378 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_WEP40       ((CsrWifiSmeEncryption) 0x0020)
379 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_WEP104      ((CsrWifiSmeEncryption) 0x0040)
380 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_TKIP        ((CsrWifiSmeEncryption) 0x0080)
381 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_CCMP        ((CsrWifiSmeEncryption) 0x0100)
382 #define CSR_WIFI_SME_ENCRYPTION_CIPHER_GROUP_SMS4        ((CsrWifiSmeEncryption) 0x0200)
383
384 /*******************************************************************************
385
386   NAME
387     CsrWifiSmeFirmwareDriverInterface
388
389   DESCRIPTION
390     Type of communication between Host and Firmware
391
392  VALUES
393     CSR_WIFI_SME_FIRMWARE_DRIVER_INTERFACE_UNIT_DATA_INTERFACE
394                    - No preformated header. NOT SUPPORTED in the current release
395     CSR_WIFI_SME_FIRMWARE_DRIVER_INTERFACE_PACKET_INTERFACE
396                    - Preformated IEEE 802.11 header for user plane
397
398 *******************************************************************************/
399 typedef u8 CsrWifiSmeFirmwareDriverInterface;
400 #define CSR_WIFI_SME_FIRMWARE_DRIVER_INTERFACE_UNIT_DATA_INTERFACE   ((CsrWifiSmeFirmwareDriverInterface) 0x00)
401 #define CSR_WIFI_SME_FIRMWARE_DRIVER_INTERFACE_PACKET_INTERFACE      ((CsrWifiSmeFirmwareDriverInterface) 0x01)
402
403 /*******************************************************************************
404
405   NAME
406     CsrWifiSmeHostPowerMode
407
408   DESCRIPTION
409     Defines the power mode
410
411  VALUES
412     CSR_WIFI_SME_HOST_POWER_MODE_ACTIVE
413                    - Host device is running on external power.
414     CSR_WIFI_SME_HOST_POWER_MODE_POWER_SAVE
415                    - Host device is running on (internal) battery power.
416     CSR_WIFI_SME_HOST_POWER_MODE_FULL_POWER_SAVE
417                    - For future use.
418
419 *******************************************************************************/
420 typedef u8 CsrWifiSmeHostPowerMode;
421 #define CSR_WIFI_SME_HOST_POWER_MODE_ACTIVE            ((CsrWifiSmeHostPowerMode) 0x00)
422 #define CSR_WIFI_SME_HOST_POWER_MODE_POWER_SAVE        ((CsrWifiSmeHostPowerMode) 0x01)
423 #define CSR_WIFI_SME_HOST_POWER_MODE_FULL_POWER_SAVE   ((CsrWifiSmeHostPowerMode) 0x02)
424
425 /*******************************************************************************
426
427   NAME
428     CsrWifiSmeIEEE80211Reason
429
430   DESCRIPTION
431     As definined in the IEEE 802.11 standards
432
433  VALUES
434     CSR_WIFI_SME_IEEE80211_REASON_SUCCESS
435                    - See IEEE 802.11 Standard
436     CSR_WIFI_SME_IEEE80211_REASON_UNSPECIFIED_REASON
437                    - See IEEE 802.11 Standard
438     CSR_WIFI_SME_IEEE80211_REASON_AUTHENTICATION_NOT_VALID
439                    - See IEEE 802.11 Standard
440     CSR_WIFI_SME_IEEE80211_REASON_DEAUTHENTICATED_LEAVE_BSS
441                    - See IEEE 802.11 Standard
442     CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_INACTIVITY
443                    - See IEEE 802.11 Standard
444     CSR_WIFI_SME_IEEE80211_REASON_AP_OVERLOAD
445                    - See IEEE 802.11 Standard
446     CSR_WIFI_SME_IEEE80211_REASON_CLASS_2FRAME_ERROR
447                    - See IEEE 802.11 Standard
448     CSR_WIFI_SME_IEEE80211_REASON_CLASS_3FRAME_ERROR
449                    - See IEEE 802.11 Standard
450     CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_LEAVE_BSS
451                    - See IEEE 802.11 Standard
452     CSR_WIFI_SME_IEEE80211_REASON_ASSOCIATION_NOT_AUTHENTICATED
453                    - See IEEE 802.11 Standard
454     CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_POWER_CAPABILITY
455                    - See IEEE 802.11 Standard
456     CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_SUPPORTED_CHANNELS
457                    - See IEEE 802.11 Standard
458     CSR_WIFI_SME_IEEE80211_REASON_INVALID_INFORMATION_ELEMENT
459                    - See IEEE 802.11 Standard
460     CSR_WIFI_SME_IEEE80211_REASON_MICHAEL_MIC_FAILURE
461                    - See IEEE 802.11 Standard
462     CSR_WIFI_SME_IEEE80211_REASON_FOURWAY_HANDSHAKE_TIMEOUT
463                    - See IEEE 802.11 Standard
464     CSR_WIFI_SME_IEEE80211_REASON_GROUP_KEY_UPDATE_TIMEOUT
465                    - See IEEE 802.11 Standard
466     CSR_WIFI_SME_IEEE80211_REASON_HANDSHAKE_ELEMENT_DIFFERENT
467                    - See IEEE 802.11 Standard
468     CSR_WIFI_SME_IEEE80211_REASON_INVALID_GROUP_CIPHER
469                    - See IEEE 802.11 Standard
470     CSR_WIFI_SME_IEEE80211_REASON_INVALID_PAIRWISE_CIPHER
471                    - See IEEE 802.11 Standard
472     CSR_WIFI_SME_IEEE80211_REASON_INVALID_AKMP
473                    - See IEEE 802.11 Standard
474     CSR_WIFI_SME_IEEE80211_REASON_UNSUPPORTED_RSN_IEVERSION
475                    - See IEEE 802.11 Standard
476     CSR_WIFI_SME_IEEE80211_REASON_INVALID_RSN_IECAPABILITIES
477                    - See IEEE 802.11 Standard
478     CSR_WIFI_SME_IEEE80211_REASON_DOT1X_AUTH_FAILED
479                    - See IEEE 802.11 Standard
480     CSR_WIFI_SME_IEEE80211_REASON_CIPHER_REJECTED_BY_POLICY
481                    - See IEEE 802.11 Standard
482     CSR_WIFI_SME_IEEE80211_REASON_SERVICE_CHANGE_PRECLUDES_TS
483                    - See IEEE 802.11 Standard
484     CSR_WIFI_SME_IEEE80211_REASON_QOS_UNSPECIFIED_REASON
485                    - See IEEE 802.11 Standard
486     CSR_WIFI_SME_IEEE80211_REASON_QOS_INSUFFICIENT_BANDWIDTH
487                    - See IEEE 802.11 Standard
488     CSR_WIFI_SME_IEEE80211_REASON_QOS_EXCESSIVE_NOT_ACK
489                    - See IEEE 802.11 Standard
490     CSR_WIFI_SME_IEEE80211_REASON_QOS_TXOPLIMIT_EXCEEDED
491                    - See IEEE 802.11 Standard
492     CSR_WIFI_SME_IEEE80211_REASON_QSTA_LEAVING
493                    - See IEEE 802.11 Standard
494     CSR_WIFI_SME_IEEE80211_REASON_END_TS
495                    - See IEEE 802.11 Standard
496     CSR_WIFI_SME_IEEE80211_REASON_END_DLS
497                    - See IEEE 802.11 Standard
498     CSR_WIFI_SME_IEEE80211_REASON_END_BA
499                    - See IEEE 802.11 Standard
500     CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_TS
501                    - See IEEE 802.11 Standard
502     CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_BA
503                    - See IEEE 802.11 Standard
504     CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_DLS
505                    - See IEEE 802.11 Standard
506     CSR_WIFI_SME_IEEE80211_REASON_TIMEOUT
507                    - See IEEE 802.11 Standard
508     CSR_WIFI_SME_IEEE80211_REASON_STAKEY_MISMATCH
509                    - See IEEE 802.11 Standard
510     CSR_WIFI_SME_IEEE80211_REASON_UNICAST_KEY_NEGOTIATION_TIMEOUT
511                    - See IEEE 802.11 Standard
512     CSR_WIFI_SME_IEEE80211_REASON_MULTICAST_KEY_ANNOUNCEMENT_TIMEOUT
513                    - See IEEE 802.11 Standard
514     CSR_WIFI_SME_IEEE80211_REASON_INCOMPATIBLE_UNICAST_KEY_NEGOTIATION_IE
515                    - See IEEE 802.11 Standard
516     CSR_WIFI_SME_IEEE80211_REASON_INVALID_MULTICAST_CIPHER
517                    - See IEEE 802.11 Standard
518     CSR_WIFI_SME_IEEE80211_REASON_INVALID_UNICAST_CIPHER
519                    - See IEEE 802.11 Standard
520     CSR_WIFI_SME_IEEE80211_REASON_UNSUPPORTED_WAPI_IE_VERSION
521                    - See IEEE 802.11 Standard
522     CSR_WIFI_SME_IEEE80211_REASON_INVALID_WAPI_CAPABILITY_IE
523                    - See IEEE 802.11 Standard
524     CSR_WIFI_SME_IEEE80211_REASON_WAI_CERTIFICATE_AUTHENTICATION_FAILED
525                    - See IEEE 802.11 Standard
526
527 *******************************************************************************/
528 typedef u16 CsrWifiSmeIEEE80211Reason;
529 #define CSR_WIFI_SME_IEEE80211_REASON_SUCCESS                                   ((CsrWifiSmeIEEE80211Reason) 0x0000)
530 #define CSR_WIFI_SME_IEEE80211_REASON_UNSPECIFIED_REASON                        ((CsrWifiSmeIEEE80211Reason) 0x0001)
531 #define CSR_WIFI_SME_IEEE80211_REASON_AUTHENTICATION_NOT_VALID                  ((CsrWifiSmeIEEE80211Reason) 0x0002)
532 #define CSR_WIFI_SME_IEEE80211_REASON_DEAUTHENTICATED_LEAVE_BSS                 ((CsrWifiSmeIEEE80211Reason) 0x0003)
533 #define CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_INACTIVITY                  ((CsrWifiSmeIEEE80211Reason) 0x0004)
534 #define CSR_WIFI_SME_IEEE80211_REASON_AP_OVERLOAD                               ((CsrWifiSmeIEEE80211Reason) 0x0005)
535 #define CSR_WIFI_SME_IEEE80211_REASON_CLASS_2FRAME_ERROR                        ((CsrWifiSmeIEEE80211Reason) 0x0006)
536 #define CSR_WIFI_SME_IEEE80211_REASON_CLASS_3FRAME_ERROR                        ((CsrWifiSmeIEEE80211Reason) 0x0007)
537 #define CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_LEAVE_BSS                   ((CsrWifiSmeIEEE80211Reason) 0x0008)
538 #define CSR_WIFI_SME_IEEE80211_REASON_ASSOCIATION_NOT_AUTHENTICATED             ((CsrWifiSmeIEEE80211Reason) 0x0009)
539 #define CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_POWER_CAPABILITY            ((CsrWifiSmeIEEE80211Reason) 0x000a)
540 #define CSR_WIFI_SME_IEEE80211_REASON_DISASSOCIATED_SUPPORTED_CHANNELS          ((CsrWifiSmeIEEE80211Reason) 0x000b)
541 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_INFORMATION_ELEMENT               ((CsrWifiSmeIEEE80211Reason) 0x000d)
542 #define CSR_WIFI_SME_IEEE80211_REASON_MICHAEL_MIC_FAILURE                       ((CsrWifiSmeIEEE80211Reason) 0x000e)
543 #define CSR_WIFI_SME_IEEE80211_REASON_FOURWAY_HANDSHAKE_TIMEOUT                 ((CsrWifiSmeIEEE80211Reason) 0x000f)
544 #define CSR_WIFI_SME_IEEE80211_REASON_GROUP_KEY_UPDATE_TIMEOUT                  ((CsrWifiSmeIEEE80211Reason) 0x0010)
545 #define CSR_WIFI_SME_IEEE80211_REASON_HANDSHAKE_ELEMENT_DIFFERENT               ((CsrWifiSmeIEEE80211Reason) 0x0011)
546 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_GROUP_CIPHER                      ((CsrWifiSmeIEEE80211Reason) 0x0012)
547 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_PAIRWISE_CIPHER                   ((CsrWifiSmeIEEE80211Reason) 0x0013)
548 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_AKMP                              ((CsrWifiSmeIEEE80211Reason) 0x0014)
549 #define CSR_WIFI_SME_IEEE80211_REASON_UNSUPPORTED_RSN_IEVERSION                 ((CsrWifiSmeIEEE80211Reason) 0x0015)
550 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_RSN_IECAPABILITIES                ((CsrWifiSmeIEEE80211Reason) 0x0016)
551 #define CSR_WIFI_SME_IEEE80211_REASON_DOT1X_AUTH_FAILED                         ((CsrWifiSmeIEEE80211Reason) 0x0017)
552 #define CSR_WIFI_SME_IEEE80211_REASON_CIPHER_REJECTED_BY_POLICY                 ((CsrWifiSmeIEEE80211Reason) 0x0018)
553 #define CSR_WIFI_SME_IEEE80211_REASON_SERVICE_CHANGE_PRECLUDES_TS               ((CsrWifiSmeIEEE80211Reason) 0x001F)
554 #define CSR_WIFI_SME_IEEE80211_REASON_QOS_UNSPECIFIED_REASON                    ((CsrWifiSmeIEEE80211Reason) 0x0020)
555 #define CSR_WIFI_SME_IEEE80211_REASON_QOS_INSUFFICIENT_BANDWIDTH                ((CsrWifiSmeIEEE80211Reason) 0x0021)
556 #define CSR_WIFI_SME_IEEE80211_REASON_QOS_EXCESSIVE_NOT_ACK                     ((CsrWifiSmeIEEE80211Reason) 0x0022)
557 #define CSR_WIFI_SME_IEEE80211_REASON_QOS_TXOPLIMIT_EXCEEDED                    ((CsrWifiSmeIEEE80211Reason) 0x0023)
558 #define CSR_WIFI_SME_IEEE80211_REASON_QSTA_LEAVING                              ((CsrWifiSmeIEEE80211Reason) 0x0024)
559 #define CSR_WIFI_SME_IEEE80211_REASON_END_TS                                    ((CsrWifiSmeIEEE80211Reason) 0x0025)
560 #define CSR_WIFI_SME_IEEE80211_REASON_END_DLS                                   ((CsrWifiSmeIEEE80211Reason) 0x0025)
561 #define CSR_WIFI_SME_IEEE80211_REASON_END_BA                                    ((CsrWifiSmeIEEE80211Reason) 0x0025)
562 #define CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_TS                                ((CsrWifiSmeIEEE80211Reason) 0x0026)
563 #define CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_BA                                ((CsrWifiSmeIEEE80211Reason) 0x0026)
564 #define CSR_WIFI_SME_IEEE80211_REASON_UNKNOWN_DLS                               ((CsrWifiSmeIEEE80211Reason) 0x0026)
565 #define CSR_WIFI_SME_IEEE80211_REASON_TIMEOUT                                   ((CsrWifiSmeIEEE80211Reason) 0x0027)
566 #define CSR_WIFI_SME_IEEE80211_REASON_STAKEY_MISMATCH                           ((CsrWifiSmeIEEE80211Reason) 0x002d)
567 #define CSR_WIFI_SME_IEEE80211_REASON_UNICAST_KEY_NEGOTIATION_TIMEOUT           ((CsrWifiSmeIEEE80211Reason) 0xf019)
568 #define CSR_WIFI_SME_IEEE80211_REASON_MULTICAST_KEY_ANNOUNCEMENT_TIMEOUT        ((CsrWifiSmeIEEE80211Reason) 0xf01a)
569 #define CSR_WIFI_SME_IEEE80211_REASON_INCOMPATIBLE_UNICAST_KEY_NEGOTIATION_IE   ((CsrWifiSmeIEEE80211Reason) 0xf01b)
570 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_MULTICAST_CIPHER                  ((CsrWifiSmeIEEE80211Reason) 0xf01c)
571 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_UNICAST_CIPHER                    ((CsrWifiSmeIEEE80211Reason) 0xf01d)
572 #define CSR_WIFI_SME_IEEE80211_REASON_UNSUPPORTED_WAPI_IE_VERSION               ((CsrWifiSmeIEEE80211Reason) 0xf01e)
573 #define CSR_WIFI_SME_IEEE80211_REASON_INVALID_WAPI_CAPABILITY_IE                ((CsrWifiSmeIEEE80211Reason) 0xf01f)
574 #define CSR_WIFI_SME_IEEE80211_REASON_WAI_CERTIFICATE_AUTHENTICATION_FAILED     ((CsrWifiSmeIEEE80211Reason) 0xf020)
575
576 /*******************************************************************************
577
578   NAME
579     CsrWifiSmeIEEE80211Result
580
581   DESCRIPTION
582     As definined in the IEEE 802.11 standards
583
584  VALUES
585     CSR_WIFI_SME_IEEE80211_RESULT_SUCCESS
586                    - See IEEE 802.11 Standard
587     CSR_WIFI_SME_IEEE80211_RESULT_UNSPECIFIED_FAILURE
588                    - See IEEE 802.11 Standard
589     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CAPABILITIES_MISMATCH
590                    - See IEEE 802.11 Standard
591     CSR_WIFI_SME_IEEE80211_RESULT_REASSOCIATION_DENIED_NO_ASSOCIATION
592                    - See IEEE 802.11 Standard
593     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_EXTERNAL_REASON
594                    - See IEEE 802.11 Standard
595     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AUTHENTICATION_MISMATCH
596                    - See IEEE 802.11 Standard
597     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_INVALID_AUTHENTICATION_SEQUENCE_NUMBER
598                    - See IEEE 802.11 Standard
599     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CHALLENGE_FAILURE
600                    - See IEEE 802.11 Standard
601     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AUTHENTICATION_TIMEOUT
602                    - See IEEE 802.11 Standard
603     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AP_OUT_OF_MEMORY
604                    - See IEEE 802.11 Standard
605     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_BASIC_RATES_MISMATCH
606                    - See IEEE 802.11 Standard
607     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SHORT_PREAMBLE_REQUIRED
608                    - See IEEE 802.11 Standard
609     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_PBCC_MODULATION_REQUIRED
610                    - See IEEE 802.11 Standard
611     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CHANNEL_AGILITY_REQUIRED
612                    - See IEEE 802.11 Standard
613     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SPECTRUM_MANAGEMENT_REQUIRED
614                    - See IEEE 802.11 Standard
615     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_POWER_CAPABILITY_UNACCEPTABLE
616                    - See IEEE 802.11 Standard
617     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SUPPORTED_CHANNELS_UNACCEPTABLE
618                    - See IEEE 802.11 Standard
619     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SHORT_SLOT_REQUIRED
620                    - See IEEE 802.11 Standard
621     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_DSSS_OFDMREQUIRED
622                    - See IEEE 802.11 Standard
623     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_NO_HT_SUPPORT
624                    - See IEEE 802.11 Standard
625     CSR_WIFI_SME_IEEE80211_RESULT_R0KH_UNREACHABLE
626                    - See IEEE 802.11 Standard
627     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_PCO_TRANSITION_SUPPORT
628                    - See IEEE 802.11 Standard
629     CSR_WIFI_SME_IEEE80211_RESULT_ASSOCIATION_REQUEST_REJECTED_TEMPORARILY
630                    - See IEEE 802.11 Standard
631     CSR_WIFI_SME_IEEE80211_RESULT_ROBUST_MANAGEMENT_FRAME_POLICY_VIOLATION
632                    - See IEEE 802.11 Standard
633     CSR_WIFI_SME_IEEE80211_RESULT_FAILURE
634                    - See IEEE 802.11 Standard
635     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AP_BANDWIDTH_INSUFFICIENT
636                    - See IEEE 802.11 Standard
637     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_POOR_OPERATING_CHANNEL
638                    - See IEEE 802.11 Standard
639     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_QOS_REQUIRED
640                    - See IEEE 802.11 Standard
641     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_REASON_UNSPECIFIED
642                    - See IEEE 802.11 Standard
643     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED
644                    - See IEEE 802.11 Standard
645     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_PARAMETERS
646                    - See IEEE 802.11 Standard
647     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_WITH_SUGGESTED_TSPEC_CHANGES
648                    - See IEEE 802.11 Standard
649     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_IE
650                    - See IEEE 802.11 Standard
651     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_GROUP_CIPHER
652                    - See IEEE 802.11 Standard
653     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_PAIRWISE_CIPHER
654                    - See IEEE 802.11 Standard
655     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_AKMP
656                    - See IEEE 802.11 Standard
657     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_UNSUPPORTED_RSN_VERSION
658                    - See IEEE 802.11 Standard
659     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_RSN_CAPABILITY
660                    - See IEEE 802.11 Standard
661     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_SECURITY_POLICY
662                    - See IEEE 802.11 Standard
663     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_FOR_DELAY_PERIOD
664                    - See IEEE 802.11 Standard
665     CSR_WIFI_SME_IEEE80211_RESULT_NOT_ALLOWED
666                    - See IEEE 802.11 Standard
667     CSR_WIFI_SME_IEEE80211_RESULT_NOT_PRESENT
668                    - See IEEE 802.11 Standard
669     CSR_WIFI_SME_IEEE80211_RESULT_NOT_QSTA
670                    - See IEEE 802.11 Standard
671     CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_LISTEN_INTERVAL_TOO_LARGE
672                    - See IEEE 802.11 Standard
673     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_FT_ACTION_FRAME_COUNT
674                    - See IEEE 802.11 Standard
675     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_PMKID
676                    - See IEEE 802.11 Standard
677     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_MDIE
678                    - See IEEE 802.11 Standard
679     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_FTIE
680                    - See IEEE 802.11 Standard
681     CSR_WIFI_SME_IEEE80211_RESULT_UNSPECIFIED_QOS_FAILURE
682                    - See IEEE 802.11 Standard
683     CSR_WIFI_SME_IEEE80211_RESULT_WRONG_POLICY
684                    - See IEEE 802.11 Standard
685     CSR_WIFI_SME_IEEE80211_RESULT_INSUFFICIENT_BANDWIDTH
686                    - See IEEE 802.11 Standard
687     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_TSPEC_PARAMETERS
688                    - See IEEE 802.11 Standard
689     CSR_WIFI_SME_IEEE80211_RESULT_TIMEOUT
690                    - See IEEE 802.11 Standard
691     CSR_WIFI_SME_IEEE80211_RESULT_TOO_MANY_SIMULTANEOUS_REQUESTS
692                    - See IEEE 802.11 Standard
693     CSR_WIFI_SME_IEEE80211_RESULT_BSS_ALREADY_STARTED_OR_JOINED
694                    - See IEEE 802.11 Standard
695     CSR_WIFI_SME_IEEE80211_RESULT_NOT_SUPPORTED
696                    - See IEEE 802.11 Standard
697     CSR_WIFI_SME_IEEE80211_RESULT_TRANSMISSION_FAILURE
698                    - See IEEE 802.11 Standard
699     CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_NOT_AUTHENTICATED
700                    - See IEEE 802.11 Standard
701     CSR_WIFI_SME_IEEE80211_RESULT_RESET_REQUIRED_BEFORE_START
702                    - See IEEE 802.11 Standard
703     CSR_WIFI_SME_IEEE80211_RESULT_LM_INFO_UNAVAILABLE
704                    - See IEEE 802.11 Standard
705     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_UNICAST_CIPHER
706                    - See IEEE 802.11 Standard
707     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_MULTICAST_CIPHER
708                    - See IEEE 802.11 Standard
709     CSR_WIFI_SME_IEEE80211_RESULT_UNSUPPORTED_WAPI_IE_VERSION
710                    - See IEEE 802.11 Standard
711     CSR_WIFI_SME_IEEE80211_RESULT_INVALID_WAPI_CAPABILITY_IE
712                    - See IEEE 802.11 Standard
713
714 *******************************************************************************/
715 typedef u16 CsrWifiSmeIEEE80211Result;
716 #define CSR_WIFI_SME_IEEE80211_RESULT_SUCCESS                                          ((CsrWifiSmeIEEE80211Result) 0x0000)
717 #define CSR_WIFI_SME_IEEE80211_RESULT_UNSPECIFIED_FAILURE                              ((CsrWifiSmeIEEE80211Result) 0x0001)
718 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CAPABILITIES_MISMATCH                    ((CsrWifiSmeIEEE80211Result) 0x000a)
719 #define CSR_WIFI_SME_IEEE80211_RESULT_REASSOCIATION_DENIED_NO_ASSOCIATION              ((CsrWifiSmeIEEE80211Result) 0x000b)
720 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_EXTERNAL_REASON                          ((CsrWifiSmeIEEE80211Result) 0x000c)
721 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AUTHENTICATION_MISMATCH                  ((CsrWifiSmeIEEE80211Result) 0x000d)
722 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_INVALID_AUTHENTICATION_SEQUENCE_NUMBER   ((CsrWifiSmeIEEE80211Result) 0x000e)
723 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CHALLENGE_FAILURE                        ((CsrWifiSmeIEEE80211Result) 0x000f)
724 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AUTHENTICATION_TIMEOUT                   ((CsrWifiSmeIEEE80211Result) 0x0010)
725 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AP_OUT_OF_MEMORY                         ((CsrWifiSmeIEEE80211Result) 0x0011)
726 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_BASIC_RATES_MISMATCH                     ((CsrWifiSmeIEEE80211Result) 0x0012)
727 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SHORT_PREAMBLE_REQUIRED                  ((CsrWifiSmeIEEE80211Result) 0x0013)
728 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_PBCC_MODULATION_REQUIRED                 ((CsrWifiSmeIEEE80211Result) 0x0014)
729 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_CHANNEL_AGILITY_REQUIRED                 ((CsrWifiSmeIEEE80211Result) 0x0015)
730 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SPECTRUM_MANAGEMENT_REQUIRED             ((CsrWifiSmeIEEE80211Result) 0x0016)
731 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_POWER_CAPABILITY_UNACCEPTABLE            ((CsrWifiSmeIEEE80211Result) 0x0017)
732 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SUPPORTED_CHANNELS_UNACCEPTABLE          ((CsrWifiSmeIEEE80211Result) 0x0018)
733 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_SHORT_SLOT_REQUIRED                      ((CsrWifiSmeIEEE80211Result) 0x0019)
734 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_DSSS_OFDMREQUIRED                        ((CsrWifiSmeIEEE80211Result) 0x001a)
735 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_NO_HT_SUPPORT                            ((CsrWifiSmeIEEE80211Result) 0x001b)
736 #define CSR_WIFI_SME_IEEE80211_RESULT_R0KH_UNREACHABLE                                 ((CsrWifiSmeIEEE80211Result) 0x001c)
737 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_PCO_TRANSITION_SUPPORT                   ((CsrWifiSmeIEEE80211Result) 0x001d)
738 #define CSR_WIFI_SME_IEEE80211_RESULT_ASSOCIATION_REQUEST_REJECTED_TEMPORARILY         ((CsrWifiSmeIEEE80211Result) 0x001e)
739 #define CSR_WIFI_SME_IEEE80211_RESULT_ROBUST_MANAGEMENT_FRAME_POLICY_VIOLATION         ((CsrWifiSmeIEEE80211Result) 0x001f)
740 #define CSR_WIFI_SME_IEEE80211_RESULT_FAILURE                                          ((CsrWifiSmeIEEE80211Result) 0x0020)
741 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_AP_BANDWIDTH_INSUFFICIENT                ((CsrWifiSmeIEEE80211Result) 0x0021)
742 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_POOR_OPERATING_CHANNEL                   ((CsrWifiSmeIEEE80211Result) 0x0022)
743 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_QOS_REQUIRED                             ((CsrWifiSmeIEEE80211Result) 0x0023)
744 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_REASON_UNSPECIFIED                       ((CsrWifiSmeIEEE80211Result) 0x0025)
745 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED                                          ((CsrWifiSmeIEEE80211Result) 0x0025)
746 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_PARAMETERS                               ((CsrWifiSmeIEEE80211Result) 0x0026)
747 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_WITH_SUGGESTED_TSPEC_CHANGES            ((CsrWifiSmeIEEE80211Result) 0x0027)
748 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_IE                              ((CsrWifiSmeIEEE80211Result) 0x0028)
749 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_GROUP_CIPHER                    ((CsrWifiSmeIEEE80211Result) 0x0029)
750 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_PAIRWISE_CIPHER                 ((CsrWifiSmeIEEE80211Result) 0x002a)
751 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_AKMP                            ((CsrWifiSmeIEEE80211Result) 0x002b)
752 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_UNSUPPORTED_RSN_VERSION                 ((CsrWifiSmeIEEE80211Result) 0x002c)
753 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_INVALID_RSN_CAPABILITY                  ((CsrWifiSmeIEEE80211Result) 0x002d)
754 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_SECURITY_POLICY                         ((CsrWifiSmeIEEE80211Result) 0x002e)
755 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_FOR_DELAY_PERIOD                        ((CsrWifiSmeIEEE80211Result) 0x002f)
756 #define CSR_WIFI_SME_IEEE80211_RESULT_NOT_ALLOWED                                      ((CsrWifiSmeIEEE80211Result) 0x0030)
757 #define CSR_WIFI_SME_IEEE80211_RESULT_NOT_PRESENT                                      ((CsrWifiSmeIEEE80211Result) 0x0031)
758 #define CSR_WIFI_SME_IEEE80211_RESULT_NOT_QSTA                                         ((CsrWifiSmeIEEE80211Result) 0x0032)
759 #define CSR_WIFI_SME_IEEE80211_RESULT_REJECTED_LISTEN_INTERVAL_TOO_LARGE               ((CsrWifiSmeIEEE80211Result) 0x0033)
760 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_FT_ACTION_FRAME_COUNT                    ((CsrWifiSmeIEEE80211Result) 0x0034)
761 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_PMKID                                    ((CsrWifiSmeIEEE80211Result) 0x0035)
762 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_MDIE                                     ((CsrWifiSmeIEEE80211Result) 0x0036)
763 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_FTIE                                     ((CsrWifiSmeIEEE80211Result) 0x0037)
764 #define CSR_WIFI_SME_IEEE80211_RESULT_UNSPECIFIED_QOS_FAILURE                          ((CsrWifiSmeIEEE80211Result) 0x00c8)
765 #define CSR_WIFI_SME_IEEE80211_RESULT_WRONG_POLICY                                     ((CsrWifiSmeIEEE80211Result) 0x00c9)
766 #define CSR_WIFI_SME_IEEE80211_RESULT_INSUFFICIENT_BANDWIDTH                           ((CsrWifiSmeIEEE80211Result) 0x00ca)
767 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_TSPEC_PARAMETERS                         ((CsrWifiSmeIEEE80211Result) 0x00cb)
768 #define CSR_WIFI_SME_IEEE80211_RESULT_TIMEOUT                                          ((CsrWifiSmeIEEE80211Result) 0x8000)
769 #define CSR_WIFI_SME_IEEE80211_RESULT_TOO_MANY_SIMULTANEOUS_REQUESTS                   ((CsrWifiSmeIEEE80211Result) 0x8001)
770 #define CSR_WIFI_SME_IEEE80211_RESULT_BSS_ALREADY_STARTED_OR_JOINED                    ((CsrWifiSmeIEEE80211Result) 0x8002)
771 #define CSR_WIFI_SME_IEEE80211_RESULT_NOT_SUPPORTED                                    ((CsrWifiSmeIEEE80211Result) 0x8003)
772 #define CSR_WIFI_SME_IEEE80211_RESULT_TRANSMISSION_FAILURE                             ((CsrWifiSmeIEEE80211Result) 0x8004)
773 #define CSR_WIFI_SME_IEEE80211_RESULT_REFUSED_NOT_AUTHENTICATED                        ((CsrWifiSmeIEEE80211Result) 0x8005)
774 #define CSR_WIFI_SME_IEEE80211_RESULT_RESET_REQUIRED_BEFORE_START                      ((CsrWifiSmeIEEE80211Result) 0x8006)
775 #define CSR_WIFI_SME_IEEE80211_RESULT_LM_INFO_UNAVAILABLE                              ((CsrWifiSmeIEEE80211Result) 0x8007)
776 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_UNICAST_CIPHER                           ((CsrWifiSmeIEEE80211Result) 0xf02f)
777 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_MULTICAST_CIPHER                         ((CsrWifiSmeIEEE80211Result) 0xf030)
778 #define CSR_WIFI_SME_IEEE80211_RESULT_UNSUPPORTED_WAPI_IE_VERSION                      ((CsrWifiSmeIEEE80211Result) 0xf031)
779 #define CSR_WIFI_SME_IEEE80211_RESULT_INVALID_WAPI_CAPABILITY_IE                       ((CsrWifiSmeIEEE80211Result) 0xf032)
780
781 /*******************************************************************************
782
783   NAME
784     CsrWifiSmeIndications
785
786   DESCRIPTION
787     Defines bits for CsrWifiSmeIndicationsMask
788
789  VALUES
790     CSR_WIFI_SME_INDICATIONS_NONE
791                    - Used to cancel the registrations for receiving indications
792     CSR_WIFI_SME_INDICATIONS_WIFIOFF
793                    - Used to register for CSR_WIFI_SME_WIFI_OFF_IND events
794     CSR_WIFI_SME_INDICATIONS_SCANRESULT
795                    - Used to register for CSR_WIFI_SME_SCAN_RESULT_IND events
796     CSR_WIFI_SME_INDICATIONS_CONNECTIONQUALITY
797                    - Used to register for CSR_WIFI_SME_CONNECTION_QUALITY_IND
798                      events
799     CSR_WIFI_SME_INDICATIONS_MEDIASTATUS
800                    - Used to register for CSR_WIFI_SME_MEDIA_STATUS_IND events
801     CSR_WIFI_SME_INDICATIONS_MICFAILURE
802                    - Used to register for CSR_WIFI_SME_MICFAILURE_IND events
803     CSR_WIFI_SME_INDICATIONS_PMKIDCANDIDATELIST
804                    - Used to register for CSR_WIFI_SME_PMKIDCANDIDATE_LIST_IND
805                      events
806     CSR_WIFI_SME_INDICATIONS_TSPEC
807                    - Used to register for CSR_WIFI_SME_TSPEC_IND events
808     CSR_WIFI_SME_INDICATIONS_ROAMSTART
809                    - Used to register for CSR_WIFI_SME_ROAM_START_IND events
810     CSR_WIFI_SME_INDICATIONS_ROAMCOMPLETE
811                    - Used to register for CSR_WIFI_SME_ROAM_COMPLETE_IND events
812     CSR_WIFI_SME_INDICATIONS_ASSOCIATIONSTART
813                    - Used to register for CSR_WIFI_SME_ASSOCIATION_START_IND
814                      events
815     CSR_WIFI_SME_INDICATIONS_ASSOCIATIONCOMPLETE
816                    - Used to register for CSR_WIFI_SME_ASSOCIATION_COMPLETE_IND
817                      events
818     CSR_WIFI_SME_INDICATIONS_IBSSSTATION
819                    - Used to register for CSR_WIFI_SME_IBSS_STATION_IND events
820     CSR_WIFI_SME_INDICATIONS_WIFION
821                    - Used to register for CSR_WIFI_SME_WIFI_ON_IND events
822     CSR_WIFI_SME_INDICATIONS_ERROR
823                    - Used to register for CSR_WIFI_SME_ERROR_IND events
824     CSR_WIFI_SME_INDICATIONS_INFO
825                    - Used to register for CSR_WIFI_SME_INFO_IND events
826     CSR_WIFI_SME_INDICATIONS_COREDUMP
827                    - Used to register for CSR_WIFI_SME_CORE_DUMP_IND events
828     CSR_WIFI_SME_INDICATIONS_ALL
829                    - Used to register for all available indications
830
831 *******************************************************************************/
832 typedef u32 CsrWifiSmeIndications;
833 #define CSR_WIFI_SME_INDICATIONS_NONE                  ((CsrWifiSmeIndications) 0x00000000)
834 #define CSR_WIFI_SME_INDICATIONS_WIFIOFF               ((CsrWifiSmeIndications) 0x00000001)
835 #define CSR_WIFI_SME_INDICATIONS_SCANRESULT            ((CsrWifiSmeIndications) 0x00000002)
836 #define CSR_WIFI_SME_INDICATIONS_CONNECTIONQUALITY     ((CsrWifiSmeIndications) 0x00000004)
837 #define CSR_WIFI_SME_INDICATIONS_MEDIASTATUS           ((CsrWifiSmeIndications) 0x00000008)
838 #define CSR_WIFI_SME_INDICATIONS_MICFAILURE            ((CsrWifiSmeIndications) 0x00000010)
839 #define CSR_WIFI_SME_INDICATIONS_PMKIDCANDIDATELIST    ((CsrWifiSmeIndications) 0x00000020)
840 #define CSR_WIFI_SME_INDICATIONS_TSPEC                 ((CsrWifiSmeIndications) 0x00000040)
841 #define CSR_WIFI_SME_INDICATIONS_ROAMSTART             ((CsrWifiSmeIndications) 0x00000080)
842 #define CSR_WIFI_SME_INDICATIONS_ROAMCOMPLETE          ((CsrWifiSmeIndications) 0x00000100)
843 #define CSR_WIFI_SME_INDICATIONS_ASSOCIATIONSTART      ((CsrWifiSmeIndications) 0x00000200)
844 #define CSR_WIFI_SME_INDICATIONS_ASSOCIATIONCOMPLETE   ((CsrWifiSmeIndications) 0x00000400)
845 #define CSR_WIFI_SME_INDICATIONS_IBSSSTATION           ((CsrWifiSmeIndications) 0x00000800)
846 #define CSR_WIFI_SME_INDICATIONS_WIFION                ((CsrWifiSmeIndications) 0x00001000)
847 #define CSR_WIFI_SME_INDICATIONS_ERROR                 ((CsrWifiSmeIndications) 0x00002000)
848 #define CSR_WIFI_SME_INDICATIONS_INFO                  ((CsrWifiSmeIndications) 0x00004000)
849 #define CSR_WIFI_SME_INDICATIONS_COREDUMP              ((CsrWifiSmeIndications) 0x00008000)
850 #define CSR_WIFI_SME_INDICATIONS_ALL                   ((CsrWifiSmeIndications) 0xFFFFFFFF)
851
852 /*******************************************************************************
853
854   NAME
855     CsrWifiSmeKeyType
856
857   DESCRIPTION
858     Indicates the type of the key
859
860  VALUES
861     CSR_WIFI_SME_KEY_TYPE_GROUP    - Key for broadcast communication
862     CSR_WIFI_SME_KEY_TYPE_PAIRWISE - Key for unicast communication
863     CSR_WIFI_SME_KEY_TYPE_STAKEY   - Key for direct link communication to
864                                      another station in infrastructure networks
865     CSR_WIFI_SME_KEY_TYPE_IGTK     - Integrity Group Temporal Key
866     CSR_WIFI_SME_KEY_TYPE_CCKM     - Key for Cisco Centralized Key Management
867
868 *******************************************************************************/
869 typedef u8 CsrWifiSmeKeyType;
870 #define CSR_WIFI_SME_KEY_TYPE_GROUP      ((CsrWifiSmeKeyType) 0x00)
871 #define CSR_WIFI_SME_KEY_TYPE_PAIRWISE   ((CsrWifiSmeKeyType) 0x01)
872 #define CSR_WIFI_SME_KEY_TYPE_STAKEY     ((CsrWifiSmeKeyType) 0x02)
873 #define CSR_WIFI_SME_KEY_TYPE_IGTK       ((CsrWifiSmeKeyType) 0x03)
874 #define CSR_WIFI_SME_KEY_TYPE_CCKM       ((CsrWifiSmeKeyType) 0x04)
875
876 /*******************************************************************************
877
878   NAME
879     CsrWifiSmeListAction
880
881   DESCRIPTION
882     Identifies the type of action to be performed on a list of items
883     The values of this type are used across the NME/SME/Router API's and they
884     must be kept consistent with the corresponding types in the .xml of the
885     ottherinterfaces
886
887  VALUES
888     CSR_WIFI_SME_LIST_ACTION_GET    - Retrieve the current list of items
889     CSR_WIFI_SME_LIST_ACTION_ADD    - Add one or more items
890     CSR_WIFI_SME_LIST_ACTION_REMOVE - Remove one or more items
891     CSR_WIFI_SME_LIST_ACTION_FLUSH  - Remove all items
892
893 *******************************************************************************/
894 typedef u8 CsrWifiSmeListAction;
895 #define CSR_WIFI_SME_LIST_ACTION_GET      ((CsrWifiSmeListAction) 0x00)
896 #define CSR_WIFI_SME_LIST_ACTION_ADD      ((CsrWifiSmeListAction) 0x01)
897 #define CSR_WIFI_SME_LIST_ACTION_REMOVE   ((CsrWifiSmeListAction) 0x02)
898 #define CSR_WIFI_SME_LIST_ACTION_FLUSH    ((CsrWifiSmeListAction) 0x03)
899
900 /*******************************************************************************
901
902   NAME
903     CsrWifiSmeMediaStatus
904
905   DESCRIPTION
906     Indicates the connection status
907     The values of this type are used across the NME/SME/Router API's and they
908     must be kept consistent with the corresponding types in the .xml of the
909     ottherinterfaces
910
911  VALUES
912     CSR_WIFI_SME_MEDIA_STATUS_CONNECTED
913                    - Value CSR_WIFI_SME_MEDIA_STATUS_CONNECTED can happen in two
914                      situations:
915                        * A network connection is established. Specifically, this is
916                          when the MLME_ASSOCIATION completes or the first peer
917                          relationship is established in an IBSS. In a WPA/WPA2
918                          network, this indicates that the stack is ready to perform
919                          the 4-way handshake or 802.1x authentication if CSR NME
920                          security library is not used. If CSR NME security library
921                          is used this indicates, completion of 4way handshake or
922                          802.1x authentication
923                        * The SME roams to another AP on the same ESS
924                      During the AP operation, it indicates that the peer station
925                      is connected to the AP and is ready for data transfer.
926     CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED
927                    - Value CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED can happen in
928                      two situations:
929                        * when the connection to a network is lost and there is no
930                          alternative on the same ESS to roam to
931                        * when a CSR_WIFI_SME_DISCONNECT_REQ request is issued
932                      During AP or P2PGO operation, it indicates that the peer
933                      station has disconnected from the AP
934
935 *******************************************************************************/
936 typedef u8 CsrWifiSmeMediaStatus;
937 #define CSR_WIFI_SME_MEDIA_STATUS_CONNECTED      ((CsrWifiSmeMediaStatus) 0x00)
938 #define CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED   ((CsrWifiSmeMediaStatus) 0x01)
939
940 /*******************************************************************************
941
942   NAME
943     CsrWifiSmeP2pCapability
944
945   DESCRIPTION
946     Defines P2P Device Capabilities
947
948  VALUES
949     CSR_WIFI_SME_P2P_SERVICE_DISCOVERY_CAPABILITY
950                    - This field is set to 1 if the P2P Device supports Service
951                      Discovery, and to 0 otherwise
952     CSR_WIFI_SME_P2P_CLIENT_DISCOVERABILITY_CAPABILITY
953                    - This field is set to 1 when the P2P Device supports P2P
954                      Client Discoverability, and to 0 otherwise.
955     CSR_WIFI_SME_P2P_CONCURRENT_OPERATION_CAPABILITY
956                    - This field is set to 1 when the P2P Device supports
957                      Concurrent Operation with WLAN, and to 0 otherwise.
958     CSR_WIFI_SME_P2P_MANAGED_DEVICE_CAPABILITY
959                    - This field is set to 1 when the P2P interface of the P2P
960                      Device is capable of being managed by the WLAN
961                      (infrastructure network) based on P2P coexistence
962                      parameters, and to 0 otherwise
963     CSR_WIFI_SME_P2P_INVITAION_CAPABILITY
964                    - This field is set to 1 if the P2P Device is capable of
965                      processing P2P Invitation Procedure signaling, and to 0
966                      otherwise.
967
968 *******************************************************************************/
969 typedef u8 CsrWifiSmeP2pCapability;
970 #define CSR_WIFI_SME_P2P_SERVICE_DISCOVERY_CAPABILITY        ((CsrWifiSmeP2pCapability) 0x01)
971 #define CSR_WIFI_SME_P2P_CLIENT_DISCOVERABILITY_CAPABILITY   ((CsrWifiSmeP2pCapability) 0x02)
972 #define CSR_WIFI_SME_P2P_CONCURRENT_OPERATION_CAPABILITY     ((CsrWifiSmeP2pCapability) 0x04)
973 #define CSR_WIFI_SME_P2P_MANAGED_DEVICE_CAPABILITY           ((CsrWifiSmeP2pCapability) 0x08)
974 #define CSR_WIFI_SME_P2P_INVITAION_CAPABILITY                ((CsrWifiSmeP2pCapability) 0x20)
975
976 /*******************************************************************************
977
978   NAME
979     CsrWifiSmeP2pGroupCapability
980
981   DESCRIPTION
982     Define bits for P2P Group Capability
983
984  VALUES
985     CSR_WIFI_P2P_GRP_CAP_GO
986                    - Indicates if the local device has become a GO after GO
987                      negotiation
988     CSR_WIFI_P2P_GRP_CAP_PERSISTENT
989                    - Persistent group
990     CSR_WIFI_P2P_GRP_CAP_INTRABSS_DIST
991                    - Intra-BSS data distribution support
992     CSR_WIFI_P2P_GRP_CAP_CROSS_CONN
993                    - Support of cross connection
994     CSR_WIFI_P2P_GRP_CAP_PERSISTENT_RECONNECT
995                    - Support of persistent reconnect
996
997 *******************************************************************************/
998 typedef u8 CsrWifiSmeP2pGroupCapability;
999 #define CSR_WIFI_P2P_GRP_CAP_GO                     ((CsrWifiSmeP2pGroupCapability) 0x01)
1000 #define CSR_WIFI_P2P_GRP_CAP_PERSISTENT             ((CsrWifiSmeP2pGroupCapability) 0x02)
1001 #define CSR_WIFI_P2P_GRP_CAP_INTRABSS_DIST          ((CsrWifiSmeP2pGroupCapability) 0x08)
1002 #define CSR_WIFI_P2P_GRP_CAP_CROSS_CONN             ((CsrWifiSmeP2pGroupCapability) 0x10)
1003 #define CSR_WIFI_P2P_GRP_CAP_PERSISTENT_RECONNECT   ((CsrWifiSmeP2pGroupCapability) 0x20)
1004
1005 /*******************************************************************************
1006
1007   NAME
1008     CsrWifiSmeP2pNoaConfigMethod
1009
1010   DESCRIPTION
1011     Notice of Absece Configuration
1012
1013  VALUES
1014     CSR_WIFI_P2P_NOA_NONE         - Do not use NOA
1015     CSR_WIFI_P2P_NOA_AUTONOMOUS   - NOA based on the traffic analysis
1016     CSR_WIFI_P2P_NOA_USER_DEFINED - NOA as specified by the user
1017
1018 *******************************************************************************/
1019 typedef u8 CsrWifiSmeP2pNoaConfigMethod;
1020 #define CSR_WIFI_P2P_NOA_NONE           ((CsrWifiSmeP2pNoaConfigMethod) 0x00)
1021 #define CSR_WIFI_P2P_NOA_AUTONOMOUS     ((CsrWifiSmeP2pNoaConfigMethod) 0x01)
1022 #define CSR_WIFI_P2P_NOA_USER_DEFINED   ((CsrWifiSmeP2pNoaConfigMethod) 0x02)
1023
1024 /*******************************************************************************
1025
1026   NAME
1027     CsrWifiSmeP2pRole
1028
1029   DESCRIPTION
1030     Definition of roles for a P2P Device
1031
1032  VALUES
1033     CSR_WIFI_SME_P2P_ROLE_NONE       - A non-P2PDevice device
1034     CSR_WIFI_SME_P2P_ROLE_STANDALONE - A Standalone P2P device
1035     CSR_WIFI_SME_P2P_ROLE_GO         - Role Assumed is that of a Group Owner
1036                                        within a P2P Group
1037     CSR_WIFI_SME_P2P_ROLE_CLI        - Role Assumed is that of a P2P Client
1038                                        within a P2P Group
1039
1040 *******************************************************************************/
1041 typedef u8 CsrWifiSmeP2pRole;
1042 #define CSR_WIFI_SME_P2P_ROLE_NONE         ((CsrWifiSmeP2pRole) 0x00)
1043 #define CSR_WIFI_SME_P2P_ROLE_STANDALONE   ((CsrWifiSmeP2pRole) 0x01)
1044 #define CSR_WIFI_SME_P2P_ROLE_GO           ((CsrWifiSmeP2pRole) 0x02)
1045 #define CSR_WIFI_SME_P2P_ROLE_CLI          ((CsrWifiSmeP2pRole) 0x03)
1046
1047 /*******************************************************************************
1048
1049   NAME
1050     CsrWifiSmeP2pStatus
1051
1052   DESCRIPTION
1053     This data type enumerates the outcome of P2P procedure
1054
1055  VALUES
1056     CSR_WIFI_SME_P2P_STATUS_SUCCESS
1057                    - Success
1058     CSR_WIFI_SME_P2P_STATUS_FAIL_INFO_UNAVAILABLE
1059                    - Fail; information is currently unavailable
1060     CSR_WIFI_SME_P2P_STATUS_FAIL_INCOMPATIBLE_PARAM
1061                    - Fail; incompatible parameters
1062     CSR_WIFI_SME_P2P_STATUS_FAIL_LIMIT_REACHED
1063                    - Fail; limit reached
1064     CSR_WIFI_SME_P2P_STATUS_FAIL_INVALID_PARAM
1065                    - Fail; invalid parameters
1066     CSR_WIFI_SME_P2P_STATUS_FAIL_ACCOMODATE
1067                    - Fail; unable to accommodate request
1068     CSR_WIFI_SME_P2P_STATUS_FAIL_PREV_ERROR
1069                    - Fail; previous protocol error, or disruptive behavior
1070     CSR_WIFI_SME_P2P_STATUS_FAIL_COMMON_CHANNELS
1071                    - Fail; no common channels
1072     CSR_WIFI_SME_P2P_STATUS_FAIL_UNKNOWN_GROUP
1073                    - Fail; unknown P2P Group
1074     CSR_WIFI_SME_P2P_STATUS_FAIL_GO_INTENT
1075                    - Fail: both P2P Devices indicated an Intent of 15 in Group
1076                      Owner Negotiation
1077     CSR_WIFI_SME_P2P_STATUS_FAIL_PROVISION_METHOD_INCOMPATIBLE
1078                    - Fail; incompatible provisioning method
1079     CSR_WIFI_SME_P2P_STATUS_FAIL_REJECT
1080                    - Fail: rejected by user
1081     CSR_WIFI_SME_P2P_STATUS_FAIL_RESERVED
1082                    - Fail; Status Reserved
1083
1084 *******************************************************************************/
1085 typedef u8 CsrWifiSmeP2pStatus;
1086 #define CSR_WIFI_SME_P2P_STATUS_SUCCESS                              ((CsrWifiSmeP2pStatus) 0x00)
1087 #define CSR_WIFI_SME_P2P_STATUS_FAIL_INFO_UNAVAILABLE                ((CsrWifiSmeP2pStatus) 0x01)
1088 #define CSR_WIFI_SME_P2P_STATUS_FAIL_INCOMPATIBLE_PARAM              ((CsrWifiSmeP2pStatus) 0x02)
1089 #define CSR_WIFI_SME_P2P_STATUS_FAIL_LIMIT_REACHED                   ((CsrWifiSmeP2pStatus) 0x03)
1090 #define CSR_WIFI_SME_P2P_STATUS_FAIL_INVALID_PARAM                   ((CsrWifiSmeP2pStatus) 0x04)
1091 #define CSR_WIFI_SME_P2P_STATUS_FAIL_ACCOMODATE                      ((CsrWifiSmeP2pStatus) 0x05)
1092 #define CSR_WIFI_SME_P2P_STATUS_FAIL_PREV_ERROR                      ((CsrWifiSmeP2pStatus) 0x06)
1093 #define CSR_WIFI_SME_P2P_STATUS_FAIL_COMMON_CHANNELS                 ((CsrWifiSmeP2pStatus) 0x07)
1094 #define CSR_WIFI_SME_P2P_STATUS_FAIL_UNKNOWN_GROUP                   ((CsrWifiSmeP2pStatus) 0x08)
1095 #define CSR_WIFI_SME_P2P_STATUS_FAIL_GO_INTENT                       ((CsrWifiSmeP2pStatus) 0x09)
1096 #define CSR_WIFI_SME_P2P_STATUS_FAIL_PROVISION_METHOD_INCOMPATIBLE   ((CsrWifiSmeP2pStatus) 0x0A)
1097 #define CSR_WIFI_SME_P2P_STATUS_FAIL_REJECT                          ((CsrWifiSmeP2pStatus) 0x0B)
1098 #define CSR_WIFI_SME_P2P_STATUS_FAIL_RESERVED                        ((CsrWifiSmeP2pStatus) 0xFF)
1099
1100 /*******************************************************************************
1101
1102   NAME
1103     CsrWifiSmePacketFilterMode
1104
1105   DESCRIPTION
1106     Options for the filter mode parameter.
1107     The Values here match the HIP interface
1108
1109  VALUES
1110     CSR_WIFI_SME_PACKET_FILTER_MODE_OPT_OUT
1111                    - Broadcast packets are always reported to the host unless
1112                      they match at least one of the specified TCLAS IEs.
1113     CSR_WIFI_SME_PACKET_FILTER_MODE_OPT_IN
1114                    - Broadcast packets are reported to the host only if they
1115                      match at least one of the specified TCLAS IEs.
1116
1117 *******************************************************************************/
1118 typedef u8 CsrWifiSmePacketFilterMode;
1119 #define CSR_WIFI_SME_PACKET_FILTER_MODE_OPT_OUT   ((CsrWifiSmePacketFilterMode) 0x00)
1120 #define CSR_WIFI_SME_PACKET_FILTER_MODE_OPT_IN    ((CsrWifiSmePacketFilterMode) 0x03)
1121
1122 /*******************************************************************************
1123
1124   NAME
1125     CsrWifiSmePowerSaveLevel
1126
1127   DESCRIPTION
1128     Power Save Level options as defined in the IEEE 802.11 standards
1129     First 3 values are set to match the mlme PowerManagementMode
1130
1131  VALUES
1132     CSR_WIFI_SME_POWER_SAVE_LEVEL_LOW  - No power save: the driver will remain
1133                                          active at all times
1134     CSR_WIFI_SME_POWER_SAVE_LEVEL_HIGH - Enter power save after all packets in
1135                                          the queues are transmitted and received
1136     CSR_WIFI_SME_POWER_SAVE_LEVEL_MED  - Enter power save after all packets in
1137                                          the queues are transmitted and received
1138                                          and a further configurable delay
1139                                          (default 1s) has elapsed
1140     CSR_WIFI_SME_POWER_SAVE_LEVEL_AUTO - The SME will decide when to enter power
1141                                          save mode according to the traffic
1142                                          analysis
1143
1144 *******************************************************************************/
1145 typedef u8 CsrWifiSmePowerSaveLevel;
1146 #define CSR_WIFI_SME_POWER_SAVE_LEVEL_LOW    ((CsrWifiSmePowerSaveLevel) 0x00)
1147 #define CSR_WIFI_SME_POWER_SAVE_LEVEL_HIGH   ((CsrWifiSmePowerSaveLevel) 0x01)
1148 #define CSR_WIFI_SME_POWER_SAVE_LEVEL_MED    ((CsrWifiSmePowerSaveLevel) 0x02)
1149 #define CSR_WIFI_SME_POWER_SAVE_LEVEL_AUTO   ((CsrWifiSmePowerSaveLevel) 0x03)
1150
1151 /*******************************************************************************
1152
1153   NAME
1154     CsrWifiSmePreambleType
1155
1156   DESCRIPTION
1157     SME Preamble Types
1158
1159  VALUES
1160     CSR_WIFI_SME_USE_LONG_PREAMBLE  - Use legacy (long) preamble
1161     CSR_WIFI_SME_USE_SHORT_PREAMBLE - Use short PPDU format
1162
1163 *******************************************************************************/
1164 typedef u8 CsrWifiSmePreambleType;
1165 #define CSR_WIFI_SME_USE_LONG_PREAMBLE    ((CsrWifiSmePreambleType) 0x00)
1166 #define CSR_WIFI_SME_USE_SHORT_PREAMBLE   ((CsrWifiSmePreambleType) 0x01)
1167
1168 /*******************************************************************************
1169
1170   NAME
1171     CsrWifiSmeRadioIF
1172
1173   DESCRIPTION
1174     Indicates the frequency
1175
1176  VALUES
1177     CSR_WIFI_SME_RADIO_IF_GHZ_2_4 - Indicates the 2.4 GHZ frequency
1178     CSR_WIFI_SME_RADIO_IF_GHZ_5_0 - Future use: currently not supported
1179     CSR_WIFI_SME_RADIO_IF_BOTH    - Future use: currently not supported
1180
1181 *******************************************************************************/
1182 typedef u8 CsrWifiSmeRadioIF;
1183 #define CSR_WIFI_SME_RADIO_IF_GHZ_2_4   ((CsrWifiSmeRadioIF) 0x01)
1184 #define CSR_WIFI_SME_RADIO_IF_GHZ_5_0   ((CsrWifiSmeRadioIF) 0x02)
1185 #define CSR_WIFI_SME_RADIO_IF_BOTH      ((CsrWifiSmeRadioIF) 0x03)
1186
1187 /*******************************************************************************
1188
1189   NAME
1190     CsrWifiSmeRegulatoryDomain
1191
1192   DESCRIPTION
1193     Indicates the regulatory domain as defined in IEEE 802.11 standards
1194
1195  VALUES
1196     CSR_WIFI_SME_REGULATORY_DOMAIN_OTHER
1197                    - See IEEE 802.11 Standard
1198     CSR_WIFI_SME_REGULATORY_DOMAIN_FCC
1199                    - See IEEE 802.11 Standard
1200     CSR_WIFI_SME_REGULATORY_DOMAIN_IC
1201                    - See IEEE 802.11 Standard
1202     CSR_WIFI_SME_REGULATORY_DOMAIN_ETSI
1203                    - See IEEE 802.11 Standard
1204     CSR_WIFI_SME_REGULATORY_DOMAIN_SPAIN
1205                    - See IEEE 802.11 Standard
1206     CSR_WIFI_SME_REGULATORY_DOMAIN_FRANCE
1207                    - See IEEE 802.11 Standard
1208     CSR_WIFI_SME_REGULATORY_DOMAIN_JAPAN
1209                    - See IEEE 802.11 Standard
1210     CSR_WIFI_SME_REGULATORY_DOMAIN_JAPANBIS
1211                    - See IEEE 802.11 Standard
1212     CSR_WIFI_SME_REGULATORY_DOMAIN_CHINA
1213                    - See IEEE 802.11 Standard
1214     CSR_WIFI_SME_REGULATORY_DOMAIN_CHINABIS
1215                    - See IEEE 802.11 Standard
1216     CSR_WIFI_SME_REGULATORY_DOMAIN_NONE
1217                    - See IEEE 802.11 Standard
1218
1219 *******************************************************************************/
1220 typedef u8 CsrWifiSmeRegulatoryDomain;
1221 #define CSR_WIFI_SME_REGULATORY_DOMAIN_OTHER      ((CsrWifiSmeRegulatoryDomain) 0x00)
1222 #define CSR_WIFI_SME_REGULATORY_DOMAIN_FCC        ((CsrWifiSmeRegulatoryDomain) 0x10)
1223 #define CSR_WIFI_SME_REGULATORY_DOMAIN_IC         ((CsrWifiSmeRegulatoryDomain) 0x20)
1224 #define CSR_WIFI_SME_REGULATORY_DOMAIN_ETSI       ((CsrWifiSmeRegulatoryDomain) 0x30)
1225 #define CSR_WIFI_SME_REGULATORY_DOMAIN_SPAIN      ((CsrWifiSmeRegulatoryDomain) 0x31)
1226 #define CSR_WIFI_SME_REGULATORY_DOMAIN_FRANCE     ((CsrWifiSmeRegulatoryDomain) 0x32)
1227 #define CSR_WIFI_SME_REGULATORY_DOMAIN_JAPAN      ((CsrWifiSmeRegulatoryDomain) 0x40)
1228 #define CSR_WIFI_SME_REGULATORY_DOMAIN_JAPANBIS   ((CsrWifiSmeRegulatoryDomain) 0x41)
1229 #define CSR_WIFI_SME_REGULATORY_DOMAIN_CHINA      ((CsrWifiSmeRegulatoryDomain) 0x50)
1230 #define CSR_WIFI_SME_REGULATORY_DOMAIN_CHINABIS   ((CsrWifiSmeRegulatoryDomain) 0x51)
1231 #define CSR_WIFI_SME_REGULATORY_DOMAIN_NONE       ((CsrWifiSmeRegulatoryDomain) 0xFF)
1232
1233 /*******************************************************************************
1234
1235   NAME
1236     CsrWifiSmeRoamReason
1237
1238   DESCRIPTION
1239     Indicates the reason for roaming
1240
1241  VALUES
1242     CSR_WIFI_SME_ROAM_REASON_BEACONLOST
1243                    - The station cannot receive the beacon signal any more
1244     CSR_WIFI_SME_ROAM_REASON_DISASSOCIATED
1245                    - The station has been disassociated
1246     CSR_WIFI_SME_ROAM_REASON_DEAUTHENTICATED
1247                    - The station has been deauthenticated
1248     CSR_WIFI_SME_ROAM_REASON_BETTERAPFOUND
1249                    - A better AP has been found
1250
1251 *******************************************************************************/
1252 typedef u8 CsrWifiSmeRoamReason;
1253 #define CSR_WIFI_SME_ROAM_REASON_BEACONLOST        ((CsrWifiSmeRoamReason) 0x00)
1254 #define CSR_WIFI_SME_ROAM_REASON_DISASSOCIATED     ((CsrWifiSmeRoamReason) 0x01)
1255 #define CSR_WIFI_SME_ROAM_REASON_DEAUTHENTICATED   ((CsrWifiSmeRoamReason) 0x02)
1256 #define CSR_WIFI_SME_ROAM_REASON_BETTERAPFOUND     ((CsrWifiSmeRoamReason) 0x03)
1257
1258 /*******************************************************************************
1259
1260   NAME
1261     CsrWifiSmeScanType
1262
1263   DESCRIPTION
1264     Identifies the type of scan to be performed
1265
1266  VALUES
1267     CSR_WIFI_SME_SCAN_TYPE_ALL     - Scan actively or passively according to the
1268                                      regulatory domain restrictions
1269     CSR_WIFI_SME_SCAN_TYPE_ACTIVE  - Scan actively only: send probes and listen
1270                                      for answers
1271     CSR_WIFI_SME_SCAN_TYPE_PASSIVE - Scan passively only: listen for beacon
1272                                      messages
1273
1274 *******************************************************************************/
1275 typedef u8 CsrWifiSmeScanType;
1276 #define CSR_WIFI_SME_SCAN_TYPE_ALL       ((CsrWifiSmeScanType) 0x00)
1277 #define CSR_WIFI_SME_SCAN_TYPE_ACTIVE    ((CsrWifiSmeScanType) 0x01)
1278 #define CSR_WIFI_SME_SCAN_TYPE_PASSIVE   ((CsrWifiSmeScanType) 0x02)
1279
1280 /*******************************************************************************
1281
1282   NAME
1283     CsrWifiSmeTrafficType
1284
1285   DESCRIPTION
1286     Identifies the type of traffic going on on the connection.
1287     The values of this type are used across the NME/SME/Router API's and they
1288     must be kept consistent with the corresponding types in the .xml of the
1289     ottherinterfaces
1290
1291  VALUES
1292     CSR_WIFI_SME_TRAFFIC_TYPE_OCCASIONAL
1293                    - During the last 30 seconds there were fewer than 20 packets
1294                      per seconds in each second in both directions
1295     CSR_WIFI_SME_TRAFFIC_TYPE_BURSTY
1296                    - During the last 30 seconds there was at least one second
1297                      during which more than 20 packets were received in either
1298                      direction
1299     CSR_WIFI_SME_TRAFFIC_TYPE_PERIODIC
1300                    - During the last 5 seconds there were at least 10 packets
1301                      received each second and a defined period for the traffic
1302                      can be recognized
1303     CSR_WIFI_SME_TRAFFIC_TYPE_CONTINUOUS
1304                    - During the last 5 seconds there were at least 20 packets
1305                      received each second in either direction
1306
1307 *******************************************************************************/
1308 typedef u8 CsrWifiSmeTrafficType;
1309 #define CSR_WIFI_SME_TRAFFIC_TYPE_OCCASIONAL   ((CsrWifiSmeTrafficType) 0x00)
1310 #define CSR_WIFI_SME_TRAFFIC_TYPE_BURSTY       ((CsrWifiSmeTrafficType) 0x01)
1311 #define CSR_WIFI_SME_TRAFFIC_TYPE_PERIODIC     ((CsrWifiSmeTrafficType) 0x02)
1312 #define CSR_WIFI_SME_TRAFFIC_TYPE_CONTINUOUS   ((CsrWifiSmeTrafficType) 0x03)
1313
1314 /*******************************************************************************
1315
1316   NAME
1317     CsrWifiSmeTspecCtrl
1318
1319   DESCRIPTION
1320     Defines bits for CsrWifiSmeTspecCtrlMask for additional CCX configuration.
1321     CURRENTLY NOT SUPPORTED.
1322
1323  VALUES
1324     CSR_WIFI_SME_TSPEC_CTRL_STRICT
1325                    - No automatic negotiation
1326     CSR_WIFI_SME_TSPEC_CTRL_CCX_SIGNALLING
1327                    - Signalling TSPEC
1328     CSR_WIFI_SME_TSPEC_CTRL_CCX_VOICE
1329                    - Voice traffic TSPEC
1330
1331 *******************************************************************************/
1332 typedef u8 CsrWifiSmeTspecCtrl;
1333 #define CSR_WIFI_SME_TSPEC_CTRL_STRICT           ((CsrWifiSmeTspecCtrl) 0x01)
1334 #define CSR_WIFI_SME_TSPEC_CTRL_CCX_SIGNALLING   ((CsrWifiSmeTspecCtrl) 0x02)
1335 #define CSR_WIFI_SME_TSPEC_CTRL_CCX_VOICE        ((CsrWifiSmeTspecCtrl) 0x04)
1336
1337 /*******************************************************************************
1338
1339   NAME
1340     CsrWifiSmeTspecResultCode
1341
1342   DESCRIPTION
1343     Defines the result of the TSPEC exchanges with the AP
1344
1345  VALUES
1346     CSR_WIFI_SME_TSPEC_RESULT_SUCCESS
1347                    - TSPEC command has been processed correctly
1348     CSR_WIFI_SME_TSPEC_RESULT_UNSPECIFIED_QOS_FAILURE
1349                    - The Access Point reported a failure
1350     CSR_WIFI_SME_TSPEC_RESULT_FAILURE
1351                    - Internal failure in the SME
1352     CSR_WIFI_SME_TSPEC_RESULT_INVALID_TSPEC_PARAMETERS
1353                    - The TSPEC parameters are invalid
1354     CSR_WIFI_SME_TSPEC_RESULT_INVALID_TCLAS_PARAMETERS
1355                    - The TCLASS parameters are invalid
1356     CSR_WIFI_SME_TSPEC_RESULT_INSUFFICIENT_BANDWIDTH
1357                    - As specified by the WMM Spec
1358     CSR_WIFI_SME_TSPEC_RESULT_WRONG_POLICY
1359                    - As specified by the WMM Spec
1360     CSR_WIFI_SME_TSPEC_RESULT_REJECTED_WITH_SUGGESTED_CHANGES
1361                    - As specified by the WMM Spec
1362     CSR_WIFI_SME_TSPEC_RESULT_TIMEOUT
1363                    - The TSPEC negotiation timed out
1364     CSR_WIFI_SME_TSPEC_RESULT_NOT_SUPPORTED
1365                    - The Access Point does not support the TSPEC
1366     CSR_WIFI_SME_TSPEC_RESULT_IE_LENGTH_INCORRECT
1367                    - The length of the TSPEC is not correct
1368     CSR_WIFI_SME_TSPEC_RESULT_INVALID_TRANSACTION_ID
1369                    - The TSPEC transaction id is not in the list
1370     CSR_WIFI_SME_TSPEC_RESULT_INSTALLED
1371                    - The TSPEC has been installed and it is now active.
1372     CSR_WIFI_SME_TSPEC_RESULT_TID_ALREADY_INSTALLED
1373                    - The Traffic ID has already been installed
1374     CSR_WIFI_SME_TSPEC_RESULT_TSPEC_REMOTELY_DELETED
1375                    - The AP has deleted the TSPEC
1376
1377 *******************************************************************************/
1378 typedef u8 CsrWifiSmeTspecResultCode;
1379 #define CSR_WIFI_SME_TSPEC_RESULT_SUCCESS                           ((CsrWifiSmeTspecResultCode) 0x00)
1380 #define CSR_WIFI_SME_TSPEC_RESULT_UNSPECIFIED_QOS_FAILURE           ((CsrWifiSmeTspecResultCode) 0x01)
1381 #define CSR_WIFI_SME_TSPEC_RESULT_FAILURE                           ((CsrWifiSmeTspecResultCode) 0x02)
1382 #define CSR_WIFI_SME_TSPEC_RESULT_INVALID_TSPEC_PARAMETERS          ((CsrWifiSmeTspecResultCode) 0x05)
1383 #define CSR_WIFI_SME_TSPEC_RESULT_INVALID_TCLAS_PARAMETERS          ((CsrWifiSmeTspecResultCode) 0x06)
1384 #define CSR_WIFI_SME_TSPEC_RESULT_INSUFFICIENT_BANDWIDTH            ((CsrWifiSmeTspecResultCode) 0x07)
1385 #define CSR_WIFI_SME_TSPEC_RESULT_WRONG_POLICY                      ((CsrWifiSmeTspecResultCode) 0x08)
1386 #define CSR_WIFI_SME_TSPEC_RESULT_REJECTED_WITH_SUGGESTED_CHANGES   ((CsrWifiSmeTspecResultCode) 0x09)
1387 #define CSR_WIFI_SME_TSPEC_RESULT_TIMEOUT                           ((CsrWifiSmeTspecResultCode) 0x0D)
1388 #define CSR_WIFI_SME_TSPEC_RESULT_NOT_SUPPORTED                     ((CsrWifiSmeTspecResultCode) 0x0E)
1389 #define CSR_WIFI_SME_TSPEC_RESULT_IE_LENGTH_INCORRECT               ((CsrWifiSmeTspecResultCode) 0x10)
1390 #define CSR_WIFI_SME_TSPEC_RESULT_INVALID_TRANSACTION_ID            ((CsrWifiSmeTspecResultCode) 0x11)
1391 #define CSR_WIFI_SME_TSPEC_RESULT_INSTALLED                         ((CsrWifiSmeTspecResultCode) 0x12)
1392 #define CSR_WIFI_SME_TSPEC_RESULT_TID_ALREADY_INSTALLED             ((CsrWifiSmeTspecResultCode) 0x13)
1393 #define CSR_WIFI_SME_TSPEC_RESULT_TSPEC_REMOTELY_DELETED            ((CsrWifiSmeTspecResultCode) 0x14)
1394
1395 /*******************************************************************************
1396
1397   NAME
1398     CsrWifiSmeWepAuthMode
1399
1400   DESCRIPTION
1401     Define bits for CsrWifiSmeWepAuthMode
1402
1403  VALUES
1404     CSR_WIFI_SME_WEP_AUTH_MODE_OPEN   - Open-WEP enabled network
1405     CSR_WIFI_SME_WEP_AUTH_MODE_SHARED - Shared-key WEP enabled network.
1406
1407 *******************************************************************************/
1408 typedef u8 CsrWifiSmeWepAuthMode;
1409 #define CSR_WIFI_SME_WEP_AUTH_MODE_OPEN     ((CsrWifiSmeWepAuthMode) 0x00)
1410 #define CSR_WIFI_SME_WEP_AUTH_MODE_SHARED   ((CsrWifiSmeWepAuthMode) 0x01)
1411
1412 /*******************************************************************************
1413
1414   NAME
1415     CsrWifiSmeWepCredentialType
1416
1417   DESCRIPTION
1418     Definition of types of WEP Credentials
1419
1420  VALUES
1421     CSR_WIFI_SME_CREDENTIAL_TYPE_WEP64
1422                    - WEP 64 credential
1423     CSR_WIFI_SME_CREDENTIAL_TYPE_WEP128
1424                    - WEP 128 credential
1425
1426 *******************************************************************************/
1427 typedef u8 CsrWifiSmeWepCredentialType;
1428 #define CSR_WIFI_SME_CREDENTIAL_TYPE_WEP64    ((CsrWifiSmeWepCredentialType) 0x00)
1429 #define CSR_WIFI_SME_CREDENTIAL_TYPE_WEP128   ((CsrWifiSmeWepCredentialType) 0x01)
1430
1431 /*******************************************************************************
1432
1433   NAME
1434     CsrWifiSmeWmmMode
1435
1436   DESCRIPTION
1437     Defines bits for CsrWifiSmeWmmModeMask: enable/disable WMM features.
1438
1439  VALUES
1440     CSR_WIFI_SME_WMM_MODE_DISABLED   - Disables the WMM features.
1441     CSR_WIFI_SME_WMM_MODE_AC_ENABLED - Enables support for WMM-AC.
1442     CSR_WIFI_SME_WMM_MODE_PS_ENABLED - Enables support for WMM Power Save.
1443     CSR_WIFI_SME_WMM_MODE_SA_ENABLED - Currently not supported
1444     CSR_WIFI_SME_WMM_MODE_ENABLED    - Enables support for all currently
1445                                        available WMM features.
1446
1447 *******************************************************************************/
1448 typedef u8 CsrWifiSmeWmmMode;
1449 #define CSR_WIFI_SME_WMM_MODE_DISABLED     ((CsrWifiSmeWmmMode) 0x00)
1450 #define CSR_WIFI_SME_WMM_MODE_AC_ENABLED   ((CsrWifiSmeWmmMode) 0x01)
1451 #define CSR_WIFI_SME_WMM_MODE_PS_ENABLED   ((CsrWifiSmeWmmMode) 0x02)
1452 #define CSR_WIFI_SME_WMM_MODE_SA_ENABLED   ((CsrWifiSmeWmmMode) 0x04)
1453 #define CSR_WIFI_SME_WMM_MODE_ENABLED      ((CsrWifiSmeWmmMode) 0xFF)
1454
1455 /*******************************************************************************
1456
1457   NAME
1458     CsrWifiSmeWmmQosInfo
1459
1460   DESCRIPTION
1461     Defines bits for the QoS Info Octect as defined in the WMM specification.
1462     The first four values define one bit each that can be set or cleared.
1463     Each of the last four values define all the remaining 4 bits and only one
1464     of them at the time shall be used.
1465     For more information, see 'WMM (including WMM Power Save) Specification -
1466     Version 1.1' and 'UniFi Configuring WMM and WMM-PS, Application Note'.
1467
1468  VALUES
1469     CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_ALL
1470                    - WMM AP may deliver all buffered frames
1471     CSR_WIFI_SME_WMM_QOS_INFO_AC_VO
1472                    - Enable UAPSD(both trigger and delivery) for Voice Access
1473                      Category
1474     CSR_WIFI_SME_WMM_QOS_INFO_AC_VI
1475                    - Enable UAPSD(both trigger and delivery) for  Video Access
1476                      Category
1477     CSR_WIFI_SME_WMM_QOS_INFO_AC_BK
1478                    - Enable UAPSD(both trigger and delivery) for  Background
1479                      Access Category
1480     CSR_WIFI_SME_WMM_QOS_INFO_AC_BE
1481                    - Enable UAPSD(both trigger and delivery) for  Best Effort
1482                      Access Category
1483     CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_TWO
1484                    - WMM AP may deliver a maximum of 2 buffered frames (MSDUs
1485                      and MMPDUs) per USP
1486     CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_FOUR
1487                    - WMM AP may deliver a maximum of 4 buffered frames (MSDUs
1488                      and MMPDUs) per USP
1489     CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_SIX
1490                    - WMM AP may deliver a maximum of 6 buffered frames (MSDUs
1491                      and MMPDUs) per USP
1492
1493 *******************************************************************************/
1494 typedef u8 CsrWifiSmeWmmQosInfo;
1495 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_ALL    ((CsrWifiSmeWmmQosInfo) 0x00)
1496 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_VO            ((CsrWifiSmeWmmQosInfo) 0x01)
1497 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_VI            ((CsrWifiSmeWmmQosInfo) 0x02)
1498 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_BK            ((CsrWifiSmeWmmQosInfo) 0x04)
1499 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_BE            ((CsrWifiSmeWmmQosInfo) 0x08)
1500 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_TWO    ((CsrWifiSmeWmmQosInfo) 0x20)
1501 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_FOUR   ((CsrWifiSmeWmmQosInfo) 0x40)
1502 #define CSR_WIFI_SME_WMM_QOS_INFO_AC_MAX_SP_SIX    ((CsrWifiSmeWmmQosInfo) 0x60)
1503
1504 /*******************************************************************************
1505
1506   NAME
1507     CsrWifiSmeWpsConfigType
1508
1509   DESCRIPTION
1510     WPS config methods supported/used by a device
1511
1512  VALUES
1513     CSR_WIFI_WPS_CONFIG_LABEL
1514                    - Label
1515     CSR_WIFI_WPS_CONFIG_DISPLAY
1516                    - Display
1517     CSR_WIFI_WPS_CONFIG_EXT_NFC
1518                    - External NFC : Not supported in this release
1519     CSR_WIFI_WPS_CONFIG_INT_NFC
1520                    - Internal NFC : Not supported in this release
1521     CSR_WIFI_WPS_CONFIG_NFC_IFACE
1522                    - NFC interface : Not supported in this release
1523     CSR_WIFI_WPS_CONFIG_PBC
1524                    - PBC
1525     CSR_WIFI_WPS_CONFIG_KEYPAD
1526                    - KeyPad
1527     CSR_WIFI_WPS_CONFIG_VIRTUAL_PBC
1528                    - PBC through software user interface
1529     CSR_WIFI_WPS_CONFIG_PHYSICAL_PBC
1530                    - Physical PBC
1531     CSR_WIFI_WPS_CONFIG_VIRTUAL_DISPLAY
1532                    - Virtual Display : via html config page etc
1533     CSR_WIFI_WPS_CONFIG_PHYSICAL_DISPLAY
1534                    - Physical Display : Attached to the device
1535
1536 *******************************************************************************/
1537 typedef u16 CsrWifiSmeWpsConfigType;
1538 #define CSR_WIFI_WPS_CONFIG_LABEL              ((CsrWifiSmeWpsConfigType) 0x0004)
1539 #define CSR_WIFI_WPS_CONFIG_DISPLAY            ((CsrWifiSmeWpsConfigType) 0x0008)
1540 #define CSR_WIFI_WPS_CONFIG_EXT_NFC            ((CsrWifiSmeWpsConfigType) 0x0010)
1541 #define CSR_WIFI_WPS_CONFIG_INT_NFC            ((CsrWifiSmeWpsConfigType) 0x0020)
1542 #define CSR_WIFI_WPS_CONFIG_NFC_IFACE          ((CsrWifiSmeWpsConfigType) 0x0040)
1543 #define CSR_WIFI_WPS_CONFIG_PBC                ((CsrWifiSmeWpsConfigType) 0x0080)
1544 #define CSR_WIFI_WPS_CONFIG_KEYPAD             ((CsrWifiSmeWpsConfigType) 0x0100)
1545 #define CSR_WIFI_WPS_CONFIG_VIRTUAL_PBC        ((CsrWifiSmeWpsConfigType) 0x0280)
1546 #define CSR_WIFI_WPS_CONFIG_PHYSICAL_PBC       ((CsrWifiSmeWpsConfigType) 0x0480)
1547 #define CSR_WIFI_WPS_CONFIG_VIRTUAL_DISPLAY    ((CsrWifiSmeWpsConfigType) 0x2008)
1548 #define CSR_WIFI_WPS_CONFIG_PHYSICAL_DISPLAY   ((CsrWifiSmeWpsConfigType) 0x4008)
1549
1550 /*******************************************************************************
1551
1552   NAME
1553     CsrWifiSmeWpsDeviceCategory
1554
1555   DESCRIPTION
1556     Wps Primary Device Types
1557
1558  VALUES
1559     CSR_WIFI_SME_WPS_CATEGORY_UNSPECIFIED
1560                    - Unspecified.
1561     CSR_WIFI_SME_WPS_CATEGORY_COMPUTER
1562                    - Computer.
1563     CSR_WIFI_SME_WPS_CATEGORY_INPUT_DEV
1564                    - Input device
1565     CSR_WIFI_SME_WPS_CATEGORY_PRT_SCAN_FX_CP
1566                    - Printer Scanner Fax Copier etc
1567     CSR_WIFI_SME_WPS_CATEGORY_CAMERA
1568                    - Camera
1569     CSR_WIFI_SME_WPS_CATEGORY_STORAGE
1570                    - Storage
1571     CSR_WIFI_SME_WPS_CATEGORY_NET_INFRA
1572                    - Net Infra
1573     CSR_WIFI_SME_WPS_CATEGORY_DISPLAY
1574                    - Display
1575     CSR_WIFI_SME_WPS_CATEGORY_MULTIMEDIA
1576                    - Multimedia
1577     CSR_WIFI_SME_WPS_CATEGORY_GAMING
1578                    - Gaming.
1579     CSR_WIFI_SME_WPS_CATEGORY_TELEPHONE
1580                    - Telephone.
1581     CSR_WIFI_SME_WPS_CATEGORY_AUDIO
1582                    - Audio
1583     CSR_WIFI_SME_WPS_CATEOARY_OTHERS
1584                    - Others.
1585
1586 *******************************************************************************/
1587 typedef u8 CsrWifiSmeWpsDeviceCategory;
1588 #define CSR_WIFI_SME_WPS_CATEGORY_UNSPECIFIED      ((CsrWifiSmeWpsDeviceCategory) 0x00)
1589 #define CSR_WIFI_SME_WPS_CATEGORY_COMPUTER         ((CsrWifiSmeWpsDeviceCategory) 0x01)
1590 #define CSR_WIFI_SME_WPS_CATEGORY_INPUT_DEV        ((CsrWifiSmeWpsDeviceCategory) 0x02)
1591 #define CSR_WIFI_SME_WPS_CATEGORY_PRT_SCAN_FX_CP   ((CsrWifiSmeWpsDeviceCategory) 0x03)
1592 #define CSR_WIFI_SME_WPS_CATEGORY_CAMERA           ((CsrWifiSmeWpsDeviceCategory) 0x04)
1593 #define CSR_WIFI_SME_WPS_CATEGORY_STORAGE          ((CsrWifiSmeWpsDeviceCategory) 0x05)
1594 #define CSR_WIFI_SME_WPS_CATEGORY_NET_INFRA        ((CsrWifiSmeWpsDeviceCategory) 0x06)
1595 #define CSR_WIFI_SME_WPS_CATEGORY_DISPLAY          ((CsrWifiSmeWpsDeviceCategory) 0x07)
1596 #define CSR_WIFI_SME_WPS_CATEGORY_MULTIMEDIA       ((CsrWifiSmeWpsDeviceCategory) 0x08)
1597 #define CSR_WIFI_SME_WPS_CATEGORY_GAMING           ((CsrWifiSmeWpsDeviceCategory) 0x09)
1598 #define CSR_WIFI_SME_WPS_CATEGORY_TELEPHONE        ((CsrWifiSmeWpsDeviceCategory) 0x0A)
1599 #define CSR_WIFI_SME_WPS_CATEGORY_AUDIO            ((CsrWifiSmeWpsDeviceCategory) 0x0B)
1600 #define CSR_WIFI_SME_WPS_CATEOARY_OTHERS           ((CsrWifiSmeWpsDeviceCategory) 0xFF)
1601
1602 /*******************************************************************************
1603
1604   NAME
1605     CsrWifiSmeWpsDeviceSubCategory
1606
1607   DESCRIPTION
1608     Wps Secondary Device Types
1609
1610  VALUES
1611     CSR_WIFI_SME_WPS_SUB_CATEGORY_UNSPECIFIED
1612                    - Unspecied
1613     CSR_WIFI_SME_WPS_STORAGE_SUB_CATEGORY_NAS
1614                    - Network Associated Storage
1615     CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_PRNTR
1616                    - Printer or print server
1617     CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_WM
1618                    - Windows mobile
1619     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_TUNER
1620                    - Audio tuner/receiver
1621     CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_DIG_STL
1622                    - Digital still camera
1623     CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_AP
1624                    - Access Point
1625     CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_TV
1626                    - TV.
1627     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_DAR
1628                    - DAR.
1629     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_KEYBD
1630                    - Keyboard.
1631     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_PC
1632                    - PC.
1633     CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_XBOX
1634                    - Xbox.
1635     CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_SCNR
1636                    - Scanner
1637     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_SERVER
1638                    - Server
1639     CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_ROUTER
1640                    - Router
1641     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_PVR
1642                    - PVR
1643     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_SPEAKER
1644                    - Speaker
1645     CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_FP_SM
1646                    - Feature phone - Single mode
1647     CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_VIDEO
1648                    - Video camera
1649     CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_PIC_FRM
1650                    - Picture frame
1651     CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_XBOX_360
1652                    - Xbox360
1653     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_MOUSE
1654                    - Mouse
1655     CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_SWITCH
1656                    - Switch
1657     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_PMP
1658                    - Portable music player
1659     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_JOYSTK
1660                    - Joy stick
1661     CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_PLAY_STN
1662                    - Play-station
1663     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_MED_CENT
1664                    - Media Center
1665     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_MCX
1666                    - MCX
1667     CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_FP_DM
1668                    - Feature phone - Dual mode
1669     CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_WEB
1670                    - Web camera
1671     CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_FAX
1672                    - Fax
1673     CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_PROJECTOR
1674                    - Projector
1675     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_TRKBL
1676                    - Track Ball
1677     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_ST_BOX
1678                    - Set-Top-Box
1679     CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_GATEWAY
1680                    - GateWay.
1681     CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_SECURITY
1682                    - Security camera
1683     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_ULTRA_MOB_PC
1684                    - Ultra mobile PC.
1685     CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_CONSOLE
1686                    - Game console/Game console adapter
1687     CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_CPR
1688                    - Copier
1689     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_HEADSET
1690                    - Headset(headphones + microphone)
1691     CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_SP_SM
1692                    - Smart phone - Single mode
1693     CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_MONITOR
1694                    - Monitor.
1695     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_GAME_CTRL
1696                    - Game control.
1697     CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_ALL
1698                    - All-in-One
1699     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_MEDIA
1700                    - Media Server/Media Adapter/Media Extender
1701     CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_SP_DM
1702                    - Smart phone - Dual mode
1703     CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_PORT_DEV
1704                    - Portable gaming device
1705     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_HEADPHONE
1706                    - Headphone.
1707     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_NOTEBOOK
1708                    - Notebook.
1709     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_REMOTE
1710                    - Remote control
1711     CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_MIC
1712                    - Microphone
1713     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_DESKTOP
1714                    - Desktop.
1715     CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_VP
1716                    - Portable video player
1717     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_MID
1718                    - Mobile internet device
1719     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_TOUCH_SCRN
1720                    - Touch screen
1721     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_BIOMET_RDR
1722                    - Biometric reader
1723     CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_NETBOOK
1724                    - Netbook
1725     CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_BRCD_RDR
1726                    - Bar code reader.
1727
1728 *******************************************************************************/
1729 typedef u8 CsrWifiSmeWpsDeviceSubCategory;
1730 #define CSR_WIFI_SME_WPS_SUB_CATEGORY_UNSPECIFIED             ((CsrWifiSmeWpsDeviceSubCategory) 0x00)
1731 #define CSR_WIFI_SME_WPS_STORAGE_SUB_CATEGORY_NAS             ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1732 #define CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_PRNTR              ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1733 #define CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_WM            ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1734 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_TUNER             ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1735 #define CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_DIG_STL          ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1736 #define CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_AP            ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1737 #define CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_TV              ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1738 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_DAR                  ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1739 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_KEYBD         ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1740 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_PC             ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1741 #define CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_XBOX             ((CsrWifiSmeWpsDeviceSubCategory) 0x01)
1742 #define CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_SCNR               ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1743 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_SERVER         ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1744 #define CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_ROUTER        ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1745 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_PVR                  ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1746 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_SPEAKER           ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1747 #define CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_FP_SM         ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1748 #define CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_VIDEO            ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1749 #define CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_PIC_FRM         ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1750 #define CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_XBOX_360         ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1751 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_MOUSE         ((CsrWifiSmeWpsDeviceSubCategory) 0x02)
1752 #define CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_SWITCH        ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1753 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_PMP               ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1754 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_JOYSTK        ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1755 #define CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_PLAY_STN         ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1756 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_MED_CENT       ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1757 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_MCX                  ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1758 #define CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_FP_DM         ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1759 #define CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_WEB              ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1760 #define CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_FAX                ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1761 #define CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_PROJECTOR       ((CsrWifiSmeWpsDeviceSubCategory) 0x03)
1762 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_TRKBL         ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1763 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_ST_BOX               ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1764 #define CSR_WIFI_SME_WPS_NET_INFRA_SUB_CATEGORY_GATEWAY       ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1765 #define CSR_WIFI_SME_WPS_CAMERA_SUB_CATEGORY_SECURITY         ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1766 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_ULTRA_MOB_PC   ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1767 #define CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_CONSOLE          ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1768 #define CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_CPR                ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1769 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_HEADSET           ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1770 #define CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_SP_SM         ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1771 #define CSR_WIFI_SME_WPS_DISPLAY_SUB_CATEGORY_MONITOR         ((CsrWifiSmeWpsDeviceSubCategory) 0x04)
1772 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_GAME_CTRL     ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1773 #define CSR_WIFI_SME_WPS_PSFC_SUB_CATEGORY_ALL                ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1774 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_MEDIA                ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1775 #define CSR_WIFI_SME_WPS_TELEPHONE_SUB_CATEGORY_SP_DM         ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1776 #define CSR_WIFI_SME_WPS_GAMING_SUB_CATEGORY_PORT_DEV         ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1777 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_HEADPHONE         ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1778 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_NOTEBOOK       ((CsrWifiSmeWpsDeviceSubCategory) 0x05)
1779 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_REMOTE        ((CsrWifiSmeWpsDeviceSubCategory) 0x06)
1780 #define CSR_WIFI_SME_WPS_AUDIO_SUB_CATEGORY_MIC               ((CsrWifiSmeWpsDeviceSubCategory) 0x06)
1781 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_DESKTOP        ((CsrWifiSmeWpsDeviceSubCategory) 0x06)
1782 #define CSR_WIFI_SME_WPS_MM_SUB_CATEGORY_VP                   ((CsrWifiSmeWpsDeviceSubCategory) 0x06)
1783 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_MID            ((CsrWifiSmeWpsDeviceSubCategory) 0x07)
1784 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_TOUCH_SCRN    ((CsrWifiSmeWpsDeviceSubCategory) 0x07)
1785 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_BIOMET_RDR    ((CsrWifiSmeWpsDeviceSubCategory) 0x08)
1786 #define CSR_WIFI_SME_WPS_COMPUTER_SUB_CATEGORY_NETBOOK        ((CsrWifiSmeWpsDeviceSubCategory) 0x08)
1787 #define CSR_WIFI_SME_WPS_INPUT_DEV_SUB_CATEGORY_BRCD_RDR      ((CsrWifiSmeWpsDeviceSubCategory) 0x09)
1788
1789 /*******************************************************************************
1790
1791   NAME
1792     CsrWifiSmeWpsDpid
1793
1794   DESCRIPTION
1795     Device Password ID for the chosen config method
1796
1797  VALUES
1798     CSR_WIFI_SME_WPS_DPID_PIN       - PIN
1799     CSR_WIFI_SME_WPS_DPID_USER      - User specified : Used only during P2P GO
1800                                       negotiation procedure
1801     CSR_WIFI_SME_WPS_DPID_MACHINE   - Machine specified i: Not used in this
1802                                       release
1803     CSR_WIFI_SME_WPS_DPID_REKEY     - Rekey : Not used in this release
1804     CSR_WIFI_SME_WPS_DPID_PBC       - PBC
1805     CSR_WIFI_SME_WPS_DPID_REGISTRAR - Registrar specified : Used only in P2P Go
1806                                       negotiation procedure
1807
1808 *******************************************************************************/
1809 typedef u16 CsrWifiSmeWpsDpid;
1810 #define CSR_WIFI_SME_WPS_DPID_PIN         ((CsrWifiSmeWpsDpid) 0x0000)
1811 #define CSR_WIFI_SME_WPS_DPID_USER        ((CsrWifiSmeWpsDpid) 0x0001)
1812 #define CSR_WIFI_SME_WPS_DPID_MACHINE     ((CsrWifiSmeWpsDpid) 0x0002)
1813 #define CSR_WIFI_SME_WPS_DPID_REKEY       ((CsrWifiSmeWpsDpid) 0x0003)
1814 #define CSR_WIFI_SME_WPS_DPID_PBC         ((CsrWifiSmeWpsDpid) 0x0004)
1815 #define CSR_WIFI_SME_WPS_DPID_REGISTRAR   ((CsrWifiSmeWpsDpid) 0x0005)
1816
1817 /*******************************************************************************
1818
1819   NAME
1820     CsrWifiSmeWpsRegistration
1821
1822   DESCRIPTION
1823
1824  VALUES
1825     CSR_WIFI_SME_WPS_REG_NOT_REQUIRED - No encryption set
1826     CSR_WIFI_SME_WPS_REG_REQUIRED     - No encryption set
1827     CSR_WIFI_SME_WPS_REG_UNKNOWN      - No encryption set
1828
1829 *******************************************************************************/
1830 typedef u8 CsrWifiSmeWpsRegistration;
1831 #define CSR_WIFI_SME_WPS_REG_NOT_REQUIRED   ((CsrWifiSmeWpsRegistration) 0x00)
1832 #define CSR_WIFI_SME_WPS_REG_REQUIRED       ((CsrWifiSmeWpsRegistration) 0x01)
1833 #define CSR_WIFI_SME_WPS_REG_UNKNOWN        ((CsrWifiSmeWpsRegistration) 0x02)
1834
1835
1836 /*******************************************************************************
1837
1838   NAME
1839     CsrWifiSmeAuthModeMask
1840
1841   DESCRIPTION
1842     Mask type for use with the values defined by CsrWifiSmeAuthMode
1843
1844 *******************************************************************************/
1845 typedef u16 CsrWifiSmeAuthModeMask;
1846 /*******************************************************************************
1847
1848   NAME
1849     CsrWifiSmeEncryptionMask
1850
1851   DESCRIPTION
1852     Mask type for use with the values defined by CsrWifiSmeEncryption
1853
1854 *******************************************************************************/
1855 typedef u16 CsrWifiSmeEncryptionMask;
1856 /*******************************************************************************
1857
1858   NAME
1859     CsrWifiSmeIndicationsMask
1860
1861   DESCRIPTION
1862     Mask type for use with the values defined by CsrWifiSmeIndications
1863
1864 *******************************************************************************/
1865 typedef u32 CsrWifiSmeIndicationsMask;
1866 /*******************************************************************************
1867
1868   NAME
1869     CsrWifiSmeP2pCapabilityMask
1870
1871   DESCRIPTION
1872     Mask type for use with the values defined by CsrWifiSmeP2pCapability
1873
1874 *******************************************************************************/
1875 typedef u8 CsrWifiSmeP2pCapabilityMask;
1876 /*******************************************************************************
1877
1878   NAME
1879     CsrWifiSmeP2pGroupCapabilityMask
1880
1881   DESCRIPTION
1882     Mask type for use with the values defined by CsrWifiSmeP2pGroupCapability
1883
1884 *******************************************************************************/
1885 typedef u8 CsrWifiSmeP2pGroupCapabilityMask;
1886 /*******************************************************************************
1887
1888   NAME
1889     CsrWifiSmeTspecCtrlMask
1890
1891   DESCRIPTION
1892     Mask type for use with the values defined by CsrWifiSmeTspecCtrl
1893
1894 *******************************************************************************/
1895 typedef u8 CsrWifiSmeTspecCtrlMask;
1896 /*******************************************************************************
1897
1898   NAME
1899     CsrWifiSmeWmmModeMask
1900
1901   DESCRIPTION
1902     Mask type for use with the values defined by CsrWifiSmeWmmMode
1903
1904 *******************************************************************************/
1905 typedef u8 CsrWifiSmeWmmModeMask;
1906 /*******************************************************************************
1907
1908   NAME
1909     CsrWifiSmeWmmQosInfoMask
1910
1911   DESCRIPTION
1912     Mask type for use with the values defined by CsrWifiSmeWmmQosInfo
1913
1914 *******************************************************************************/
1915 typedef u8 CsrWifiSmeWmmQosInfoMask;
1916 /*******************************************************************************
1917
1918   NAME
1919     CsrWifiSmeWpsConfigTypeMask
1920
1921   DESCRIPTION
1922     Mask type for use with the values defined by CsrWifiSmeWpsConfigType
1923
1924 *******************************************************************************/
1925 typedef u16 CsrWifiSmeWpsConfigTypeMask;
1926
1927
1928 /*******************************************************************************
1929
1930   NAME
1931     CsrWifiSmeAdHocConfig
1932
1933   DESCRIPTION
1934     Defines values to use when starting an Ad-hoc (IBSS) network.
1935
1936   MEMBERS
1937     atimWindowTu          - ATIM window specified for IBSS
1938     beaconPeriodTu        - Interval between beacon packets
1939     joinOnlyAttempts      - Maximum number of attempts to join an ad-hoc network.
1940                             The default value is 1.
1941                             Set to 0 for infinite attempts.
1942     joinAttemptIntervalMs - Time between scans for joining the requested IBSS.
1943
1944 *******************************************************************************/
1945 typedef struct
1946 {
1947     u16 atimWindowTu;
1948     u16 beaconPeriodTu;
1949     u16 joinOnlyAttempts;
1950     u16 joinAttemptIntervalMs;
1951 } CsrWifiSmeAdHocConfig;
1952
1953 /*******************************************************************************
1954
1955   NAME
1956     CsrWifiSmeAvailabilityConfig
1957
1958   DESCRIPTION
1959
1960   MEMBERS
1961     listenChannel        -
1962     availabilityDuration -
1963     avalabilityPeriod    -
1964
1965 *******************************************************************************/
1966 typedef struct
1967 {
1968     u8  listenChannel;
1969     u16 availabilityDuration;
1970     u16 avalabilityPeriod;
1971 } CsrWifiSmeAvailabilityConfig;
1972
1973 /*******************************************************************************
1974
1975   NAME
1976     CsrWifiSmeCcxConfig
1977
1978   DESCRIPTION
1979     This type is reserved for future use and should not be used.
1980
1981   MEMBERS
1982     keepAliveTimeMs    - NOT USED
1983     apRoamingEnabled   - NOT USED
1984     measurementsMask   - NOT USED
1985     ccxRadioMgtEnabled - NOT USED
1986
1987 *******************************************************************************/
1988 typedef struct
1989 {
1990     u8 keepAliveTimeMs;
1991     u8  apRoamingEnabled;
1992     u8 measurementsMask;
1993     u8  ccxRadioMgtEnabled;
1994 } CsrWifiSmeCcxConfig;
1995
1996 /*******************************************************************************
1997
1998   NAME
1999     CsrWifiSmeCoexConfig
2000
2001   DESCRIPTION
2002     Parameters for the coexistence behaviour.
2003
2004   MEMBERS
2005     coexEnableSchemeManagement     - Enables the Coexistence Management Scheme
2006     coexPeriodicWakeHost           - If TRUE the firmware wakes up the host
2007                                      periodically according to the traffic
2008                                      period and latency parameters; the host
2009                                      will then send the data to transmit only
2010                                      when woken up.
2011                                      If FALSE, the firmware does not wake up the
2012                                      host and the host will send the data to
2013                                      transmit to the firmware whenever there is
2014                                      data to transmit
2015     coexTrafficBurstyLatencyMs     - Period of awakening for the firmware used
2016                                      when bursty traffic is detected
2017     coexTrafficContinuousLatencyMs - Period of awakening for the firmware used
2018                                      when continuous traffic is detected
2019     coexObexBlackoutDurationMs     - Blackout Duration when a Obex Connection is
2020                                      used
2021     coexObexBlackoutPeriodMs       - Blackout Period when a Obex Connection is
2022                                      used
2023     coexA2dpBrBlackoutDurationMs   - Blackout Duration when a Basic Rate A2DP
2024                                      Connection streaming data
2025     coexA2dpBrBlackoutPeriodMs     - Blackout Period when a Basic Rate A2DP
2026                                      Connection streaming data
2027     coexA2dpEdrBlackoutDurationMs  - Blackout Duration when an Enhanced Data
2028                                      Rate A2DP Connection streaming data
2029     coexA2dpEdrBlackoutPeriodMs    - Blackout Period when an Enhanced Data Rate
2030                                      A2DP Connection streaming data
2031     coexPagingBlackoutDurationMs   - Blackout Duration when a BT page is active
2032     coexPagingBlackoutPeriodMs     - Blackout Period when a BT page is active
2033     coexInquiryBlackoutDurationMs  - Blackout Duration when a BT inquiry is
2034                                      active
2035     coexInquiryBlackoutPeriodMs    - Blackout Period when a BT inquiry is active
2036
2037 *******************************************************************************/
2038 typedef struct
2039 {
2040     u8   coexEnableSchemeManagement;
2041     u8   coexPeriodicWakeHost;
2042     u16 coexTrafficBurstyLatencyMs;
2043     u16 coexTrafficContinuousLatencyMs;
2044     u16 coexObexBlackoutDurationMs;
2045     u16 coexObexBlackoutPeriodMs;
2046     u16 coexA2dpBrBlackoutDurationMs;
2047     u16 coexA2dpBrBlackoutPeriodMs;
2048     u16 coexA2dpEdrBlackoutDurationMs;
2049     u16 coexA2dpEdrBlackoutPeriodMs;
2050     u16 coexPagingBlackoutDurationMs;
2051     u16 coexPagingBlackoutPeriodMs;
2052     u16 coexInquiryBlackoutDurationMs;
2053     u16 coexInquiryBlackoutPeriodMs;
2054 } CsrWifiSmeCoexConfig;
2055
2056 /*******************************************************************************
2057
2058   NAME
2059     CsrWifiSmeConnectionStats
2060
2061   DESCRIPTION
2062     Indicates the statistics of the connection.
2063     The dot11 fields are defined in the Annex D of the IEEE 802.11 standard.
2064
2065   MEMBERS
2066     unifiTxDataRate
2067                    - The bit rate currently in use for transmissions of unicast
2068                      data frames; a data rate in units of 500kbit/s.
2069                      On an infrastructure BSS, this is the data rate used in
2070                      communicating with the associated access point; if there is
2071                      none, an error is returned.
2072                      On an IBSS, this is the data rate used for the last
2073                      transmission of a unicast data frame to any station in the
2074                      IBSS. If no such transmission has been made, an error is
2075                      returned.
2076     unifiRxDataRate
2077                    - As above for receiving data
2078     dot11RetryCount
2079                    - See IEEE 802.11 Standard
2080     dot11MultipleRetryCount
2081                    - See IEEE 802.11 Standard
2082     dot11AckFailureCount
2083                    - See IEEE 802.11 Standard
2084     dot11FrameDuplicateCount
2085                    - See IEEE 802.11 Standard
2086     dot11FcsErrorCount
2087                    - See IEEE 802.11 Standard
2088     dot11RtsSuccessCount
2089                    - See IEEE 802.11 Standard
2090     dot11RtsFailureCount
2091                    - See IEEE 802.11 Standard
2092     dot11FailedCount
2093                    - See IEEE 802.11 Standard
2094     dot11TransmittedFragmentCount
2095                    - See IEEE 802.11 Standard
2096     dot11TransmittedFrameCount
2097                    - See IEEE 802.11 Standard
2098     dot11WepExcludedCount
2099                    - See IEEE 802.11 Standard
2100     dot11WepIcvErrorCount
2101                    - See IEEE 802.11 Standard
2102     dot11WepUndecryptableCount
2103                    - See IEEE 802.11 Standard
2104     dot11MulticastReceivedFrameCount
2105                    - See IEEE 802.11 Standard
2106     dot11MulticastTransmittedFrameCount
2107                    - See IEEE 802.11 Standard
2108     dot11ReceivedFragmentCount
2109                    - See IEEE 802.11 Standard
2110     dot11Rsna4WayHandshakeFailures
2111                    - See IEEE 802.11 Standard
2112     dot11RsnaTkipCounterMeasuresInvoked
2113                    - See IEEE 802.11 Standard
2114     dot11RsnaStatsTkipLocalMicFailures
2115                    - See IEEE 802.11 Standard
2116     dot11RsnaStatsTkipReplays
2117                    - See IEEE 802.11 Standard
2118     dot11RsnaStatsTkipIcvErrors
2119                    - See IEEE 802.11 Standard
2120     dot11RsnaStatsCcmpReplays
2121                    - See IEEE 802.11 Standard
2122     dot11RsnaStatsCcmpDecryptErrors
2123                    - See IEEE 802.11 Standard
2124
2125 *******************************************************************************/
2126 typedef struct
2127 {
2128     u8  unifiTxDataRate;
2129     u8  unifiRxDataRate;
2130     u32 dot11RetryCount;
2131     u32 dot11MultipleRetryCount;
2132     u32 dot11AckFailureCount;
2133     u32 dot11FrameDuplicateCount;
2134     u32 dot11FcsErrorCount;
2135     u32 dot11RtsSuccessCount;
2136     u32 dot11RtsFailureCount;
2137     u32 dot11FailedCount;
2138     u32 dot11TransmittedFragmentCount;
2139     u32 dot11TransmittedFrameCount;
2140     u32 dot11WepExcludedCount;
2141     u32 dot11WepIcvErrorCount;
2142     u32 dot11WepUndecryptableCount;
2143     u32 dot11MulticastReceivedFrameCount;
2144     u32 dot11MulticastTransmittedFrameCount;
2145     u32 dot11ReceivedFragmentCount;
2146     u32 dot11Rsna4WayHandshakeFailures;
2147     u32 dot11RsnaTkipCounterMeasuresInvoked;
2148     u32 dot11RsnaStatsTkipLocalMicFailures;
2149     u32 dot11RsnaStatsTkipReplays;
2150     u32 dot11RsnaStatsTkipIcvErrors;
2151     u32 dot11RsnaStatsCcmpReplays;
2152     u32 dot11RsnaStatsCcmpDecryptErrors;
2153 } CsrWifiSmeConnectionStats;
2154
2155 /*******************************************************************************
2156
2157   NAME
2158     CsrWifiSmeDataBlock
2159
2160   DESCRIPTION
2161     Holds a generic data block to be passed through the interface
2162
2163   MEMBERS
2164     length - Length of the data block
2165     data   - Points to the first byte of the data block
2166
2167 *******************************************************************************/
2168 typedef struct
2169 {
2170     u16 length;
2171     u8 *data;
2172 } CsrWifiSmeDataBlock;
2173
2174 /*******************************************************************************
2175
2176   NAME
2177     CsrWifiSmeEmpty
2178
2179   DESCRIPTION
2180     Empty Structure to indicate that no parameters are available.
2181
2182   MEMBERS
2183     empty  - Only element of the empty structure (always set to 0).
2184
2185 *******************************************************************************/
2186 typedef struct
2187 {
2188     u8 empty;
2189 } CsrWifiSmeEmpty;
2190
2191 /*******************************************************************************
2192
2193   NAME
2194     CsrWifiSmeLinkQuality
2195
2196   DESCRIPTION
2197     Indicates the quality of the link
2198
2199   MEMBERS
2200     unifiRssi - Indicates the received signal strength indication of the link in
2201                 dBm
2202     unifiSnr  - Indicates the signal to noise ratio of the link in dB
2203
2204 *******************************************************************************/
2205 typedef struct
2206 {
2207     s16 unifiRssi;
2208     s16 unifiSnr;
2209 } CsrWifiSmeLinkQuality;
2210
2211 /*******************************************************************************
2212
2213   NAME
2214     CsrWifiSmeMibConfig
2215
2216   DESCRIPTION
2217     Allows low level configuration in the chip.
2218
2219   MEMBERS
2220     unifiFixMaxTxDataRate       - This attribute is used in combination with
2221                                   unifiFixTxDataRate. If it is FALSE, then
2222                                   unifiFixTxDataRate specifies a specific data
2223                                   rate to use. If it is TRUE, unifiFixTxDataRate
2224                                   instead specifies a maximum data rate.
2225     unifiFixTxDataRate          - Transmit rate for unicast data.
2226                                   See MIB description for more details
2227     dot11RtsThreshold           - See IEEE 802.11 Standard
2228     dot11FragmentationThreshold - See IEEE 802.11 Standard
2229     dot11CurrentTxPowerLevel    - See IEEE 802.11 Standard
2230
2231 *******************************************************************************/
2232 typedef struct
2233 {
2234     u8   unifiFixMaxTxDataRate;
2235     u8  unifiFixTxDataRate;
2236     u16 dot11RtsThreshold;
2237     u16 dot11FragmentationThreshold;
2238     u16 dot11CurrentTxPowerLevel;
2239 } CsrWifiSmeMibConfig;
2240
2241 /*******************************************************************************
2242
2243   NAME
2244     CsrWifiSmeP2pProfileIdentity
2245
2246   DESCRIPTION
2247     Details to be filled in
2248
2249   MEMBERS
2250     listenChannel        -
2251     availabilityDuration -
2252     avalabilityPeriod    -
2253
2254 *******************************************************************************/
2255 typedef struct
2256 {
2257     u8  listenChannel;
2258     u16 availabilityDuration;
2259     u16 avalabilityPeriod;
2260 } CsrWifiSmeP2pProfileIdentity;
2261
2262 /*******************************************************************************
2263
2264   NAME
2265     CsrWifiSmePmkid
2266
2267   DESCRIPTION
2268     Defines a PMKID association with BSS
2269
2270   MEMBERS
2271     bssid  - BSS identifier
2272     pmkid  - PMKID
2273
2274 *******************************************************************************/
2275 typedef struct
2276 {
2277     CsrWifiMacAddress bssid;
2278     u8          pmkid[16];
2279 } CsrWifiSmePmkid;
2280
2281 /*******************************************************************************
2282
2283   NAME
2284     CsrWifiSmePmkidCandidate
2285
2286   DESCRIPTION
2287     Information for a PMKID candidate
2288
2289   MEMBERS
2290     bssid          - BSS identifier
2291     preAuthAllowed - Indicates whether preauthentication is allowed
2292
2293 *******************************************************************************/
2294 typedef struct
2295 {
2296     CsrWifiMacAddress bssid;
2297     u8           preAuthAllowed;
2298 } CsrWifiSmePmkidCandidate;
2299
2300 /*******************************************************************************
2301
2302   NAME
2303     CsrWifiSmePmkidList
2304
2305   DESCRIPTION
2306     NOT USED
2307     Used in the Sync access API
2308
2309   MEMBERS
2310     pmkidsCount - Number of PMKIDs in the list
2311     pmkids      - Points to the first PMKID in the list
2312
2313 *******************************************************************************/
2314 typedef struct
2315 {
2316     u8         pmkidsCount;
2317     CsrWifiSmePmkid *pmkids;
2318 } CsrWifiSmePmkidList;
2319
2320 /*******************************************************************************
2321
2322   NAME
2323     CsrWifiSmeRegulatoryDomainInfo
2324
2325   DESCRIPTION
2326     Regulatory domain options.
2327
2328   MEMBERS
2329     dot11MultiDomainCapabilityImplemented
2330                    - TRUE is the multi domain capability is implemented
2331     dot11MultiDomainCapabilityEnabled
2332                    - TRUE is the multi domain capability is enabled
2333     currentRegulatoryDomain
2334                    - Current regulatory domain
2335     currentCountryCode
2336                    - Current country code as defined by the IEEE 802.11
2337                      standards
2338
2339 *******************************************************************************/
2340 typedef struct
2341 {
2342     u8                    dot11MultiDomainCapabilityImplemented;
2343     u8                    dot11MultiDomainCapabilityEnabled;
2344     CsrWifiSmeRegulatoryDomain currentRegulatoryDomain;
2345     u8                   currentCountryCode[2];
2346 } CsrWifiSmeRegulatoryDomainInfo;
2347
2348 /*******************************************************************************
2349
2350   NAME
2351     CsrWifiSmeRoamingBandData
2352
2353   DESCRIPTION
2354     Thresholds to define one usability level category for the received signal
2355
2356   MEMBERS
2357     rssiHighThreshold - Received Signal Strength Indication upper bound in dBm
2358                         for the usability level
2359     rssiLowThreshold  - Received Signal Strength Indication lower bound in dBm
2360                         for the usability level
2361     snrHighThreshold  - Signal to Noise Ratio upper bound in dB for the
2362                         usability level
2363     snrLowThreshold   - Signal to Noise Ratio lower bound in dB for the
2364                         usability level
2365
2366 *******************************************************************************/
2367 typedef struct
2368 {
2369     s16 rssiHighThreshold;
2370     s16 rssiLowThreshold;
2371     s16 snrHighThreshold;
2372     s16 snrLowThreshold;
2373 } CsrWifiSmeRoamingBandData;
2374
2375 /*******************************************************************************
2376
2377   NAME
2378     CsrWifiSmeScanConfigData
2379
2380   DESCRIPTION
2381     Configures the scanning behaviour of the driver and firmware
2382
2383   MEMBERS
2384     intervalSeconds         - All the channels will be scanned once in this time
2385                               interval.
2386                               If connected, the channel scans are spread across
2387                               the interval.
2388                               If disconnected, all the channels will be scanned
2389                               together
2390     validitySeconds         - How long the scan result are cached
2391     minActiveChannelTimeTu  - Minimum time of listening on a channel being
2392                               actively scanned before leaving if no probe
2393                               responses or beacon frames have been received
2394     maxActiveChannelTimeTu  - Maximum time of listening on a channel being
2395                               actively scanned
2396     minPassiveChannelTimeTu - Minimum time of listening on a channel being
2397                               passive scanned before leaving if no beacon frames
2398                               have been received
2399     maxPassiveChannelTimeTu - Maximum time of listening on a channel being
2400                               passively scanned
2401
2402 *******************************************************************************/
2403 typedef struct
2404 {
2405     u16 intervalSeconds;
2406     u16 validitySeconds;
2407     u16 minActiveChannelTimeTu;
2408     u16 maxActiveChannelTimeTu;
2409     u16 minPassiveChannelTimeTu;
2410     u16 maxPassiveChannelTimeTu;
2411 } CsrWifiSmeScanConfigData;
2412
2413 /*******************************************************************************
2414
2415   NAME
2416     CsrWifiSmeTsfTime
2417
2418   DESCRIPTION
2419     Time stamp representation
2420
2421   MEMBERS
2422     data   - TSF Bytes
2423
2424 *******************************************************************************/
2425 typedef struct
2426 {
2427     u8 data[8];
2428 } CsrWifiSmeTsfTime;
2429
2430 /*******************************************************************************
2431
2432   NAME
2433     CsrWifiSmeVersions
2434
2435   DESCRIPTION
2436     Reports version information for the chip, the firmware and the driver and
2437     the SME.
2438
2439   MEMBERS
2440     chipId        - Chip ID
2441     chipVersion   - Chip version ID
2442     firmwareBuild - Firmware Rom build number
2443     firmwarePatch - Firmware Patch build number (if applicable)
2444     firmwareHip   - Firmware HIP protocol version number
2445     routerBuild   - Router build number
2446     routerHip     - Router HIP protocol version number
2447     smeBuild      - SME build number
2448     smeHip        - SME HIP protocol version number
2449
2450 *******************************************************************************/
2451 typedef struct
2452 {
2453     u32      chipId;
2454     u32      chipVersion;
2455     u32      firmwareBuild;
2456     u32      firmwarePatch;
2457     u32      firmwareHip;
2458     char *routerBuild;
2459     u32      routerHip;
2460     char *smeBuild;
2461     u32      smeHip;
2462 } CsrWifiSmeVersions;
2463
2464 /*******************************************************************************
2465
2466   NAME
2467     CsrWifiSmeWmmAcParams
2468
2469   DESCRIPTION
2470     Structure holding WMM AC params data.
2471
2472   MEMBERS
2473     cwMin                     - Exponent for the calculation of CWmin. Range: 0
2474                                 to 15
2475     cwMax                     - Exponent for the calculation of CWmax. Range: 0
2476                                 to15
2477     aifs                      - Arbitration Inter Frame Spacing in terms of
2478                                 number of timeslots. Range 2 to 15
2479     txopLimit                 - TXOP Limit in the units of 32 microseconds
2480     admissionControlMandatory - Indicates whether the admission control is
2481                                 mandatory or not. Current release does not
2482                                 support admission control , hence shall be set
2483                                 to FALSE.
2484
2485 *******************************************************************************/
2486 typedef struct
2487 {
2488     u8  cwMin;
2489     u8  cwMax;
2490     u8  aifs;
2491     u16 txopLimit;
2492     u8   admissionControlMandatory;
2493 } CsrWifiSmeWmmAcParams;
2494
2495 /*******************************************************************************
2496
2497   NAME
2498     CsrWifiSmeWpsDeviceType
2499
2500   DESCRIPTION
2501     Structure holding AP WPS device type data.
2502
2503   MEMBERS
2504     deviceDetails - category , sub category etc
2505
2506 *******************************************************************************/
2507 typedef struct
2508 {
2509     u8 deviceDetails[8];
2510 } CsrWifiSmeWpsDeviceType;
2511
2512 /*******************************************************************************
2513
2514   NAME
2515     CsrWifiSmeWpsDeviceTypeCommon
2516
2517   DESCRIPTION
2518
2519   MEMBERS
2520     spportWps  -
2521     deviceType -
2522
2523 *******************************************************************************/
2524 typedef struct
2525 {
2526     u8  spportWps;
2527     u8 deviceType;
2528 } CsrWifiSmeWpsDeviceTypeCommon;
2529
2530 /*******************************************************************************
2531
2532   NAME
2533     CsrWifiSmeWpsInfo
2534
2535   DESCRIPTION
2536
2537   MEMBERS
2538     version         -
2539     configMethods   -
2540     devicePassworId -
2541
2542 *******************************************************************************/
2543 typedef struct
2544 {
2545     u16 version;
2546     u16 configMethods;
2547     u16 devicePassworId;
2548 } CsrWifiSmeWpsInfo;
2549
2550 /*******************************************************************************
2551
2552   NAME
2553     CsrWifiSmeCloakedSsidConfig
2554
2555   DESCRIPTION
2556     List of cloaked SSIDs .
2557
2558   MEMBERS
2559     cloakedSsidsCount - Number of cloaked SSID
2560     cloakedSsids      - Points to the first byte of the first SSID provided
2561
2562 *******************************************************************************/
2563 typedef struct
2564 {
2565     u8     cloakedSsidsCount;
2566     CsrWifiSsid *cloakedSsids;
2567 } CsrWifiSmeCloakedSsidConfig;
2568
2569 /*******************************************************************************
2570
2571   NAME
2572     CsrWifiSmeCoexInfo
2573
2574   DESCRIPTION
2575     Information and state related to coexistence.
2576
2577   MEMBERS
2578     hasTrafficData            - TRUE if any Wi-Fi traffic is detected
2579     currentTrafficType        - Current type of traffic
2580     currentPeriodMs           - Period of the traffic as detected by the traffic
2581                                 analysis.
2582                                 If the traffic is not periodic, it is set to 0.
2583     currentPowerSave          - Current power save level
2584     currentCoexPeriodMs       - Period of awakening for the firmware used when
2585                                 periodic traffic is detected.
2586                                 If the traffic is not periodic, it is set to 0.
2587     currentCoexLatencyMs      - Period of awakening for the firmware used when
2588                                 non-periodic traffic is detected
2589     hasBtDevice               - TRUE if there is a Bluetooth device connected
2590     currentBlackoutDurationUs - Current blackout duration for protecting
2591                                 Bluetooth
2592     currentBlackoutPeriodUs   - Current blackout period
2593     currentCoexScheme         - Defines the scheme for the coexistence
2594                                 signalling
2595
2596 *******************************************************************************/
2597 typedef struct
2598 {
2599     u8                  hasTrafficData;
2600     CsrWifiSmeTrafficType    currentTrafficType;
2601     u16                currentPeriodMs;
2602     CsrWifiSmePowerSaveLevel currentPowerSave;
2603     u16                currentCoexPeriodMs;
2604     u16                currentCoexLatencyMs;
2605     u8                  hasBtDevice;
2606     u32                currentBlackoutDurationUs;
2607     u32                currentBlackoutPeriodUs;
2608     CsrWifiSmeCoexScheme     currentCoexScheme;
2609 } CsrWifiSmeCoexInfo;
2610
2611 /*******************************************************************************
2612
2613   NAME
2614     CsrWifiSmeConnectionConfig
2615
2616   DESCRIPTION
2617     Specifies the parameters that the SME should use in selecting a network.
2618
2619   MEMBERS
2620     ssid
2621                    - Service Set identifier
2622     bssid
2623                    - BSS identifier
2624     bssType
2625                    - Indicates the type of BSS
2626     ifIndex
2627                    - Indicates the radio interface
2628     privacyMode
2629                    - Specifies whether the privacy mode is enabled or disabled.
2630     authModeMask
2631                    - Sets the authentication options that the SME can use while
2632                      associating to the AP
2633                      Set mask with values from CsrWifiSmeAuthMode
2634     encryptionModeMask
2635                    - Sets the encryption options that the SME can use while
2636                      associating to the AP
2637                      Set mask with values from CsrWifiSmeEncryption
2638     mlmeAssociateReqInformationElementsLength
2639                    - Length in bytes of information elements to be sent in the
2640                      Association Request.
2641     mlmeAssociateReqInformationElements
2642                    - Points to the first byte of the information elements, if
2643                      any.
2644     wmmQosInfo
2645                    - This parameter allows the driver's WMM behaviour to be
2646                      configured.
2647                      To enable support for WMM, use
2648                      CSR_WIFI_SME_SME_CONFIG_SET_REQ with the
2649                      CSR_WIFI_SME_WMM_MODE_AC_ENABLED bit set in wmmModeMask
2650                      field in smeConfig parameter.
2651                      Set mask with values from CsrWifiSmeWmmQosInfo
2652     adhocJoinOnly
2653                    - This parameter is relevant only if bssType is NOT set to
2654                      CSR_WIFI_SME_BSS_TYPE_INFRASTRUCTURE:
2655                      if TRUE the SME will only try to join an ad-hoc network if
2656                      there is one already established;
2657                      if FALSE the SME will try to join an ad-hoc network if
2658                      there is one already established or it will try to
2659                      establish a new one
2660     adhocChannel
2661                    - This parameter is relevant only if bssType is NOT set to
2662                      CSR_WIFI_SME_BSS_TYPE_INFRASTRUCTURE:
2663                      it indicates the channel to use joining an ad hoc network.
2664                      Setting this to 0 causes the SME to select a channel from
2665                      those permitted in the regulatory domain.
2666
2667 *******************************************************************************/
2668 typedef struct
2669 {
2670     CsrWifiSsid                ssid;
2671     CsrWifiMacAddress          bssid;
2672     CsrWifiSmeBssType          bssType;
2673     CsrWifiSmeRadioIF          ifIndex;
2674     CsrWifiSme80211PrivacyMode privacyMode;
2675     CsrWifiSmeAuthModeMask     authModeMask;
2676     CsrWifiSmeEncryptionMask   encryptionModeMask;
2677     u16                  mlmeAssociateReqInformationElementsLength;
2678     u8                  *mlmeAssociateReqInformationElements;
2679     CsrWifiSmeWmmQosInfoMask   wmmQosInfo;
2680     u8                    adhocJoinOnly;
2681     u8                   adhocChannel;
2682 } CsrWifiSmeConnectionConfig;
2683
2684 /*******************************************************************************
2685
2686   NAME
2687     CsrWifiSmeConnectionInfo
2688
2689   DESCRIPTION
2690     Parameters that the SME should use in selecting a network
2691
2692   MEMBERS
2693     ssid                        - Service set identifier
2694     bssid                       - BSS identifier
2695     networkType80211            - Physical layer used for the connection
2696     channelNumber               - Channel number
2697     channelFrequency            - Channel frequency
2698     authMode                    - Authentication mode used for the connection
2699     pairwiseCipher              - Encryption type for peer to peer communication
2700     groupCipher                 - Encryption type for broadcast and multicast
2701                                   communication
2702     ifIndex                     - Indicates the radio interface
2703     atimWindowTu                - ATIM window specified for IBSS
2704     beaconPeriodTu              - Interval between beacon packets
2705     reassociation               - Indicates whether a reassociation occurred
2706     beaconFrameLength           - Indicates the number of bytes of the beacon
2707                                   frame
2708     beaconFrame                 - Points at the first byte of the beacon frame
2709     associationReqFrameLength   - Indicates the number of bytes of the
2710                                   association request frame
2711     associationReqFrame         - Points at the first byte of the association
2712                                   request frame
2713     associationRspFrameLength   - Indicates the number of bytes of the
2714                                   association response frame
2715     associationRspFrame         - Points at the first byte of the association
2716                                   response frame
2717     assocScanInfoElementsLength - Indicates the number of bytes in the buffer
2718                                   pointed by assocScanInfoElements
2719     assocScanInfoElements       - Pointer to the buffer containing the
2720                                   information elements of the probe response
2721                                   received after the probe requests sent before
2722                                   attempting to authenticate to the network
2723     assocReqCapabilities        - Reports the content of the Capability
2724                                   information element as specified in the
2725                                   association request.
2726     assocReqListenIntervalTu    - Listen Interval specified in the association
2727                                   request
2728     assocReqApAddress           - AP address to which the association requests
2729                                   has been sent
2730     assocReqInfoElementsLength  - Indicates the number of bytes of the
2731                                   association request information elements
2732     assocReqInfoElements        - Points at the first byte of the association
2733                                   request information elements
2734     assocRspResult              - Result reported in the association response
2735     assocRspCapabilityInfo      - Reports the content of the Capability
2736                                   information element as received in the
2737                                   association response.
2738     assocRspAssociationId       - Reports the association ID received in the
2739                                   association response.
2740     assocRspInfoElementsLength  - Indicates the number of bytes of the
2741                                   association response information elements
2742     assocRspInfoElements        - Points at the first byte of the association
2743                                   response information elements
2744
2745 *******************************************************************************/
2746 typedef struct
2747 {
2748     CsrWifiSsid                ssid;
2749     CsrWifiMacAddress          bssid;
2750     CsrWifiSme80211NetworkType networkType80211;
2751     u8                   channelNumber;
2752     u16                  channelFrequency;
2753     CsrWifiSmeAuthMode         authMode;
2754     CsrWifiSmeEncryption       pairwiseCipher;
2755     CsrWifiSmeEncryption       groupCipher;
2756     CsrWifiSmeRadioIF          ifIndex;
2757     u16                  atimWindowTu;
2758     u16                  beaconPeriodTu;
2759     u8                    reassociation;
2760     u16                  beaconFrameLength;
2761     u8                  *beaconFrame;
2762     u16                  associationReqFrameLength;
2763     u8                  *associationReqFrame;
2764     u16                  associationRspFrameLength;
2765     u8                  *associationRspFrame;
2766     u16                  assocScanInfoElementsLength;
2767     u8                  *assocScanInfoElements;
2768     u16                  assocReqCapabilities;
2769     u16                  assocReqListenIntervalTu;
2770     CsrWifiMacAddress          assocReqApAddress;
2771     u16                  assocReqInfoElementsLength;
2772     u8                  *assocReqInfoElements;
2773     CsrWifiSmeIEEE80211Result  assocRspResult;
2774     u16                  assocRspCapabilityInfo;
2775     u16                  assocRspAssociationId;
2776     u16                  assocRspInfoElementsLength;
2777     u8                  *assocRspInfoElements;
2778 } CsrWifiSmeConnectionInfo;
2779
2780 /*******************************************************************************
2781
2782   NAME
2783     CsrWifiSmeDeviceConfig
2784
2785   DESCRIPTION
2786     General configuration options in the SME
2787
2788   MEMBERS
2789     trustLevel              - Level of trust of the information coming from the
2790                               network
2791     countryCode             - Country code as specified by IEEE 802.11 standard
2792     firmwareDriverInterface - Specifies the type of communication between Host
2793                               and Firmware
2794     enableStrictDraftN      - If TRUE TKIP is disallowed when connecting to
2795                               802.11n enabled access points
2796
2797 *******************************************************************************/
2798 typedef struct
2799 {
2800     CsrWifiSme80211dTrustLevel        trustLevel;
2801     u8                          countryCode[2];
2802     CsrWifiSmeFirmwareDriverInterface firmwareDriverInterface;
2803     u8                           enableStrictDraftN;
2804 } CsrWifiSmeDeviceConfig;
2805
2806 /*******************************************************************************
2807
2808   NAME
2809     CsrWifiSmeDeviceInfo
2810
2811   DESCRIPTION
2812     P2P Information for a P2P Device
2813
2814   MEMBERS
2815     deviceAddress            - Device Address of the P2P device
2816     configMethods            - Supported WPS configuration methods.
2817     p2PDeviceCap             - P2P device capabilities
2818     primDeviceType           - Primary WPS device type
2819     secondaryDeviceTypeCount - Number of secondary device types
2820     secDeviceType            - list of secondary WPS device types
2821     deviceName               - Device name without up to 32 characters'\0'.
2822     deviceNameLength         - Number of characters of the device name
2823
2824 *******************************************************************************/
2825 typedef struct
2826 {
2827     CsrWifiMacAddress           deviceAddress;
2828     CsrWifiSmeWpsConfigTypeMask configMethods;
2829     CsrWifiSmeP2pCapabilityMask p2PDeviceCap;
2830     CsrWifiSmeWpsDeviceType     primDeviceType;
2831     u8                    secondaryDeviceTypeCount;
2832     CsrWifiSmeWpsDeviceType    *secDeviceType;
2833     u8                    deviceName[32];
2834     u8                    deviceNameLength;
2835 } CsrWifiSmeDeviceInfo;
2836
2837 /*******************************************************************************
2838
2839   NAME
2840     CsrWifiSmeDeviceInfoCommon
2841
2842   DESCRIPTION
2843     Structure holding device information.
2844
2845   MEMBERS
2846     p2pDeviceAddress          -
2847     primaryDeviceType         -
2848     secondaryDeviceTypesCount -
2849     secondaryDeviceTypes      -
2850     deviceNameLength          -
2851     deviceName                -
2852
2853 *******************************************************************************/
2854 typedef struct
2855 {
2856     CsrWifiMacAddress             p2pDeviceAddress;
2857     CsrWifiSmeWpsDeviceTypeCommon primaryDeviceType;
2858     u8                      secondaryDeviceTypesCount;
2859     u8                      secondaryDeviceTypes[10];
2860     u8                      deviceNameLength;
2861     u8                      deviceName[32];
2862 } CsrWifiSmeDeviceInfoCommon;
2863
2864 /*******************************************************************************
2865
2866   NAME
2867     CsrWifiSmeHostConfig
2868
2869   DESCRIPTION
2870     Defines the host power state (for example, on mains power, on battery
2871     power etc) and the periodicity of the traffic data.
2872
2873   MEMBERS
2874     powerMode               - The wireless manager application should use the
2875                               powerMode parameter to inform the SME of the host
2876                               power state.
2877     applicationDataPeriodMs - The applicationDataPeriodMs parameter allows a
2878                               wireless manager application to inform the SME
2879                               that an application is running that generates
2880                               periodic network traffic and the period of the
2881                               traffic.
2882                               An example of such an application is a VoIP client.
2883                               The wireless manager application should set
2884                               applicationDataPeriodMs to the period in
2885                               milliseconds between data packets or zero if no
2886                               periodic application is running.
2887                               Voip etc 0 = No Periodic Data
2888
2889 *******************************************************************************/
2890 typedef struct
2891 {
2892     CsrWifiSmeHostPowerMode powerMode;
2893     u16               applicationDataPeriodMs;
2894 } CsrWifiSmeHostConfig;
2895
2896 /*******************************************************************************
2897
2898   NAME
2899     CsrWifiSmeKey
2900
2901   DESCRIPTION
2902     Information for a key to be used for encryption
2903
2904   MEMBERS
2905     keyType       - Specifies whether the key is a pairwise or group key; it
2906                     should be set to CSR_WIFI_SME_GROUP_KEY or
2907                     CSR_WIFI_SME_PAIRWISE_KEY, as required.
2908     keyIndex      - Specifies which WEP key (0-3) to set; it should be set to 0
2909                     for a WPA/WPA2 pairwise key and non-zero for a WPA/WPA2
2910                     group key.
2911     wepTxKey      - If wepTxKey is TRUE, and the key is a WEP key, the key will
2912                     be selected for encrypting transmitted packets.
2913                     To select a previously defined key as the transmit
2914                     encryption key, set keyIndex to the required key, wepTxKey
2915                     to TRUE and the keyLength to 0.
2916     keyRsc        - Key Receive Sequence Counter
2917     authenticator - If TRUE the WMA will act as authenticator.
2918                     CURRENTLY NOT SUPPORTED
2919     address       - BSS identifier of the AP
2920     keyLength     - Length of the key in bytes
2921     key           - Points to the first byte of the key
2922
2923 *******************************************************************************/
2924 typedef struct
2925 {
2926     CsrWifiSmeKeyType keyType;
2927     u8          keyIndex;
2928     u8           wepTxKey;
2929     u16         keyRsc[8];
2930     u8           authenticator;
2931     CsrWifiMacAddress address;
2932     u8          keyLength;
2933     u8          key[32];
2934 } CsrWifiSmeKey;
2935
2936 /*******************************************************************************
2937
2938   NAME
2939     CsrWifiSmeP2pClientInfoType
2940
2941   DESCRIPTION
2942     P2P Information for a P2P Client
2943
2944   MEMBERS
2945     p2PClientInterfaceAddress - MAC address of the P2P Client
2946     clientDeviceInfo          - Device Information
2947
2948 *******************************************************************************/
2949 typedef struct
2950 {
2951     CsrWifiMacAddress    p2PClientInterfaceAddress;
2952     CsrWifiSmeDeviceInfo clientDeviceInfo;
2953 } CsrWifiSmeP2pClientInfoType;
2954
2955 /*******************************************************************************
2956
2957   NAME
2958     CsrWifiSmeP2pGroupInfo
2959
2960   DESCRIPTION
2961     P2P Information for a P2P Group
2962
2963   MEMBERS
2964     groupCapability    - P2P group capabilities
2965     p2pDeviceAddress   - Device Address of the GO
2966     p2pClientInfoCount - Number of P2P Clients that belong to the group.
2967     p2PClientInfo      - Pointer to the list containing client information for
2968                          each client in the group
2969
2970 *******************************************************************************/
2971 typedef struct
2972 {
2973     CsrWifiSmeP2pGroupCapabilityMask groupCapability;
2974     CsrWifiMacAddress                p2pDeviceAddress;
2975     u8                         p2pClientInfoCount;
2976     CsrWifiSmeP2pClientInfoType     *p2PClientInfo;
2977 } CsrWifiSmeP2pGroupInfo;
2978
2979 /*******************************************************************************
2980
2981   NAME
2982     CsrWifiSmePowerConfig
2983
2984   DESCRIPTION
2985     Configures the power-save behaviour of the driver and firmware.
2986
2987   MEMBERS
2988     powerSaveLevel         - Power Save Level option
2989     listenIntervalTu       - Interval for waking to receive beacon frames
2990     rxDtims                - If TRUE, wake for DTIM every beacon period, to
2991                              allow the reception broadcast packets
2992     d3AutoScanMode         - Defines whether the autonomous scanning will be
2993                              turned off or will stay on during a D3 suspended
2994                              period
2995     clientTrafficWindow    - Deprecated
2996     opportunisticPowerSave - Deprecated
2997     noticeOfAbsence        - Deprecated
2998
2999 *******************************************************************************/
3000 typedef struct
3001 {
3002     CsrWifiSmePowerSaveLevel powerSaveLevel;
3003     u16                listenIntervalTu;
3004     u8                  rxDtims;
3005     CsrWifiSmeD3AutoScanMode d3AutoScanMode;
3006     u8                 clientTrafficWindow;
3007     u8                  opportunisticPowerSave;
3008     u8                  noticeOfAbsence;
3009 } CsrWifiSmePowerConfig;
3010
3011 /*******************************************************************************
3012
3013   NAME
3014     CsrWifiSmeRoamingConfig
3015
3016   DESCRIPTION
3017     Configures the roaming behaviour of the driver and firmware
3018
3019   MEMBERS
3020     roamingBands             - Defines the thresholds to determine the usability
3021                                level of the current connection.
3022                                roamingBands is indexed by the first 3 entries of
3023                                the CsrWifiSmeBasicUsability enum
3024     disableSmoothRoaming     - Disable the RSSI/SNR triggers from the Firmware
3025                                that the SME uses to detect the quality of the
3026                                connection.
3027                                This implicitly disables disableRoamScans
3028     disableRoamScans         - Disables the scanning for the roaming operation
3029     reconnectLimit           - Maximum number of times SME may reconnect in the
3030                                given interval
3031     reconnectLimitIntervalMs - Interval for maximum number of times SME may
3032                                reconnect to the same Access Point
3033     roamScanCfg              - Scanning behaviour for the specifically aimed at
3034                                improving roaming performance.
3035                                roamScanCfg is indexed by the first 3 entries of
3036                                the CsrWifiSmeBasicUsability enum
3037
3038 *******************************************************************************/
3039 typedef struct
3040 {
3041     CsrWifiSmeRoamingBandData roamingBands[3];
3042     u8                   disableSmoothRoaming;
3043     u8                   disableRoamScans;
3044     u8                  reconnectLimit;
3045     u16                 reconnectLimitIntervalMs;
3046     CsrWifiSmeScanConfigData  roamScanCfg[3];
3047 } CsrWifiSmeRoamingConfig;
3048
3049 /*******************************************************************************
3050
3051   NAME
3052     CsrWifiSmeScanConfig
3053
3054   DESCRIPTION
3055     Parameters for the autonomous scanning behaviour of the system
3056
3057   MEMBERS
3058     scanCfg                 - Scan configuration data.
3059                               Indexed by the CsrWifiSmeBasicUsability enum
3060     disableAutonomousScans  - Enables or disables the autonomous scan
3061     maxResults              - Maximum number of results to be cached in the SME
3062     highRssiThreshold       - High received signal strength indication threshold
3063                               in dBm for an AP above which the system will
3064                               report scan indications
3065     lowRssiThreshold        - Low received signal strength indication threshold
3066                               in dBm for an AP below which the system will
3067                               report scan indications
3068     deltaRssiThreshold      - Minimum difference for received signal strength
3069                               indication in dBm for an AP which trigger a scan
3070                               indication to be sent.
3071     highSnrThreshold        - High Signal to Noise Ratio threshold in dB for an
3072                               AP above which the system will report scan
3073                               indications
3074     lowSnrThreshold         - Low Signal to Noise Ratio threshold in dB for an
3075                               AP below which the system will report scan
3076                               indications
3077     deltaSnrThreshold       - Minimum difference for Signal to Noise Ratio in dB
3078                               for an AP which trigger a scan indication to be
3079                               sent.
3080     passiveChannelListCount - Number of channels to be scanned passively.
3081     passiveChannelList      - Points to the first channel to be scanned
3082                               passively , if any.
3083
3084 *******************************************************************************/
3085 typedef struct
3086 {
3087     CsrWifiSmeScanConfigData scanCfg[4];
3088     u8                  disableAutonomousScans;
3089     u16                maxResults;
3090     s8                  highRssiThreshold;
3091     s8                  lowRssiThreshold;
3092     s8                  deltaRssiThreshold;
3093     s8                  highSnrThreshold;
3094     s8                  lowSnrThreshold;
3095     s8                  deltaSnrThreshold;
3096     u16                passiveChannelListCount;
3097     u8                *passiveChannelList;
3098 } CsrWifiSmeScanConfig;
3099
3100 /*******************************************************************************
3101
3102   NAME
3103     CsrWifiSmeScanResult
3104
3105   DESCRIPTION
3106     This structure defines the scan result for each BSS found
3107
3108   MEMBERS
3109     ssid                         - Service set identifier
3110     bssid                        - BSS identifier
3111     rssi                         - Received signal strength indication in dBm
3112     snr                          - Signal to noise ratio in dB
3113     ifIndex                      - Indicates the radio interface
3114     beaconPeriodTu               - Interval between beacon frames
3115     timeStamp                    - Timestamp in the BSS
3116     localTime                    - Timestamp in the Access Point
3117     channelFrequency             - Channel frequency
3118     capabilityInformation        - Capabilities of the BSS.
3119     channelNumber                - Channel number
3120     usability                    - Indicates the usability level.
3121     bssType                      - Type of BSS.
3122     informationElementsLength    - Number of bytes of the information elements
3123                                    received as part of the beacon or probe
3124                                    response.
3125     informationElements          - Points to the first byte of the IEs received
3126                                    as part of the beacon or probe response.
3127                                    The format of the IEs is as specified in the
3128                                    IEEE 802.11 specification.
3129     p2pDeviceRole                - Role of the P2P device.
3130                                    Relevant only if bssType is
3131                                    CSR_WIFI_SME_BSS_TYPE_P2P
3132     deviceInfo                   - Union containing P2P device info which
3133                                    depends on p2pDeviceRole parameter.
3134     deviceInforeservedCli        -
3135     deviceInfogroupInfo          -
3136     deviceInforeservedNone       -
3137     deviceInfostandalonedevInfo  -
3138
3139 *******************************************************************************/
3140 typedef struct
3141 {
3142     CsrWifiSsid              ssid;
3143     CsrWifiMacAddress        bssid;
3144     s16                 rssi;
3145     s16                 snr;
3146     CsrWifiSmeRadioIF        ifIndex;
3147     u16                beaconPeriodTu;
3148     CsrWifiSmeTsfTime        timeStamp;
3149     CsrWifiSmeTsfTime        localTime;
3150     u16                channelFrequency;
3151     u16                capabilityInformation;
3152     u8                 channelNumber;
3153     CsrWifiSmeBasicUsability usability;
3154     CsrWifiSmeBssType        bssType;
3155     u16                informationElementsLength;
3156     u8                *informationElements;
3157     CsrWifiSmeP2pRole        p2pDeviceRole;
3158     union {
3159         CsrWifiSmeEmpty        reservedCli;
3160         CsrWifiSmeP2pGroupInfo groupInfo;
3161         CsrWifiSmeEmpty        reservedNone;
3162         CsrWifiSmeDeviceInfo   standalonedevInfo;
3163     } deviceInfo;
3164 } CsrWifiSmeScanResult;
3165
3166 /*******************************************************************************
3167
3168   NAME
3169     CsrWifiSmeStaConfig
3170
3171   DESCRIPTION
3172     Station configuration options in the SME
3173
3174   MEMBERS
3175     connectionQualityRssiChangeTrigger - Sets the difference of RSSI
3176                                          measurements which triggers reports
3177                                          from the Firmware
3178     connectionQualitySnrChangeTrigger  - Sets the difference of SNR measurements
3179                                          which triggers reports from the
3180                                          Firmware
3181     wmmModeMask                        - Mask containing one or more values from
3182                                          CsrWifiSmeWmmMode
3183     ifIndex                            - Indicates the band of frequencies used
3184     allowUnicastUseGroupCipher         - If TRUE, it allows to use groupwise
3185                                          keys if no pairwise key is specified
3186     enableOpportunisticKeyCaching      - If TRUE, enables the Opportunistic Key
3187                                          Caching feature
3188
3189 *******************************************************************************/
3190 typedef struct
3191 {
3192     u8              connectionQualityRssiChangeTrigger;
3193     u8              connectionQualitySnrChangeTrigger;
3194     CsrWifiSmeWmmModeMask wmmModeMask;
3195     CsrWifiSmeRadioIF     ifIndex;
3196     u8               allowUnicastUseGroupCipher;
3197     u8               enableOpportunisticKeyCaching;
3198 } CsrWifiSmeStaConfig;
3199
3200 /*******************************************************************************
3201
3202   NAME
3203     CsrWifiSmeWep128Keys
3204
3205   DESCRIPTION
3206     Structure holding WEP Authentication Type and WEP keys that can be used
3207     when using WEP128.
3208
3209   MEMBERS
3210     wepAuthType    - Mask to select the WEP authentication type (Open or Shared)
3211     selectedWepKey - Index to one of the four keys below indicating the
3212                      currently used WEP key. Mapping From SME/User -> firmware.
3213                      Key 1 -> Index 0. Key 2 -> Index 1. key 3 -> Index 2. Key
3214                      4-> Index 3.
3215     key1           - Value for key number 1.
3216     key2           - Value for key number 2.
3217     key3           - Value for key number 3.
3218     key4           - Value for key number 4.
3219
3220 *******************************************************************************/
3221 typedef struct
3222 {
3223     CsrWifiSmeWepAuthMode wepAuthType;
3224     u8              selectedWepKey;
3225     u8              key1[13];
3226     u8              key2[13];
3227     u8              key3[13];
3228     u8              key4[13];
3229 } CsrWifiSmeWep128Keys;
3230
3231 /*******************************************************************************
3232
3233   NAME
3234     CsrWifiSmeWep64Keys
3235
3236   DESCRIPTION
3237     Structure holding WEP Authentication Type and WEP keys that can be used
3238     when using WEP64.
3239
3240   MEMBERS
3241     wepAuthType    - Mask to select the WEP authentication type (Open or Shared)
3242     selectedWepKey - Index to one of the four keys below indicating the
3243                      currently used WEP key. Mapping From SME/User -> firmware.
3244                      Key 1 -> Index 0. Key 2 -> Index 1. key 3 -> Index 2. Key
3245                      4-> Index 3.
3246     key1           - Value for key number 1.
3247     key2           - Value for key number 2.
3248     key3           - Value for key number 3.
3249     key4           - Value for key number 4.
3250
3251 *******************************************************************************/
3252 typedef struct
3253 {
3254     CsrWifiSmeWepAuthMode wepAuthType;
3255     u8              selectedWepKey;
3256     u8              key1[5];
3257     u8              key2[5];
3258     u8              key3[5];
3259     u8              key4[5];
3260 } CsrWifiSmeWep64Keys;
3261
3262 /*******************************************************************************
3263
3264   NAME
3265     CsrWifiSmeWepAuth
3266
3267   DESCRIPTION
3268     WEP authentication parameter structure
3269
3270   MEMBERS
3271     wepKeyType               - WEP key try (128 bit or 64 bit)
3272     wepCredentials           - Union containing credentials which depends on
3273                                wepKeyType parameter.
3274     wepCredentialswep128Key  -
3275     wepCredentialswep64Key   -
3276
3277 *******************************************************************************/
3278 typedef struct
3279 {
3280     CsrWifiSmeWepCredentialType wepKeyType;
3281     union {
3282         CsrWifiSmeWep128Keys wep128Key;
3283         CsrWifiSmeWep64Keys  wep64Key;
3284     } wepCredentials;
3285 } CsrWifiSmeWepAuth;
3286
3287 /*******************************************************************************
3288
3289   NAME
3290     CsrWifiSmeWpsConfig
3291
3292   DESCRIPTION
3293     Structure holding AP WPS Config data.
3294
3295   MEMBERS
3296     wpsVersion               - wpsVersion should be 0x10 for WPS1.0h or 0x20 for
3297                                WSC2.0
3298     uuid                     - uuid.
3299     deviceName               - Device name upto 32 characters without '\0'.
3300     deviceNameLength         - deviceNameLen.
3301     manufacturer             - manufacturer: CSR
3302     manufacturerLength       - manufacturerLen.
3303     modelName                - modelName Unifi
3304     modelNameLength          - modelNameLen.
3305     modelNumber              - modelNumber
3306     modelNumberLength        - modelNumberLen.
3307     serialNumber             - serialNumber
3308     primDeviceType           - Primary WPS device type
3309     secondaryDeviceTypeCount - Number of secondary device types
3310     secondaryDeviceType      - list of secondary WPS device types
3311     configMethods            - Supported WPS config methods
3312     rfBands                  - RfBands.
3313     osVersion                - Os version on which the device is running
3314
3315 *******************************************************************************/
3316 typedef struct
3317 {
3318     u8                    wpsVersion;
3319     u8                    uuid[16];
3320     u8                    deviceName[32];
3321     u8                    deviceNameLength;
3322     u8                    manufacturer[64];
3323     u8                    manufacturerLength;
3324     u8                    modelName[32];
3325     u8                    modelNameLength;
3326     u8                    modelNumber[32];
3327     u8                    modelNumberLength;
3328     u8                    serialNumber[32];
3329     CsrWifiSmeWpsDeviceType     primDeviceType;
3330     u8                    secondaryDeviceTypeCount;
3331     CsrWifiSmeWpsDeviceType    *secondaryDeviceType;
3332     CsrWifiSmeWpsConfigTypeMask configMethods;
3333     u8                    rfBands;
3334     u8                    osVersion[4];
3335 } CsrWifiSmeWpsConfig;
3336
3337
3338 /* Downstream */
3339 #define CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST            (0x0000)
3340
3341 #define CSR_WIFI_SME_ACTIVATE_REQ                         ((CsrWifiSmePrim) (0x0000 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3342 #define CSR_WIFI_SME_ADHOC_CONFIG_GET_REQ                 ((CsrWifiSmePrim) (0x0001 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3343 #define CSR_WIFI_SME_ADHOC_CONFIG_SET_REQ                 ((CsrWifiSmePrim) (0x0002 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3344 #define CSR_WIFI_SME_BLACKLIST_REQ                        ((CsrWifiSmePrim) (0x0003 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3345 #define CSR_WIFI_SME_CALIBRATION_DATA_GET_REQ             ((CsrWifiSmePrim) (0x0004 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3346 #define CSR_WIFI_SME_CALIBRATION_DATA_SET_REQ             ((CsrWifiSmePrim) (0x0005 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3347 #define CSR_WIFI_SME_CCX_CONFIG_GET_REQ                   ((CsrWifiSmePrim) (0x0006 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3348 #define CSR_WIFI_SME_CCX_CONFIG_SET_REQ                   ((CsrWifiSmePrim) (0x0007 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3349 #define CSR_WIFI_SME_COEX_CONFIG_GET_REQ                  ((CsrWifiSmePrim) (0x0008 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3350 #define CSR_WIFI_SME_COEX_CONFIG_SET_REQ                  ((CsrWifiSmePrim) (0x0009 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3351 #define CSR_WIFI_SME_COEX_INFO_GET_REQ                    ((CsrWifiSmePrim) (0x000A + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3352 #define CSR_WIFI_SME_CONNECT_REQ                          ((CsrWifiSmePrim) (0x000B + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3353 #define CSR_WIFI_SME_CONNECTION_CONFIG_GET_REQ            ((CsrWifiSmePrim) (0x000C + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3354 #define CSR_WIFI_SME_CONNECTION_INFO_GET_REQ              ((CsrWifiSmePrim) (0x000D + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3355 #define CSR_WIFI_SME_CONNECTION_STATS_GET_REQ             ((CsrWifiSmePrim) (0x000E + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3356 #define CSR_WIFI_SME_DEACTIVATE_REQ                       ((CsrWifiSmePrim) (0x000F + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3357 #define CSR_WIFI_SME_DISCONNECT_REQ                       ((CsrWifiSmePrim) (0x0010 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3358 #define CSR_WIFI_SME_EVENT_MASK_SET_REQ                   ((CsrWifiSmePrim) (0x0011 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3359 #define CSR_WIFI_SME_HOST_CONFIG_GET_REQ                  ((CsrWifiSmePrim) (0x0012 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3360 #define CSR_WIFI_SME_HOST_CONFIG_SET_REQ                  ((CsrWifiSmePrim) (0x0013 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3361 #define CSR_WIFI_SME_KEY_REQ                              ((CsrWifiSmePrim) (0x0014 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3362 #define CSR_WIFI_SME_LINK_QUALITY_GET_REQ                 ((CsrWifiSmePrim) (0x0015 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3363 #define CSR_WIFI_SME_MIB_CONFIG_GET_REQ                   ((CsrWifiSmePrim) (0x0016 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3364 #define CSR_WIFI_SME_MIB_CONFIG_SET_REQ                   ((CsrWifiSmePrim) (0x0017 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3365 #define CSR_WIFI_SME_MIB_GET_NEXT_REQ                     ((CsrWifiSmePrim) (0x0018 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3366 #define CSR_WIFI_SME_MIB_GET_REQ                          ((CsrWifiSmePrim) (0x0019 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3367 #define CSR_WIFI_SME_MIB_SET_REQ                          ((CsrWifiSmePrim) (0x001A + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3368 #define CSR_WIFI_SME_MULTICAST_ADDRESS_REQ                ((CsrWifiSmePrim) (0x001B + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3369 #define CSR_WIFI_SME_PACKET_FILTER_SET_REQ                ((CsrWifiSmePrim) (0x001C + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3370 #define CSR_WIFI_SME_PERMANENT_MAC_ADDRESS_GET_REQ        ((CsrWifiSmePrim) (0x001D + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3371 #define CSR_WIFI_SME_PMKID_REQ                            ((CsrWifiSmePrim) (0x001E + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3372 #define CSR_WIFI_SME_POWER_CONFIG_GET_REQ                 ((CsrWifiSmePrim) (0x001F + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3373 #define CSR_WIFI_SME_POWER_CONFIG_SET_REQ                 ((CsrWifiSmePrim) (0x0020 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3374 #define CSR_WIFI_SME_REGULATORY_DOMAIN_INFO_GET_REQ       ((CsrWifiSmePrim) (0x0021 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3375 #define CSR_WIFI_SME_ROAMING_CONFIG_GET_REQ               ((CsrWifiSmePrim) (0x0022 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3376 #define CSR_WIFI_SME_ROAMING_CONFIG_SET_REQ               ((CsrWifiSmePrim) (0x0023 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3377 #define CSR_WIFI_SME_SCAN_CONFIG_GET_REQ                  ((CsrWifiSmePrim) (0x0024 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3378 #define CSR_WIFI_SME_SCAN_CONFIG_SET_REQ                  ((CsrWifiSmePrim) (0x0025 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3379 #define CSR_WIFI_SME_SCAN_FULL_REQ                        ((CsrWifiSmePrim) (0x0026 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3380 #define CSR_WIFI_SME_SCAN_RESULTS_FLUSH_REQ               ((CsrWifiSmePrim) (0x0027 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3381 #define CSR_WIFI_SME_SCAN_RESULTS_GET_REQ                 ((CsrWifiSmePrim) (0x0028 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3382 #define CSR_WIFI_SME_SME_STA_CONFIG_GET_REQ               ((CsrWifiSmePrim) (0x0029 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3383 #define CSR_WIFI_SME_SME_STA_CONFIG_SET_REQ               ((CsrWifiSmePrim) (0x002A + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3384 #define CSR_WIFI_SME_STATION_MAC_ADDRESS_GET_REQ          ((CsrWifiSmePrim) (0x002B + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3385 #define CSR_WIFI_SME_TSPEC_REQ                            ((CsrWifiSmePrim) (0x002C + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3386 #define CSR_WIFI_SME_VERSIONS_GET_REQ                     ((CsrWifiSmePrim) (0x002D + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3387 #define CSR_WIFI_SME_WIFI_FLIGHTMODE_REQ                  ((CsrWifiSmePrim) (0x002E + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3388 #define CSR_WIFI_SME_WIFI_OFF_REQ                         ((CsrWifiSmePrim) (0x002F + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3389 #define CSR_WIFI_SME_WIFI_ON_REQ                          ((CsrWifiSmePrim) (0x0030 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3390 #define CSR_WIFI_SME_CLOAKED_SSIDS_SET_REQ                ((CsrWifiSmePrim) (0x0031 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3391 #define CSR_WIFI_SME_CLOAKED_SSIDS_GET_REQ                ((CsrWifiSmePrim) (0x0032 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3392 #define CSR_WIFI_SME_SME_COMMON_CONFIG_GET_REQ            ((CsrWifiSmePrim) (0x0033 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3393 #define CSR_WIFI_SME_SME_COMMON_CONFIG_SET_REQ            ((CsrWifiSmePrim) (0x0034 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3394 #define CSR_WIFI_SME_INTERFACE_CAPABILITY_GET_REQ         ((CsrWifiSmePrim) (0x0035 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3395 #define CSR_WIFI_SME_WPS_CONFIGURATION_REQ                ((CsrWifiSmePrim) (0x0036 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3396 #define CSR_WIFI_SME_SET_REQ                              ((CsrWifiSmePrim) (0x0037 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST))
3397
3398
3399 #define CSR_WIFI_SME_PRIM_DOWNSTREAM_HIGHEST           (0x0037 + CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST)
3400
3401 /* Upstream */
3402 #define CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST              (0x0000 + CSR_PRIM_UPSTREAM)
3403
3404 #define CSR_WIFI_SME_ACTIVATE_CFM                         ((CsrWifiSmePrim)(0x0000 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3405 #define CSR_WIFI_SME_ADHOC_CONFIG_GET_CFM                 ((CsrWifiSmePrim)(0x0001 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3406 #define CSR_WIFI_SME_ADHOC_CONFIG_SET_CFM                 ((CsrWifiSmePrim)(0x0002 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3407 #define CSR_WIFI_SME_ASSOCIATION_COMPLETE_IND             ((CsrWifiSmePrim)(0x0003 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3408 #define CSR_WIFI_SME_ASSOCIATION_START_IND                ((CsrWifiSmePrim)(0x0004 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3409 #define CSR_WIFI_SME_BLACKLIST_CFM                        ((CsrWifiSmePrim)(0x0005 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3410 #define CSR_WIFI_SME_CALIBRATION_DATA_GET_CFM             ((CsrWifiSmePrim)(0x0006 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3411 #define CSR_WIFI_SME_CALIBRATION_DATA_SET_CFM             ((CsrWifiSmePrim)(0x0007 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3412 #define CSR_WIFI_SME_CCX_CONFIG_GET_CFM                   ((CsrWifiSmePrim)(0x0008 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3413 #define CSR_WIFI_SME_CCX_CONFIG_SET_CFM                   ((CsrWifiSmePrim)(0x0009 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3414 #define CSR_WIFI_SME_COEX_CONFIG_GET_CFM                  ((CsrWifiSmePrim)(0x000A + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3415 #define CSR_WIFI_SME_COEX_CONFIG_SET_CFM                  ((CsrWifiSmePrim)(0x000B + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3416 #define CSR_WIFI_SME_COEX_INFO_GET_CFM                    ((CsrWifiSmePrim)(0x000C + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3417 #define CSR_WIFI_SME_CONNECT_CFM                          ((CsrWifiSmePrim)(0x000D + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3418 #define CSR_WIFI_SME_CONNECTION_CONFIG_GET_CFM            ((CsrWifiSmePrim)(0x000E + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3419 #define CSR_WIFI_SME_CONNECTION_INFO_GET_CFM              ((CsrWifiSmePrim)(0x000F + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3420 #define CSR_WIFI_SME_CONNECTION_QUALITY_IND               ((CsrWifiSmePrim)(0x0010 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3421 #define CSR_WIFI_SME_CONNECTION_STATS_GET_CFM             ((CsrWifiSmePrim)(0x0011 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3422 #define CSR_WIFI_SME_DEACTIVATE_CFM                       ((CsrWifiSmePrim)(0x0012 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3423 #define CSR_WIFI_SME_DISCONNECT_CFM                       ((CsrWifiSmePrim)(0x0013 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3424 #define CSR_WIFI_SME_EVENT_MASK_SET_CFM                   ((CsrWifiSmePrim)(0x0014 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3425 #define CSR_WIFI_SME_HOST_CONFIG_GET_CFM                  ((CsrWifiSmePrim)(0x0015 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3426 #define CSR_WIFI_SME_HOST_CONFIG_SET_CFM                  ((CsrWifiSmePrim)(0x0016 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3427 #define CSR_WIFI_SME_IBSS_STATION_IND                     ((CsrWifiSmePrim)(0x0017 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3428 #define CSR_WIFI_SME_KEY_CFM                              ((CsrWifiSmePrim)(0x0018 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3429 #define CSR_WIFI_SME_LINK_QUALITY_GET_CFM                 ((CsrWifiSmePrim)(0x0019 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3430 #define CSR_WIFI_SME_MEDIA_STATUS_IND                     ((CsrWifiSmePrim)(0x001A + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3431 #define CSR_WIFI_SME_MIB_CONFIG_GET_CFM                   ((CsrWifiSmePrim)(0x001B + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3432 #define CSR_WIFI_SME_MIB_CONFIG_SET_CFM                   ((CsrWifiSmePrim)(0x001C + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3433 #define CSR_WIFI_SME_MIB_GET_CFM                          ((CsrWifiSmePrim)(0x001D + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3434 #define CSR_WIFI_SME_MIB_GET_NEXT_CFM                     ((CsrWifiSmePrim)(0x001E + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3435 #define CSR_WIFI_SME_MIB_SET_CFM                          ((CsrWifiSmePrim)(0x001F + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3436 #define CSR_WIFI_SME_MIC_FAILURE_IND                      ((CsrWifiSmePrim)(0x0020 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3437 #define CSR_WIFI_SME_MULTICAST_ADDRESS_CFM                ((CsrWifiSmePrim)(0x0021 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3438 #define CSR_WIFI_SME_PACKET_FILTER_SET_CFM                ((CsrWifiSmePrim)(0x0022 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3439 #define CSR_WIFI_SME_PERMANENT_MAC_ADDRESS_GET_CFM        ((CsrWifiSmePrim)(0x0023 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3440 #define CSR_WIFI_SME_PMKID_CANDIDATE_LIST_IND             ((CsrWifiSmePrim)(0x0024 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3441 #define CSR_WIFI_SME_PMKID_CFM                            ((CsrWifiSmePrim)(0x0025 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3442 #define CSR_WIFI_SME_POWER_CONFIG_GET_CFM                 ((CsrWifiSmePrim)(0x0026 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3443 #define CSR_WIFI_SME_POWER_CONFIG_SET_CFM                 ((CsrWifiSmePrim)(0x0027 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3444 #define CSR_WIFI_SME_REGULATORY_DOMAIN_INFO_GET_CFM       ((CsrWifiSmePrim)(0x0028 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3445 #define CSR_WIFI_SME_ROAM_COMPLETE_IND                    ((CsrWifiSmePrim)(0x0029 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3446 #define CSR_WIFI_SME_ROAM_START_IND                       ((CsrWifiSmePrim)(0x002A + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3447 #define CSR_WIFI_SME_ROAMING_CONFIG_GET_CFM               ((CsrWifiSmePrim)(0x002B + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3448 #define CSR_WIFI_SME_ROAMING_CONFIG_SET_CFM               ((CsrWifiSmePrim)(0x002C + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3449 #define CSR_WIFI_SME_SCAN_CONFIG_GET_CFM                  ((CsrWifiSmePrim)(0x002D + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3450 #define CSR_WIFI_SME_SCAN_CONFIG_SET_CFM                  ((CsrWifiSmePrim)(0x002E + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3451 #define CSR_WIFI_SME_SCAN_FULL_CFM                        ((CsrWifiSmePrim)(0x002F + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3452 #define CSR_WIFI_SME_SCAN_RESULT_IND                      ((CsrWifiSmePrim)(0x0030 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3453 #define CSR_WIFI_SME_SCAN_RESULTS_FLUSH_CFM               ((CsrWifiSmePrim)(0x0031 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3454 #define CSR_WIFI_SME_SCAN_RESULTS_GET_CFM                 ((CsrWifiSmePrim)(0x0032 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3455 #define CSR_WIFI_SME_SME_STA_CONFIG_GET_CFM               ((CsrWifiSmePrim)(0x0033 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3456 #define CSR_WIFI_SME_SME_STA_CONFIG_SET_CFM               ((CsrWifiSmePrim)(0x0034 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3457 #define CSR_WIFI_SME_STATION_MAC_ADDRESS_GET_CFM          ((CsrWifiSmePrim)(0x0035 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3458 #define CSR_WIFI_SME_TSPEC_IND                            ((CsrWifiSmePrim)(0x0036 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3459 #define CSR_WIFI_SME_TSPEC_CFM                            ((CsrWifiSmePrim)(0x0037 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3460 #define CSR_WIFI_SME_VERSIONS_GET_CFM                     ((CsrWifiSmePrim)(0x0038 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3461 #define CSR_WIFI_SME_WIFI_FLIGHTMODE_CFM                  ((CsrWifiSmePrim)(0x0039 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3462 #define CSR_WIFI_SME_WIFI_OFF_IND                         ((CsrWifiSmePrim)(0x003A + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3463 #define CSR_WIFI_SME_WIFI_OFF_CFM                         ((CsrWifiSmePrim)(0x003B + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3464 #define CSR_WIFI_SME_WIFI_ON_CFM                          ((CsrWifiSmePrim)(0x003C + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3465 #define CSR_WIFI_SME_CLOAKED_SSIDS_SET_CFM                ((CsrWifiSmePrim)(0x003D + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3466 #define CSR_WIFI_SME_CLOAKED_SSIDS_GET_CFM                ((CsrWifiSmePrim)(0x003E + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3467 #define CSR_WIFI_SME_WIFI_ON_IND                          ((CsrWifiSmePrim)(0x003F + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3468 #define CSR_WIFI_SME_SME_COMMON_CONFIG_GET_CFM            ((CsrWifiSmePrim)(0x0040 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3469 #define CSR_WIFI_SME_SME_COMMON_CONFIG_SET_CFM            ((CsrWifiSmePrim)(0x0041 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3470 #define CSR_WIFI_SME_INTERFACE_CAPABILITY_GET_CFM         ((CsrWifiSmePrim)(0x0042 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3471 #define CSR_WIFI_SME_ERROR_IND                            ((CsrWifiSmePrim)(0x0043 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3472 #define CSR_WIFI_SME_INFO_IND                             ((CsrWifiSmePrim)(0x0044 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3473 #define CSR_WIFI_SME_CORE_DUMP_IND                        ((CsrWifiSmePrim)(0x0045 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3474 #define CSR_WIFI_SME_AMP_STATUS_CHANGE_IND                ((CsrWifiSmePrim)(0x0046 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3475 #define CSR_WIFI_SME_WPS_CONFIGURATION_CFM                ((CsrWifiSmePrim)(0x0047 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST))
3476
3477 #define CSR_WIFI_SME_PRIM_UPSTREAM_HIGHEST             (0x0047 + CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST)
3478
3479 #define CSR_WIFI_SME_PRIM_DOWNSTREAM_COUNT             (CSR_WIFI_SME_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_SME_PRIM_DOWNSTREAM_LOWEST)
3480 #define CSR_WIFI_SME_PRIM_UPSTREAM_COUNT               (CSR_WIFI_SME_PRIM_UPSTREAM_HIGHEST   + 1 - CSR_WIFI_SME_PRIM_UPSTREAM_LOWEST)
3481
3482 /*******************************************************************************
3483
3484   NAME
3485     CsrWifiSmeActivateReq
3486
3487   DESCRIPTION
3488     The WMA sends this primitive to activate the SME.
3489     The WMA must activate the SME before it can send any other primitive.
3490
3491   MEMBERS
3492     common - Common header for use with the CsrWifiFsm Module
3493
3494 *******************************************************************************/
3495 typedef struct
3496 {
3497     CsrWifiFsmEvent common;
3498 } CsrWifiSmeActivateReq;
3499
3500 /*******************************************************************************
3501
3502   NAME
3503     CsrWifiSmeAdhocConfigGetReq
3504
3505   DESCRIPTION
3506     This primitive gets the value of the adHocConfig parameter.
3507
3508   MEMBERS
3509     common - Common header for use with the CsrWifiFsm Module
3510
3511 *******************************************************************************/
3512 typedef struct
3513 {
3514     CsrWifiFsmEvent common;
3515 } CsrWifiSmeAdhocConfigGetReq;
3516
3517 /*******************************************************************************
3518
3519   NAME
3520     CsrWifiSmeAdhocConfigSetReq
3521
3522   DESCRIPTION
3523     This primitive sets the value of the adHocConfig parameter.
3524
3525   MEMBERS
3526     common      - Common header for use with the CsrWifiFsm Module
3527     adHocConfig - Sets the values to use when starting an ad hoc network.
3528
3529 *******************************************************************************/
3530 typedef struct
3531 {
3532     CsrWifiFsmEvent       common;
3533     CsrWifiSmeAdHocConfig adHocConfig;
3534 } CsrWifiSmeAdhocConfigSetReq;
3535
3536 /*******************************************************************************
3537
3538   NAME
3539     CsrWifiSmeBlacklistReq
3540
3541   DESCRIPTION
3542     The wireless manager application should call this primitive to notify the
3543     driver of any networks that should not be connected to. The interface
3544     allows the wireless manager application to query, add, remove, and flush
3545     the BSSIDs that the driver may not connect or roam to.
3546     When this primitive adds to the black list the BSSID to which the SME is
3547     currently connected, the SME will try to roam, if applicable, to another
3548     BSSID in the same ESS; if the roaming procedure fails, the SME will
3549     disconnect.
3550
3551   MEMBERS
3552     common          - Common header for use with the CsrWifiFsm Module
3553     interfaceTag    - Interface Identifier; unique identifier of an interface
3554     action          - The value of the CsrWifiSmeListAction parameter instructs
3555                       the driver to modify or provide the list of blacklisted
3556                       networks.
3557     setAddressCount - Number of BSSIDs sent with this primitive
3558     setAddresses    - Pointer to the list of BBSIDs sent with the primitive, set
3559                       to NULL if none is sent.
3560
3561 *******************************************************************************/
3562 typedef struct
3563 {
3564     CsrWifiFsmEvent      common;
3565     u16            interfaceTag;
3566     CsrWifiSmeListAction action;
3567     u8             setAddressCount;
3568     CsrWifiMacAddress   *setAddresses;
3569 } CsrWifiSmeBlacklistReq;
3570
3571 /*******************************************************************************
3572
3573   NAME
3574     CsrWifiSmeCalibrationDataGetReq
3575
3576   DESCRIPTION
3577     This primitive retrieves the Wi-Fi radio calibration data.
3578
3579   MEMBERS
3580     common - Common header for use with the CsrWifiFsm Module
3581
3582 *******************************************************************************/
3583 typedef struct
3584 {
3585     CsrWifiFsmEvent common;
3586 } CsrWifiSmeCalibrationDataGetReq;
3587
3588 /*******************************************************************************
3589
3590   NAME
3591     CsrWifiSmeCalibrationDataSetReq
3592
3593   DESCRIPTION
3594     This primitive sets the Wi-Fi radio calibration data.
3595     The usage of the primitive with proper calibration data will avoid
3596     time-consuming configuration after power-up.
3597
3598   MEMBERS
3599     common                - Common header for use with the CsrWifiFsm Module
3600     calibrationDataLength - Number of bytes in the buffer pointed by
3601                             calibrationData
3602     calibrationData       - Pointer to a buffer of length calibrationDataLength
3603                             containing the calibration data
3604
3605 *******************************************************************************/
3606 typedef struct
3607 {
3608     CsrWifiFsmEvent common;
3609     u16       calibrationDataLength;
3610     u8       *calibrationData;
3611 } CsrWifiSmeCalibrationDataSetReq;
3612
3613 /*******************************************************************************
3614
3615   NAME
3616     CsrWifiSmeCcxConfigGetReq
3617
3618   DESCRIPTION
3619     This primitive gets the value of the CcxConfig parameter.
3620     CURRENTLY NOT SUPPORTED.
3621
3622   MEMBERS
3623     common       - Common header for use with the CsrWifiFsm Module
3624     interfaceTag - Interface Identifier; unique identifier of an interface
3625
3626 *******************************************************************************/
3627 typedef struct
3628 {
3629     CsrWifiFsmEvent common;
3630     u16       interfaceTag;
3631 } CsrWifiSmeCcxConfigGetReq;
3632
3633 /*******************************************************************************
3634
3635   NAME
3636     CsrWifiSmeCcxConfigSetReq
3637
3638   DESCRIPTION
3639     This primitive sets the value of the CcxConfig parameter.
3640     CURRENTLY NOT SUPPORTED.
3641
3642   MEMBERS
3643     common       - Common header for use with the CsrWifiFsm Module
3644     interfaceTag - Interface Identifier; unique identifier of an interface
3645     ccxConfig    - Currently not supported
3646
3647 *******************************************************************************/
3648 typedef struct
3649 {
3650     CsrWifiFsmEvent     common;
3651     u16           interfaceTag;
3652     CsrWifiSmeCcxConfig ccxConfig;
3653 } CsrWifiSmeCcxConfigSetReq;
3654
3655 /*******************************************************************************
3656
3657   NAME
3658     CsrWifiSmeCoexConfigGetReq
3659
3660   DESCRIPTION
3661     This primitive gets the value of the CoexConfig parameter.
3662
3663   MEMBERS
3664     common - Common header for use with the CsrWifiFsm Module
3665
3666 *******************************************************************************/
3667 typedef struct
3668 {
3669     CsrWifiFsmEvent common;
3670 } CsrWifiSmeCoexConfigGetReq;
3671
3672 /*******************************************************************************
3673
3674   NAME
3675     CsrWifiSmeCoexConfigSetReq
3676
3677   DESCRIPTION
3678     This primitive sets the value of the CoexConfig parameter.
3679
3680   MEMBERS
3681     common     - Common header for use with the CsrWifiFsm Module
3682     coexConfig - Configures the coexistence behaviour
3683
3684 *******************************************************************************/
3685 typedef struct
3686 {
3687     CsrWifiFsmEvent      common;
3688     CsrWifiSmeCoexConfig coexConfig;
3689 } CsrWifiSmeCoexConfigSetReq;
3690
3691 /*******************************************************************************
3692
3693   NAME
3694     CsrWifiSmeCoexInfoGetReq
3695
3696   DESCRIPTION
3697     This primitive gets the value of the CoexInfo parameter.
3698
3699   MEMBERS
3700     common - Common header for use with the CsrWifiFsm Module
3701
3702 *******************************************************************************/
3703 typedef struct
3704 {
3705     CsrWifiFsmEvent common;
3706 } CsrWifiSmeCoexInfoGetReq;
3707
3708 /*******************************************************************************
3709
3710   NAME
3711     CsrWifiSmeConnectReq
3712
3713   DESCRIPTION
3714     The wireless manager application calls this primitive to start the
3715     process of joining an 802.11 wireless network or to start an ad hoc
3716     network.
3717     The structure pointed by connectionConfig contains parameters describing
3718     the network to join or, in case of an ad hoc network, to host or join.
3719     The SME will select a network, perform the IEEE 802.11 Join, Authenticate
3720     and Associate exchanges.
3721     The SME selects the networks from the current scan list that match both
3722     the SSID and BSSID, however either or both of these may be the wildcard
3723     value. Using this rule, the following operations are possible:
3724       * To connect to a network by name, specify the SSID and set the BSSID to
3725         0xFF 0xFF 0xFF 0xFF 0xFF 0xFF. If there are two or more networks visible,
3726         the SME will select the one with the strongest signal.
3727       * To connect to a specific network, specify the BSSID. The SSID is
3728         optional, but if given it must match the SSID of the network. An empty
3729         SSID may be specified by setting the SSID length to zero. Please note
3730         that if the BSSID is specified (i.e. not equal to 0xFF 0xFF 0xFF 0xFF
3731         0xFF 0xFF), the SME will not attempt to roam if signal conditions become
3732         poor, even if there is an alternative AP with an SSID that matches the
3733         current network SSID.
3734       * To connect to any network matching the other parameters (i.e. security,
3735         etc), set the SSID length to zero and set the BSSID to 0xFF 0xFF 0xFF
3736         0xFF 0xFF 0xFF. In this case, the SME will order all available networks
3737         by their signal strengths and will iterate through this list until it
3738         successfully connects.
3739     NOTE: Specifying the BSSID will restrict the selection to one specific
3740     network. If SSID and BSSID are given, they must both match the network
3741     for it to be selected. To select a network based on the SSID only, the
3742     wireless manager application must set the BSSID to 0xFF 0xFF 0xFF 0xFF
3743     0xFF 0xFF.
3744     The SME will try to connect to each network that matches the provided
3745     parameters, one by one, until it succeeds or has tried unsuccessfully
3746     with all the matching networks.
3747     If there is no network that matches the parameters and the request allows
3748     to host an ad hoc network, the SME will advertise a new ad hoc network
3749     instead.
3750     If the SME cannot connect, it will notify the failure in the confirm.
3751
3752   MEMBERS
3753     common           - Common header for use with the CsrWifiFsm Module
3754     interfaceTag     - Interface Identifier; unique identifier of an interface
3755     connectionConfig - Describes the candidate network to join or to host.
3756
3757 *******************************************************************************/
3758 typedef struct
3759 {
3760     CsrWifiFsmEvent            common;
3761     u16                  interfaceTag;
3762     CsrWifiSmeConnectionConfig connectionConfig;
3763 } CsrWifiSmeConnectReq;
3764
3765 /*******************************************************************************
3766
3767   NAME
3768     CsrWifiSmeConnectionConfigGetReq
3769
3770   DESCRIPTION
3771     This primitive gets the value of the ConnectionConfig parameter.
3772
3773   MEMBERS
3774     common       - Common header for use with the CsrWifiFsm Module
3775     interfaceTag - Interface Identifier; unique identifier of an interface
3776
3777 *******************************************************************************/
3778 typedef struct
3779 {
3780     CsrWifiFsmEvent common;
3781     u16       interfaceTag;
3782 } CsrWifiSmeConnectionConfigGetReq;
3783
3784 /*******************************************************************************
3785
3786   NAME
3787     CsrWifiSmeConnectionInfoGetReq
3788
3789   DESCRIPTION
3790     This primitive gets the value of the ConnectionInfo parameter.
3791
3792   MEMBERS
3793     common       - Common header for use with the CsrWifiFsm Module
3794     interfaceTag - Interface Identifier; unique identifier of an interface
3795
3796 *******************************************************************************/
3797 typedef struct
3798 {
3799     CsrWifiFsmEvent common;
3800     u16       interfaceTag;
3801 } CsrWifiSmeConnectionInfoGetReq;
3802
3803 /*******************************************************************************
3804
3805   NAME
3806     CsrWifiSmeConnectionStatsGetReq
3807
3808   DESCRIPTION
3809     This primitive gets the value of the ConnectionStats parameter.
3810
3811   MEMBERS
3812     common       - Common header for use with the CsrWifiFsm Module
3813     interfaceTag - Interface Identifier; unique identifier of an interface
3814
3815 *******************************************************************************/
3816 typedef struct
3817 {
3818     CsrWifiFsmEvent common;
3819     u16       interfaceTag;
3820 } CsrWifiSmeConnectionStatsGetReq;
3821
3822 /*******************************************************************************
3823
3824   NAME
3825     CsrWifiSmeDeactivateReq
3826
3827   DESCRIPTION
3828     The WMA sends this primitive to deactivate the SME.
3829
3830   MEMBERS
3831     common - Common header for use with the CsrWifiFsm Module
3832
3833 *******************************************************************************/
3834 typedef struct
3835 {
3836     CsrWifiFsmEvent common;
3837 } CsrWifiSmeDeactivateReq;
3838
3839 /*******************************************************************************
3840
3841   NAME
3842     CsrWifiSmeDisconnectReq
3843
3844   DESCRIPTION
3845     The wireless manager application may disconnect from the current network
3846     by calling this primitive
3847
3848   MEMBERS
3849     common       - Common header for use with the CsrWifiFsm Module
3850     interfaceTag - Interface Identifier; unique identifier of an interface
3851
3852 *******************************************************************************/
3853 typedef struct
3854 {
3855     CsrWifiFsmEvent common;
3856     u16       interfaceTag;
3857 } CsrWifiSmeDisconnectReq;
3858
3859 /*******************************************************************************
3860
3861   NAME
3862     CsrWifiSmeEventMaskSetReq
3863
3864   DESCRIPTION
3865     The wireless manager application may register with the SME to receive
3866     notification of interesting events. Indications will be sent only if the
3867     wireless manager explicitly registers to be notified of that event.
3868     indMask is a bit mask of values defined in CsrWifiSmeIndicationsMask.
3869
3870   MEMBERS
3871     common  - Common header for use with the CsrWifiFsm Module
3872     indMask - Set mask with values from CsrWifiSmeIndications
3873
3874 *******************************************************************************/
3875 typedef struct
3876 {
3877     CsrWifiFsmEvent           common;
3878     CsrWifiSmeIndicationsMask indMask;
3879 } CsrWifiSmeEventMaskSetReq;
3880
3881 /*******************************************************************************
3882
3883   NAME
3884     CsrWifiSmeHostConfigGetReq
3885
3886   DESCRIPTION
3887     This primitive gets the value of the hostConfig parameter.
3888
3889   MEMBERS
3890     common       - Common header for use with the CsrWifiFsm Module
3891     interfaceTag - Interface Identifier; unique identifier of an interface
3892
3893 *******************************************************************************/
3894 typedef struct
3895 {
3896     CsrWifiFsmEvent common;
3897     u16       interfaceTag;
3898 } CsrWifiSmeHostConfigGetReq;
3899
3900 /*******************************************************************************
3901
3902   NAME
3903     CsrWifiSmeHostConfigSetReq
3904
3905   DESCRIPTION
3906     This primitive sets the value of the hostConfig parameter.
3907
3908   MEMBERS
3909     common       - Common header for use with the CsrWifiFsm Module
3910     interfaceTag - Interface Identifier; unique identifier of an interface
3911     hostConfig   - Communicates a change of host power state (for example, on
3912                    mains power, on battery power etc) and of the periodicity of
3913                    traffic data
3914
3915 *******************************************************************************/
3916 typedef struct
3917 {
3918     CsrWifiFsmEvent      common;
3919     u16            interfaceTag;
3920     CsrWifiSmeHostConfig hostConfig;
3921 } CsrWifiSmeHostConfigSetReq;
3922
3923 /*******************************************************************************
3924
3925   NAME
3926     CsrWifiSmeKeyReq
3927
3928   DESCRIPTION
3929     The wireless manager application calls this primitive to add or remove
3930     keys that the chip should use for encryption of data.
3931     The interface allows the wireless manager application to add and remove
3932     keys according to the specified action.
3933
3934   MEMBERS
3935     common       - Common header for use with the CsrWifiFsm Module
3936     interfaceTag - Interface Identifier; unique identifier of an interface
3937     action       - The value of the CsrWifiSmeListAction parameter instructs the
3938                    driver to modify or provide the list of keys.
3939                    CSR_WIFI_SME_LIST_ACTION_GET is not supported here.
3940     key          - Key to be added or removed
3941
3942 *******************************************************************************/
3943 typedef struct
3944 {
3945     CsrWifiFsmEvent      common;
3946     u16            interfaceTag;
3947     CsrWifiSmeListAction action;
3948     CsrWifiSmeKey        key;
3949 } CsrWifiSmeKeyReq;
3950
3951 /*******************************************************************************
3952
3953   NAME
3954     CsrWifiSmeLinkQualityGetReq
3955
3956   DESCRIPTION
3957     This primitive gets the value of the LinkQuality parameter.
3958
3959   MEMBERS
3960     common       - Common header for use with the CsrWifiFsm Module
3961     interfaceTag - Interface Identifier; unique identifier of an interface
3962
3963 *******************************************************************************/
3964 typedef struct
3965 {
3966     CsrWifiFsmEvent common;
3967     u16       interfaceTag;
3968 } CsrWifiSmeLinkQualityGetReq;
3969
3970 /*******************************************************************************
3971
3972   NAME
3973     CsrWifiSmeMibConfigGetReq
3974
3975   DESCRIPTION
3976     This primitive gets the value of the MibConfig parameter.
3977
3978   MEMBERS
3979     common - Common header for use with the CsrWifiFsm Module
3980
3981 *******************************************************************************/
3982 typedef struct
3983 {
3984     CsrWifiFsmEvent common;
3985 } CsrWifiSmeMibConfigGetReq;
3986
3987 /*******************************************************************************
3988
3989   NAME
3990     CsrWifiSmeMibConfigSetReq
3991
3992   DESCRIPTION
3993     This primitive sets the value of the MibConfig parameter.
3994
3995   MEMBERS
3996     common    - Common header for use with the CsrWifiFsm Module
3997     mibConfig - Conveys the desired value of various IEEE 802.11 attributes as
3998                 currently configured
3999
4000 *******************************************************************************/
4001 typedef struct
4002 {
4003     CsrWifiFsmEvent     common;
4004     CsrWifiSmeMibConfig mibConfig;
4005 } CsrWifiSmeMibConfigSetReq;
4006
4007 /*******************************************************************************
4008
4009   NAME
4010     CsrWifiSmeMibGetNextReq
4011
4012   DESCRIPTION
4013     To read a sequence of MIB parameters, for example a table, call this
4014     primitive to find the name of the next MIB variable
4015
4016   MEMBERS
4017     common             - Common header for use with the CsrWifiFsm Module
4018     mibAttributeLength - Length of mibAttribute
4019     mibAttribute       - Points to a VarBind or VarBindList containing the
4020                          name(s) of the MIB variable(s) to search from.
4021
4022 *******************************************************************************/
4023 typedef struct
4024 {
4025     CsrWifiFsmEvent common;
4026     u16       mibAttributeLength;
4027     u8       *mibAttribute;
4028 } CsrWifiSmeMibGetNextReq;
4029
4030 /*******************************************************************************
4031
4032   NAME
4033     CsrWifiSmeMibGetReq
4034
4035   DESCRIPTION
4036     The wireless manager application calls this primitive to retrieve one or
4037     more MIB variables.
4038
4039   MEMBERS
4040     common             - Common header for use with the CsrWifiFsm Module
4041     mibAttributeLength - Length of mibAttribute
4042     mibAttribute       - Points to the VarBind or VarBindList containing the
4043                          names of the MIB variables to be retrieved
4044
4045 *******************************************************************************/
4046 typedef struct
4047 {
4048     CsrWifiFsmEvent common;
4049     u16       mibAttributeLength;
4050     u8       *mibAttribute;
4051 } CsrWifiSmeMibGetReq;
4052
4053 /*******************************************************************************
4054
4055   NAME
4056     CsrWifiSmeMibSetReq
4057
4058   DESCRIPTION
4059     The SME provides raw access to the MIB on the chip, which may be used by
4060     some configuration or diagnostic utilities, but is not normally needed by
4061     the wireless manager application.
4062     The MIB access functions use BER encoded names (OID) of the MIB
4063     parameters and BER encoded values, as described in the chip Host
4064     Interface Protocol Specification.
4065     The MIB parameters are described in 'Wi-Fi 5.0.0 Management Information
4066     Base Reference Guide'.
4067     The wireless manager application calls this primitive to set one or more
4068     MIB variables
4069
4070   MEMBERS
4071     common             - Common header for use with the CsrWifiFsm Module
4072     mibAttributeLength - Length of mibAttribute
4073     mibAttribute       - Points to the VarBind or VarBindList containing the
4074                          names and values of the MIB variables to set
4075
4076 *******************************************************************************/
4077 typedef struct
4078 {
4079     CsrWifiFsmEvent common;
4080     u16       mibAttributeLength;
4081     u8       *mibAttribute;
4082 } CsrWifiSmeMibSetReq;
4083
4084 /*******************************************************************************
4085
4086   NAME
4087     CsrWifiSmeMulticastAddressReq
4088
4089   DESCRIPTION
4090     The wireless manager application calls this primitive to specify the
4091     multicast addresses which the chip should recognise. The interface allows
4092     the wireless manager application to query, add, remove and flush the
4093     multicast addresses for the network interface according to the specified
4094     action.
4095
4096   MEMBERS
4097     common            - Common header for use with the CsrWifiFsm Module
4098     interfaceTag      - Interface Identifier; unique identifier of an interface
4099     action            - The value of the CsrWifiSmeListAction parameter
4100                         instructs the driver to modify or provide the list of
4101                         MAC addresses.
4102     setAddressesCount - Number of MAC addresses sent with the primitive
4103     setAddresses      - Pointer to the list of MAC Addresses sent with the
4104                         primitive, set to NULL if none is sent.
4105
4106 *******************************************************************************/
4107 typedef struct
4108 {
4109     CsrWifiFsmEvent      common;
4110     u16            interfaceTag;
4111     CsrWifiSmeListAction action;
4112     u8             setAddressesCount;
4113     CsrWifiMacAddress   *setAddresses;
4114 } CsrWifiSmeMulticastAddressReq;
4115
4116 /*******************************************************************************
4117
4118   NAME
4119     CsrWifiSmePacketFilterSetReq
4120
4121   DESCRIPTION
4122     The wireless manager application should call this primitive to enable or
4123     disable filtering of broadcast packets: uninteresting broadcast packets
4124     will be dropped by the Wi-Fi chip, instead of passing them up to the
4125     host.
4126     This has the advantage of saving power in the host application processor
4127     as it removes the need to process unwanted packets.
4128     All broadcast packets are filtered according to the filter and the filter
4129     mode provided, except ARP packets, which are filtered using
4130     arpFilterAddress.
4131     Filters are not cumulative: only the parameters specified in the most
4132     recent successful request are significant.
4133     For more information, see 'UniFi Firmware API Specification'.
4134
4135   MEMBERS
4136     common           - Common header for use with the CsrWifiFsm Module
4137     interfaceTag     - Interface Identifier; unique identifier of an interface
4138     filterLength     - Length of the filter in bytes.
4139                        filterLength=0 disables the filter previously set
4140     filter           - Points to the first byte of the filter provided, if any.
4141                        This shall include zero or more instance of the
4142                        information elements of one of these types
4143                          * Traffic Classification (TCLAS) elements
4144                          * WMM-SA TCLAS elements
4145     mode             - Specifies whether the filter selects or excludes packets
4146                        matching the filter
4147     arpFilterAddress - IPv4 address to be used for filtering the ARP packets.
4148                          * If the specified address is the IPv4 broadcast address
4149                            (255.255.255.255), all ARP packets are reported to the
4150                            host,
4151                          * If the specified address is NOT the IPv4 broadcast
4152                            address, only ARP packets with the specified address in
4153                            the Source or Target Protocol Address fields are reported
4154                            to the host
4155
4156 *******************************************************************************/
4157 typedef struct
4158 {
4159     CsrWifiFsmEvent            common;
4160     u16                  interfaceTag;
4161     u16                  filterLength;
4162     u8                  *filter;
4163     CsrWifiSmePacketFilterMode mode;
4164     CsrWifiIp4Address          arpFilterAddress;
4165 } CsrWifiSmePacketFilterSetReq;
4166
4167 /*******************************************************************************
4168
4169   NAME
4170     CsrWifiSmePermanentMacAddressGetReq
4171
4172   DESCRIPTION
4173     This primitive retrieves the MAC address stored in EEPROM
4174
4175   MEMBERS
4176     common - Common header for use with the CsrWifiFsm Module
4177
4178 *******************************************************************************/
4179 typedef struct
4180 {
4181     CsrWifiFsmEvent common;
4182 } CsrWifiSmePermanentMacAddressGetReq;
4183
4184 /*******************************************************************************
4185
4186   NAME
4187     CsrWifiSmePmkidReq
4188
4189   DESCRIPTION
4190     The wireless manager application calls this primitive to request an
4191     operation on the SME PMKID list.
4192     The action argument specifies the operation to perform.
4193     When the connection is complete, the wireless manager application may
4194     then send and receive EAPOL packets to complete WPA or WPA2
4195     authentication if appropriate.
4196     The wireless manager application can then pass the resulting encryption
4197     keys using this primitive.
4198
4199   MEMBERS
4200     common         - Common header for use with the CsrWifiFsm Module
4201     interfaceTag   - Interface Identifier; unique identifier of an interface
4202     action         - The value of the CsrWifiSmeListAction parameter instructs
4203                      the driver to modify or provide the list of PMKIDs.
4204     setPmkidsCount - Number of PMKIDs sent with the primitive
4205     setPmkids      - Pointer to the list of PMKIDs sent with the primitive, set
4206                      to NULL if none is sent.
4207
4208 *******************************************************************************/
4209 typedef struct
4210 {
4211     CsrWifiFsmEvent      common;
4212     u16            interfaceTag;
4213     CsrWifiSmeListAction action;
4214     u8             setPmkidsCount;
4215     CsrWifiSmePmkid     *setPmkids;
4216 } CsrWifiSmePmkidReq;
4217
4218 /*******************************************************************************
4219
4220   NAME
4221     CsrWifiSmePowerConfigGetReq
4222
4223   DESCRIPTION
4224     This primitive gets the value of the PowerConfig parameter.
4225
4226   MEMBERS
4227     common - Common header for use with the CsrWifiFsm Module
4228
4229 *******************************************************************************/
4230 typedef struct
4231 {
4232     CsrWifiFsmEvent common;
4233 } CsrWifiSmePowerConfigGetReq;
4234
4235 /*******************************************************************************
4236
4237   NAME
4238     CsrWifiSmePowerConfigSetReq
4239
4240   DESCRIPTION
4241     This primitive sets the value of the PowerConfig parameter.
4242
4243   MEMBERS
4244     common      - Common header for use with the CsrWifiFsm Module
4245     powerConfig - Power saving configuration
4246
4247 *******************************************************************************/
4248 typedef struct
4249 {
4250     CsrWifiFsmEvent       common;
4251     CsrWifiSmePowerConfig powerConfig;
4252 } CsrWifiSmePowerConfigSetReq;
4253
4254 /*******************************************************************************
4255
4256   NAME
4257     CsrWifiSmeRegulatoryDomainInfoGetReq
4258
4259   DESCRIPTION
4260     This primitive gets the value of the RegulatoryDomainInfo parameter.
4261
4262   MEMBERS
4263     common - Common header for use with the CsrWifiFsm Module
4264
4265 *******************************************************************************/
4266 typedef struct
4267 {
4268     CsrWifiFsmEvent common;
4269 } CsrWifiSmeRegulatoryDomainInfoGetReq;
4270
4271 /*******************************************************************************
4272
4273   NAME
4274     CsrWifiSmeRoamingConfigGetReq
4275
4276   DESCRIPTION
4277     This primitive gets the value of the RoamingConfig parameter.
4278
4279   MEMBERS
4280     common       - Common header for use with the CsrWifiFsm Module
4281     interfaceTag - Interface Identifier; unique identifier of an interface
4282
4283 *******************************************************************************/
4284 typedef struct
4285 {
4286     CsrWifiFsmEvent common;
4287     u16       interfaceTag;
4288 } CsrWifiSmeRoamingConfigGetReq;
4289
4290 /*******************************************************************************
4291
4292   NAME
4293     CsrWifiSmeRoamingConfigSetReq
4294
4295   DESCRIPTION
4296     This primitive sets the value of the RoamingConfig parameter.
4297
4298   MEMBERS
4299     common        - Common header for use with the CsrWifiFsm Module
4300     interfaceTag  - Interface Identifier; unique identifier of an interface
4301     roamingConfig - Desired roaming behaviour values
4302
4303 *******************************************************************************/
4304 typedef struct
4305 {
4306     CsrWifiFsmEvent         common;
4307     u16               interfaceTag;
4308     CsrWifiSmeRoamingConfig roamingConfig;
4309 } CsrWifiSmeRoamingConfigSetReq;
4310
4311 /*******************************************************************************
4312
4313   NAME
4314     CsrWifiSmeScanConfigGetReq
4315
4316   DESCRIPTION
4317     This primitive gets the value of the ScanConfig parameter.
4318
4319   MEMBERS
4320     common - Common header for use with the CsrWifiFsm Module
4321
4322 *******************************************************************************/
4323 typedef struct
4324 {
4325     CsrWifiFsmEvent common;
4326 } CsrWifiSmeScanConfigGetReq;
4327
4328 /*******************************************************************************
4329
4330   NAME
4331     CsrWifiSmeScanConfigSetReq
4332
4333   DESCRIPTION
4334     This primitive sets the value of the ScanConfig parameter.
4335     The SME normally configures the firmware to perform autonomous scanning
4336     without involving the host.
4337     The firmware passes beacon / probe response or indicates loss of beacon
4338     on certain changes of state, for example:
4339       * A new AP is seen for the first time
4340       * An AP is no longer visible
4341       * The signal strength of an AP changes by more than a certain amount, as
4342         configured by the thresholds in the scanConfig parameter
4343     In addition to the autonomous scan, the wireless manager application may
4344     request a scan at any time using CSR_WIFI_SME_SCAN_FULL_REQ.
4345
4346   MEMBERS
4347     common     - Common header for use with the CsrWifiFsm Module
4348     scanConfig - Reports the configuration for the autonomous scanning behaviour
4349                  of the firmware
4350
4351 *******************************************************************************/
4352 typedef struct
4353 {
4354     CsrWifiFsmEvent      common;
4355     CsrWifiSmeScanConfig scanConfig;
4356 } CsrWifiSmeScanConfigSetReq;
4357
4358 /*******************************************************************************
4359
4360   NAME
4361     CsrWifiSmeScanFullReq
4362
4363   DESCRIPTION
4364     The wireless manager application should call this primitive to request a
4365     full scan.
4366     Channels are scanned actively or passively according to the requirement
4367     set by regulatory domain.
4368     If the SME receives this primitive while a full scan is going on, the new
4369     request is buffered and it will be served after the current full scan is
4370     completed.
4371
4372   MEMBERS
4373     common           - Common header for use with the CsrWifiFsm Module
4374     ssidCount        - Number of SSIDs provided.
4375                        If it is 0, the SME will attempt to detect any network
4376     ssid             - Points to the first SSID provided, if any.
4377     bssid            - BSS identifier.
4378                        If it is equal to FF-FF-FF-FF-FF, the SME will listen for
4379                        messages from any BSS.
4380                        If it is different from FF-FF-FF-FF-FF and any SSID is
4381                        provided, one SSID must match the network of the BSS.
4382     forceScan        - Forces the scan even if the SME is in a state which would
4383                        normally prevent it (e.g. autonomous scan is running).
4384     bssType          - Type of BSS to scan for
4385     scanType         - Type of scan to perform
4386     channelListCount - Number of channels provided.
4387                        If it is 0, the SME will initiate a scan of all the
4388                        supported channels that are permitted by the current
4389                        regulatory domain.
4390     channelList      - Points to the first channel , or NULL if channelListCount
4391                        is zero.
4392     probeIeLength    - Length of the information element in bytes to be sent
4393                        with the probe message.
4394     probeIe          - Points to the first byte of the information element to be
4395                        sent with the probe message.
4396
4397 *******************************************************************************/
4398 typedef struct
4399 {
4400     CsrWifiFsmEvent    common;
4401     u8           ssidCount;
4402     CsrWifiSsid       *ssid;
4403     CsrWifiMacAddress  bssid;
4404     u8            forceScan;
4405     CsrWifiSmeBssType  bssType;
4406     CsrWifiSmeScanType scanType;
4407     u16          channelListCount;
4408     u8          *channelList;
4409     u16          probeIeLength;
4410     u8          *probeIe;
4411 } CsrWifiSmeScanFullReq;
4412
4413 /*******************************************************************************
4414
4415   NAME
4416     CsrWifiSmeScanResultsFlushReq
4417
4418   DESCRIPTION
4419     The Wireless Manager calls this primitive to ask the SME to delete all
4420     scan results from its cache, except for the scan result of any currently
4421     connected network.
4422     As scan results are received by the SME from the firmware, they are
4423     cached in the SME memory.
4424     Any time the Wireless Manager requests scan results, they are returned
4425     from the SME internal cache.
4426     For some applications it may be desirable to clear this cache prior to
4427     requesting that a scan be performed; this will ensure that the cache then
4428     only contains the networks detected in the most recent scan.
4429
4430   MEMBERS
4431     common - Common header for use with the CsrWifiFsm Module
4432
4433 *******************************************************************************/
4434 typedef struct
4435 {
4436     CsrWifiFsmEvent common;
4437 } CsrWifiSmeScanResultsFlushReq;
4438
4439 /*******************************************************************************
4440
4441   NAME
4442     CsrWifiSmeScanResultsGetReq
4443
4444   DESCRIPTION
4445     The wireless manager application calls this primitive to retrieve the
4446     current set of scan results, either after receiving a successful
4447     CSR_WIFI_SME_SCAN_FULL_CFM, or to get autonomous scan results.
4448
4449   MEMBERS
4450     common - Common header for use with the CsrWifiFsm Module
4451
4452 *******************************************************************************/
4453 typedef struct
4454 {
4455     CsrWifiFsmEvent common;
4456 } CsrWifiSmeScanResultsGetReq;
4457
4458 /*******************************************************************************
4459
4460   NAME
4461     CsrWifiSmeSmeStaConfigGetReq
4462
4463   DESCRIPTION
4464     This primitive gets the value of the SmeStaConfig parameter.
4465
4466   MEMBERS
4467     common       - Common header for use with the CsrWifiFsm Module
4468     interfaceTag - Interface Identifier; unique identifier of an interface
4469
4470 *******************************************************************************/
4471 typedef struct
4472 {
4473     CsrWifiFsmEvent common;
4474     u16       interfaceTag;
4475 } CsrWifiSmeSmeStaConfigGetReq;
4476
4477 /*******************************************************************************
4478
4479   NAME
4480     CsrWifiSmeSmeStaConfigSetReq
4481
4482   DESCRIPTION
4483     This primitive sets the value of the SmeConfig parameter.
4484
4485   MEMBERS
4486     common       - Common header for use with the CsrWifiFsm Module
4487     interfaceTag - Interface Identifier; unique identifier of an interface
4488     smeConfig    - SME Station Parameters to be set
4489
4490 *******************************************************************************/
4491 typedef struct
4492 {
4493     CsrWifiFsmEvent     common;
4494     u16           interfaceTag;
4495     CsrWifiSmeStaConfig smeConfig;
4496 } CsrWifiSmeSmeStaConfigSetReq;
4497
4498 /*******************************************************************************
4499
4500   NAME
4501     CsrWifiSmeStationMacAddressGetReq
4502
4503   DESCRIPTION
4504     This primitives is used to retrieve the current MAC address used by the
4505     station.
4506
4507   MEMBERS
4508     common - Common header for use with the CsrWifiFsm Module
4509
4510 *******************************************************************************/
4511 typedef struct
4512 {
4513     CsrWifiFsmEvent common;
4514 } CsrWifiSmeStationMacAddressGetReq;
4515
4516 /*******************************************************************************
4517
4518   NAME
4519     CsrWifiSmeTspecReq
4520
4521   DESCRIPTION
4522     The wireless manager application should call this primitive to use the
4523     TSPEC feature.
4524     The chip supports the use of TSPECs and TCLAS for the use of IEEE
4525     802.11/WMM Quality of Service features.
4526     The API allows the wireless manager application to supply a correctly
4527     formatted TSPEC and TCLAS pair to the driver.
4528     After performing basic validation, the driver negotiates the installation
4529     of the TSPEC with the AP as defined by the 802.11 specification.
4530     The driver retains all TSPEC and TCLAS pairs until they are specifically
4531     removed.
4532     It is not compulsory for a TSPEC to have a TCLAS (NULL is used to
4533     indicate that no TCLAS is supplied), while a TCLASS always require a
4534     TSPEC.
4535     The format of the TSPEC element is specified in 'WMM (including WMM Power
4536     Save) Specification - Version 1.1' and 'ANSI/IEEE Std 802.11-REVmb/D3.0'.
4537     For more information, see 'UniFi Configuring WMM and WMM-PS'.
4538
4539   MEMBERS
4540     common        - Common header for use with the CsrWifiFsm Module
4541     interfaceTag  - Interface Identifier; unique identifier of an interface
4542     action        - Specifies the action to be carried out on the list of TSPECs.
4543                     CSR_WIFI_SME_LIST_ACTION_FLUSH is not applicable here.
4544     transactionId - Unique Transaction ID for the TSPEC, as assigned by the
4545                     driver
4546     strict        - If it set to false, allows the SME to perform automatic
4547                     TSPEC negotiation
4548     ctrlMask      - Additional TSPEC configuration for CCX.
4549                     Set mask with values from CsrWifiSmeTspecCtrl.
4550                     CURRENTLY NOT SUPPORTED
4551     tspecLength   - Length of the TSPEC.
4552     tspec         - Points to the first byte of the TSPEC
4553     tclasLength   - Length of the TCLAS.
4554                     If it is equal to 0, no TCLASS is provided for the TSPEC
4555     tclas         - Points to the first byte of the TCLAS, if any.
4556
4557 *******************************************************************************/
4558 typedef struct
4559 {
4560     CsrWifiFsmEvent         common;
4561     u16               interfaceTag;
4562     CsrWifiSmeListAction    action;
4563     u32               transactionId;
4564     u8                 strict;
4565     CsrWifiSmeTspecCtrlMask ctrlMask;
4566     u16               tspecLength;
4567     u8               *tspec;
4568     u16               tclasLength;
4569     u8               *tclas;
4570 } CsrWifiSmeTspecReq;
4571
4572 /*******************************************************************************
4573
4574   NAME
4575     CsrWifiSmeVersionsGetReq
4576
4577   DESCRIPTION
4578     This primitive gets the value of the Versions parameter.
4579
4580   MEMBERS
4581     common - Common header for use with the CsrWifiFsm Module
4582
4583 *******************************************************************************/
4584 typedef struct
4585 {
4586     CsrWifiFsmEvent common;
4587 } CsrWifiSmeVersionsGetReq;
4588
4589 /*******************************************************************************
4590
4591   NAME
4592     CsrWifiSmeWifiFlightmodeReq
4593
4594   DESCRIPTION
4595     The wireless manager application may call this primitive on boot-up of
4596     the platform to ensure that the chip is placed in a mode that prevents
4597     any emission of RF energy.
4598     This primitive is an alternative to CSR_WIFI_SME_WIFI_ON_REQ.
4599     As in CSR_WIFI_SME_WIFI_ON_REQ, it causes the download of the patch file
4600     (if any) and the programming of the initial MIB settings (if supplied by
4601     the WMA), but it also ensures that the chip is left in its lowest
4602     possible power-mode with the radio subsystems disabled.
4603     This feature is useful on platforms where power cannot be removed from
4604     the chip (leaving the chip not initialised will cause it to consume more
4605     power so calling this function ensures that the chip is initialised into
4606     a low power mode but without entering a state where it could emit any RF
4607     energy).
4608     NOTE: this primitive does not cause the Wi-Fi to change state: Wi-Fi
4609     stays conceptually off. Configuration primitives can be sent after
4610     CSR_WIFI_SME_WIFI_FLIGHTMODE_REQ and the configuration will be maintained.
4611     Requests that require the state of the Wi-Fi to be ON will return
4612     CSR_WIFI_SME_STATUS_WIFI_OFF in their confirms.
4613
4614   MEMBERS
4615     common        - Common header for use with the CsrWifiFsm Module
4616     address       - Optionally specifies a station MAC address.
4617                     In normal use, the manager should set the address to 0xFF
4618                     0xFF 0xFF 0xFF 0xFF 0xFF, which will cause the chip to use
4619                     the MAC address in the MIB.
4620     mibFilesCount - Number of provided data blocks with initial MIB values
4621     mibFiles      - Points to the first data block with initial MIB values.
4622                     These data blocks are typically the contents of the provided
4623                     files ufmib.dat and localmib.dat, available from the host
4624                     file system, if they exist.
4625                     These files typically contain radio tuning and calibration
4626                     values.
4627                     More values can be created using the Host Tools.
4628
4629 *******************************************************************************/
4630 typedef struct
4631 {
4632     CsrWifiFsmEvent      common;
4633     CsrWifiMacAddress    address;
4634     u16            mibFilesCount;
4635     CsrWifiSmeDataBlock *mibFiles;
4636 } CsrWifiSmeWifiFlightmodeReq;
4637
4638 /*******************************************************************************
4639
4640   NAME
4641     CsrWifiSmeWifiOffReq
4642
4643   DESCRIPTION
4644     The wireless manager application calls this primitive to turn off the
4645     chip, thus saving power when Wi-Fi is not in use.
4646
4647   MEMBERS
4648     common - Common header for use with the CsrWifiFsm Module
4649
4650 *******************************************************************************/
4651 typedef struct
4652 {
4653     CsrWifiFsmEvent common;
4654 } CsrWifiSmeWifiOffReq;
4655
4656 /*******************************************************************************
4657
4658   NAME
4659     CsrWifiSmeWifiOnReq
4660
4661   DESCRIPTION
4662     The wireless manager application calls this primitive to turn on the
4663     Wi-Fi chip.
4664     If the Wi-Fi chip is currently off, the SME turns the Wi-Fi chip on,
4665     downloads the patch file (if any), and programs the initial MIB settings
4666     (if supplied by the WMA).
4667     The patch file is not provided with the SME API; its downloading is
4668     automatic and handled internally by the system.
4669     The MIB settings, when provided, override the default values that the
4670     firmware loads from EEPROM.
4671     If the Wi-Fi chip is already on, the SME takes no action and returns a
4672     successful status in the confirm.
4673
4674   MEMBERS
4675     common        - Common header for use with the CsrWifiFsm Module
4676     address       - Optionally specifies a station MAC address.
4677                     In normal use, the manager should set the address to 0xFF
4678                     0xFF 0xFF 0xFF 0xFF 0xFF, which will cause the chip to use
4679                     the MAC address in the MIB
4680     mibFilesCount - Number of provided data blocks with initial MIB values
4681     mibFiles      - Points to the first data block with initial MIB values.
4682                     These data blocks are typically the contents of the provided
4683                     files ufmib.dat and localmib.dat, available from the host
4684                     file system, if they exist.
4685                     These files typically contain radio tuning and calibration
4686                     values.
4687                     More values can be created using the Host Tools.
4688
4689 *******************************************************************************/
4690 typedef struct
4691 {
4692     CsrWifiFsmEvent      common;
4693     CsrWifiMacAddress    address;
4694     u16            mibFilesCount;
4695     CsrWifiSmeDataBlock *mibFiles;
4696 } CsrWifiSmeWifiOnReq;
4697
4698 /*******************************************************************************
4699
4700   NAME
4701     CsrWifiSmeCloakedSsidsSetReq
4702
4703   DESCRIPTION
4704     This primitive sets the list of cloaked SSIDs for which the WMA possesses
4705     profiles.
4706     When the driver detects a cloaked AP, the SME will explicitly scan for it
4707     using the list of cloaked SSIDs provided it, and, if the scan succeeds,
4708     it will report the AP to the WMA either via CSR_WIFI_SME_SCAN_RESULT_IND
4709     (if registered) or via CSR_WIFI_SCAN_RESULT_GET_CFM.
4710
4711   MEMBERS
4712     common       - Common header for use with the CsrWifiFsm Module
4713     cloakedSsids - Sets the list of cloaked SSIDs
4714
4715 *******************************************************************************/
4716 typedef struct
4717 {
4718     CsrWifiFsmEvent             common;
4719     CsrWifiSmeCloakedSsidConfig cloakedSsids;
4720 } CsrWifiSmeCloakedSsidsSetReq;
4721
4722 /*******************************************************************************
4723
4724   NAME
4725     CsrWifiSmeCloakedSsidsGetReq
4726
4727   DESCRIPTION
4728     This primitive gets the value of the CloakedSsids parameter.
4729
4730   MEMBERS
4731     common - Common header for use with the CsrWifiFsm Module
4732
4733 *******************************************************************************/
4734 typedef struct
4735 {
4736     CsrWifiFsmEvent common;
4737 } CsrWifiSmeCloakedSsidsGetReq;
4738
4739 /*******************************************************************************
4740
4741   NAME
4742     CsrWifiSmeSmeCommonConfigGetReq
4743
4744   DESCRIPTION
4745     This primitive gets the value of the Sme common parameter.
4746
4747   MEMBERS
4748     common - Common header for use with the CsrWifiFsm Module
4749
4750 *******************************************************************************/
4751 typedef struct
4752 {
4753     CsrWifiFsmEvent common;
4754 } CsrWifiSmeSmeCommonConfigGetReq;
4755
4756 /*******************************************************************************
4757
4758   NAME
4759     CsrWifiSmeSmeCommonConfigSetReq
4760
4761   DESCRIPTION
4762     This primitive sets the value of the Sme common.
4763
4764   MEMBERS
4765     common       - Common header for use with the CsrWifiFsm Module
4766     deviceConfig - Configuration options in the SME
4767
4768 *******************************************************************************/
4769 typedef struct
4770 {
4771     CsrWifiFsmEvent        common;
4772     CsrWifiSmeDeviceConfig deviceConfig;
4773 } CsrWifiSmeSmeCommonConfigSetReq;
4774
4775 /*******************************************************************************
4776
4777   NAME
4778     CsrWifiSmeInterfaceCapabilityGetReq
4779
4780   DESCRIPTION
4781     The Wireless Manager calls this primitive to ask the SME for the
4782     capabilities of the supported interfaces
4783
4784   MEMBERS
4785     common - Common header for use with the CsrWifiFsm Module
4786
4787 *******************************************************************************/
4788 typedef struct
4789 {
4790     CsrWifiFsmEvent common;
4791 } CsrWifiSmeInterfaceCapabilityGetReq;
4792
4793 /*******************************************************************************
4794
4795   NAME
4796     CsrWifiSmeWpsConfigurationReq
4797
4798   DESCRIPTION
4799     This primitive passes the WPS information for the device to SME. This may
4800     be accepted only if no interface is active.
4801
4802   MEMBERS
4803     common    - Common header for use with the CsrWifiFsm Module
4804     wpsConfig - WPS config.
4805
4806 *******************************************************************************/
4807 typedef struct
4808 {
4809     CsrWifiFsmEvent     common;
4810     CsrWifiSmeWpsConfig wpsConfig;
4811 } CsrWifiSmeWpsConfigurationReq;
4812
4813 /*******************************************************************************
4814
4815   NAME
4816     CsrWifiSmeSetReq
4817
4818   DESCRIPTION
4819     Used to pass custom data to the SME. Format is the same as 802.11 Info
4820     Elements => | Id | Length | Data
4821     1) Cmanr Test Mode "Id:0 Length:1 Data:0x00 = OFF 0x01 = ON" "0x00 0x01
4822     (0x00|0x01)"
4823
4824   MEMBERS
4825     common     - Common header for use with the CsrWifiFsm Module
4826     dataLength - Number of bytes in the buffer pointed to by 'data'
4827     data       - Pointer to the buffer containing 'dataLength' bytes
4828
4829 *******************************************************************************/
4830 typedef struct
4831 {
4832     CsrWifiFsmEvent common;
4833     u32       dataLength;
4834     u8       *data;
4835 } CsrWifiSmeSetReq;
4836
4837 /*******************************************************************************
4838
4839   NAME
4840     CsrWifiSmeActivateCfm
4841
4842   DESCRIPTION
4843     The SME sends this primitive when the activation is complete.
4844
4845   MEMBERS
4846     common - Common header for use with the CsrWifiFsm Module
4847     status - Reports the result of the request
4848
4849 *******************************************************************************/
4850 typedef struct
4851 {
4852     CsrWifiFsmEvent common;
4853     CsrResult       status;
4854 } CsrWifiSmeActivateCfm;
4855
4856 /*******************************************************************************
4857
4858   NAME
4859     CsrWifiSmeAdhocConfigGetCfm
4860
4861   DESCRIPTION
4862     This primitive reports the result of the request.
4863
4864   MEMBERS
4865     common      - Common header for use with the CsrWifiFsm Module
4866     status      - Reports the result of the request
4867     adHocConfig - Contains the values used when starting an Ad-hoc (IBSS)
4868                   connection.
4869
4870 *******************************************************************************/
4871 typedef struct
4872 {
4873     CsrWifiFsmEvent       common;
4874     CsrResult             status;
4875     CsrWifiSmeAdHocConfig adHocConfig;
4876 } CsrWifiSmeAdhocConfigGetCfm;
4877
4878 /*******************************************************************************
4879
4880   NAME
4881     CsrWifiSmeAdhocConfigSetCfm
4882
4883   DESCRIPTION
4884     This primitive reports the result of the request.
4885
4886   MEMBERS
4887     common - Common header for use with the CsrWifiFsm Module
4888     status - Reports the result of the request
4889
4890 *******************************************************************************/
4891 typedef struct
4892 {
4893     CsrWifiFsmEvent common;
4894     CsrResult       status;
4895 } CsrWifiSmeAdhocConfigSetCfm;
4896
4897 /*******************************************************************************
4898
4899   NAME
4900     CsrWifiSmeAssociationCompleteInd
4901
4902   DESCRIPTION
4903     The SME will send this primitive to all the tasks that have registered to
4904     receive it whenever it completes an attempt to associate with an AP. If
4905     the association was successful, status will be set to
4906     CSR_WIFI_SME_STATUS_SUCCESS, otherwise status and deauthReason shall be
4907     set to appropriate error codes.
4908
4909   MEMBERS
4910     common         - Common header for use with the CsrWifiFsm Module
4911     interfaceTag   - Interface Identifier; unique identifier of an interface
4912     status         - Reports the result of the association procedure
4913     connectionInfo - This parameter is relevant only if result is
4914                      CSR_WIFI_SME_STATUS_SUCCESS:
4915                      it points to the connection information for the new network
4916     deauthReason   - This parameter is relevant only if result is not
4917                      CSR_WIFI_SME_STATUS_SUCCESS:
4918                      if the AP deauthorised the station, it gives the reason of
4919                      the deauthorization
4920
4921 *******************************************************************************/
4922 typedef struct
4923 {
4924     CsrWifiFsmEvent           common;
4925     u16                 interfaceTag;
4926     CsrResult                 status;
4927     CsrWifiSmeConnectionInfo  connectionInfo;
4928     CsrWifiSmeIEEE80211Reason deauthReason;
4929 } CsrWifiSmeAssociationCompleteInd;
4930
4931 /*******************************************************************************
4932
4933   NAME
4934     CsrWifiSmeAssociationStartInd
4935
4936   DESCRIPTION
4937     The SME will send this primitive to all the tasks that have registered to
4938     receive it whenever it begins an attempt to associate with an AP.
4939
4940   MEMBERS
4941     common       - Common header for use with the CsrWifiFsm Module
4942     interfaceTag - Interface Identifier; unique identifier of an interface
4943     address      - BSSID of the associating network
4944     ssid         - Service Set identifier of the associating network
4945
4946 *******************************************************************************/
4947 typedef struct
4948 {
4949     CsrWifiFsmEvent   common;
4950     u16         interfaceTag;
4951     CsrWifiMacAddress address;
4952     CsrWifiSsid       ssid;
4953 } CsrWifiSmeAssociationStartInd;
4954
4955 /*******************************************************************************
4956
4957   NAME
4958     CsrWifiSmeBlacklistCfm
4959
4960   DESCRIPTION
4961     The SME will call this primitive when the action on the blacklist has
4962     completed. For a GET action, this primitive also reports the list of
4963     BBSIDs in the blacklist.
4964
4965   MEMBERS
4966     common          - Common header for use with the CsrWifiFsm Module
4967     interfaceTag    - Interface Identifier; unique identifier of an interface
4968     status          - Reports the result of the request
4969     action          - Action in the request
4970     getAddressCount - This parameter is only relevant if action is
4971                       CSR_WIFI_SME_LIST_ACTION_GET:
4972                       number of BSSIDs sent with this primitive
4973     getAddresses    - Pointer to the list of BBSIDs sent with the primitive, set
4974                       to NULL if none is sent.
4975
4976 *******************************************************************************/
4977 typedef struct
4978 {
4979     CsrWifiFsmEvent      common;
4980     u16            interfaceTag;
4981     CsrResult            status;
4982     CsrWifiSmeListAction action;
4983     u8             getAddressCount;
4984     CsrWifiMacAddress   *getAddresses;
4985 } CsrWifiSmeBlacklistCfm;
4986
4987 /*******************************************************************************
4988
4989   NAME
4990     CsrWifiSmeCalibrationDataGetCfm
4991
4992   DESCRIPTION
4993     This primitive reports the result of the request.
4994
4995   MEMBERS
4996     common                - Common header for use with the CsrWifiFsm Module
4997     status                - Reports the result of the request
4998     calibrationDataLength - Number of bytes in the buffer pointed by
4999                             calibrationData
5000     calibrationData       - Pointer to a buffer of length calibrationDataLength
5001                             containing the calibration data
5002
5003 *******************************************************************************/
5004 typedef struct
5005 {
5006     CsrWifiFsmEvent common;
5007     CsrResult       status;
5008     u16       calibrationDataLength;
5009     u8       *calibrationData;
5010 } CsrWifiSmeCalibrationDataGetCfm;
5011
5012 /*******************************************************************************
5013
5014   NAME
5015     CsrWifiSmeCalibrationDataSetCfm
5016
5017   DESCRIPTION
5018     This primitive reports the result of the request.
5019
5020   MEMBERS
5021     common - Common header for use with the CsrWifiFsm Module
5022     status - Reports the result of the request
5023
5024 *******************************************************************************/
5025 typedef struct
5026 {
5027     CsrWifiFsmEvent common;
5028     CsrResult       status;
5029 } CsrWifiSmeCalibrationDataSetCfm;
5030
5031 /*******************************************************************************
5032
5033   NAME
5034     CsrWifiSmeCcxConfigGetCfm
5035
5036   DESCRIPTION
5037     This primitive reports the result of the request.
5038
5039   MEMBERS
5040     common       - Common header for use with the CsrWifiFsm Module
5041     interfaceTag - Interface Identifier; unique identifier of an interface
5042     status       - Reports the result of the request
5043     ccxConfig    - Currently not supported
5044
5045 *******************************************************************************/
5046 typedef struct
5047 {
5048     CsrWifiFsmEvent     common;
5049     u16           interfaceTag;
5050     CsrResult           status;
5051     CsrWifiSmeCcxConfig ccxConfig;
5052 } CsrWifiSmeCcxConfigGetCfm;
5053
5054 /*******************************************************************************
5055
5056   NAME
5057     CsrWifiSmeCcxConfigSetCfm
5058
5059   DESCRIPTION
5060     This primitive reports the result of the request.
5061
5062   MEMBERS
5063     common       - Common header for use with the CsrWifiFsm Module
5064     interfaceTag - Interface Identifier; unique identifier of an interface
5065     status       - Reports the result of the request
5066
5067 *******************************************************************************/
5068 typedef struct
5069 {
5070     CsrWifiFsmEvent common;
5071     u16       interfaceTag;
5072     CsrResult       status;
5073 } CsrWifiSmeCcxConfigSetCfm;
5074
5075 /*******************************************************************************
5076
5077   NAME
5078     CsrWifiSmeCoexConfigGetCfm
5079
5080   DESCRIPTION
5081     This primitive reports the result of the request.
5082
5083   MEMBERS
5084     common     - Common header for use with the CsrWifiFsm Module
5085     status     - Reports the result of the request
5086     coexConfig - Reports the parameters used to configure the coexistence
5087                  behaviour
5088
5089 *******************************************************************************/
5090 typedef struct
5091 {
5092     CsrWifiFsmEvent      common;
5093     CsrResult            status;
5094     CsrWifiSmeCoexConfig coexConfig;
5095 } CsrWifiSmeCoexConfigGetCfm;
5096
5097 /*******************************************************************************
5098
5099   NAME
5100     CsrWifiSmeCoexConfigSetCfm
5101
5102   DESCRIPTION
5103     This primitive reports the result of the request.
5104
5105   MEMBERS
5106     common - Common header for use with the CsrWifiFsm Module
5107     status - Reports the result of the request
5108
5109 *******************************************************************************/
5110 typedef struct
5111 {
5112     CsrWifiFsmEvent common;
5113     CsrResult       status;
5114 } CsrWifiSmeCoexConfigSetCfm;
5115
5116 /*******************************************************************************
5117
5118   NAME
5119     CsrWifiSmeCoexInfoGetCfm
5120
5121   DESCRIPTION
5122     This primitive reports the result of the request.
5123
5124   MEMBERS
5125     common   - Common header for use with the CsrWifiFsm Module
5126     status   - Reports the result of the request
5127     coexInfo - Reports information and state related to coexistence.
5128
5129 *******************************************************************************/
5130 typedef struct
5131 {
5132     CsrWifiFsmEvent    common;
5133     CsrResult          status;
5134     CsrWifiSmeCoexInfo coexInfo;
5135 } CsrWifiSmeCoexInfoGetCfm;
5136
5137 /*******************************************************************************
5138
5139   NAME
5140     CsrWifiSmeConnectCfm
5141
5142   DESCRIPTION
5143     The SME calls this primitive when the connection exchange is complete or
5144     all connection attempts fail.
5145
5146   MEMBERS
5147     common       - Common header for use with the CsrWifiFsm Module
5148     interfaceTag - Interface Identifier; unique identifier of an interface
5149     status       - Reports the result of the request.
5150                    CSR_WIFI_SME_STATUS_NOT_FOUND: all attempts by the SME to
5151                    locate the requested AP failed
5152
5153 *******************************************************************************/
5154 typedef struct
5155 {
5156     CsrWifiFsmEvent common;
5157     u16       interfaceTag;
5158     CsrResult       status;
5159 } CsrWifiSmeConnectCfm;
5160
5161 /*******************************************************************************
5162
5163   NAME
5164     CsrWifiSmeConnectionConfigGetCfm
5165
5166   DESCRIPTION
5167     This primitive reports the result of the request.
5168
5169   MEMBERS
5170     common           - Common header for use with the CsrWifiFsm Module
5171     interfaceTag     - Interface Identifier; unique identifier of an interface
5172     status           - Reports the result of the request
5173     connectionConfig - Parameters used by the SME for selecting a network
5174
5175 *******************************************************************************/
5176 typedef struct
5177 {
5178     CsrWifiFsmEvent            common;
5179     u16                  interfaceTag;
5180     CsrResult                  status;
5181     CsrWifiSmeConnectionConfig connectionConfig;
5182 } CsrWifiSmeConnectionConfigGetCfm;
5183
5184 /*******************************************************************************
5185
5186   NAME
5187     CsrWifiSmeConnectionInfoGetCfm
5188
5189   DESCRIPTION
5190     This primitive reports the result of the request.
5191
5192   MEMBERS
5193     common         - Common header for use with the CsrWifiFsm Module
5194     interfaceTag   - Interface Identifier; unique identifier of an interface
5195     status         - Reports the result of the request
5196     connectionInfo - Information about the current connection
5197
5198 *******************************************************************************/
5199 typedef struct
5200 {
5201     CsrWifiFsmEvent          common;
5202     u16                interfaceTag;
5203     CsrResult                status;
5204     CsrWifiSmeConnectionInfo connectionInfo;
5205 } CsrWifiSmeConnectionInfoGetCfm;
5206
5207 /*******************************************************************************
5208
5209   NAME
5210     CsrWifiSmeConnectionQualityInd
5211
5212   DESCRIPTION
5213     The SME sends this primitive to all the tasks that have registered to
5214     receive it whenever the value of the current connection quality
5215     parameters change by more than a certain configurable amount.
5216     The wireless manager application may configure the trigger thresholds for
5217     this indication using the field in smeConfig parameter of
5218     CSR_WIFI_SME_SME_CONFIG_SET_REQ.
5219     Connection quality messages can be suppressed by setting both thresholds
5220     to zero.
5221
5222   MEMBERS
5223     common       - Common header for use with the CsrWifiFsm Module
5224     interfaceTag - Interface Identifier; unique identifier of an interface
5225     linkQuality  - Indicates the quality of the link
5226
5227 *******************************************************************************/
5228 typedef struct
5229 {
5230     CsrWifiFsmEvent       common;
5231     u16             interfaceTag;
5232     CsrWifiSmeLinkQuality linkQuality;
5233 } CsrWifiSmeConnectionQualityInd;
5234
5235 /*******************************************************************************
5236
5237   NAME
5238     CsrWifiSmeConnectionStatsGetCfm
5239
5240   DESCRIPTION
5241     This primitive reports the result of the request.
5242
5243   MEMBERS
5244     common          - Common header for use with the CsrWifiFsm Module
5245     interfaceTag    - Interface Identifier; unique identifier of an interface
5246     status          - Reports the result of the request
5247     connectionStats - Statistics for current connection.
5248
5249 *******************************************************************************/
5250 typedef struct
5251 {
5252     CsrWifiFsmEvent           common;
5253     u16                 interfaceTag;
5254     CsrResult                 status;
5255     CsrWifiSmeConnectionStats connectionStats;
5256 } CsrWifiSmeConnectionStatsGetCfm;
5257
5258 /*******************************************************************************
5259
5260   NAME
5261     CsrWifiSmeDeactivateCfm
5262
5263   DESCRIPTION
5264     The SME sends this primitive when the deactivation is complete.
5265     The WMA cannot send any more primitives until it actives the SME again
5266     sending another CSR_WIFI_SME_ACTIVATE_REQ.
5267
5268   MEMBERS
5269     common - Common header for use with the CsrWifiFsm Module
5270     status - Reports the result of the request
5271
5272 *******************************************************************************/
5273 typedef struct
5274 {
5275     CsrWifiFsmEvent common;
5276     CsrResult       status;
5277 } CsrWifiSmeDeactivateCfm;
5278
5279 /*******************************************************************************
5280
5281   NAME
5282     CsrWifiSmeDisconnectCfm
5283
5284   DESCRIPTION
5285     On reception of CSR_WIFI_SME_DISCONNECT_REQ the SME will perform a
5286     disconnect operation, sending a CsrWifiSmeMediaStatusInd with
5287     CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED and then call this primitive when
5288     disconnection is complete.
5289
5290   MEMBERS
5291     common       - Common header for use with the CsrWifiFsm Module
5292     interfaceTag - Interface Identifier; unique identifier of an interface
5293     status       - Reports the result of the request
5294
5295 *******************************************************************************/
5296 typedef struct
5297 {
5298     CsrWifiFsmEvent common;
5299     u16       interfaceTag;
5300     CsrResult       status;
5301 } CsrWifiSmeDisconnectCfm;
5302
5303 /*******************************************************************************
5304
5305   NAME
5306     CsrWifiSmeEventMaskSetCfm
5307
5308   DESCRIPTION
5309     The SME calls the primitive to report the result of the request
5310     primitive.
5311
5312   MEMBERS
5313     common - Common header for use with the CsrWifiFsm Module
5314     status - Reports the result of the request
5315
5316 *******************************************************************************/
5317 typedef struct
5318 {
5319     CsrWifiFsmEvent common;
5320     CsrResult       status;
5321 } CsrWifiSmeEventMaskSetCfm;
5322
5323 /*******************************************************************************
5324
5325   NAME
5326     CsrWifiSmeHostConfigGetCfm
5327
5328   DESCRIPTION
5329     This primitive reports the result of the request.
5330
5331   MEMBERS
5332     common       - Common header for use with the CsrWifiFsm Module
5333     interfaceTag - Interface Identifier; unique identifier of an interface
5334     status       - Reports the result of the request
5335     hostConfig   - Current host power state.
5336
5337 *******************************************************************************/
5338 typedef struct
5339 {
5340     CsrWifiFsmEvent      common;
5341     u16            interfaceTag;
5342     CsrResult            status;
5343     CsrWifiSmeHostConfig hostConfig;
5344 } CsrWifiSmeHostConfigGetCfm;
5345
5346 /*******************************************************************************
5347
5348   NAME
5349     CsrWifiSmeHostConfigSetCfm
5350
5351   DESCRIPTION
5352     This primitive reports the result of the request.
5353
5354   MEMBERS
5355     common       - Common header for use with the CsrWifiFsm Module
5356     interfaceTag - Interface Identifier; unique identifier of an interface
5357     status       - Reports the result of the request
5358
5359 *******************************************************************************/
5360 typedef struct
5361 {
5362     CsrWifiFsmEvent common;
5363     u16       interfaceTag;
5364     CsrResult       status;
5365 } CsrWifiSmeHostConfigSetCfm;
5366
5367 /*******************************************************************************
5368
5369   NAME
5370     CsrWifiSmeIbssStationInd
5371
5372   DESCRIPTION
5373     The SME will send this primitive to indicate that a station has joined or
5374     left the ad-hoc network.
5375
5376   MEMBERS
5377     common      - Common header for use with the CsrWifiFsm Module
5378     address     - MAC address of the station that has joined or left
5379     isconnected - TRUE if the station joined, FALSE if the station left
5380
5381 *******************************************************************************/
5382 typedef struct
5383 {
5384     CsrWifiFsmEvent   common;
5385     CsrWifiMacAddress address;
5386     u8           isconnected;
5387 } CsrWifiSmeIbssStationInd;
5388
5389 /*******************************************************************************
5390
5391   NAME
5392     CsrWifiSmeKeyCfm
5393
5394   DESCRIPTION
5395     The SME calls the primitive to report the result of the request
5396     primitive.
5397
5398   MEMBERS
5399     common         - Common header for use with the CsrWifiFsm Module
5400     interfaceTag   - Interface Identifier; unique identifier of an interface
5401     status         - Reports the result of the request
5402     action         - Action in the request
5403     keyType        - Type of the key added/deleted
5404     peerMacAddress - Peer MAC Address of the key added/deleted
5405
5406 *******************************************************************************/
5407 typedef struct
5408 {
5409     CsrWifiFsmEvent      common;
5410     u16            interfaceTag;
5411     CsrResult            status;
5412     CsrWifiSmeListAction action;
5413     CsrWifiSmeKeyType    keyType;
5414     CsrWifiMacAddress    peerMacAddress;
5415 } CsrWifiSmeKeyCfm;
5416
5417 /*******************************************************************************
5418
5419   NAME
5420     CsrWifiSmeLinkQualityGetCfm
5421
5422   DESCRIPTION
5423     This primitive reports the result of the request.
5424
5425   MEMBERS
5426     common       - Common header for use with the CsrWifiFsm Module
5427     interfaceTag - Interface Identifier; unique identifier of an interface
5428     status       - Reports the result of the request
5429     linkQuality  - Indicates the quality of the link
5430
5431 *******************************************************************************/
5432 typedef struct
5433 {
5434     CsrWifiFsmEvent       common;
5435     u16             interfaceTag;
5436     CsrResult             status;
5437     CsrWifiSmeLinkQuality linkQuality;
5438 } CsrWifiSmeLinkQualityGetCfm;
5439
5440 /*******************************************************************************
5441
5442   NAME
5443     CsrWifiSmeMediaStatusInd
5444
5445   DESCRIPTION
5446     The SME sends this primitive to all the tasks that have registered to
5447     receive it when a network connection is established, lost or has moved to
5448     another AP.
5449
5450   MEMBERS
5451     common         - Common header for use with the CsrWifiFsm Module
5452     interfaceTag   - Interface Identifier; unique identifier of an interface
5453     mediaStatus    - Indicates the media status
5454     connectionInfo - This parameter is relevant only if the mediaStatus is
5455                      CSR_WIFI_SME_MEDIA_STATUS_CONNECTED:
5456                      it points to the connection information for the new network
5457     disassocReason - This parameter is relevant only if the mediaStatus is
5458                      CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED:
5459                      if a disassociation has occurred it gives the reason of the
5460                      disassociation
5461     deauthReason   - This parameter is relevant only if the mediaStatus is
5462                      CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED:
5463                      if a deauthentication has occurred it gives the reason of
5464                      the deauthentication
5465
5466 *******************************************************************************/
5467 typedef struct
5468 {
5469     CsrWifiFsmEvent           common;
5470     u16                 interfaceTag;
5471     CsrWifiSmeMediaStatus     mediaStatus;
5472     CsrWifiSmeConnectionInfo  connectionInfo;
5473     CsrWifiSmeIEEE80211Reason disassocReason;
5474     CsrWifiSmeIEEE80211Reason deauthReason;
5475 } CsrWifiSmeMediaStatusInd;
5476
5477 /*******************************************************************************
5478
5479   NAME
5480     CsrWifiSmeMibConfigGetCfm
5481
5482   DESCRIPTION
5483     This primitive reports the result of the request.
5484
5485   MEMBERS
5486     common    - Common header for use with the CsrWifiFsm Module
5487     status    - Reports the result of the request
5488     mibConfig - Reports various IEEE 802.11 attributes as currently configured
5489
5490 *******************************************************************************/
5491 typedef struct
5492 {
5493     CsrWifiFsmEvent     common;
5494     CsrResult           status;
5495     CsrWifiSmeMibConfig mibConfig;
5496 } CsrWifiSmeMibConfigGetCfm;
5497
5498 /*******************************************************************************
5499
5500   NAME
5501     CsrWifiSmeMibConfigSetCfm
5502
5503   DESCRIPTION
5504     This primitive reports the result of the request.
5505
5506   MEMBERS
5507     common - Common header for use with the CsrWifiFsm Module
5508     status - Reports the result of the request
5509
5510 *******************************************************************************/
5511 typedef struct
5512 {
5513     CsrWifiFsmEvent common;
5514     CsrResult       status;
5515 } CsrWifiSmeMibConfigSetCfm;
5516
5517 /*******************************************************************************
5518
5519   NAME
5520     CsrWifiSmeMibGetCfm
5521
5522   DESCRIPTION
5523     The SME calls this primitive to return the requested MIB variable values.
5524
5525   MEMBERS
5526     common             - Common header for use with the CsrWifiFsm Module
5527     status             - Reports the result of the request
5528     mibAttributeLength - Length of mibAttribute
5529     mibAttribute       - Points to the VarBind or VarBindList containing the
5530                          names and values of the MIB variables requested
5531
5532 *******************************************************************************/
5533 typedef struct
5534 {
5535     CsrWifiFsmEvent common;
5536     CsrResult       status;
5537     u16       mibAttributeLength;
5538     u8       *mibAttribute;
5539 } CsrWifiSmeMibGetCfm;
5540
5541 /*******************************************************************************
5542
5543   NAME
5544     CsrWifiSmeMibGetNextCfm
5545
5546   DESCRIPTION
5547     The SME calls this primitive to return the requested MIB name(s).
5548     The wireless manager application can then read the value of the MIB
5549     variable using CSR_WIFI_SME_MIB_GET_REQ, using the names provided.
5550
5551   MEMBERS
5552     common             - Common header for use with the CsrWifiFsm Module
5553     status             - Reports the result of the request
5554     mibAttributeLength - Length of mibAttribute
5555     mibAttribute       - Points to a VarBind or VarBindList containing the
5556                          name(s) of the MIB variable(s) lexicographically
5557                          following the name(s) given in the request
5558
5559 *******************************************************************************/
5560 typedef struct
5561 {
5562     CsrWifiFsmEvent common;
5563     CsrResult       status;
5564     u16       mibAttributeLength;
5565     u8       *mibAttribute;
5566 } CsrWifiSmeMibGetNextCfm;
5567
5568 /*******************************************************************************
5569
5570   NAME
5571     CsrWifiSmeMibSetCfm
5572
5573   DESCRIPTION
5574     The SME calls the primitive to report the result of the set primitive.
5575
5576   MEMBERS
5577     common - Common header for use with the CsrWifiFsm Module
5578     status - Reports the result of the request
5579
5580 *******************************************************************************/
5581 typedef struct
5582 {
5583     CsrWifiFsmEvent common;
5584     CsrResult       status;
5585 } CsrWifiSmeMibSetCfm;
5586
5587 /*******************************************************************************
5588
5589   NAME
5590     CsrWifiSmeMicFailureInd
5591
5592   DESCRIPTION
5593     The SME sends this primitive to all the tasks that have registered to
5594     receive it whenever the chip firmware reports a MIC failure.
5595
5596   MEMBERS
5597     common        - Common header for use with the CsrWifiFsm Module
5598     interfaceTag  - Interface Identifier; unique identifier of an interface
5599     secondFailure - TRUE if this indication is for a second failure in 60
5600                     seconds
5601     count         - The number of MIC failure events since the connection was
5602                     established
5603     address       - MAC address of the transmitter that caused the MIC failure
5604     keyType       - Type of key for which the failure occurred
5605
5606 *******************************************************************************/
5607 typedef struct
5608 {
5609     CsrWifiFsmEvent   common;
5610     u16         interfaceTag;
5611     u8           secondFailure;
5612     u16         count;
5613     CsrWifiMacAddress address;
5614     CsrWifiSmeKeyType keyType;
5615 } CsrWifiSmeMicFailureInd;
5616
5617 /*******************************************************************************
5618
5619   NAME
5620     CsrWifiSmeMulticastAddressCfm
5621
5622   DESCRIPTION
5623     The SME will call this primitive when the operation is complete. For a
5624     GET action, this primitive reports the current list of MAC addresses.
5625
5626   MEMBERS
5627     common            - Common header for use with the CsrWifiFsm Module
5628     interfaceTag      - Interface Identifier; unique identifier of an interface
5629     status            - Reports the result of the request
5630     action            - Action in the request
5631     getAddressesCount - This parameter is only relevant if action is
5632                         CSR_WIFI_SME_LIST_ACTION_GET:
5633                         number of MAC addresses sent with the primitive
5634     getAddresses      - Pointer to the list of MAC Addresses sent with the
5635                         primitive, set to NULL if none is sent.
5636
5637 *******************************************************************************/
5638 typedef struct
5639 {
5640     CsrWifiFsmEvent      common;
5641     u16            interfaceTag;
5642     CsrResult            status;
5643     CsrWifiSmeListAction action;
5644     u8             getAddressesCount;
5645     CsrWifiMacAddress   *getAddresses;
5646 } CsrWifiSmeMulticastAddressCfm;
5647
5648 /*******************************************************************************
5649
5650   NAME
5651     CsrWifiSmePacketFilterSetCfm
5652
5653   DESCRIPTION
5654     The SME calls the primitive to report the result of the set primitive.
5655
5656   MEMBERS
5657     common       - Common header for use with the CsrWifiFsm Module
5658     interfaceTag - Interface Identifier; unique identifier of an interface
5659     status       - Reports the result of the request
5660
5661 *******************************************************************************/
5662 typedef struct
5663 {
5664     CsrWifiFsmEvent common;
5665     u16       interfaceTag;
5666     CsrResult       status;
5667 } CsrWifiSmePacketFilterSetCfm;
5668
5669 /*******************************************************************************
5670
5671   NAME
5672     CsrWifiSmePermanentMacAddressGetCfm
5673
5674   DESCRIPTION
5675     This primitive reports the result of the request.
5676
5677   MEMBERS
5678     common              - Common header for use with the CsrWifiFsm Module
5679     status              - Reports the result of the request
5680     permanentMacAddress - MAC address stored in the EEPROM
5681
5682 *******************************************************************************/
5683 typedef struct
5684 {
5685     CsrWifiFsmEvent   common;
5686     CsrResult         status;
5687     CsrWifiMacAddress permanentMacAddress;
5688 } CsrWifiSmePermanentMacAddressGetCfm;
5689
5690 /*******************************************************************************
5691
5692   NAME
5693     CsrWifiSmePmkidCandidateListInd
5694
5695   DESCRIPTION
5696     The SME will send this primitive to all the tasks that have registered to
5697     receive it when a new network supporting preauthentication and/or PMK
5698     caching is seen.
5699
5700   MEMBERS
5701     common               - Common header for use with the CsrWifiFsm Module
5702     interfaceTag         - Interface Identifier; unique identifier of an
5703                            interface
5704     pmkidCandidatesCount - Number of PMKID candidates provided
5705     pmkidCandidates      - Points to the first PMKID candidate
5706
5707 *******************************************************************************/
5708 typedef struct
5709 {
5710     CsrWifiFsmEvent           common;
5711     u16                 interfaceTag;
5712     u8                  pmkidCandidatesCount;
5713     CsrWifiSmePmkidCandidate *pmkidCandidates;
5714 } CsrWifiSmePmkidCandidateListInd;
5715
5716 /*******************************************************************************
5717
5718   NAME
5719     CsrWifiSmePmkidCfm
5720
5721   DESCRIPTION
5722     The SME will call this primitive when the operation is complete. For a
5723     GET action, this primitive reports the current list of PMKIDs
5724
5725   MEMBERS
5726     common         - Common header for use with the CsrWifiFsm Module
5727     interfaceTag   - Interface Identifier; unique identifier of an interface
5728     status         - Reports the result of the request
5729     action         - Action in the request
5730     getPmkidsCount - This parameter is only relevant if action is
5731                      CSR_WIFI_SME_LIST_ACTION_GET:
5732                      number of PMKIDs sent with the primitive
5733     getPmkids      - Pointer to the list of PMKIDs sent with the primitive, set
5734                      to NULL if none is sent.
5735
5736 *******************************************************************************/
5737 typedef struct
5738 {
5739     CsrWifiFsmEvent      common;
5740     u16            interfaceTag;
5741     CsrResult            status;
5742     CsrWifiSmeListAction action;
5743     u8             getPmkidsCount;
5744     CsrWifiSmePmkid     *getPmkids;
5745 } CsrWifiSmePmkidCfm;
5746
5747 /*******************************************************************************
5748
5749   NAME
5750     CsrWifiSmePowerConfigGetCfm
5751
5752   DESCRIPTION
5753     This primitive reports the result of the request.
5754
5755   MEMBERS
5756     common      - Common header for use with the CsrWifiFsm Module
5757     status      - Reports the result of the request
5758     powerConfig - Returns the current parameters for the power configuration of
5759                   the firmware
5760
5761 *******************************************************************************/
5762 typedef struct
5763 {
5764     CsrWifiFsmEvent       common;
5765     CsrResult             status;
5766     CsrWifiSmePowerConfig powerConfig;
5767 } CsrWifiSmePowerConfigGetCfm;
5768
5769 /*******************************************************************************
5770
5771   NAME
5772     CsrWifiSmePowerConfigSetCfm
5773
5774   DESCRIPTION
5775     This primitive reports the result of the request.
5776
5777   MEMBERS
5778     common - Common header for use with the CsrWifiFsm Module
5779     status - Reports the result of the request
5780
5781 *******************************************************************************/
5782 typedef struct
5783 {
5784     CsrWifiFsmEvent common;
5785     CsrResult       status;
5786 } CsrWifiSmePowerConfigSetCfm;
5787
5788 /*******************************************************************************
5789
5790   NAME
5791     CsrWifiSmeRegulatoryDomainInfoGetCfm
5792
5793   DESCRIPTION
5794     This primitive reports the result of the request.
5795
5796   MEMBERS
5797     common     - Common header for use with the CsrWifiFsm Module
5798     status     - Reports the result of the request
5799     regDomInfo - Reports information and state related to regulatory domain
5800                  operation.
5801
5802 *******************************************************************************/
5803 typedef struct
5804 {
5805     CsrWifiFsmEvent                common;
5806     CsrResult                      status;
5807     CsrWifiSmeRegulatoryDomainInfo regDomInfo;
5808 } CsrWifiSmeRegulatoryDomainInfoGetCfm;
5809
5810 /*******************************************************************************
5811
5812   NAME
5813     CsrWifiSmeRoamCompleteInd
5814
5815   DESCRIPTION
5816     The SME will send this primitive to all the tasks that have registered to
5817     receive it whenever it completes an attempt to roam to an AP. If the roam
5818     attempt was successful, status will be set to CSR_WIFI_SME_SUCCESS,
5819     otherwise it shall be set to the appropriate error code.
5820
5821   MEMBERS
5822     common       - Common header for use with the CsrWifiFsm Module
5823     interfaceTag - Interface Identifier; unique identifier of an interface
5824     status       - Reports the result of the roaming procedure
5825
5826 *******************************************************************************/
5827 typedef struct
5828 {
5829     CsrWifiFsmEvent common;
5830     u16       interfaceTag;
5831     CsrResult       status;
5832 } CsrWifiSmeRoamCompleteInd;
5833
5834 /*******************************************************************************
5835
5836   NAME
5837     CsrWifiSmeRoamStartInd
5838
5839   DESCRIPTION
5840     The SME will send this primitive to all the tasks that have registered to
5841     receive it whenever it begins an attempt to roam to an AP.
5842     If the wireless manager application connect request specified the SSID
5843     and the BSSID was set to the broadcast address (0xFF 0xFF 0xFF 0xFF 0xFF
5844     0xFF), the SME monitors the signal quality and maintains a list of
5845     candidates to roam to. When the signal quality of the current connection
5846     falls below a threshold, and there is a candidate with better quality,
5847     the SME will attempt to the candidate AP.
5848     If the roaming procedure succeeds, the SME will also issue a Media
5849     Connect indication to inform the wireless manager application of the
5850     change.
5851     NOTE: to prevent the SME from initiating roaming the WMA must specify the
5852     BSSID in the connection request; this forces the SME to connect only to
5853     that AP.
5854     The wireless manager application can obtain statistics for roaming
5855     purposes using CSR_WIFI_SME_CONNECTION_QUALITY_IND and
5856     CSR_WIFI_SME_CONNECTION_STATS_GET_REQ.
5857     When the wireless manager application wishes to roam to another AP, it
5858     must issue a connection request specifying the BSSID of the desired AP.
5859
5860   MEMBERS
5861     common       - Common header for use with the CsrWifiFsm Module
5862     interfaceTag - Interface Identifier; unique identifier of an interface
5863     roamReason   - Indicates the reason for starting the roaming procedure
5864     reason80211  - Indicates the reason for deauthentication or disassociation
5865
5866 *******************************************************************************/
5867 typedef struct
5868 {
5869     CsrWifiFsmEvent           common;
5870     u16                 interfaceTag;
5871     CsrWifiSmeRoamReason      roamReason;
5872     CsrWifiSmeIEEE80211Reason reason80211;
5873 } CsrWifiSmeRoamStartInd;
5874
5875 /*******************************************************************************
5876
5877   NAME
5878     CsrWifiSmeRoamingConfigGetCfm
5879
5880   DESCRIPTION
5881     This primitive reports the result of the request.
5882
5883   MEMBERS
5884     common        - Common header for use with the CsrWifiFsm Module
5885     interfaceTag  - Interface Identifier; unique identifier of an interface
5886     status        - Reports the result of the request
5887     roamingConfig - Reports the roaming behaviour of the driver and firmware
5888
5889 *******************************************************************************/
5890 typedef struct
5891 {
5892     CsrWifiFsmEvent         common;
5893     u16               interfaceTag;
5894     CsrResult               status;
5895     CsrWifiSmeRoamingConfig roamingConfig;
5896 } CsrWifiSmeRoamingConfigGetCfm;
5897
5898 /*******************************************************************************
5899
5900   NAME
5901     CsrWifiSmeRoamingConfigSetCfm
5902
5903   DESCRIPTION
5904     This primitive sets the value of the RoamingConfig parameter.
5905
5906   MEMBERS
5907     common       - Common header for use with the CsrWifiFsm Module
5908     interfaceTag - Interface Identifier; unique identifier of an interface
5909     status       - Reports the result of the request
5910
5911 *******************************************************************************/
5912 typedef struct
5913 {
5914     CsrWifiFsmEvent common;
5915     u16       interfaceTag;
5916     CsrResult       status;
5917 } CsrWifiSmeRoamingConfigSetCfm;
5918
5919 /*******************************************************************************
5920
5921   NAME
5922     CsrWifiSmeScanConfigGetCfm
5923
5924   DESCRIPTION
5925     This primitive reports the result of the request.
5926
5927   MEMBERS
5928     common     - Common header for use with the CsrWifiFsm Module
5929     status     - Reports the result of the request
5930     scanConfig - Returns the current parameters for the autonomous scanning
5931                  behaviour of the firmware
5932
5933 *******************************************************************************/
5934 typedef struct
5935 {
5936     CsrWifiFsmEvent      common;
5937     CsrResult            status;
5938     CsrWifiSmeScanConfig scanConfig;
5939 } CsrWifiSmeScanConfigGetCfm;
5940
5941 /*******************************************************************************
5942
5943   NAME
5944     CsrWifiSmeScanConfigSetCfm
5945
5946   DESCRIPTION
5947     This primitive reports the result of the request.
5948
5949   MEMBERS
5950     common - Common header for use with the CsrWifiFsm Module
5951     status - Reports the result of the request
5952
5953 *******************************************************************************/
5954 typedef struct
5955 {
5956     CsrWifiFsmEvent common;
5957     CsrResult       status;
5958 } CsrWifiSmeScanConfigSetCfm;
5959
5960 /*******************************************************************************
5961
5962   NAME
5963     CsrWifiSmeScanFullCfm
5964
5965   DESCRIPTION
5966     The SME calls this primitive when the results from the scan are
5967     available.
5968
5969   MEMBERS
5970     common - Common header for use with the CsrWifiFsm Module
5971     status - Reports the result of the request
5972
5973 *******************************************************************************/
5974 typedef struct
5975 {
5976     CsrWifiFsmEvent common;
5977     CsrResult       status;
5978 } CsrWifiSmeScanFullCfm;
5979
5980 /*******************************************************************************
5981
5982   NAME
5983     CsrWifiSmeScanResultInd
5984
5985   DESCRIPTION
5986     The SME sends this primitive to all the tasks that have registered to
5987     receive it whenever a scan indication is received from the firmware.
5988
5989   MEMBERS
5990     common - Common header for use with the CsrWifiFsm Module
5991     result - Points to a buffer containing a scan result.
5992
5993 *******************************************************************************/
5994 typedef struct
5995 {
5996     CsrWifiFsmEvent      common;
5997     CsrWifiSmeScanResult result;
5998 } CsrWifiSmeScanResultInd;
5999
6000 /*******************************************************************************
6001
6002   NAME
6003     CsrWifiSmeScanResultsFlushCfm
6004
6005   DESCRIPTION
6006     The SME will call this primitive when the cache has been cleared.
6007
6008   MEMBERS
6009     common - Common header for use with the CsrWifiFsm Module
6010     status - Reports the result of the request
6011
6012 *******************************************************************************/
6013 typedef struct
6014 {
6015     CsrWifiFsmEvent common;
6016     CsrResult       status;
6017 } CsrWifiSmeScanResultsFlushCfm;
6018
6019 /*******************************************************************************
6020
6021   NAME
6022     CsrWifiSmeScanResultsGetCfm
6023
6024   DESCRIPTION
6025     The SME sends this primitive to provide the current set of scan results.
6026
6027   MEMBERS
6028     common           - Common header for use with the CsrWifiFsm Module
6029     status           - Reports the result of the request
6030     scanResultsCount - Number of scan results
6031     scanResults      - Points to a buffer containing an array of
6032                        CsrWifiSmeScanResult structures.
6033
6034 *******************************************************************************/
6035 typedef struct
6036 {
6037     CsrWifiFsmEvent       common;
6038     CsrResult             status;
6039     u16             scanResultsCount;
6040     CsrWifiSmeScanResult *scanResults;
6041 } CsrWifiSmeScanResultsGetCfm;
6042
6043 /*******************************************************************************
6044
6045   NAME
6046     CsrWifiSmeSmeStaConfigGetCfm
6047
6048   DESCRIPTION
6049     This primitive reports the result of the request.
6050
6051   MEMBERS
6052     common       - Common header for use with the CsrWifiFsm Module
6053     interfaceTag - Interface Identifier; unique identifier of an interface
6054     status       - Reports the result of the request
6055     smeConfig    - Current SME Station Parameters
6056
6057 *******************************************************************************/
6058 typedef struct
6059 {
6060     CsrWifiFsmEvent     common;
6061     u16           interfaceTag;
6062     CsrResult           status;
6063     CsrWifiSmeStaConfig smeConfig;
6064 } CsrWifiSmeSmeStaConfigGetCfm;
6065
6066 /*******************************************************************************
6067
6068   NAME
6069     CsrWifiSmeSmeStaConfigSetCfm
6070
6071   DESCRIPTION
6072     This primitive reports the result of the request.
6073
6074   MEMBERS
6075     common       - Common header for use with the CsrWifiFsm Module
6076     interfaceTag - Interface Identifier; unique identifier of an interface
6077     status       - Reports the result of the request
6078
6079 *******************************************************************************/
6080 typedef struct
6081 {
6082     CsrWifiFsmEvent common;
6083     u16       interfaceTag;
6084     CsrResult       status;
6085 } CsrWifiSmeSmeStaConfigSetCfm;
6086
6087 /*******************************************************************************
6088
6089   NAME
6090     CsrWifiSmeStationMacAddressGetCfm
6091
6092   DESCRIPTION
6093     This primitive reports the result of the request.
6094
6095   MEMBERS
6096     common            - Common header for use with the CsrWifiFsm Module
6097     status            - Reports the result of the request
6098     stationMacAddress - Current MAC address of the station.
6099
6100 *******************************************************************************/
6101 typedef struct
6102 {
6103     CsrWifiFsmEvent   common;
6104     CsrResult         status;
6105     CsrWifiMacAddress stationMacAddress[2];
6106 } CsrWifiSmeStationMacAddressGetCfm;
6107
6108 /*******************************************************************************
6109
6110   NAME
6111     CsrWifiSmeTspecInd
6112
6113   DESCRIPTION
6114     The SME will send this primitive to all the task that have registered to
6115     receive it when a status change in the TSPEC occurs.
6116
6117   MEMBERS
6118     common          - Common header for use with the CsrWifiFsm Module
6119     interfaceTag    - Interface Identifier; unique identifier of an interface
6120     transactionId   - Unique Transaction ID for the TSPEC, as assigned by the
6121                       driver
6122     tspecResultCode - Specifies the TSPEC operation requested by the peer
6123                       station
6124     tspecLength     - Length of the TSPEC.
6125     tspec           - Points to the first byte of the TSPEC
6126
6127 *******************************************************************************/
6128 typedef struct
6129 {
6130     CsrWifiFsmEvent           common;
6131     u16                 interfaceTag;
6132     u32                 transactionId;
6133     CsrWifiSmeTspecResultCode tspecResultCode;
6134     u16                 tspecLength;
6135     u8                 *tspec;
6136 } CsrWifiSmeTspecInd;
6137
6138 /*******************************************************************************
6139
6140   NAME
6141     CsrWifiSmeTspecCfm
6142
6143   DESCRIPTION
6144     The SME calls the primitive to report the result of the TSpec primitive
6145     request.
6146
6147   MEMBERS
6148     common          - Common header for use with the CsrWifiFsm Module
6149     interfaceTag    - Interface Identifier; unique identifier of an interface
6150     status          - Reports the result of the request
6151     transactionId   - Unique Transaction ID for the TSPEC, as assigned by the
6152                       driver
6153     tspecResultCode - Specifies the result of the negotiated TSPEC operation
6154     tspecLength     - Length of the TSPEC.
6155     tspec           - Points to the first byte of the TSPEC
6156
6157 *******************************************************************************/
6158 typedef struct
6159 {
6160     CsrWifiFsmEvent           common;
6161     u16                 interfaceTag;
6162     CsrResult                 status;
6163     u32                 transactionId;
6164     CsrWifiSmeTspecResultCode tspecResultCode;
6165     u16                 tspecLength;
6166     u8                 *tspec;
6167 } CsrWifiSmeTspecCfm;
6168
6169 /*******************************************************************************
6170
6171   NAME
6172     CsrWifiSmeVersionsGetCfm
6173
6174   DESCRIPTION
6175     This primitive reports the result of the request.
6176
6177   MEMBERS
6178     common   - Common header for use with the CsrWifiFsm Module
6179     status   - Reports the result of the request
6180     versions - Version IDs of the product
6181
6182 *******************************************************************************/
6183 typedef struct
6184 {
6185     CsrWifiFsmEvent    common;
6186     CsrResult          status;
6187     CsrWifiSmeVersions versions;
6188 } CsrWifiSmeVersionsGetCfm;
6189
6190 /*******************************************************************************
6191
6192   NAME
6193     CsrWifiSmeWifiFlightmodeCfm
6194
6195   DESCRIPTION
6196     The SME calls this primitive when the chip is initialised for low power
6197     mode and with the radio subsystem disabled. To leave flight mode, and
6198     enable Wi-Fi, the wireless manager application should call
6199     CSR_WIFI_SME_WIFI_ON_REQ.
6200
6201   MEMBERS
6202     common - Common header for use with the CsrWifiFsm Module
6203     status - Reports the result of the request
6204
6205 *******************************************************************************/
6206 typedef struct
6207 {
6208     CsrWifiFsmEvent common;
6209     CsrResult       status;
6210 } CsrWifiSmeWifiFlightmodeCfm;
6211
6212 /*******************************************************************************
6213
6214   NAME
6215     CsrWifiSmeWifiOffInd
6216
6217   DESCRIPTION
6218     The SME sends this primitive to all the tasks that have registered to
6219     receive it to report that the chip has been turned off.
6220
6221   MEMBERS
6222     common - Common header for use with the CsrWifiFsm Module
6223     reason - Indicates the reason why the Wi-Fi has been switched off.
6224
6225 *******************************************************************************/
6226 typedef struct
6227 {
6228     CsrWifiFsmEvent             common;
6229     CsrWifiSmeControlIndication reason;
6230 } CsrWifiSmeWifiOffInd;
6231
6232 /*******************************************************************************
6233
6234   NAME
6235     CsrWifiSmeWifiOffCfm
6236
6237   DESCRIPTION
6238     After receiving CSR_WIFI_SME_WIFI_OFF_REQ, if the chip is connected to a
6239     network, the SME will perform a disconnect operation, will send a
6240     CSR_WIFI_SME_MEDIA_STATUS_IND with
6241     CSR_WIFI_SME_MEDIA_STATUS_DISCONNECTED, and then will call
6242     CSR_WIFI_SME_WIFI_OFF_CFM when the chip is off.
6243
6244   MEMBERS
6245     common - Common header for use with the CsrWifiFsm Module
6246     status - Reports the result of the request
6247
6248 *******************************************************************************/
6249 typedef struct
6250 {
6251     CsrWifiFsmEvent common;
6252     CsrResult       status;
6253 } CsrWifiSmeWifiOffCfm;
6254
6255 /*******************************************************************************
6256
6257   NAME
6258     CsrWifiSmeWifiOnCfm
6259
6260   DESCRIPTION
6261     The SME sends this primitive to the task that has sent the request once
6262     the chip has been initialised and is available for use.
6263
6264   MEMBERS
6265     common - Common header for use with the CsrWifiFsm Module
6266     status - Reports the result of the request
6267
6268 *******************************************************************************/
6269 typedef struct
6270 {
6271     CsrWifiFsmEvent common;
6272     CsrResult       status;
6273 } CsrWifiSmeWifiOnCfm;
6274
6275 /*******************************************************************************
6276
6277   NAME
6278     CsrWifiSmeCloakedSsidsSetCfm
6279
6280   DESCRIPTION
6281     This primitive reports the result of the request.
6282
6283   MEMBERS
6284     common - Common header for use with the CsrWifiFsm Module
6285     status - Reports the result of the request
6286
6287 *******************************************************************************/
6288 typedef struct
6289 {
6290     CsrWifiFsmEvent common;
6291     CsrResult       status;
6292 } CsrWifiSmeCloakedSsidsSetCfm;
6293
6294 /*******************************************************************************
6295
6296   NAME
6297     CsrWifiSmeCloakedSsidsGetCfm
6298
6299   DESCRIPTION
6300     This primitive reports the result of the request.
6301
6302   MEMBERS
6303     common       - Common header for use with the CsrWifiFsm Module
6304     status       - Reports the result of the request
6305     cloakedSsids - Reports list of cloaked SSIDs that are explicitly scanned for
6306                    by the driver
6307
6308 *******************************************************************************/
6309 typedef struct
6310 {
6311     CsrWifiFsmEvent             common;
6312     CsrResult                   status;
6313     CsrWifiSmeCloakedSsidConfig cloakedSsids;
6314 } CsrWifiSmeCloakedSsidsGetCfm;
6315
6316 /*******************************************************************************
6317
6318   NAME
6319     CsrWifiSmeWifiOnInd
6320
6321   DESCRIPTION
6322     The SME sends this primitive to all tasks that have registered to receive
6323     it once the chip becomes available and ready to use.
6324
6325   MEMBERS
6326     common  - Common header for use with the CsrWifiFsm Module
6327     address - Current MAC address
6328
6329 *******************************************************************************/
6330 typedef struct
6331 {
6332     CsrWifiFsmEvent   common;
6333     CsrWifiMacAddress address;
6334 } CsrWifiSmeWifiOnInd;
6335
6336 /*******************************************************************************
6337
6338   NAME
6339     CsrWifiSmeSmeCommonConfigGetCfm
6340
6341   DESCRIPTION
6342     This primitive reports the result of the request.
6343
6344   MEMBERS
6345     common       - Common header for use with the CsrWifiFsm Module
6346     status       - Reports the result of the request
6347     deviceConfig - Configuration options in the SME
6348
6349 *******************************************************************************/
6350 typedef struct
6351 {
6352     CsrWifiFsmEvent        common;
6353     CsrResult              status;
6354     CsrWifiSmeDeviceConfig deviceConfig;
6355 } CsrWifiSmeSmeCommonConfigGetCfm;
6356
6357 /*******************************************************************************
6358
6359   NAME
6360     CsrWifiSmeSmeCommonConfigSetCfm
6361
6362   DESCRIPTION
6363     Reports the result of the request
6364
6365   MEMBERS
6366     common - Common header for use with the CsrWifiFsm Module
6367     status - Reports the result of the request
6368
6369 *******************************************************************************/
6370 typedef struct
6371 {
6372     CsrWifiFsmEvent common;
6373     CsrResult       status;
6374 } CsrWifiSmeSmeCommonConfigSetCfm;
6375
6376 /*******************************************************************************
6377
6378   NAME
6379     CsrWifiSmeInterfaceCapabilityGetCfm
6380
6381   DESCRIPTION
6382     This primitive reports the result of the request.
6383
6384   MEMBERS
6385     common        - Common header for use with the CsrWifiFsm Module
6386     status        - Result of the request
6387     numInterfaces - Number of the interfaces supported
6388     capBitmap     - Points to the list of capabilities bitmaps provided for each
6389                     interface.
6390                     The bits represent the following capabilities:
6391                     -bits 7 to 4-Reserved
6392                     -bit 3-AMP
6393                     -bit 2-P2P
6394                     -bit 1-AP
6395                     -bit 0-STA
6396
6397 *******************************************************************************/
6398 typedef struct
6399 {
6400     CsrWifiFsmEvent common;
6401     CsrResult       status;
6402     u16       numInterfaces;
6403     u8        capBitmap[2];
6404 } CsrWifiSmeInterfaceCapabilityGetCfm;
6405
6406 /*******************************************************************************
6407
6408   NAME
6409     CsrWifiSmeErrorInd
6410
6411   DESCRIPTION
6412     Important error message indicating a error of some importance
6413
6414   MEMBERS
6415     common       - Common header for use with the CsrWifiFsm Module
6416     errorMessage - Contains the error message.
6417
6418 *******************************************************************************/
6419 typedef struct
6420 {
6421     CsrWifiFsmEvent common;
6422     char  *errorMessage;
6423 } CsrWifiSmeErrorInd;
6424
6425 /*******************************************************************************
6426
6427   NAME
6428     CsrWifiSmeInfoInd
6429
6430   DESCRIPTION
6431     Message indicating a some info about current activity. Mostly of interest
6432     in testing but may be useful in the field.
6433
6434   MEMBERS
6435     common      - Common header for use with the CsrWifiFsm Module
6436     infoMessage - Contains the message.
6437
6438 *******************************************************************************/
6439 typedef struct
6440 {
6441     CsrWifiFsmEvent common;
6442     char  *infoMessage;
6443 } CsrWifiSmeInfoInd;
6444
6445 /*******************************************************************************
6446
6447   NAME
6448     CsrWifiSmeCoreDumpInd
6449
6450   DESCRIPTION
6451     The SME will send this primitive to all the tasks that have registered to
6452     receive Wi-Fi Chip core dump data.
6453     The core dump data may be fragmented and sent using more than one
6454     indication.
6455     To indicate that all the data has been sent, the last indication contains
6456     a 'length' of 0 and 'data' of NULL.
6457
6458   MEMBERS
6459     common     - Common header for use with the CsrWifiFsm Module
6460     dataLength - Number of bytes in the buffer pointed to by 'data'
6461     data       - Pointer to the buffer containing 'dataLength' bytes of core
6462                  dump data
6463
6464 *******************************************************************************/
6465 typedef struct
6466 {
6467     CsrWifiFsmEvent common;
6468     u32       dataLength;
6469     u8       *data;
6470 } CsrWifiSmeCoreDumpInd;
6471
6472 /*******************************************************************************
6473
6474   NAME
6475     CsrWifiSmeAmpStatusChangeInd
6476
6477   DESCRIPTION
6478     Indication of change to AMP activity.
6479
6480   MEMBERS
6481     common       - Common header for use with the CsrWifiFsm Module
6482     interfaceTag - Interface on which the AMP activity changed.
6483     ampStatus    - The new status of AMP activity.Range: {AMP_ACTIVE,
6484                    AMP_INACTIVE}.
6485
6486 *******************************************************************************/
6487 typedef struct
6488 {
6489     CsrWifiFsmEvent     common;
6490     u16           interfaceTag;
6491     CsrWifiSmeAmpStatus ampStatus;
6492 } CsrWifiSmeAmpStatusChangeInd;
6493
6494 /*******************************************************************************
6495
6496   NAME
6497     CsrWifiSmeWpsConfigurationCfm
6498
6499   DESCRIPTION
6500     Confirm.
6501
6502   MEMBERS
6503     common - Common header for use with the CsrWifiFsm Module
6504     status - Status of the request.
6505
6506 *******************************************************************************/
6507 typedef struct
6508 {
6509     CsrWifiFsmEvent common;
6510     CsrResult       status;
6511 } CsrWifiSmeWpsConfigurationCfm;
6512
6513
6514 #ifdef __cplusplus
6515 }
6516 #endif
6517
6518 #endif /* CSR_WIFI_SME_PRIM_H__ */
6519