Root/drivers/staging/csr/csr_wifi_sme_prim.h

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