summaryrefslogtreecommitdiffstats
path: root/drivers/staging/csr/csr_wifi_nme_prim.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/csr/csr_wifi_nme_prim.h')
-rw-r--r--drivers/staging/csr/csr_wifi_nme_prim.h1666
1 files changed, 1666 insertions, 0 deletions
diff --git a/drivers/staging/csr/csr_wifi_nme_prim.h b/drivers/staging/csr/csr_wifi_nme_prim.h
new file mode 100644
index 000000000000..20dc77971f94
--- /dev/null
+++ b/drivers/staging/csr/csr_wifi_nme_prim.h
@@ -0,0 +1,1666 @@
+/*****************************************************************************
+
+ (c) Cambridge Silicon Radio Limited 2011
+ All rights reserved and confidential information of CSR
+
+ Refer to LICENSE.txt included with this source for details
+ on the license terms.
+
+*****************************************************************************/
+
+/* Note: this is an auto-generated file. */
+
+#ifndef CSR_WIFI_NME_PRIM_H__
+#define CSR_WIFI_NME_PRIM_H__
+
+#include <linux/types.h>
+#include "csr_prim_defs.h"
+#include "csr_sched.h"
+#include "csr_wifi_common.h"
+#include "csr_result.h"
+#include "csr_wifi_fsm_event.h"
+#include "csr_wifi_sme_prim.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef CSR_WIFI_NME_ENABLE
+#error CSR_WIFI_NME_ENABLE MUST be defined inorder to use csr_wifi_nme_prim.h
+#endif
+
+#define CSR_WIFI_NME_PRIM (0x0424)
+
+typedef CsrPrim CsrWifiNmePrim;
+
+typedef void (*CsrWifiNmeFrameFreeFunction)(void *frame);
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeAuthMode
+
+ DESCRIPTION
+ WiFi Authentication Mode
+
+ VALUES
+ CSR_WIFI_NME_AUTH_MODE_80211_OPEN
+ - Connects to an open system network (i.e. no authentication,
+ no encryption) or to a WEP enabled network.
+ CSR_WIFI_NME_AUTH_MODE_80211_SHARED
+ - Connect to a WEP enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_WPA
+ - Connects to a WPA Enterprise enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK
+ - Connects to a WPA with Pre-Shared Key enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_WPA2
+ - Connects to a WPA2 Enterprise enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK
+ - Connects to a WPA2 with Pre-Shared Key enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_CCKM
+ - Connects to a CCKM enabled network.
+ CSR_WIFI_NME_AUTH_MODE_WAPI_WAI
+ - Connects to a WAPI Enterprise enabled network.
+ CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK
+ - Connects to a WAPI with Pre-Shared Key enabled network.
+ CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X
+ - For future use.
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeAuthMode;
+#define CSR_WIFI_NME_AUTH_MODE_80211_OPEN ((CsrWifiNmeAuthMode) 0x0001)
+#define CSR_WIFI_NME_AUTH_MODE_80211_SHARED ((CsrWifiNmeAuthMode) 0x0002)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA ((CsrWifiNmeAuthMode) 0x0004)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_WPAPSK ((CsrWifiNmeAuthMode) 0x0008)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2 ((CsrWifiNmeAuthMode) 0x0010)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_WPA2PSK ((CsrWifiNmeAuthMode) 0x0020)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_CCKM ((CsrWifiNmeAuthMode) 0x0040)
+#define CSR_WIFI_NME_AUTH_MODE_WAPI_WAI ((CsrWifiNmeAuthMode) 0x0080)
+#define CSR_WIFI_NME_AUTH_MODE_WAPI_WAIPSK ((CsrWifiNmeAuthMode) 0x0100)
+#define CSR_WIFI_NME_AUTH_MODE_8021X_OTHER1X ((CsrWifiNmeAuthMode) 0x0200)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeBssType
+
+ DESCRIPTION
+ Type of BSS
+
+ VALUES
+ CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE
+ - Infrastructure BSS type where access to the network is via
+ one or several Access Points.
+ CSR_WIFI_NME_BSS_TYPE_ADHOC
+ - Adhoc or Independent BSS Type where one Station acts as a
+ host and future stations can join the adhoc network without
+ needing an access point.
+ CSR_WIFI_NME_BSS_TYPE_RESERVED
+ - To be in sync with SME.This is not used.
+ CSR_WIFI_NME_BSS_TYPE_P2P
+ - P2P mode of operation.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeBssType;
+#define CSR_WIFI_NME_BSS_TYPE_INFRASTRUCTURE ((CsrWifiNmeBssType) 0x00)
+#define CSR_WIFI_NME_BSS_TYPE_ADHOC ((CsrWifiNmeBssType) 0x01)
+#define CSR_WIFI_NME_BSS_TYPE_RESERVED ((CsrWifiNmeBssType) 0x02)
+#define CSR_WIFI_NME_BSS_TYPE_P2P ((CsrWifiNmeBssType) 0x03)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeCcxOptionsMask
+
+ DESCRIPTION
+ Enumeration type defining possible mask values for setting CCX options.
+
+ VALUES
+ CSR_WIFI_NME_CCX_OPTION_NONE - No CCX option is set.
+ CSR_WIFI_NME_CCX_OPTION_CCKM - CCX option cckm is set.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeCcxOptionsMask;
+#define CSR_WIFI_NME_CCX_OPTION_NONE ((CsrWifiNmeCcxOptionsMask) 0x00)
+#define CSR_WIFI_NME_CCX_OPTION_CCKM ((CsrWifiNmeCcxOptionsMask) 0x01)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeConfigAction
+
+ DESCRIPTION
+
+ VALUES
+ CSR_WIFI_PIN_ENTRY_PUSH_BUTTON -
+ CSR_WIFI_PIN_ENTRY_DISPLAY_PIN -
+ CSR_WIFI_PIN_ENTRY_ENTER_PIN -
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeConfigAction;
+#define CSR_WIFI_PIN_ENTRY_PUSH_BUTTON ((CsrWifiNmeConfigAction) 0x00)
+#define CSR_WIFI_PIN_ENTRY_DISPLAY_PIN ((CsrWifiNmeConfigAction) 0x01)
+#define CSR_WIFI_PIN_ENTRY_ENTER_PIN ((CsrWifiNmeConfigAction) 0x02)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeConnectionStatus
+
+ DESCRIPTION
+ Indicate the NME Connection Status when connecting or when disconnecting
+
+ VALUES
+ CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED
+ - NME is disconnected.
+ CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING
+ - NME is in the process of connecting.
+ CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING
+ - NME is in the authentication stage of a connection attempt.
+ CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED
+ - NME is connected.
+ CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING
+ - NME is in the process of disconnecting.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeConnectionStatus;
+#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTED ((CsrWifiNmeConnectionStatus) 0x00)
+#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTING ((CsrWifiNmeConnectionStatus) 0x01)
+#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_AUTHENTICATING ((CsrWifiNmeConnectionStatus) 0x02)
+#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_CONNECTED ((CsrWifiNmeConnectionStatus) 0x03)
+#define CSR_WIFI_NME_CONNECTION_STATUS_CONNECTION_STATUS_DISCONNECTING ((CsrWifiNmeConnectionStatus) 0x04)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeCredentialType
+
+ DESCRIPTION
+ NME Credential Types
+
+ VALUES
+ CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM
+ - Credential Type Open System.
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64
+ - Credential Type WEP-64
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128
+ - Credential Type WEP-128
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK
+ - Credential Type WPA Pre-Shared Key
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE
+ - Credential Type WPA pass phrase
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK
+ - Credential Type WPA2 Pre-Shared Key.
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE
+ - Credential Type WPA2 pass phrase
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK
+ - Credential Type WAPI Pre-Shared Key.
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE
+ - Credential Type WAPI pass phrase
+ CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI
+ - Credential Type WAPI certificates
+ CSR_WIFI_NME_CREDENTIAL_TYPE_8021X
+ - Credential Type 802.1X: the associated type supports
+ FAST/LEAP/TLS/TTLS/PEAP/etc.
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeCredentialType;
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_OPEN_SYSTEM ((CsrWifiNmeCredentialType) 0x0000)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP64 ((CsrWifiNmeCredentialType) 0x0001)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WEP128 ((CsrWifiNmeCredentialType) 0x0002)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PSK ((CsrWifiNmeCredentialType) 0x0003)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0004)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PSK ((CsrWifiNmeCredentialType) 0x0005)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WPA2_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0006)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PSK ((CsrWifiNmeCredentialType) 0x0007)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI_PASSPHRASE ((CsrWifiNmeCredentialType) 0x0008)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_WAPI ((CsrWifiNmeCredentialType) 0x0009)
+#define CSR_WIFI_NME_CREDENTIAL_TYPE_8021X ((CsrWifiNmeCredentialType) 0x000A)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEapMethod
+
+ DESCRIPTION
+ Outer EAP method with possibly inner method.
+
+ VALUES
+ CSR_WIFI_NME_EAP_METHOD_TLS
+ - EAP-TLS Method.
+ CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2
+ - EAP-TTLS Method with MSCHAPV2.
+ CSR_WIFI_NME_EAP_METHOD_PEAP_GTC
+ - EAP-PEAP Method with GTC.
+ CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2
+ - EAP-PEAP Method with MSCHAPV2.
+ CSR_WIFI_NME_EAP_METHOD_SIM
+ - EAP-SIM Method.
+ CSR_WIFI_NME_EAP_METHOD_AKA
+ - EAP-AKA Method.
+ CSR_WIFI_NME_EAP_METHOD_FAST_GTC
+ - EAP-FAST Method with GTC.
+ CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2
+ - EAP-FAST Method with MSCHAPV2.
+ CSR_WIFI_NME_EAP_METHOD_LEAP
+ - EAP-LEAP Method.
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeEapMethod;
+#define CSR_WIFI_NME_EAP_METHOD_TLS ((CsrWifiNmeEapMethod) 0x0001)
+#define CSR_WIFI_NME_EAP_METHOD_TTLS_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0002)
+#define CSR_WIFI_NME_EAP_METHOD_PEAP_GTC ((CsrWifiNmeEapMethod) 0x0004)
+#define CSR_WIFI_NME_EAP_METHOD_PEAP_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0008)
+#define CSR_WIFI_NME_EAP_METHOD_SIM ((CsrWifiNmeEapMethod) 0x0010)
+#define CSR_WIFI_NME_EAP_METHOD_AKA ((CsrWifiNmeEapMethod) 0x0020)
+#define CSR_WIFI_NME_EAP_METHOD_FAST_GTC ((CsrWifiNmeEapMethod) 0x0040)
+#define CSR_WIFI_NME_EAP_METHOD_FAST_MSCHAPV2 ((CsrWifiNmeEapMethod) 0x0080)
+#define CSR_WIFI_NME_EAP_METHOD_LEAP ((CsrWifiNmeEapMethod) 0x0100)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEncryption
+
+ DESCRIPTION
+ WiFi Encryption method
+
+ VALUES
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE
+ - No encryprion set.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40
+ - 40 bytes WEP key for peer to peer communication.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104
+ - 104 bytes WEP key for peer to peer communication.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP
+ - TKIP key for peer to peer communication.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP
+ - CCMP key for peer to peer communication.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4
+ - SMS4 key for peer to peer communication.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40
+ - 40 bytes WEP key for broadcast messages.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104
+ - 104 bytes WEP key for broadcast messages.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP
+ - TKIP key for broadcast messages.
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP
+ - CCMP key for broadcast messages
+ CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4
+ - SMS4 key for broadcast messages.
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeEncryption;
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_NONE ((CsrWifiNmeEncryption) 0x0000)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP40 ((CsrWifiNmeEncryption) 0x0001)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_WEP104 ((CsrWifiNmeEncryption) 0x0002)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_TKIP ((CsrWifiNmeEncryption) 0x0004)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_CCMP ((CsrWifiNmeEncryption) 0x0008)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_PAIRWISE_SMS4 ((CsrWifiNmeEncryption) 0x0010)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP40 ((CsrWifiNmeEncryption) 0x0020)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_WEP104 ((CsrWifiNmeEncryption) 0x0040)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_TKIP ((CsrWifiNmeEncryption) 0x0080)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_CCMP ((CsrWifiNmeEncryption) 0x0100)
+#define CSR_WIFI_NME_ENCRYPTION_CIPHER_GROUP_SMS4 ((CsrWifiNmeEncryption) 0x0200)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeIndications
+
+ DESCRIPTION
+ NME indications
+
+ VALUES
+ CSR_WIFI_NME_INDICATIONS_IND_AP_STATION
+ - NME AP Station Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_AP_STOP
+ - NME AP Stop Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH
+ - NME UMTS Authentication Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START
+ - NME P2P Group Start Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS
+ - NME P2P Group Status Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE
+ - NME P2P Group Role Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT
+ - NME Profile Disconnect Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE
+ - NME Profile Update Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET
+ - NME GET IMSI Indication.
+ CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH
+ - NME GSM Authentication Indication.
+ CSR_WIFI_NME_INDICATIONS_ALL
+ - Used to register for all available indications
+
+*******************************************************************************/
+typedef u32 CsrWifiNmeIndications;
+#define CSR_WIFI_NME_INDICATIONS_IND_AP_STATION ((CsrWifiNmeIndications) 0x00100000)
+#define CSR_WIFI_NME_INDICATIONS_IND_AP_STOP ((CsrWifiNmeIndications) 0x00200000)
+#define CSR_WIFI_NME_INDICATIONS_IND_SIM_UMTS_AUTH ((CsrWifiNmeIndications) 0x01000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_START ((CsrWifiNmeIndications) 0x02000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_STATUS ((CsrWifiNmeIndications) 0x04000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_P2P_GROUP_ROLE ((CsrWifiNmeIndications) 0x08000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_DISCONNECT ((CsrWifiNmeIndications) 0x10000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_PROFILE_UPDATE ((CsrWifiNmeIndications) 0x20000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_SIM_IMSI_GET ((CsrWifiNmeIndications) 0x40000000)
+#define CSR_WIFI_NME_INDICATIONS_IND_SIM_GSM_AUTH ((CsrWifiNmeIndications) 0x80000000)
+#define CSR_WIFI_NME_INDICATIONS_ALL ((CsrWifiNmeIndications) 0xFFFFFFFF)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSecError
+
+ DESCRIPTION
+ NME Security Errors
+ place holder for the security library abort reason
+
+ VALUES
+ CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN
+ - Unknown Security Error.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeSecError;
+#define CSR_WIFI_NME_SEC_ERROR_SEC_ERROR_UNKNOWN ((CsrWifiNmeSecError) 0x00)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimCardType
+
+ DESCRIPTION
+ (U)SIM Card (or UICC) types
+
+ VALUES
+ CSR_WIFI_NME_SIM_CARD_TYPE_2G - 2G SIM card, capable of performing GSM
+ authentication only.
+ CSR_WIFI_NME_SIM_CARD_TYPE_3G - UICC supporting USIM application, capable
+ of performing UMTS authentication only.
+ CSR_WIFI_NME_SIM_CARD_TYPE_2G3G - UICC supporting both USIM and SIM
+ applications, capable of performing both
+ UMTS and GSM authentications.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeSimCardType;
+#define CSR_WIFI_NME_SIM_CARD_TYPE_2G ((CsrWifiNmeSimCardType) 0x01)
+#define CSR_WIFI_NME_SIM_CARD_TYPE_3G ((CsrWifiNmeSimCardType) 0x02)
+#define CSR_WIFI_NME_SIM_CARD_TYPE_2G3G ((CsrWifiNmeSimCardType) 0x03)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeUmtsAuthResult
+
+ DESCRIPTION
+ Only relevant for UMTS Authentication. It indicates if the UICC has
+ successfully authenticated the network or otherwise.
+
+ VALUES
+ CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS
+ - Successful outcome from USIM indicating that the card has
+ successfully authenticated the network.
+ CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL
+ - Unsuccessful outcome from USIM indicating that the card is
+ requesting the network to synchronise and re-try again. If
+ no further request is received an NME timer will expire and
+ the authentication is aborted.
+ CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT
+ - Unsuccessful outcome from USIM indicating that the card has
+ rejected the network and that the authentication is
+ aborted.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeUmtsAuthResult;
+#define CSR_WIFI_NME_UMTS_AUTH_RESULT_SUCCESS ((CsrWifiNmeUmtsAuthResult) 0x00)
+#define CSR_WIFI_NME_UMTS_AUTH_RESULT_SYNC_FAIL ((CsrWifiNmeUmtsAuthResult) 0x01)
+#define CSR_WIFI_NME_UMTS_AUTH_RESULT_REJECT ((CsrWifiNmeUmtsAuthResult) 0x02)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWmmQosInfo
+
+ DESCRIPTION
+ Defines bits for the QoS Info octect as defined in the WMM specification.
+ The values of this type are used across the NME/SME/Router API's and they
+ must be kept consistent with the corresponding types in the .xml of the
+ other interfaces
+
+ VALUES
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL
+ - WMM AP may deliver all buffered frames.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_VO
+ - To enable the triggering and delivery of QoS Voice.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_VI
+ - To enable the triggering and delivery of QoS Video.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_BK
+ - To enable the triggering and delivery of QoS Background.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_BE
+ - To enable the triggering and delivery of QoS Best Effort.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO
+ - WMM AP may deliver a maximum of 2 buffered frames per
+ Unscheduled Service Period (USP).
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR
+ - WMM AP may deliver a maximum of 4 buffered frames per USP.
+ CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX
+ - WMM AP may deliver a maximum of 6 buffered frames per USP.
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeWmmQosInfo;
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_ALL ((CsrWifiNmeWmmQosInfo) 0x00)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_VO ((CsrWifiNmeWmmQosInfo) 0x01)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_VI ((CsrWifiNmeWmmQosInfo) 0x02)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_BK ((CsrWifiNmeWmmQosInfo) 0x04)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_BE ((CsrWifiNmeWmmQosInfo) 0x08)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_TWO ((CsrWifiNmeWmmQosInfo) 0x20)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_FOUR ((CsrWifiNmeWmmQosInfo) 0x40)
+#define CSR_WIFI_NME_WMM_QOS_INFO_AC_MAX_SP_SIX ((CsrWifiNmeWmmQosInfo) 0x60)
+
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEapMethodMask
+
+ DESCRIPTION
+ Mask type for use with the values defined by CsrWifiNmeEapMethod.
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeEapMethodMask;
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEncryptionMask
+
+ DESCRIPTION
+ Mask type for use with the values defined by CsrWifiNmeEncryption
+
+*******************************************************************************/
+typedef u16 CsrWifiNmeEncryptionMask;
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeIndicationsMask
+
+ DESCRIPTION
+ Mask type for use with the values defined by CsrWifiNmeIndications
+
+*******************************************************************************/
+typedef u32 CsrWifiNmeIndicationsMask;
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeNmeIndicationsMask
+
+ DESCRIPTION
+ Mask type for use with the values defined by CsrWifiNmeNmeIndications.
+ Used to overlap the unused portion of the unifi_IndicationsMask For NME
+ specific indications
+
+*******************************************************************************/
+typedef u32 CsrWifiNmeNmeIndicationsMask;
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWmmQosInfoMask
+
+ DESCRIPTION
+ Mask type for use with the values defined by CsrWifiNmeWmmQosInfo
+
+*******************************************************************************/
+typedef u8 CsrWifiNmeWmmQosInfoMask;
+
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEmpty
+
+ DESCRIPTION
+ Empty Structure to indicate that no credentials are available.
+
+ MEMBERS
+ empty - Only element of the empty structure (always set to 0).
+
+*******************************************************************************/
+typedef struct
+{
+ u8 empty;
+} CsrWifiNmeEmpty;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmePassphrase
+
+ DESCRIPTION
+ Structure holding the ASCII Pass Phrase data.
+
+ MEMBERS
+ encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
+ passphrase - Pass phrase ASCII value.
+
+*******************************************************************************/
+typedef struct
+{
+ u16 encryptionMode;
+ char *passphrase;
+} CsrWifiNmePassphrase;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmePsk
+
+ DESCRIPTION
+ Structure holding the Pre-Shared Key data.
+
+ MEMBERS
+ encryptionMode - Encryption type as defined in CsrWifiSmeEncryption.
+ psk - Pre-Shared Key value.
+
+*******************************************************************************/
+typedef struct
+{
+ u16 encryptionMode;
+ u8 psk[32];
+} CsrWifiNmePsk;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWapiCredentials
+
+ DESCRIPTION
+ Structure holding WAPI credentials data.
+
+ MEMBERS
+ certificateLength - Length in bytes of the following client certificate.
+ certificate - The actual client certificate data (if present).
+ DER/PEM format supported.
+ privateKeyLength - Length in bytes of the following private key.
+ privateKey - The actual private key. DER/PEM format.
+ caCertificateLength - Length in bytes of the following certificate authority
+ certificate.
+ caCertificate - The actual certificate authority certificate data. If
+ not supplied the received certificate authority
+ certificate is assumed to be validate, if present the
+ received certificate is validated against it. DER/PEM
+ format supported.
+
+*******************************************************************************/
+typedef struct
+{
+ u32 certificateLength;
+ u8 *certificate;
+ u16 privateKeyLength;
+ u8 *privateKey;
+ u32 caCertificateLength;
+ u8 *caCertificate;
+} CsrWifiNmeWapiCredentials;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeConnectAttempt
+
+ DESCRIPTION
+ Structure holding Connection attempt data.
+
+ MEMBERS
+ bssid - Id of Basic Service Set connections attempt have been made
+ to.
+ status - Status returned to indicate the success or otherwise of the
+ connection attempt.
+ securityError - Security error status indicating the nature of the failure
+ to connect.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiMacAddress bssid;
+ CsrResult status;
+ CsrWifiNmeSecError securityError;
+} CsrWifiNmeConnectAttempt;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEapCredentials
+
+ DESCRIPTION
+ Supports the use of multiple EAP methods via a single structure. The
+ methods required are indicated by the value set in the eapMethodMask
+
+ MEMBERS
+ eapMethodMask
+ - Bit mask of supported EAP methods
+ Currently only supports the setting of one bit.
+ Required for all the EAP methods.
+ authMode
+ - Bit mask representing the authentication types that may be
+ supported by a suitable AP. An AP must support at least one
+ of the authentication types specified to be considered for
+ connection. Required for all EAP methods.
+ encryptionMode
+ - Bit mask representing the encryption types that may be
+ supported by a suitable AP. An AP must support a suitable
+ mix of the pairwise and group encryption types requested to
+ be considered for connection. Required for all EAP methods.
+ userName
+ - User name. Required for all EAP methods except: SIM or AKA.
+ userPassword
+ - User Password. Required for all EAP methods except: TLS,
+ SIM or AKA.
+ authServerUserIdentity
+ - Authentication server user Identity. Required for all EAP
+ methods except: TLS, SIM, AKA or FAST.
+ clientCertificateLength
+ - Length in bytes of the following client certificate (if
+ present). Only required for TLS.
+ clientCertificate
+ - The actual client certificate data (if present). Only
+ required for TLS. DER/PEM format supported.
+ certificateAuthorityCertificateLength
+ - Length in bytes of the following certificate authority
+ certificate (if present). Optional for TLS, TTLS, PEAP.
+ certificateAuthorityCertificate
+ - The actual certificate authority certificate data (if
+ present). If not supplied the received certificate
+ authority certificate is assumed to be valid, if present
+ the received certificate is validated against it. Optional
+ for TLS, TTLS, PEAP. DER/PEM format supported.
+ privateKeyLength
+ - Length in bytes of the following private key (if present).
+ Only required for TLS.
+ privateKey
+ - The actual private key (if present). Only required for TLS.
+ DER/PEM format, maybe password protected.
+ privateKeyPassword
+ - Optional password to protect the private key.
+ sessionLength
+ - Length in bytes of the following session field Supported
+ for all EAP methods except: SIM or AKA.
+ session
+ - Session information to support faster re-authentication.
+ Supported for all EAP methods except: SIM or AKA.
+ allowPacProvisioning
+ - If TRUE: PAC provisioning is allowed 'over-the_air';
+ If FALSE: a PAC must be supplied.
+ Only required for FAST.
+ pacLength
+ - Length the following PAC field. If allowPacProvisioning is
+ FALSE then the PAC MUST be supplied (i.e. non-zero). Only
+ required for FAST.
+ pac
+ - The actual PAC data. If allowPacProvisioning is FALSE then
+ the PAC MUST be supplied. Only required for FAST.
+ pacPassword
+ - Optional password to protect the PAC. Only required for
+ FAST.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiNmeEapMethodMask eapMethodMask;
+ CsrWifiSmeAuthModeMask authMode;
+ CsrWifiNmeEncryptionMask encryptionMode;
+ char *userName;
+ char *userPassword;
+ char *authServerUserIdentity;
+ u32 clientCertificateLength;
+ u8 *clientCertificate;
+ u32 certificateAuthorityCertificateLength;
+ u8 *certificateAuthorityCertificate;
+ u16 privateKeyLength;
+ u8 *privateKey;
+ char *privateKeyPassword;
+ u32 sessionLength;
+ u8 *session;
+ u8 allowPacProvisioning;
+ u32 pacLength;
+ u8 *pac;
+ char *pacPassword;
+} CsrWifiNmeEapCredentials;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmePeerConfig
+
+ DESCRIPTION
+ Structure holding Peer Config data.
+
+ MEMBERS
+ p2pDeviceId -
+ groupCapabilityMask -
+ groupOwnerIntent -
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiMacAddress p2pDeviceId;
+ CsrWifiSmeP2pGroupCapabilityMask groupCapabilityMask;
+ u8 groupOwnerIntent;
+} CsrWifiNmePeerConfig;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileIdentity
+
+ DESCRIPTION
+ The identity of a profile is defined as the unique combination the BSSID
+ and SSID.
+
+ MEMBERS
+ bssid - ID of Basic Service Set for or the P2pDevice address of the GO for
+ which a connection attempt was made.
+ ssid - Service Set Id.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiMacAddress bssid;
+ CsrWifiSsid ssid;
+} CsrWifiNmeProfileIdentity;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWep128Keys
+
+ DESCRIPTION
+ Structure holding WEP Authentication Type and WEP keys that can be used
+ when using WEP128.
+
+ MEMBERS
+ wepAuthType - Mask to select the WEP authentication type (Open or Shared)
+ selectedWepKey - Index to one of the four keys below indicating the
+ currently used WEP key.
+ key1 - Value for key number 1.
+ key2 - Value for key number 2.
+ key3 - Value for key number 3.
+ key4 - Value for key number 4.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiSmeAuthModeMask wepAuthType;
+ u8 selectedWepKey;
+ u8 key1[13];
+ u8 key2[13];
+ u8 key3[13];
+ u8 key4[13];
+} CsrWifiNmeWep128Keys;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWep64Keys
+
+ DESCRIPTION
+ Structure for holding WEP Authentication Type and WEP keys that can be
+ used when using WEP64.
+
+ MEMBERS
+ wepAuthType - Mask to select the WEP authentication type (Open or Shared)
+ selectedWepKey - Index to one of the four keys below indicating the
+ currently used WEP key.
+ key1 - Value for key number 1.
+ key2 - Value for key number 2.
+ key3 - Value for key number 3.
+ key4 - Value for key number 4.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiSmeAuthModeMask wepAuthType;
+ u8 selectedWepKey;
+ u8 key1[5];
+ u8 key2[5];
+ u8 key3[5];
+ u8 key4[5];
+} CsrWifiNmeWep64Keys;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeCredentials
+
+ DESCRIPTION
+ Structure containing the Credentials data.
+
+ MEMBERS
+ credentialType - Credential type value (as defined in the
+ enumeration type).
+ credential - Union containing credentials which depends on
+ credentialType parameter.
+ credentialeap -
+ credentialwapiPassphrase -
+ credentialwpa2Passphrase -
+ credentialwpa2Psk -
+ credentialwapiPsk -
+ credentialwpaPassphrase -
+ credentialwapi -
+ credentialwep128Key -
+ credentialwpaPsk -
+ credentialopenSystem -
+ credentialwep64Key -
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiNmeCredentialType credentialType;
+ union {
+ CsrWifiNmeEapCredentials eap;
+ CsrWifiNmePassphrase wapiPassphrase;
+ CsrWifiNmePassphrase wpa2Passphrase;
+ CsrWifiNmePsk wpa2Psk;
+ CsrWifiNmePsk wapiPsk;
+ CsrWifiNmePassphrase wpaPassphrase;
+ CsrWifiNmeWapiCredentials wapi;
+ CsrWifiNmeWep128Keys wep128Key;
+ CsrWifiNmePsk wpaPsk;
+ CsrWifiNmeEmpty openSystem;
+ CsrWifiNmeWep64Keys wep64Key;
+ } credential;
+} CsrWifiNmeCredentials;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfile
+
+ DESCRIPTION
+ Structure containing the Profile data.
+
+ MEMBERS
+ profileIdentity - Profile Identity.
+ wmmQosInfoMask - Mask for WMM QoS information.
+ bssType - Type of BSS (Infrastructure or Adhoc).
+ channelNo - Channel Number.
+ ccxOptionsMask - Options mask for Cisco Compatible Extentions.
+ cloakedSsid - Flag to decide whether the SSID is cloaked (not
+ transmitted) or not.
+ credentials - Credentials data.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiNmeProfileIdentity profileIdentity;
+ CsrWifiNmeWmmQosInfoMask wmmQosInfoMask;
+ CsrWifiNmeBssType bssType;
+ u8 channelNo;
+ u8 ccxOptionsMask;
+ u8 cloakedSsid;
+ CsrWifiNmeCredentials credentials;
+} CsrWifiNmeProfile;
+
+
+/* Downstream */
+#define CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST (0x0000)
+
+#define CSR_WIFI_NME_PROFILE_SET_REQ ((CsrWifiNmePrim) (0x0000 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_DELETE_REQ ((CsrWifiNmePrim) (0x0001 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ ((CsrWifiNmePrim) (0x0002 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_ORDER_SET_REQ ((CsrWifiNmePrim) (0x0003 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_CONNECT_REQ ((CsrWifiNmePrim) (0x0004 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_REQ ((CsrWifiNmePrim) (0x0005 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_CANCEL_REQ ((CsrWifiNmePrim) (0x0006 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_CONNECTION_STATUS_GET_REQ ((CsrWifiNmePrim) (0x0007 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_IMSI_GET_RES ((CsrWifiNmePrim) (0x0008 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_GSM_AUTH_RES ((CsrWifiNmePrim) (0x0009 + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_UMTS_AUTH_RES ((CsrWifiNmePrim) (0x000A + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_CONFIG_SET_REQ ((CsrWifiNmePrim) (0x000B + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+#define CSR_WIFI_NME_EVENT_MASK_SET_REQ ((CsrWifiNmePrim) (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST))
+
+
+#define CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST (0x000C + CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
+
+/* Upstream */
+#define CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST (0x0000 + CSR_PRIM_UPSTREAM)
+
+#define CSR_WIFI_NME_PROFILE_SET_CFM ((CsrWifiNmePrim)(0x0000 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_DELETE_CFM ((CsrWifiNmePrim)(0x0001 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_DELETE_ALL_CFM ((CsrWifiNmePrim)(0x0002 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_ORDER_SET_CFM ((CsrWifiNmePrim)(0x0003 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_CONNECT_CFM ((CsrWifiNmePrim)(0x0004 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_CFM ((CsrWifiNmePrim)(0x0005 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_CANCEL_CFM ((CsrWifiNmePrim)(0x0006 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_CONNECTION_STATUS_GET_CFM ((CsrWifiNmePrim)(0x0007 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_UPDATE_IND ((CsrWifiNmePrim)(0x0008 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_PROFILE_DISCONNECT_IND ((CsrWifiNmePrim)(0x0009 + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_IMSI_GET_IND ((CsrWifiNmePrim)(0x000A + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_GSM_AUTH_IND ((CsrWifiNmePrim)(0x000B + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_SIM_UMTS_AUTH_IND ((CsrWifiNmePrim)(0x000C + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_WPS_CONFIG_SET_CFM ((CsrWifiNmePrim)(0x000D + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+#define CSR_WIFI_NME_EVENT_MASK_SET_CFM ((CsrWifiNmePrim)(0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST))
+
+#define CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST (0x000E + CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
+
+#define CSR_WIFI_NME_PRIM_DOWNSTREAM_COUNT (CSR_WIFI_NME_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_NME_PRIM_DOWNSTREAM_LOWEST)
+#define CSR_WIFI_NME_PRIM_UPSTREAM_COUNT (CSR_WIFI_NME_PRIM_UPSTREAM_HIGHEST + 1 - CSR_WIFI_NME_PRIM_UPSTREAM_LOWEST)
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileSetReq
+
+ DESCRIPTION
+ Creates or updates an existing profile in the NME that matches the unique
+ identity of the profile. Each profile is identified by the combination of
+ BSSID and SSID. The profile contains all the required credentials for
+ attempting to connect to the network. Creating or updating a profile via
+ the NME PROFILE SET REQ does NOT add the profile to the preferred profile
+ list within the NME used for the NME auto-connect behaviour.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ profile - Specifies the identity and credentials of the network.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrWifiNmeProfile profile;
+} CsrWifiNmeProfileSetReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileDeleteReq
+
+ DESCRIPTION
+ Will delete the profile with a matching identity, but does NOT modify the
+ preferred profile list.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ profileIdentity - Identity (BSSID, SSID) of profile to be deleted.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrWifiNmeProfileIdentity profileIdentity;
+} CsrWifiNmeProfileDeleteReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileDeleteAllReq
+
+ DESCRIPTION
+ Deletes all profiles present in the NME, but does NOT modify the
+ preferred profile list.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+} CsrWifiNmeProfileDeleteAllReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileOrderSetReq
+
+ DESCRIPTION
+ Defines the preferred order that profiles present in the NME should be
+ used during the NME auto-connect behaviour.
+ If profileIdentitysCount == 0, it removes any existing preferred profile
+ list already present in the NME, effectively disabling the auto-connect
+ behaviour.
+ NOTE: Profile identities that do not match any profile stored in the NME
+ are ignored during the auto-connect procedure.
+ NOTE: during auto-connect the NME will only attempt to join an existing
+ adhoc network and it will never attempt to host an adhoc network; for
+ hosting and adhoc network, use CSR_WIFI_NME_PROFILE_CONNECT_REQ
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an
+ interface
+ profileIdentitysCount - The number of profiles identities in the list.
+ profileIdentitys - Points to the list of profile identities.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ u8 profileIdentitysCount;
+ CsrWifiNmeProfileIdentity *profileIdentitys;
+} CsrWifiNmeProfileOrderSetReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileConnectReq
+
+ DESCRIPTION
+ Requests the NME to attempt to connect to the specified profile.
+ Overrides any current connection attempt.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ profileIdentity - Identity (BSSID, SSID) of profile to be connected to.
+ It must match an existing profile in the NME.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrWifiNmeProfileIdentity profileIdentity;
+} CsrWifiNmeProfileConnectReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsReq
+
+ DESCRIPTION
+ Requests the NME to look for WPS enabled APs and attempt to perform WPS
+ to determine the appropriate security credentials to connect to the AP.
+ If the PIN == '00000000' then 'push button mode' is indicated, otherwise
+ the PIN has to match that of the AP. 4 digit pin is passed by sending the
+ pin digits in pin[0]..pin[3] and rest of the contents filled with '-'.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ pin - PIN value.
+ ssid - Service Set identifier
+ bssid - ID of Basic Service Set for which a WPS connection attempt is
+ being made.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ u8 pin[8];
+ CsrWifiSsid ssid;
+ CsrWifiMacAddress bssid;
+} CsrWifiNmeWpsReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsCancelReq
+
+ DESCRIPTION
+ Requests the NME to cancel any WPS procedure that it is currently
+ performing. This includes WPS registrar activities started because of
+ CSR_WIFI_NME_AP_REGISTER.request
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+} CsrWifiNmeWpsCancelReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeConnectionStatusGetReq
+
+ DESCRIPTION
+ Requests the current connection status of the NME.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+} CsrWifiNmeConnectionStatusGetReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimImsiGetRes
+
+ DESCRIPTION
+ Response from the application that received the NME SIM IMSI GET IND.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the outcome of the requested operation: STATUS_SUCCESS
+ or STATUS_ERROR.
+ imsi - The value of the IMSI obtained from the UICC.
+ cardType - The UICC type (GSM only (SIM), UMTS only (USIM), Both).
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+ char *imsi;
+ CsrWifiNmeSimCardType cardType;
+} CsrWifiNmeSimImsiGetRes;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimGsmAuthRes
+
+ DESCRIPTION
+ Response from the application that received the NME SIM GSM AUTH IND. For
+ each GSM authentication round a GSM Ciphering key (Kc) and a signed
+ response (SRES) are produced. Since 2 or 3 GSM authentication rounds are
+ used the 2 or 3 Kc's obtained respectively are combined into one buffer
+ and similarly the 2 or 3 SRES's obtained are combined into another
+ buffer. The order of Kc values (SRES values respectively) in their buffer
+ is the same as that of their corresponding RAND values in the incoming
+ indication.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the outcome of the requested operation:
+ STATUS_SUCCESS or STATUS_ERROR
+ kcsLength - Length in Bytes of Kc buffer. Legal values are: 16 or 24.
+ kcs - Kc buffer holding 2 or 3 Kc values.
+ sresLength - Length in Bytes of SRES buffer. Legal values are: 8 or 12.
+ sres - SRES buffer holding 2 or 3 SRES values.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+ u8 kcsLength;
+ u8 *kcs;
+ u8 sresLength;
+ u8 *sres;
+} CsrWifiNmeSimGsmAuthRes;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimUmtsAuthRes
+
+ DESCRIPTION
+ Response from the application that received the NME SIM UMTS AUTH IND.
+ The values of umtsCipherKey, umtsIntegrityKey, resParameterLength and
+ resParameter are only meanigful when result = UMTS_AUTH_RESULT_SUCCESS.
+ The value of auts is only meaningful when
+ result=UMTS_AUTH_RESULT_SYNC_FAIL.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the outcome of the requested operation:
+ STATUS_SUCCESS or STATUS_ERROR.
+ result - The result of UMTS authentication as performed by the
+ UICC which could be: Success, Authentication Reject or
+ Synchronisation Failure. For all these 3 outcomes the
+ value of status is success.
+ umtsCipherKey - The UMTS Cipher Key as calculated and returned by the
+ UICC.
+ umtsIntegrityKey - The UMTS Integrity Key as calculated and returned by
+ the UICC.
+ resParameterLength - The length (in bytes) of the RES parameter (min=4; max
+ = 16).
+ resParameter - The RES parameter as calculated and returned by the
+ UICC.
+ auts - The AUTS parameter as calculated and returned by the
+ UICC.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+ CsrWifiNmeUmtsAuthResult result;
+ u8 umtsCipherKey[16];
+ u8 umtsIntegrityKey[16];
+ u8 resParameterLength;
+ u8 *resParameter;
+ u8 auts[14];
+} CsrWifiNmeSimUmtsAuthRes;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsConfigSetReq
+
+ DESCRIPTION
+ This primitive passes the WPS information for the device to NME. This may
+ be accepted only if no interface is active.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ wpsConfig - WPS config.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrWifiSmeWpsConfig wpsConfig;
+} CsrWifiNmeWpsConfigSetReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEventMaskSetReq
+
+ DESCRIPTION
+ The wireless manager application may register with the NME to receive
+ notification of interesting events. Indications will be sent only if the
+ wireless manager explicitly registers to be notified of that event.
+ indMask is a bit mask of values defined in CsrWifiNmeIndicationsMask.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ indMask - Set mask with values from CsrWifiNmeIndications
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrWifiNmeIndicationsMask indMask;
+} CsrWifiNmeEventMaskSetReq;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileSetCfm
+
+ DESCRIPTION
+ Reports the status of the NME PROFILE SET REQ; the request will only fail
+ if the details specified in the profile contains an invalid combination
+ of parameters for example specifying the profile as cloaked but not
+ specifying the SSID. The NME doesn't limit the number of profiles that
+ may be created. The NME assumes that the entity configuring it is aware
+ of the appropriate limits.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the success or otherwise of the requested operation.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+} CsrWifiNmeProfileSetCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileDeleteCfm
+
+ DESCRIPTION
+ Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_REQ.
+ Returns CSR_WIFI_NME_STATUS_NOT_FOUND if there is no matching profile.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the success or otherwise of the requested operation.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+} CsrWifiNmeProfileDeleteCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileDeleteAllCfm
+
+ DESCRIPTION
+ Reports the status of the CSR_WIFI_NME_PROFILE_DELETE_ALL_REQ.
+ Returns always CSR_WIFI_NME_STATUS_SUCCESS.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Indicates the success or otherwise of the requested operation, but
+ in this case it always set to success.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+} CsrWifiNmeProfileDeleteAllCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileOrderSetCfm
+
+ DESCRIPTION
+ Confirmation to UNIFI_NME_PROFILE_ORDER_SET.request.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ status - Indicates the success or otherwise of the requested
+ operation.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrResult status;
+} CsrWifiNmeProfileOrderSetCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileConnectCfm
+
+ DESCRIPTION
+ Reports the status of the NME PROFILE CONNECT REQ. If unsuccessful the
+ connectAttempt parameters contain details of the APs that the NME
+ attempted to connect to before reporting the failure of the request.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an
+ interface
+ status - Indicates the success or otherwise of the requested
+ operation.
+ connectAttemptsCount - This parameter is relevant only if
+ status!=CSR_WIFI_NME_STATUS_SUCCESS.
+ Number of connection attempt elements provided with
+ this primitive
+ connectAttempts - This parameter is relevant only if
+ status!=CSR_WIFI_NME_STATUS_SUCCESS.
+ Points to the list of connection attempt elements
+ provided with this primitive
+ Each element of the list provides information about
+ an AP on which the connection attempt was made and
+ the error that occurred during the attempt.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrResult status;
+ u8 connectAttemptsCount;
+ CsrWifiNmeConnectAttempt *connectAttempts;
+} CsrWifiNmeProfileConnectCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsCfm
+
+ DESCRIPTION
+ Reports the status of the NME WPS REQ.
+ If CSR_WIFI_NME_STATUS_SUCCESS, the profile parameter contains the
+ identity and credentials of the AP.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ status - Indicates the success or otherwise of the requested
+ operation.
+ profile - This parameter is relevant only if
+ status==CSR_WIFI_NME_STATUS_SUCCESS.
+ The identity and credentials of the network.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrResult status;
+ CsrWifiNmeProfile profile;
+} CsrWifiNmeWpsCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsCancelCfm
+
+ DESCRIPTION
+ Reports the status of the NME WPS REQ, the request is always SUCCESSFUL.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ status - Only returns CSR_WIFI_NME_STATUS_SUCCESS
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrResult status;
+} CsrWifiNmeWpsCancelCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeConnectionStatusGetCfm
+
+ DESCRIPTION
+ Reports the connection status of the NME.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ status - Indicates the success or otherwise of the requested
+ operation.
+ connectionStatus - NME current connection status
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrResult status;
+ CsrWifiNmeConnectionStatus connectionStatus;
+} CsrWifiNmeConnectionStatusGetCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileUpdateInd
+
+ DESCRIPTION
+ Indication generated from the NME (if an application subscribes to
+ receive it) that informs that application that the contained profile has
+ changed.
+ For example, either the credentials EAP-FAST PAC file or the session data
+ within the profile has changed.
+ It is up to the application whether it stores this updated profile or
+ not.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an interface
+ profile - The identity and credentials of the network.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ CsrWifiNmeProfile profile;
+} CsrWifiNmeProfileUpdateInd;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeProfileDisconnectInd
+
+ DESCRIPTION
+ Indication generated from the NME (if an application subscribes to
+ receive it) that informs that application that the current profile
+ connection has disconnected. The indication will contain information
+ about APs that it attempted to maintain the connection via i.e. in the
+ case of failed roaming.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ interfaceTag - Interface Identifier; unique identifier of an
+ interface
+ connectAttemptsCount - Number of connection attempt elements provided with
+ this primitive
+ connectAttempts - Points to the list of connection attempt elements
+ provided with this primitive
+ Each element of the list provides information about
+ an AP on which the connection attempt was made and
+ the error occurred during the attempt.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u16 interfaceTag;
+ u8 connectAttemptsCount;
+ CsrWifiNmeConnectAttempt *connectAttempts;
+} CsrWifiNmeProfileDisconnectInd;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimImsiGetInd
+
+ DESCRIPTION
+ Indication generated from the NME (if an application subscribes to
+ receive it) that requests the IMSI and UICC type from the UICC Manager.
+ This indication is generated when the NME is attempting to connect to a
+ profile configured for EAP-SIM/AKA. An application MUST register to
+ receive this indication for the NME to support the EAP-SIM/AKA credential
+ types. Otherwise the NME has no route to obtain the information from the
+ UICC.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+} CsrWifiNmeSimImsiGetInd;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimGsmAuthInd
+
+ DESCRIPTION
+ Indication generated from the NME (if an application subscribes to
+ receive it) that requests the UICC Manager to perform a GSM
+ authentication on behalf of the NME. This indication is generated when
+ the NME is attempting to connect to a profile configured for EAP-SIM. An
+ application MUST register to receive this indication for the NME to
+ support the EAP-SIM credential types. Otherwise the NME has no route to
+ obtain the information from the UICC. EAP-SIM authentication requires 2
+ or 3 GSM authentication rounds and therefore 2 or 3 RANDS (GSM Random
+ Challenges) are included.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ randsLength - GSM RAND is 16 bytes long hence valid values are 32 (2 RANDS)
+ or 48 (3 RANDs).
+ rands - 2 or 3 RANDs values.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u8 randsLength;
+ u8 *rands;
+} CsrWifiNmeSimGsmAuthInd;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeSimUmtsAuthInd
+
+ DESCRIPTION
+ Indication generated from the NME (if an application subscribes to
+ receive it) that requests the UICC Manager to perform a UMTS
+ authentication on behalf of the NME. This indication is generated when
+ the NME is attempting to connect to a profile configured for EAP-AKA. An
+ application MUST register to receive this indication for the NME to
+ support the EAP-AKA credential types. Otherwise the NME has no route to
+ obtain the information from the USIM. EAP-AKA requires one UMTS
+ authentication round and therefore only one RAND and one AUTN values are
+ included.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ rand - UMTS RAND value.
+ autn - UMTS AUTN value.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ u8 rand[16];
+ u8 autn[16];
+} CsrWifiNmeSimUmtsAuthInd;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeWpsConfigSetCfm
+
+ DESCRIPTION
+ Confirm.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Status of the request.
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+} CsrWifiNmeWpsConfigSetCfm;
+
+/*******************************************************************************
+
+ NAME
+ CsrWifiNmeEventMaskSetCfm
+
+ DESCRIPTION
+ The NME calls the primitive to report the result of the request
+ primitive.
+
+ MEMBERS
+ common - Common header for use with the CsrWifiFsm Module
+ status - Reports the result of the request
+
+*******************************************************************************/
+typedef struct
+{
+ CsrWifiFsmEvent common;
+ CsrResult status;
+} CsrWifiNmeEventMaskSetCfm;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CSR_WIFI_NME_PRIM_H__ */
+