Root/drivers/staging/csr/csr_wifi_nme_prim.h

1/*****************************************************************************
2
3            (c) Cambridge Silicon Radio Limited 2011
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_NME_PRIM_H__
14#define CSR_WIFI_NME_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#include "csr_wifi_sme_prim.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#ifndef CSR_WIFI_NME_ENABLE
29#error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_prim.h
30#endif
31
32#define CSR_WIFI_NME_PRIM (0x0424)
33
34typedef CsrPrim CsrWifiNmePrim;
35
36typedef void (*CsrWifiNmeFrameFreeFunction)(void *frame);
37
38/*******************************************************************************
39
40  NAME
41    CsrWifiNmeAuthMode
42
43  DESCRIPTION
44    WiFi Authentication Mode
45
46 VALUES
47    CSR_WIFI_NME_AUTH_MODE_80211_OPEN
48                   - Connects to an open system network (i.e. no authentication,
49                     no encryption) or to a WEP enabled network.
50    CSR_WIFI_NME_AUTH_MODE_80211_SHARED
51                   - Connect to a WEP enabled network.
52    CSR_WIFI_NME_AUTH_MODE_8021X_WPA
53                   - Connects to a WPA Enterprise enabled network.
54    CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK
55                   - Connects to a WPA with Pre-Shared Key enabled network.
56    CSR_WIFI_NME_AUTH_MODE_8021X_WPA2
57                   - Connects to a WPA2 Enterprise enabled network.
58    CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK
59                   - Connects to a WPA2 with Pre-Shared Key enabled network.
60    CSR_WIFI_NME_AUTH_MODE_8021X_CCKM
61                   - Connects to a CCKM enabled network.
62    CSR_WIFI_NME_AUTH_MODE_WAPI_WAI
63                   - Connects to a WAPI Enterprise enabled network.
64    CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK
65                   - Connects to a WAPI with Pre-Shared Key enabled network.
66    CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X
67                   - For future use.
68
69*******************************************************************************/
70typedef u16 CsrWifiNmeAuthMode;
71#define CSR_WIFI_NME_AUTH_MODE_80211_OPEN ((CsrWifiNmeAuthMode) 0x0001)
72#define CSR_WIFI_NME_AUTH_MODE_80211_SHARED ((CsrWifiNmeAuthMode) 0x0002)
73#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA ((CsrWifiNmeAuthMode) 0x0004)
74#define CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK ((CsrWifiNmeAuthMode) 0x0008)
75#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2 ((CsrWifiNmeAuthMode) 0x0010)
76#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK ((CsrWifiNmeAuthMode) 0x0020)
77#define CSR_WIFI_NME_AUTH_MODE_8021X_CCKM ((CsrWifiNmeAuthMode) 0x0040)
78#define CSR_WIFI_NME_AUTH_MODE_WAPI_WAI ((CsrWifiNmeAuthMode) 0x0080)
79#define CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK ((CsrWifiNmeAuthMode) 0x0100)
80#define CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X ((CsrWifiNmeAuthMode) 0x0200)
81
82/*******************************************************************************
83
84  NAME
85    CsrWifiNmeBssType
86
87  DESCRIPTION
88    Type of BSS
89
90 VALUES
91    CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE
92                   - Infrastructure BSS type where access to the network is via
93                     one or several Access Points.
94    CSR_WIFI_NME_BSS_TYPE_ADHOC
95                   - Adhoc or Independent BSS Type where one Station acts as a
96                     host and future stations can join the adhoc network without
97                     needing an access point.
98    CSR_WIFI_NME_BSS_TYPE_RESERVED
99                   - To be in sync with SME.This is not used.
100    CSR_WIFI_NME_BSS_TYPE_P2P
101                   - P2P mode of operation.
102
103*******************************************************************************/
104typedef u8 CsrWifiNmeBssType;
105#define CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE ((CsrWifiNmeBssType) 0x00)
106#define CSR_WIFI_NME_BSS_TYPE_ADHOC ((CsrWifiNmeBssType) 0x01)
107#define CSR_WIFI_NME_BSS_TYPE_RESERVED ((CsrWifiNmeBssType) 0x02)
108#define CSR_WIFI_NME_BSS_TYPE_P2P ((CsrWifiNmeBssType) 0x03)
109
110/*******************************************************************************
111
112  NAME
113    CsrWifiNmeCcxOptionsMask
114
115  DESCRIPTION
116    Enumeration type defining possible mask values for setting CCX options.
117
118 VALUES
119    CSR_WIFI_NME_CCX_OPTION_NONE - No CCX option is set.
120    CSR_WIFI_NME_CCX_OPTION_CCKM - CCX option cckm is set.
121
122*******************************************************************************/
123typedef u8 CsrWifiNmeCcxOptionsMask;
124#define CSR_WIFI_NME_CCX_OPTION_NONE ((CsrWifiNmeCcxOptionsMask) 0x00)
125#define CSR_WIFI_NME_CCX_OPTION_CCKM ((CsrWifiNmeCcxOptionsMask) 0x01)
126
127/*******************************************************************************
128
129  NAME
130    CsrWifiNmeConfigAction
131
132  DESCRIPTION
133
134 VALUES
135    CSR_WIFI_PIN_ENTRY_PUSH_BUTTON -
136    CSR_WIFI_PIN_ENTRY_DISPLAY_PIN -
137    CSR_WIFI_PIN_ENTRY_ENTER_PIN -
138
139*******************************************************************************/
140typedef u8 CsrWifiNmeConfigAction;
141#define CSR_WIFI_PIN_ENTRY_PUSH_BUTTON ((CsrWifiNmeConfigAction) 0x00)
142#define CSR_WIFI_PIN_ENTRY_DISPLAY_PIN ((CsrWifiNmeConfigAction) 0x01)
143#define CSR_WIFI_PIN_ENTRY_ENTER_PIN ((CsrWifiNmeConfigAction) 0x02)
144
145/*******************************************************************************
146
147  NAME
148    CsrWifiNmeConnectionStatus
149
150  DESCRIPTION
151    Indicate the NME Connection Status when connecting or when disconnecting
152
153 VALUES
154    CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED
155                   - NME is disconnected.
156    CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING
157                   - NME is in the process of connecting.
158    CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING
159                   - NME is in the authentication stage of a connection attempt.
160    CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED
161                   - NME is connected.
162    CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING
163                   - NME is in the process of disconnecting.
164
165*******************************************************************************/
166typedef u8 CsrWifiNmeConnectionStatus;
167#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED ((CsrWifiNmeConnectionStatus) 0x00)
168#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING ((CsrWifiNmeConnectionStatus) 0x01)
169#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING ((CsrWifiNmeConnectionStatus) 0x02)
170#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED ((CsrWifiNmeConnectionStatus) 0x03)
171#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING ((CsrWifiNmeConnectionStatus) 0x04)
172
173/*******************************************************************************
174
175  NAME
176    CsrWifiNmeCredentialType
177
178  DESCRIPTION
179    NME Credential Types
180
181 VALUES
182    CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM
183                   - Credential Type Open System.
184    CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64
185                   - Credential Type WEP-64
186    CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128
187                   - Credential Type WEP-128
188    CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK
189                   - Credential Type WPA Pre-Shared Key
190    CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE
191                   - Credential Type WPA pass phrase
192    CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK
193                   - Credential Type WPA2 Pre-Shared Key.
194    CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE
195                   - Credential Type WPA2 pass phrase
196    CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK
197                   - Credential Type WAPI Pre-Shared Key.
198    CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE
199                   - Credential Type WAPI pass phrase
200    CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI
201                   - Credential Type WAPI certificates
202    CSR_WIFI_NME_CREDENTIAL_TYPE_8021X
203                   - Credential Type 802.1X: the associated type supports
204                     FAST/LEAP/TLS/TTLS/PEAP/etc.
205
206*******************************************************************************/
207typedef u16 CsrWifiNmeCredentialType;
208#define CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM ((CsrWifiNmeCredentialType) 0x0000)
209#define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64 ((CsrWifiNmeCredentialType) 0x0001)
210#define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128 ((CsrWifiNmeCredentialType) 0x0002)
211#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK ((CsrWifiNmeCredentialType) 0x0003)
212#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0004)
213#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK ((CsrWifiNmeCredentialType) 0x0005)
214#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0006)
215#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK ((CsrWifiNmeCredentialType) 0x0007)
216#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0008)
217#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI ((CsrWifiNmeCredentialType) 0x0009)
218#define CSR_WIFI_NME_CREDENTIAL_TYPE_8021X ((CsrWifiNmeCredentialType) 0x000A)
219
220/*******************************************************************************
221
222  NAME
223    CsrWifiNmeEapMethod
224
225  DESCRIPTION
226    Outer EAP method with possibly inner method.
227
228 VALUES
229    CSR_WIFI_NME_EAP_METHOD_TLS
230                   - EAP-TLS Method.
231    CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2
232                   - EAP-TTLS Method with MSCHAPV2.
233    CSR_WIFI_NME_EAP_METHOD_PEAP_GTC
234                   - EAP-PEAP Method with GTC.
235    CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2
236                   - EAP-PEAP Method with MSCHAPV2.
237    CSR_WIFI_NME_EAP_METHOD_SIM
238                   - EAP-SIM Method.
239    CSR_WIFI_NME_EAP_METHOD_AKA
240                   - EAP-AKA Method.
241    CSR_WIFI_NME_EAP_METHOD_FAST_GTC
242                   - EAP-FAST Method with GTC.
243    CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2
244                   - EAP-FAST Method with MSCHAPV2.
245    CSR_WIFI_NME_EAP_METHOD_LEAP
246                   - EAP-LEAP Method.
247
248*******************************************************************************/
249typedef u16 CsrWifiNmeEapMethod;
250#define CSR_WIFI_NME_EAP_METHOD_TLS ((CsrWifiNmeEapMethod) 0x0001)
251#define CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0002)
252#define CSR_WIFI_NME_EAP_METHOD_PEAP_GTC ((CsrWifiNmeEapMethod) 0x0004)
253#define CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0008)
254#define CSR_WIFI_NME_EAP_METHOD_SIM ((CsrWifiNmeEapMethod) 0x0010)
255#define CSR_WIFI_NME_EAP_METHOD_AKA ((CsrWifiNmeEapMethod) 0x0020)
256#define CSR_WIFI_NME_EAP_METHOD_FAST_GTC ((CsrWifiNmeEapMethod) 0x0040)
257#define CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0080)
258#define CSR_WIFI_NME_EAP_METHOD_LEAP ((CsrWifiNmeEapMethod) 0x0100)
259
260/*******************************************************************************
261
262  NAME
263    CsrWifiNmeEncryption
264
265  DESCRIPTION
266    WiFi Encryption method
267
268 VALUES
269    CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE
270                   - No encryprion set.
271    CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40
272                   - 40 bytes WEP key for peer to peer communication.
273    CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104
274                   - 104 bytes WEP key for peer to peer communication.
275    CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP
276                   - TKIP key for peer to peer communication.
277    CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP
278                   - CCMP key for peer to peer communication.
279    CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4
280                   - SMS4 key for peer to peer communication.
281    CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40
282                   - 40 bytes WEP key for broadcast messages.
283    CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104
284                   - 104 bytes WEP key for broadcast messages.
285    CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP
286                   - TKIP key for broadcast messages.
287    CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP
288                   - CCMP key for broadcast messages
289    CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4
290                   - SMS4 key for broadcast messages.
291
292*******************************************************************************/
293typedef u16 CsrWifiNmeEncryption;
294#define CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE ((CsrWifiNmeEncryption) 0x0000)
295#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40 ((CsrWifiNmeEncryption) 0x0001)
296#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104 ((CsrWifiNmeEncryption) 0x0002)
297#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP ((CsrWifiNmeEncryption) 0x0004)
298#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP ((CsrWifiNmeEncryption) 0x0008)
299#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4 ((CsrWifiNmeEncryption) 0x0010)
300#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40 ((CsrWifiNmeEncryption) 0x0020)
301#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104 ((CsrWifiNmeEncryption) 0x0040)
302#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP ((CsrWifiNmeEncryption) 0x0080)
303#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP ((CsrWifiNmeEncryption) 0x0100)
304#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4 ((CsrWifiNmeEncryption) 0x0200)
305
306/*******************************************************************************
307
308  NAME
309    CsrWifiNmeIndications
310
311  DESCRIPTION
312    NME indications
313
314 VALUES
315    CSR_WIFI_NME_INDICATIONS_IND_AP_STATION
316                   - NME AP Station Indication.
317    CSR_WIFI_NME_INDICATIONS_IND_AP_STOP
318                   - NME AP Stop Indication.
319    CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH
320                   - NME UMTS Authentication Indication.
321    CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START
322                   - NME P2P Group Start Indication.
323    CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS
324                   - NME P2P Group Status Indication.
325    CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE
326                   - NME P2P Group Role Indication.
327    CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT
328                   - NME Profile Disconnect Indication.
329    CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE
330                   - NME Profile Update Indication.
331    CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET
332                   - NME GET IMSI Indication.
333    CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH
334                   - NME GSM Authentication Indication.
335    CSR_WIFI_NME_INDICATIONS_ALL
336                   - Used to register for all available indications
337
338*******************************************************************************/
339typedef u32 CsrWifiNmeIndications;
340#define CSR_WIFI_NME_INDICATIONS_IND_AP_STATION ((CsrWifiNmeIndications) 0x00100000)
341#define CSR_WIFI_NME_INDICATIONS_IND_AP_STOP ((CsrWifiNmeIndications) 0x00200000)
342#define CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH ((CsrWifiNmeIndications) 0x01000000)
343#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START ((CsrWifiNmeIndications) 0x02000000)
344#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS ((CsrWifiNmeIndications) 0x04000000)
345#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE ((CsrWifiNmeIndications) 0x08000000)
346#define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT ((CsrWifiNmeIndications) 0x10000000)
347#define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE ((CsrWifiNmeIndications) 0x20000000)
348#define CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET ((CsrWifiNmeIndications) 0x40000000)
349#define CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH ((CsrWifiNmeIndications) 0x80000000)
350#define CSR_WIFI_NME_INDICATIONS_ALL ((CsrWifiNmeIndications) 0xFFFFFFFF)
351
352/*******************************************************************************
353
354  NAME
355    CsrWifiNmeSecError
356
357  DESCRIPTION
358    NME Security Errors
359    place holder for the security library abort reason
360
361 VALUES
362    CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN
363                   - Unknown Security Error.
364
365*******************************************************************************/
366typedef u8 CsrWifiNmeSecError;
367#define CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN ((CsrWifiNmeSecError) 0x00)
368
369/*******************************************************************************
370
371  NAME
372    CsrWifiNmeSimCardType
373
374  DESCRIPTION
375    (U)SIM Card (or UICC) types
376
377 VALUES
378    CSR_WIFI_NME_SIM_CARD_TYPE_2G - 2G SIM card, capable of performing GSM
379                                      authentication only.
380    CSR_WIFI_NME_SIM_CARD_TYPE_3G - UICC supporting USIM application, capable
381                                      of performing UMTS authentication only.
382    CSR_WIFI_NME_SIM_CARD_TYPE_2G3G - UICC supporting both USIM and SIM
383                                      applications, capable of performing both
384                                      UMTS and GSM authentications.
385
386*******************************************************************************/
387typedef u8 CsrWifiNmeSimCardType;
388#define CSR_WIFI_NME_SIM_CARD_TYPE_2G ((CsrWifiNmeSimCardType) 0x01)
389#define CSR_WIFI_NME_SIM_CARD_TYPE_3G ((CsrWifiNmeSimCardType) 0x02)
390#define CSR_WIFI_NME_SIM_CARD_TYPE_2G3G ((CsrWifiNmeSimCardType) 0x03)
391
392/*******************************************************************************
393
394  NAME
395    CsrWifiNmeUmtsAuthResult
396
397  DESCRIPTION
398    Only relevant for UMTS Authentication. It indicates if the UICC has
399    successfully authenticated the network or otherwise.
400
401 VALUES
402    CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS
403                   - Successful outcome from USIM indicating that the card has
404                     successfully authenticated the network.
405    CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL
406                   - Unsuccessful outcome from USIM indicating that the card is
407                     requesting the network to synchronise and re-try again. If
408                     no further request is received an NME timer will expire and
409                     the authentication is aborted.
410    CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT
411                   - Unsuccessful outcome from USIM indicating that the card has
412                     rejected the network and that the authentication is
413                     aborted.
414
415*******************************************************************************/
416typedef u8 CsrWifiNmeUmtsAuthResult;
417#define CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS ((CsrWifiNmeUmtsAuthResult) 0x00)
418#define CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL ((CsrWifiNmeUmtsAuthResult) 0x01)
419#define CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT ((CsrWifiNmeUmtsAuthResult) 0x02)
420
421/*******************************************************************************
422
423  NAME
424    CsrWifiNmeWmmQosInfo
425
426  DESCRIPTION
427    Defines bits for the QoS Info octect as defined in the WMM specification.
428    The values of this type are used across the NME/SME/Router API's and they
429    must be kept consistent with the corresponding types in the .xml of the
430    other interfaces
431
432 VALUES
433    CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL
434                   - WMM AP may deliver all buffered frames.
435    CSR_WIFI_NME_WMM_QOS_INFO_AC_VO
436                   - To enable the triggering and delivery of QoS Voice.
437    CSR_WIFI_NME_WMM_QOS_INFO_AC_VI
438                   - To enable the triggering and delivery of QoS Video.
439    CSR_WIFI_NME_WMM_QOS_INFO_AC_BK
440                   - To enable the triggering and delivery of QoS Background.
441    CSR_WIFI_NME_WMM_QOS_INFO_AC_BE
442                   - To enable the triggering and delivery of QoS Best Effort.
443    CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO
444                   - WMM AP may deliver a maximum of 2 buffered frames per
445                     Unscheduled Service Period (USP).
446    CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR
447                   - WMM AP may deliver a maximum of 4 buffered frames per USP.
448    CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX
449                   - WMM AP may deliver a maximum of 6 buffered frames per USP.
450
451*******************************************************************************/
452typedef u8 CsrWifiNmeWmmQosInfo;
453#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL ((CsrWifiNmeWmmQosInfo) 0x00)
454#define CSR_WIFI_NME_WMM_QOS_INFO_AC_VO ((CsrWifiNmeWmmQosInfo) 0x01)
455#define CSR_WIFI_NME_WMM_QOS_INFO_AC_VI ((CsrWifiNmeWmmQosInfo) 0x02)
456#define CSR_WIFI_NME_WMM_QOS_INFO_AC_BK ((CsrWifiNmeWmmQosInfo) 0x04)
457#define CSR_WIFI_NME_WMM_QOS_INFO_AC_BE ((CsrWifiNmeWmmQosInfo) 0x08)
458#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO ((CsrWifiNmeWmmQosInfo) 0x20)
459#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR ((CsrWifiNmeWmmQosInfo) 0x40)
460#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX ((CsrWifiNmeWmmQosInfo) 0x60)
461
462
463/*******************************************************************************
464
465  NAME
466    CsrWifiNmeEapMethodMask
467
468  DESCRIPTION
469    Mask type for use with the values defined by CsrWifiNmeEapMethod.
470
471*******************************************************************************/
472typedef u16 CsrWifiNmeEapMethodMask;
473/*******************************************************************************
474
475  NAME
476    CsrWifiNmeEncryptionMask
477
478  DESCRIPTION
479    Mask type for use with the values defined by CsrWifiNmeEncryption
480
481*******************************************************************************/
482typedef u16 CsrWifiNmeEncryptionMask;
483/*******************************************************************************
484
485  NAME
486    CsrWifiNmeIndicationsMask
487
488  DESCRIPTION
489    Mask type for use with the values defined by CsrWifiNmeIndications
490
491*******************************************************************************/
492typedef u32 CsrWifiNmeIndicationsMask;
493/*******************************************************************************
494
495  NAME
496    CsrWifiNmeNmeIndicationsMask
497
498  DESCRIPTION
499    Mask type for use with the values defined by CsrWifiNmeNmeIndications.
500    Used to overlap the unused portion of the unifi_IndicationsMask For NME
501    specific indications
502
503*******************************************************************************/
504typedef u32 CsrWifiNmeNmeIndicationsMask;
505/*******************************************************************************
506
507  NAME
508    CsrWifiNmeWmmQosInfoMask
509
510  DESCRIPTION
511    Mask type for use with the values defined by CsrWifiNmeWmmQosInfo
512
513*******************************************************************************/
514typedef u8 CsrWifiNmeWmmQosInfoMask;
515
516
517/*******************************************************************************
518
519  NAME
520    CsrWifiNmeEmpty
521
522  DESCRIPTION
523    Empty Structure to indicate that no credentials are available.
524
525  MEMBERS
526    empty - Only element of the empty structure (always set to 0).
527
528*******************************************************************************/
529typedef struct
530{
531    u8 empty;
532} CsrWifiNmeEmpty;
533
534/*******************************************************************************
535
536  NAME
537    CsrWifiNmePassphrase
538
539  DESCRIPTION
540    Structure holding the ASCII Pass Phrase data.
541
542  MEMBERS
543    encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
544    passphrase - Pass phrase ASCII value.
545
546*******************************************************************************/
547typedef struct
548{
549    u16 encryptionMode;
550    char *passphrase;
551} CsrWifiNmePassphrase;
552
553/*******************************************************************************
554
555  NAME
556    CsrWifiNmePsk
557
558  DESCRIPTION
559    Structure holding the Pre-Shared Key data.
560
561  MEMBERS
562    encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
563    psk - Pre-Shared Key value.
564
565*******************************************************************************/
566typedef struct
567{
568    u16 encryptionMode;
569    u8 psk[32];
570} CsrWifiNmePsk;
571
572/*******************************************************************************
573
574  NAME
575    CsrWifiNmeWapiCredentials
576
577  DESCRIPTION
578    Structure holding WAPI credentials data.
579
580  MEMBERS
581    certificateLength - Length in bytes of the following client certificate.
582    certificate - The actual client certificate data (if present).
583                          DER/PEM format supported.
584    privateKeyLength - Length in bytes of the following private key.
585    privateKey - The actual private key. DER/PEM format.
586    caCertificateLength - Length in bytes of the following certificate authority
587                          certificate.
588    caCertificate - The actual certificate authority certificate data. If
589                          not supplied the received certificate authority
590                          certificate is assumed to be validate, if present the
591                          received certificate is validated against it. DER/PEM
592                          format supported.
593
594*******************************************************************************/
595typedef struct
596{
597    u32 certificateLength;
598    u8 *certificate;
599    u16 privateKeyLength;
600    u8 *privateKey;
601    u32 caCertificateLength;
602    u8 *caCertificate;
603} CsrWifiNmeWapiCredentials;
604
605/*******************************************************************************
606
607  NAME
608    CsrWifiNmeConnectAttempt
609
610  DESCRIPTION
611    Structure holding Connection attempt data.
612
613  MEMBERS
614    bssid - Id of Basic Service Set connections attempt have been made
615                    to.
616    status - Status returned to indicate the success or otherwise of the
617                    connection attempt.
618    securityError - Security error status indicating the nature of the failure
619                    to connect.
620
621*******************************************************************************/
622typedef struct
623{
624    CsrWifiMacAddress bssid;
625    CsrResult status;
626    CsrWifiNmeSecError securityError;
627} CsrWifiNmeConnectAttempt;
628
629/*******************************************************************************
630
631  NAME
632    CsrWifiNmeEapCredentials
633
634  DESCRIPTION
635    Supports the use of multiple EAP methods via a single structure. The
636    methods required are indicated by the value set in the eapMethodMask
637
638  MEMBERS
639    eapMethodMask
640                   - Bit mask of supported EAP methods
641                     Currently only supports the setting of one bit.
642                     Required for all the EAP methods.
643    authMode
644                   - Bit mask representing the authentication types that may be
645                     supported by a suitable AP. An AP must support at least one
646                     of the authentication types specified to be considered for
647                     connection. Required for all EAP methods.
648    encryptionMode
649                   - Bit mask representing the encryption types that may be
650                     supported by a suitable AP. An AP must support a suitable
651                     mix of the pairwise and group encryption types requested to
652                     be considered for connection. Required for all EAP methods.
653    userName
654                   - User name. Required for all EAP methods except: SIM or AKA.
655    userPassword
656                   - User Password. Required for all EAP methods except: TLS,
657                     SIM or AKA.
658    authServerUserIdentity
659                   - Authentication server user Identity. Required for all EAP
660                     methods except: TLS, SIM, AKA or FAST.
661    clientCertificateLength
662                   - Length in bytes of the following client certificate (if
663                     present). Only required for TLS.
664    clientCertificate
665                   - The actual client certificate data (if present). Only
666                     required for TLS. DER/PEM format supported.
667    certificateAuthorityCertificateLength
668                   - Length in bytes of the following certificate authority
669                     certificate (if present). Optional for TLS, TTLS, PEAP.
670    certificateAuthorityCertificate
671                   - The actual certificate authority certificate data (if
672                     present). If not supplied the received certificate
673                     authority certificate is assumed to be valid, if present
674                     the received certificate is validated against it. Optional
675                     for TLS, TTLS, PEAP. DER/PEM format supported.
676    privateKeyLength
677                   - Length in bytes of the following private key (if present).
678                     Only required for TLS.
679    privateKey
680                   - The actual private key (if present). Only required for TLS.
681                     DER/PEM format, maybe password protected.
682    privateKeyPassword
683                   - Optional password to protect the private key.
684    sessionLength
685                   - Length in bytes of the following session field Supported
686                     for all EAP methods except: SIM or AKA.
687    session
688                   - Session information to support faster re-authentication.
689                     Supported for all EAP methods except: SIM or AKA.
690    allowPacProvisioning
691                   - If TRUE: PAC provisioning is allowed 'over-the_air';
692                     If FALSE: a PAC must be supplied.
693                     Only required for FAST.
694    pacLength
695                   - Length the following PAC field. If allowPacProvisioning is
696                     FALSE then the PAC MUST be supplied (i.e. non-zero). Only
697                     required for FAST.
698    pac
699                   - The actual PAC data. If allowPacProvisioning is FALSE then
700                     the PAC MUST be supplied. Only required for FAST.
701    pacPassword
702                   - Optional password to protect the PAC. Only required for
703                     FAST.
704
705*******************************************************************************/
706typedef struct
707{
708    CsrWifiNmeEapMethodMask eapMethodMask;
709    CsrWifiSmeAuthModeMask authMode;
710    CsrWifiNmeEncryptionMask encryptionMode;
711    char *userName;
712    char *userPassword;
713    char *authServerUserIdentity;
714    u32 clientCertificateLength;
715    u8 *clientCertificate;
716    u32 certificateAuthorityCertificateLength;
717    u8 *certificateAuthorityCertificate;
718    u16 privateKeyLength;
719    u8 *privateKey;
720    char *privateKeyPassword;
721    u32 sessionLength;
722    u8 *session;
723    u8 allowPacProvisioning;
724    u32 pacLength;
725    u8 *pac;
726    char *pacPassword;
727} CsrWifiNmeEapCredentials;
728
729/*******************************************************************************
730
731  NAME
732    CsrWifiNmePeerConfig
733
734  DESCRIPTION
735    Structure holding Peer Config data.
736
737  MEMBERS
738    p2pDeviceId -
739    groupCapabilityMask -
740    groupOwnerIntent -
741
742*******************************************************************************/
743typedef struct
744{
745    CsrWifiMacAddress p2pDeviceId;
746    CsrWifiSmeP2pGroupCapabilityMask groupCapabilityMask;
747    u8 groupOwnerIntent;
748} CsrWifiNmePeerConfig;
749
750/*******************************************************************************
751
752  NAME
753    CsrWifiNmeProfileIdentity
754
755  DESCRIPTION
756    The identity of a profile is defined as the unique combination the BSSID
757    and SSID.
758
759  MEMBERS
760    bssid - ID of Basic Service Set for or the P2pDevice address of the GO for
761             which a connection attempt was made.
762    ssid - Service Set Id.
763
764*******************************************************************************/
765typedef struct
766{
767    CsrWifiMacAddress bssid;
768    CsrWifiSsid ssid;
769} CsrWifiNmeProfileIdentity;
770
771/*******************************************************************************
772
773  NAME
774    CsrWifiNmeWep128Keys
775
776  DESCRIPTION
777    Structure holding WEP Authentication Type and WEP keys that can be used
778    when using WEP128.
779
780  MEMBERS
781    wepAuthType - Mask to select the WEP authentication type (Open or Shared)
782    selectedWepKey - Index to one of the four keys below indicating the
783                     currently used WEP key.
784    key1 - Value for key number 1.
785    key2 - Value for key number 2.
786    key3 - Value for key number 3.
787    key4 - Value for key number 4.
788
789*******************************************************************************/
790typedef struct
791{
792    CsrWifiSmeAuthModeMask wepAuthType;
793    u8 selectedWepKey;
794    u8 key1[13];
795    u8 key2[13];
796    u8 key3[13];
797    u8 key4[13];
798} CsrWifiNmeWep128Keys;
799
800/*******************************************************************************
801
802  NAME
803    CsrWifiNmeWep64Keys
804
805  DESCRIPTION
806    Structure for holding WEP Authentication Type and WEP keys that can be
807    used when using WEP64.
808
809  MEMBERS
810    wepAuthType - Mask to select the WEP authentication type (Open or Shared)
811    selectedWepKey - Index to one of the four keys below indicating the
812                     currently used WEP key.
813    key1 - Value for key number 1.
814    key2 - Value for key number 2.
815    key3 - Value for key number 3.
816    key4 - Value for key number 4.
817
818*******************************************************************************/
819typedef struct
820{
821    CsrWifiSmeAuthModeMask wepAuthType;
822    u8 selectedWepKey;
823    u8 key1[5];
824    u8 key2[5];
825    u8 key3[5];
826    u8 key4[5];
827} CsrWifiNmeWep64Keys;
828
829/*******************************************************************************
830
831  NAME
832    CsrWifiNmeCredentials
833
834  DESCRIPTION
835    Structure containing the Credentials data.
836
837  MEMBERS
838    credentialType - Credential type value (as defined in the
839                                enumeration type).
840    credential - Union containing credentials which depends on
841                                credentialType parameter.
842    credentialeap -
843    credentialwapiPassphrase -
844    credentialwpa2Passphrase -
845    credentialwpa2Psk -
846    credentialwapiPsk -
847    credentialwpaPassphrase -
848    credentialwapi -
849    credentialwep128Key -
850    credentialwpaPsk -
851    credentialopenSystem -
852    credentialwep64Key -
853
854*******************************************************************************/
855typedef struct
856{
857    CsrWifiNmeCredentialType credentialType;
858    union {
859        CsrWifiNmeEapCredentials eap;
860        CsrWifiNmePassphrase wapiPassphrase;
861        CsrWifiNmePassphrase wpa2Passphrase;
862        CsrWifiNmePsk wpa2Psk;
863        CsrWifiNmePsk wapiPsk;
864        CsrWifiNmePassphrase wpaPassphrase;
865        CsrWifiNmeWapiCredentials wapi;
866        CsrWifiNmeWep128Keys wep128Key;
867        CsrWifiNmePsk wpaPsk;
868        CsrWifiNmeEmpty openSystem;
869        CsrWifiNmeWep64Keys wep64Key;
870    } credential;
871} CsrWifiNmeCredentials;
872
873/*******************************************************************************
874
875  NAME
876    CsrWifiNmeProfile
877
878  DESCRIPTION
879    Structure containing the Profile data.
880
881  MEMBERS
882    profileIdentity - Profile Identity.
883    wmmQosInfoMask - Mask for WMM QoS information.
884    bssType - Type of BSS (Infrastructure or Adhoc).
885    channelNo - Channel Number.
886    ccxOptionsMask - Options mask for Cisco Compatible Extentions.
887    cloakedSsid - Flag to decide whether the SSID is cloaked (not
888                      transmitted) or not.
889    credentials - Credentials data.
890
891*******************************************************************************/
892typedef struct
893{
894    CsrWifiNmeProfileIdentity profileIdentity;
895    CsrWifiNmeWmmQosInfoMask wmmQosInfoMask;
896    CsrWifiNmeBssType bssType;
897    u8 channelNo;
898    u8 ccxOptionsMask;
899    u8 cloakedSsid;
900    CsrWifiNmeCredentials credentials;
901} CsrWifiNmeProfile;
902
903
904/* Downstream */
905#define CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST (0x0000)
906
907#define CSR_WIFI_NME_PROFILE_SET_REQ ((CsrWifiNmePrim) (0x0000 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
908#define CSR_WIFI_NME_PROFILE_DELETE_REQ ((CsrWifiNmePrim) (0x0001 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
909#define CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ ((CsrWifiNmePrim) (0x0002 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
910#define CSR_WIFI_NME_PROFILE_ORDER_SET_REQ ((CsrWifiNmePrim) (0x0003 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
911#define CSR_WIFI_NME_PROFILE_CONNECT_REQ ((CsrWifiNmePrim) (0x0004 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
912#define CSR_WIFI_NME_WPS_REQ ((CsrWifiNmePrim) (0x0005 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
913#define CSR_WIFI_NME_WPS_CANCEL_REQ ((CsrWifiNmePrim) (0x0006 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
914#define CSR_WIFI_NME_CONNECTION_STATUS_GET_REQ ((CsrWifiNmePrim) (0x0007 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
915#define CSR_WIFI_NME_SIM_IMSI_GET_RES ((CsrWifiNmePrim) (0x0008 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
916#define CSR_WIFI_NME_SIM_GSM_AUTH_RES ((CsrWifiNmePrim) (0x0009 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
917#define CSR_WIFI_NME_SIM_UMTS_AUTH_RES ((CsrWifiNmePrim) (0x000A + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
918#define CSR_WIFI_NME_WPS_CONFIG_SET_REQ ((CsrWifiNmePrim) (0x000B + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
919#define CSR_WIFI_NME_EVENT_MASK_SET_REQ ((CsrWifiNmePrim) (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
920
921
922#define CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
923
924/* Upstream */
925#define CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST (0x0000 + CSR_PRIM_UPSTREAM)
926
927#define CSR_WIFI_NME_PROFILE_SET_CFM ((CsrWifiNmePrim)(0x0000 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
928#define CSR_WIFI_NME_PROFILE_DELETE_CFM ((CsrWifiNmePrim)(0x0001 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
929#define CSR_WIFI_NME_PROFILE_DELETE_ALL_CFM ((CsrWifiNmePrim)(0x0002 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
930#define CSR_WIFI_NME_PROFILE_ORDER_SET_CFM ((CsrWifiNmePrim)(0x0003 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
931#define CSR_WIFI_NME_PROFILE_CONNECT_CFM ((CsrWifiNmePrim)(0x0004 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
932#define CSR_WIFI_NME_WPS_CFM ((CsrWifiNmePrim)(0x0005 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
933#define CSR_WIFI_NME_WPS_CANCEL_CFM ((CsrWifiNmePrim)(0x0006 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
934#define CSR_WIFI_NME_CONNECTION_STATUS_GET_CFM ((CsrWifiNmePrim)(0x0007 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
935#define CSR_WIFI_NME_PROFILE_UPDATE_IND ((CsrWifiNmePrim)(0x0008 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
936#define CSR_WIFI_NME_PROFILE_DISCONNECT_IND ((CsrWifiNmePrim)(0x0009 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
937#define CSR_WIFI_NME_SIM_IMSI_GET_IND ((CsrWifiNmePrim)(0x000A + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
938#define CSR_WIFI_NME_SIM_GSM_AUTH_IND ((CsrWifiNmePrim)(0x000B + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
939#define CSR_WIFI_NME_SIM_UMTS_AUTH_IND ((CsrWifiNmePrim)(0x000C + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
940#define CSR_WIFI_NME_WPS_CONFIG_SET_CFM ((CsrWifiNmePrim)(0x000D + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
941#define CSR_WIFI_NME_EVENT_MASK_SET_CFM ((CsrWifiNmePrim)(0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
942
943#define CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST (0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
944
945#define CSR_WIFI_NME_PRIM_DOWNSTREAM_COUNT (CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
946#define CSR_WIFI_NME_PRIM_UPSTREAM_COUNT (CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST + 1 - CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
947
948/*******************************************************************************
949
950  NAME
951    CsrWifiNmeProfileSetReq
952
953  DESCRIPTION
954    Creates or updates an existing profile in the NME that matches the unique
955    identity of the profile. Each profile is identified by the combination of
956    BSSID and SSID. The profile contains all the required credentials for
957    attempting to connect to the network. Creating or updating a profile via
958    the NME PROFILE SET REQ does NOT add the profile to the preferred profile
959    list within the NME used for the NME auto-connect behaviour.
960
961  MEMBERS
962    common - Common header for use with the CsrWifiFsm Module
963    profile - Specifies the identity and credentials of the network.
964
965*******************************************************************************/
966typedef struct
967{
968    CsrWifiFsmEvent common;
969    CsrWifiNmeProfile profile;
970} CsrWifiNmeProfileSetReq;
971
972/*******************************************************************************
973
974  NAME
975    CsrWifiNmeProfileDeleteReq
976
977  DESCRIPTION
978    Will delete the profile with a matching identity, but does NOT modify the
979    preferred profile list.
980
981  MEMBERS
982    common - Common header for use with the CsrWifiFsm Module
983    profileIdentity - Identity (BSSID, SSID) of profile to be deleted.
984
985*******************************************************************************/
986typedef struct
987{
988    CsrWifiFsmEvent common;
989    CsrWifiNmeProfileIdentity profileIdentity;
990} CsrWifiNmeProfileDeleteReq;
991
992/*******************************************************************************
993
994  NAME
995    CsrWifiNmeProfileDeleteAllReq
996
997  DESCRIPTION
998    Deletes all profiles present in the NME, but does NOT modify the
999    preferred profile list.
1000
1001  MEMBERS
1002    common - Common header for use with the CsrWifiFsm Module
1003
1004*******************************************************************************/
1005typedef struct
1006{
1007    CsrWifiFsmEvent common;
1008} CsrWifiNmeProfileDeleteAllReq;
1009
1010/*******************************************************************************
1011
1012  NAME
1013    CsrWifiNmeProfileOrderSetReq
1014
1015  DESCRIPTION
1016    Defines the preferred order that profiles present in the NME should be
1017    used during the NME auto-connect behaviour.
1018    If profileIdentitysCount == 0, it removes any existing preferred profile
1019    list already present in the NME, effectively disabling the auto-connect
1020    behaviour.
1021    NOTE: Profile identities that do not match any profile stored in the NME
1022    are ignored during the auto-connect procedure.
1023    NOTE: during auto-connect the NME will only attempt to join an existing
1024    adhoc network and it will never attempt to host an adhoc network; for
1025    hosting and adhoc network, use CSR_WIFI_NME_PROFILE_CONNECT_REQ
1026
1027  MEMBERS
1028    common - Common header for use with the CsrWifiFsm Module
1029    interfaceTag - Interface Identifier; unique identifier of an
1030                            interface
1031    profileIdentitysCount - The number of profiles identities in the list.
1032    profileIdentitys - Points to the list of profile identities.
1033
1034*******************************************************************************/
1035typedef struct
1036{
1037    CsrWifiFsmEvent common;
1038    u16 interfaceTag;
1039    u8 profileIdentitysCount;
1040    CsrWifiNmeProfileIdentity *profileIdentitys;
1041} CsrWifiNmeProfileOrderSetReq;
1042
1043/*******************************************************************************
1044
1045  NAME
1046    CsrWifiNmeProfileConnectReq
1047
1048  DESCRIPTION
1049    Requests the NME to attempt to connect to the specified profile.
1050    Overrides any current connection attempt.
1051
1052  MEMBERS
1053    common - Common header for use with the CsrWifiFsm Module
1054    interfaceTag - Interface Identifier; unique identifier of an interface
1055    profileIdentity - Identity (BSSID, SSID) of profile to be connected to.
1056                      It must match an existing profile in the NME.
1057
1058*******************************************************************************/
1059typedef struct
1060{
1061    CsrWifiFsmEvent common;
1062    u16 interfaceTag;
1063    CsrWifiNmeProfileIdentity profileIdentity;
1064} CsrWifiNmeProfileConnectReq;
1065
1066/*******************************************************************************
1067
1068  NAME
1069    CsrWifiNmeWpsReq
1070
1071  DESCRIPTION
1072    Requests the NME to look for WPS enabled APs and attempt to perform WPS
1073    to determine the appropriate security credentials to connect to the AP.
1074    If the PIN == '00000000' then 'push button mode' is indicated, otherwise
1075    the PIN has to match that of the AP. 4 digit pin is passed by sending the
1076    pin digits in pin[0]..pin[3] and rest of the contents filled with '-'.
1077
1078  MEMBERS
1079    common - Common header for use with the CsrWifiFsm Module
1080    interfaceTag - Interface Identifier; unique identifier of an interface
1081    pin - PIN value.
1082    ssid - Service Set identifier
1083    bssid - ID of Basic Service Set for which a WPS connection attempt is
1084                   being made.
1085
1086*******************************************************************************/
1087typedef struct
1088{
1089    CsrWifiFsmEvent common;
1090    u16 interfaceTag;
1091    u8 pin[8];
1092    CsrWifiSsid ssid;
1093    CsrWifiMacAddress bssid;
1094} CsrWifiNmeWpsReq;
1095
1096/*******************************************************************************
1097
1098  NAME
1099    CsrWifiNmeWpsCancelReq
1100
1101  DESCRIPTION
1102    Requests the NME to cancel any WPS procedure that it is currently
1103    performing. This includes WPS registrar activities started because of
1104    CSR_WIFI_NME_AP_REGISTER.request
1105
1106  MEMBERS
1107    common - Common header for use with the CsrWifiFsm Module
1108    interfaceTag - Interface Identifier; unique identifier of an interface
1109
1110*******************************************************************************/
1111typedef struct
1112{
1113    CsrWifiFsmEvent common;
1114    u16 interfaceTag;
1115} CsrWifiNmeWpsCancelReq;
1116
1117/*******************************************************************************
1118
1119  NAME
1120    CsrWifiNmeConnectionStatusGetReq
1121
1122  DESCRIPTION
1123    Requests the current connection status of the NME.
1124
1125  MEMBERS
1126    common - Common header for use with the CsrWifiFsm Module
1127    interfaceTag - Interface Identifier; unique identifier of an interface
1128
1129*******************************************************************************/
1130typedef struct
1131{
1132    CsrWifiFsmEvent common;
1133    u16 interfaceTag;
1134} CsrWifiNmeConnectionStatusGetReq;
1135
1136/*******************************************************************************
1137
1138  NAME
1139    CsrWifiNmeSimImsiGetRes
1140
1141  DESCRIPTION
1142    Response from the application that received the NME SIM IMSI GET IND.
1143
1144  MEMBERS
1145    common - Common header for use with the CsrWifiFsm Module
1146    status - Indicates the outcome of the requested operation: STATUS_SUCCESS
1147               or STATUS_ERROR.
1148    imsi - The value of the IMSI obtained from the UICC.
1149    cardType - The UICC type (GSM only (SIM), UMTS only (USIM), Both).
1150
1151*******************************************************************************/
1152typedef struct
1153{
1154    CsrWifiFsmEvent common;
1155    CsrResult status;
1156    char *imsi;
1157    CsrWifiNmeSimCardType cardType;
1158} CsrWifiNmeSimImsiGetRes;
1159
1160/*******************************************************************************
1161
1162  NAME
1163    CsrWifiNmeSimGsmAuthRes
1164
1165  DESCRIPTION
1166    Response from the application that received the NME SIM GSM AUTH IND. For
1167    each GSM authentication round a GSM Ciphering key (Kc) and a signed
1168    response (SRES) are produced. Since 2 or 3 GSM authentication rounds are
1169    used the 2 or 3 Kc's obtained respectively are combined into one buffer
1170    and similarly the 2 or 3 SRES's obtained are combined into another
1171    buffer. The order of Kc values (SRES values respectively) in their buffer
1172    is the same as that of their corresponding RAND values in the incoming
1173    indication.
1174
1175  MEMBERS
1176    common - Common header for use with the CsrWifiFsm Module
1177    status - Indicates the outcome of the requested operation:
1178                 STATUS_SUCCESS or STATUS_ERROR
1179    kcsLength - Length in Bytes of Kc buffer. Legal values are: 16 or 24.
1180    kcs - Kc buffer holding 2 or 3 Kc values.
1181    sresLength - Length in Bytes of SRES buffer. Legal values are: 8 or 12.
1182    sres - SRES buffer holding 2 or 3 SRES values.
1183
1184*******************************************************************************/
1185typedef struct
1186{
1187    CsrWifiFsmEvent common;
1188    CsrResult status;
1189    u8 kcsLength;
1190    u8 *kcs;
1191    u8 sresLength;
1192    u8 *sres;
1193} CsrWifiNmeSimGsmAuthRes;
1194
1195/*******************************************************************************
1196
1197  NAME
1198    CsrWifiNmeSimUmtsAuthRes
1199
1200  DESCRIPTION
1201    Response from the application that received the NME SIM UMTS AUTH IND.
1202    The values of umtsCipherKey, umtsIntegrityKey, resParameterLength and
1203    resParameter are only meanigful when result = UMTS_AUTH_RESULT_SUCCESS.
1204    The value of auts is only meaningful when
1205    result=UMTS_AUTH_RESULT_SYNC_FAIL.
1206
1207  MEMBERS
1208    common - Common header for use with the CsrWifiFsm Module
1209    status - Indicates the outcome of the requested operation:
1210                         STATUS_SUCCESS or STATUS_ERROR.
1211    result - The result of UMTS authentication as performed by the
1212                         UICC which could be: Success, Authentication Reject or
1213                         Synchronisation Failure. For all these 3 outcomes the
1214                         value of status is success.
1215    umtsCipherKey - The UMTS Cipher Key as calculated and returned by the
1216                         UICC.
1217    umtsIntegrityKey - The UMTS Integrity Key as calculated and returned by
1218                         the UICC.
1219    resParameterLength - The length (in bytes) of the RES parameter (min=4; max
1220                         = 16).
1221    resParameter - The RES parameter as calculated and returned by the
1222                         UICC.
1223    auts - The AUTS parameter as calculated and returned by the
1224                         UICC.
1225
1226*******************************************************************************/
1227typedef struct
1228{
1229    CsrWifiFsmEvent common;
1230    CsrResult status;
1231    CsrWifiNmeUmtsAuthResult result;
1232    u8 umtsCipherKey[16];
1233    u8 umtsIntegrityKey[16];
1234    u8 resParameterLength;
1235    u8 *resParameter;
1236    u8 auts[14];
1237} CsrWifiNmeSimUmtsAuthRes;
1238
1239/*******************************************************************************
1240
1241  NAME
1242    CsrWifiNmeWpsConfigSetReq
1243
1244  DESCRIPTION
1245    This primitive passes the WPS information for the device to NME. This may
1246    be accepted only if no interface is active.
1247
1248  MEMBERS
1249    common - Common header for use with the CsrWifiFsm Module
1250    wpsConfig - WPS config.
1251
1252*******************************************************************************/
1253typedef struct
1254{
1255    CsrWifiFsmEvent common;
1256    CsrWifiSmeWpsConfig wpsConfig;
1257} CsrWifiNmeWpsConfigSetReq;
1258
1259/*******************************************************************************
1260
1261  NAME
1262    CsrWifiNmeEventMaskSetReq
1263
1264  DESCRIPTION
1265    The wireless manager application may register with the NME to receive
1266    notification of interesting events. Indications will be sent only if the
1267    wireless manager explicitly registers to be notified of that event.
1268    indMask is a bit mask of values defined in CsrWifiNmeIndicationsMask.
1269
1270  MEMBERS
1271    common - Common header for use with the CsrWifiFsm Module
1272    indMask - Set mask with values from CsrWifiNmeIndications
1273
1274*******************************************************************************/
1275typedef struct
1276{
1277    CsrWifiFsmEvent common;
1278    CsrWifiNmeIndicationsMask indMask;
1279} CsrWifiNmeEventMaskSetReq;
1280
1281/*******************************************************************************
1282
1283  NAME
1284    CsrWifiNmeProfileSetCfm
1285
1286  DESCRIPTION
1287    Reports the status of the NME PROFILE SET REQ; the request will only fail
1288    if the details specified in the profile contains an invalid combination
1289    of parameters for example specifying the profile as cloaked but not
1290    specifying the SSID. The NME doesn't limit the number of profiles that
1291    may be created. The NME assumes that the entity configuring it is aware
1292    of the appropriate limits.
1293
1294  MEMBERS
1295    common - Common header for use with the CsrWifiFsm Module
1296    status - Indicates the success or otherwise of the requested operation.
1297
1298*******************************************************************************/
1299typedef struct
1300{
1301    CsrWifiFsmEvent common;
1302    CsrResult status;
1303} CsrWifiNmeProfileSetCfm;
1304
1305/*******************************************************************************
1306
1307  NAME
1308    CsrWifiNmeProfileDeleteCfm
1309
1310  DESCRIPTION
1311    Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_REQ.
1312    Returns CSR_WIFI_NME_STATUS_NOT_FOUND if there is no matching profile.
1313
1314  MEMBERS
1315    common - Common header for use with the CsrWifiFsm Module
1316    status - Indicates the success or otherwise of the requested operation.
1317
1318*******************************************************************************/
1319typedef struct
1320{
1321    CsrWifiFsmEvent common;
1322    CsrResult status;
1323} CsrWifiNmeProfileDeleteCfm;
1324
1325/*******************************************************************************
1326
1327  NAME
1328    CsrWifiNmeProfileDeleteAllCfm
1329
1330  DESCRIPTION
1331    Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ.
1332    Returns always CSR_WIFI_NME_STATUS_SUCCESS.
1333
1334  MEMBERS
1335    common - Common header for use with the CsrWifiFsm Module
1336    status - Indicates the success or otherwise of the requested operation, but
1337             in this case it always set to success.
1338
1339*******************************************************************************/
1340typedef struct
1341{
1342    CsrWifiFsmEvent common;
1343    CsrResult status;
1344} CsrWifiNmeProfileDeleteAllCfm;
1345
1346/*******************************************************************************
1347
1348  NAME
1349    CsrWifiNmeProfileOrderSetCfm
1350
1351  DESCRIPTION
1352    Confirmation to UNIFI_NME_PROFILE_ORDER_SET.request.
1353
1354  MEMBERS
1355    common - Common header for use with the CsrWifiFsm Module
1356    interfaceTag - Interface Identifier; unique identifier of an interface
1357    status - Indicates the success or otherwise of the requested
1358                   operation.
1359
1360*******************************************************************************/
1361typedef struct
1362{
1363    CsrWifiFsmEvent common;
1364    u16 interfaceTag;
1365    CsrResult status;
1366} CsrWifiNmeProfileOrderSetCfm;
1367
1368/*******************************************************************************
1369
1370  NAME
1371    CsrWifiNmeProfileConnectCfm
1372
1373  DESCRIPTION
1374    Reports the status of the NME PROFILE CONNECT REQ. If unsuccessful the
1375    connectAttempt parameters contain details of the APs that the NME
1376    attempted to connect to before reporting the failure of the request.
1377
1378  MEMBERS
1379    common - Common header for use with the CsrWifiFsm Module
1380    interfaceTag - Interface Identifier; unique identifier of an
1381                           interface
1382    status - Indicates the success or otherwise of the requested
1383                           operation.
1384    connectAttemptsCount - This parameter is relevant only if
1385                           status!=CSR_WIFI_NME_STATUS_SUCCESS.
1386                           Number of connection attempt elements provided with
1387                           this primitive
1388    connectAttempts - This parameter is relevant only if
1389                           status!=CSR_WIFI_NME_STATUS_SUCCESS.
1390                           Points to the list of connection attempt elements
1391                           provided with this primitive
1392                           Each element of the list provides information about
1393                           an AP on which the connection attempt was made and
1394                           the error that occurred during the attempt.
1395
1396*******************************************************************************/
1397typedef struct
1398{
1399    CsrWifiFsmEvent common;
1400    u16 interfaceTag;
1401    CsrResult status;
1402    u8 connectAttemptsCount;
1403    CsrWifiNmeConnectAttempt *connectAttempts;
1404} CsrWifiNmeProfileConnectCfm;
1405
1406/*******************************************************************************
1407
1408  NAME
1409    CsrWifiNmeWpsCfm
1410
1411  DESCRIPTION
1412    Reports the status of the NME WPS REQ.
1413    If CSR_WIFI_NME_STATUS_SUCCESS, the profile parameter contains the
1414    identity and credentials of the AP.
1415
1416  MEMBERS
1417    common - Common header for use with the CsrWifiFsm Module
1418    interfaceTag - Interface Identifier; unique identifier of an interface
1419    status - Indicates the success or otherwise of the requested
1420                   operation.
1421    profile - This parameter is relevant only if
1422                   status==CSR_WIFI_NME_STATUS_SUCCESS.
1423                   The identity and credentials of the network.
1424
1425*******************************************************************************/
1426typedef struct
1427{
1428    CsrWifiFsmEvent common;
1429    u16 interfaceTag;
1430    CsrResult status;
1431    CsrWifiNmeProfile profile;
1432} CsrWifiNmeWpsCfm;
1433
1434/*******************************************************************************
1435
1436  NAME
1437    CsrWifiNmeWpsCancelCfm
1438
1439  DESCRIPTION
1440    Reports the status of the NME WPS REQ, the request is always SUCCESSFUL.
1441
1442  MEMBERS
1443    common - Common header for use with the CsrWifiFsm Module
1444    interfaceTag - Interface Identifier; unique identifier of an interface
1445    status - Only returns CSR_WIFI_NME_STATUS_SUCCESS
1446
1447*******************************************************************************/
1448typedef struct
1449{
1450    CsrWifiFsmEvent common;
1451    u16 interfaceTag;
1452    CsrResult status;
1453} CsrWifiNmeWpsCancelCfm;
1454
1455/*******************************************************************************
1456
1457  NAME
1458    CsrWifiNmeConnectionStatusGetCfm
1459
1460  DESCRIPTION
1461    Reports the connection status of the NME.
1462
1463  MEMBERS
1464    common - Common header for use with the CsrWifiFsm Module
1465    interfaceTag - Interface Identifier; unique identifier of an interface
1466    status - Indicates the success or otherwise of the requested
1467                       operation.
1468    connectionStatus - NME current connection status
1469
1470*******************************************************************************/
1471typedef struct
1472{
1473    CsrWifiFsmEvent common;
1474    u16 interfaceTag;
1475    CsrResult status;
1476    CsrWifiNmeConnectionStatus connectionStatus;
1477} CsrWifiNmeConnectionStatusGetCfm;
1478
1479/*******************************************************************************
1480
1481  NAME
1482    CsrWifiNmeProfileUpdateInd
1483
1484  DESCRIPTION
1485    Indication generated from the NME (if an application subscribes to
1486    receive it) that informs that application that the contained profile has
1487    changed.
1488    For example, either the credentials EAP-FAST PAC file or the session data
1489    within the profile has changed.
1490    It is up to the application whether it stores this updated profile or
1491    not.
1492
1493  MEMBERS
1494    common - Common header for use with the CsrWifiFsm Module
1495    interfaceTag - Interface Identifier; unique identifier of an interface
1496    profile - The identity and credentials of the network.
1497
1498*******************************************************************************/
1499typedef struct
1500{
1501    CsrWifiFsmEvent common;
1502    u16 interfaceTag;
1503    CsrWifiNmeProfile profile;
1504} CsrWifiNmeProfileUpdateInd;
1505
1506/*******************************************************************************
1507
1508  NAME
1509    CsrWifiNmeProfileDisconnectInd
1510
1511  DESCRIPTION
1512    Indication generated from the NME (if an application subscribes to
1513    receive it) that informs that application that the current profile
1514    connection has disconnected. The indication will contain information
1515    about APs that it attempted to maintain the connection via i.e. in the
1516    case of failed roaming.
1517
1518  MEMBERS
1519    common - Common header for use with the CsrWifiFsm Module
1520    interfaceTag - Interface Identifier; unique identifier of an
1521                           interface
1522    connectAttemptsCount - Number of connection attempt elements provided with
1523                           this primitive
1524    connectAttempts - Points to the list of connection attempt elements
1525                           provided with this primitive
1526                           Each element of the list provides information about
1527                           an AP on which the connection attempt was made and
1528                           the error occurred during the attempt.
1529
1530*******************************************************************************/
1531typedef struct
1532{
1533    CsrWifiFsmEvent common;
1534    u16 interfaceTag;
1535    u8 connectAttemptsCount;
1536    CsrWifiNmeConnectAttempt *connectAttempts;
1537} CsrWifiNmeProfileDisconnectInd;
1538
1539/*******************************************************************************
1540
1541  NAME
1542    CsrWifiNmeSimImsiGetInd
1543
1544  DESCRIPTION
1545    Indication generated from the NME (if an application subscribes to
1546    receive it) that requests the IMSI and UICC type from the UICC Manager.
1547    This indication is generated when the NME is attempting to connect to a
1548    profile configured for EAP-SIM/AKA. An application MUST register to
1549    receive this indication for the NME to support the EAP-SIM/AKA credential
1550    types. Otherwise the NME has no route to obtain the information from the
1551    UICC.
1552
1553  MEMBERS
1554    common - Common header for use with the CsrWifiFsm Module
1555
1556*******************************************************************************/
1557typedef struct
1558{
1559    CsrWifiFsmEvent common;
1560} CsrWifiNmeSimImsiGetInd;
1561
1562/*******************************************************************************
1563
1564  NAME
1565    CsrWifiNmeSimGsmAuthInd
1566
1567  DESCRIPTION
1568    Indication generated from the NME (if an application subscribes to
1569    receive it) that requests the UICC Manager to perform a GSM
1570    authentication on behalf of the NME. This indication is generated when
1571    the NME is attempting to connect to a profile configured for EAP-SIM. An
1572    application MUST register to receive this indication for the NME to
1573    support the EAP-SIM credential types. Otherwise the NME has no route to
1574    obtain the information from the UICC. EAP-SIM authentication requires 2
1575    or 3 GSM authentication rounds and therefore 2 or 3 RANDS (GSM Random
1576    Challenges) are included.
1577
1578  MEMBERS
1579    common - Common header for use with the CsrWifiFsm Module
1580    randsLength - GSM RAND is 16 bytes long hence valid values are 32 (2 RANDS)
1581                  or 48 (3 RANDs).
1582    rands - 2 or 3 RANDs values.
1583
1584*******************************************************************************/
1585typedef struct
1586{
1587    CsrWifiFsmEvent common;
1588    u8 randsLength;
1589    u8 *rands;
1590} CsrWifiNmeSimGsmAuthInd;
1591
1592/*******************************************************************************
1593
1594  NAME
1595    CsrWifiNmeSimUmtsAuthInd
1596
1597  DESCRIPTION
1598    Indication generated from the NME (if an application subscribes to
1599    receive it) that requests the UICC Manager to perform a UMTS
1600    authentication on behalf of the NME. This indication is generated when
1601    the NME is attempting to connect to a profile configured for EAP-AKA. An
1602    application MUST register to receive this indication for the NME to
1603    support the EAP-AKA credential types. Otherwise the NME has no route to
1604    obtain the information from the USIM. EAP-AKA requires one UMTS
1605    authentication round and therefore only one RAND and one AUTN values are
1606    included.
1607
1608  MEMBERS
1609    common - Common header for use with the CsrWifiFsm Module
1610    rand - UMTS RAND value.
1611    autn - UMTS AUTN value.
1612
1613*******************************************************************************/
1614typedef struct
1615{
1616    CsrWifiFsmEvent common;
1617    u8 rand[16];
1618    u8 autn[16];
1619} CsrWifiNmeSimUmtsAuthInd;
1620
1621/*******************************************************************************
1622
1623  NAME
1624    CsrWifiNmeWpsConfigSetCfm
1625
1626  DESCRIPTION
1627    Confirm.
1628
1629  MEMBERS
1630    common - Common header for use with the CsrWifiFsm Module
1631    status - Status of the request.
1632
1633*******************************************************************************/
1634typedef struct
1635{
1636    CsrWifiFsmEvent common;
1637    CsrResult status;
1638} CsrWifiNmeWpsConfigSetCfm;
1639
1640/*******************************************************************************
1641
1642  NAME
1643    CsrWifiNmeEventMaskSetCfm
1644
1645  DESCRIPTION
1646    The NME calls the primitive to report the result of the request
1647    primitive.
1648
1649  MEMBERS
1650    common - Common header for use with the CsrWifiFsm Module
1651    status - Reports the result of the request
1652
1653*******************************************************************************/
1654typedef struct
1655{
1656    CsrWifiFsmEvent common;
1657    CsrResult status;
1658} CsrWifiNmeEventMaskSetCfm;
1659
1660
1661#ifdef __cplusplus
1662}
1663#endif
1664
1665#endif /* CSR_WIFI_NME_PRIM_H__ */
1666
1667

Archive Download this file



interactive