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