1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_CONSTANTS_H_ 6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_CONSTANTS_H_ 7 8 namespace chromeos { 9 10 // This enumerates the various property indices that can be found in a 11 // dictionary being parsed. 12 enum PropertyIndex { 13 PROPERTY_INDEX_ACTIVATE_OVER_NON_CELLULAR_NETWORK, 14 PROPERTY_INDEX_ACTIVATION_STATE, 15 PROPERTY_INDEX_ACTIVE_PROFILE, 16 PROPERTY_INDEX_ARP_GATEWAY, 17 PROPERTY_INDEX_AUTHENTICATION, 18 PROPERTY_INDEX_AUTO_CONNECT, 19 PROPERTY_INDEX_AVAILABLE_TECHNOLOGIES, 20 PROPERTY_INDEX_CARRIER, 21 PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING, 22 PROPERTY_INDEX_CELLULAR_APN, 23 PROPERTY_INDEX_CELLULAR_APN_LIST, 24 PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN, 25 PROPERTY_INDEX_CHECK_PORTAL, 26 PROPERTY_INDEX_CHECK_PORTAL_LIST, 27 PROPERTY_INDEX_CONNECTABLE, 28 PROPERTY_INDEX_CONNECTED_TECHNOLOGIES, 29 PROPERTY_INDEX_CONNECTIVITY_STATE, 30 PROPERTY_INDEX_DEFAULT_TECHNOLOGY, 31 PROPERTY_INDEX_DEVICE, 32 PROPERTY_INDEX_DEVICES, 33 PROPERTY_INDEX_EAP, 34 PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, 35 PROPERTY_INDEX_EAP_CA_CERT_ID, 36 PROPERTY_INDEX_EAP_CA_CERT_PEM, 37 PROPERTY_INDEX_EAP_CERT_ID, 38 PROPERTY_INDEX_EAP_CLIENT_CERT, 39 PROPERTY_INDEX_EAP_CLIENT_CERT_NSS, 40 PROPERTY_INDEX_EAP_CLIENT_CERT_PATTERN, 41 PROPERTY_INDEX_EAP_IDENTITY, 42 PROPERTY_INDEX_EAP_KEY_ID, 43 PROPERTY_INDEX_EAP_KEY_MGMT, 44 PROPERTY_INDEX_EAP_METHOD, 45 PROPERTY_INDEX_EAP_PASSWORD, 46 PROPERTY_INDEX_EAP_PHASE_2_AUTH, 47 PROPERTY_INDEX_EAP_PIN, 48 PROPERTY_INDEX_EAP_PRIVATE_KEY, 49 PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD, 50 PROPERTY_INDEX_EAP_USE_SYSTEM_CAS, 51 PROPERTY_INDEX_ENABLED_TECHNOLOGIES, 52 PROPERTY_INDEX_ERROR, 53 PROPERTY_INDEX_ESN, 54 PROPERTY_INDEX_FAVORITE, 55 PROPERTY_INDEX_FIRMWARE_REVISION, 56 PROPERTY_INDEX_FOUND_NETWORKS, 57 PROPERTY_INDEX_GUID, 58 PROPERTY_INDEX_HARDWARE_REVISION, 59 PROPERTY_INDEX_HOME_PROVIDER, 60 PROPERTY_INDEX_HOST, 61 PROPERTY_INDEX_ICCID, 62 PROPERTY_INDEX_IDENTITY, 63 PROPERTY_INDEX_IMEI, 64 PROPERTY_INDEX_IMSI, 65 PROPERTY_INDEX_IPSEC_AUTHENTICATIONTYPE, 66 PROPERTY_INDEX_IPSEC_IKEVERSION, 67 PROPERTY_INDEX_ISSUER_SUBJECT_PATTERN_COMMON_NAME, 68 PROPERTY_INDEX_ISSUER_SUBJECT_PATTERN_LOCALITY, 69 PROPERTY_INDEX_ISSUER_SUBJECT_PATTERN_ORGANIZATION, 70 PROPERTY_INDEX_ISSUER_SUBJECT_PATTERN_ORGANIZATIONAL_UNIT, 71 PROPERTY_INDEX_IS_ACTIVE, 72 PROPERTY_INDEX_L2TPIPSEC_CA_CERT_PEM, 73 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID, 74 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT, 75 PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME, 76 PROPERTY_INDEX_L2TPIPSEC_PASSWORD, 77 PROPERTY_INDEX_L2TPIPSEC_PIN, 78 PROPERTY_INDEX_L2TPIPSEC_PSK, 79 PROPERTY_INDEX_L2TPIPSEC_PSK_REQUIRED, 80 PROPERTY_INDEX_L2TPIPSEC_USER, 81 PROPERTY_INDEX_MANUFACTURER, 82 PROPERTY_INDEX_MDN, 83 PROPERTY_INDEX_MEID, 84 PROPERTY_INDEX_MIN, 85 PROPERTY_INDEX_MODEL_ID, 86 PROPERTY_INDEX_NAME, 87 PROPERTY_INDEX_NETWORKS, 88 PROPERTY_INDEX_NETWORK_TECHNOLOGY, 89 PROPERTY_INDEX_OFFLINE_MODE, 90 PROPERTY_INDEX_OLP, 91 PROPERTY_INDEX_OLP_URL, 92 PROPERTY_INDEX_OPEN_VPN_AUTH, 93 PROPERTY_INDEX_OPEN_VPN_AUTHNOCACHE, 94 PROPERTY_INDEX_OPEN_VPN_AUTHRETRY, 95 PROPERTY_INDEX_OPEN_VPN_AUTHUSERPASS, 96 PROPERTY_INDEX_OPEN_VPN_CA_CERT_PEM, 97 PROPERTY_INDEX_OPEN_VPN_CERT, 98 PROPERTY_INDEX_OPEN_VPN_CIPHER, 99 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID, 100 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_SLOT, 101 PROPERTY_INDEX_OPEN_VPN_COMPLZO, 102 PROPERTY_INDEX_OPEN_VPN_COMPNOADAPT, 103 PROPERTY_INDEX_OPEN_VPN_KEYDIRECTION, 104 PROPERTY_INDEX_OPEN_VPN_MGMT_ENABLE, 105 PROPERTY_INDEX_OPEN_VPN_NSCERTTYPE, 106 PROPERTY_INDEX_OPEN_VPN_OTP, 107 PROPERTY_INDEX_OPEN_VPN_PASSWORD, 108 PROPERTY_INDEX_OPEN_VPN_PIN, 109 PROPERTY_INDEX_OPEN_VPN_PKCS11_PROVIDER, 110 PROPERTY_INDEX_OPEN_VPN_PORT, 111 PROPERTY_INDEX_OPEN_VPN_PROTO, 112 PROPERTY_INDEX_OPEN_VPN_PUSHPEERINFO, 113 PROPERTY_INDEX_OPEN_VPN_REMOTECERTEKU, 114 PROPERTY_INDEX_OPEN_VPN_REMOTECERTKU, 115 PROPERTY_INDEX_OPEN_VPN_REMOTECERTTLS, 116 PROPERTY_INDEX_OPEN_VPN_RENEGSEC, 117 PROPERTY_INDEX_OPEN_VPN_SERVERPOLLTIMEOUT, 118 PROPERTY_INDEX_OPEN_VPN_SHAPER, 119 PROPERTY_INDEX_OPEN_VPN_STATICCHALLENGE, 120 PROPERTY_INDEX_OPEN_VPN_TLSAUTHCONTENTS, 121 PROPERTY_INDEX_OPEN_VPN_TLSREMOTE, 122 PROPERTY_INDEX_OPEN_VPN_USER, 123 PROPERTY_INDEX_OPERATOR_CODE, 124 PROPERTY_INDEX_OPERATOR_NAME, 125 PROPERTY_INDEX_OUT_OF_CREDITS, 126 PROPERTY_INDEX_PASSPHRASE, 127 PROPERTY_INDEX_PASSPHRASE_REQUIRED, 128 PROPERTY_INDEX_PORTAL_URL, 129 PROPERTY_INDEX_POWERED, 130 PROPERTY_INDEX_PRIORITY, 131 PROPERTY_INDEX_PRL_VERSION, 132 PROPERTY_INDEX_PROFILE, 133 PROPERTY_INDEX_PROFILES, 134 PROPERTY_INDEX_PROVIDER, 135 PROPERTY_INDEX_PROVIDER_HOST, 136 PROPERTY_INDEX_PROVIDER_REQUIRES_ROAMING, 137 PROPERTY_INDEX_PROVIDER_TYPE, 138 PROPERTY_INDEX_ROAMING_STATE, 139 PROPERTY_INDEX_SAVE_CREDENTIALS, 140 PROPERTY_INDEX_SCANNING, 141 PROPERTY_INDEX_SECURITY, 142 PROPERTY_INDEX_SELECTED_NETWORK, 143 PROPERTY_INDEX_SERVICES, 144 PROPERTY_INDEX_SERVICE_WATCH_LIST, 145 PROPERTY_INDEX_SERVING_OPERATOR, 146 PROPERTY_INDEX_SIGNAL_STRENGTH, 147 PROPERTY_INDEX_SIM_LOCK, 148 PROPERTY_INDEX_SIM_PRESENT, 149 PROPERTY_INDEX_SSID, 150 PROPERTY_INDEX_STATE, 151 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN, 152 PROPERTY_INDEX_SUPPORTED_CARRIERS, 153 PROPERTY_INDEX_TECHNOLOGY_FAMILY, 154 PROPERTY_INDEX_TYPE, 155 PROPERTY_INDEX_UI_DATA, 156 PROPERTY_INDEX_UNINITIALIZED_TECHNOLOGIES, 157 PROPERTY_INDEX_UNKNOWN, 158 PROPERTY_INDEX_USAGE_URL, 159 PROPERTY_INDEX_VPN_DOMAIN, 160 PROPERTY_INDEX_WIFI_AUTH_MODE, 161 PROPERTY_INDEX_WIFI_BSSID, 162 PROPERTY_INDEX_WIFI_FREQUENCY, 163 PROPERTY_INDEX_WIFI_HEX_SSID, 164 PROPERTY_INDEX_WIFI_HIDDEN_SSID, 165 PROPERTY_INDEX_WIFI_PHY_MODE 166 }; 167 168 // Connection enums (see flimflam/include/service.h) 169 enum ConnectionType { 170 TYPE_UNKNOWN = 0, 171 TYPE_ETHERNET = 1, 172 TYPE_WIFI = 2, 173 TYPE_WIMAX = 3, 174 TYPE_BLUETOOTH = 4, 175 TYPE_CELLULAR = 5, 176 TYPE_VPN = 6, 177 }; 178 179 enum ConnectionSecurity { 180 SECURITY_UNKNOWN = 0, 181 SECURITY_NONE = 1, 182 SECURITY_WEP = 2, 183 SECURITY_WPA = 3, 184 SECURITY_RSN = 4, 185 SECURITY_8021X = 5, 186 SECURITY_PSK = 6, 187 }; 188 189 enum ConnectionState { 190 STATE_UNKNOWN = 0, 191 STATE_IDLE = 1, 192 STATE_CARRIER = 2, 193 STATE_ASSOCIATION = 3, 194 STATE_CONFIGURATION = 4, 195 STATE_READY = 5, 196 STATE_DISCONNECT = 6, 197 STATE_FAILURE = 7, 198 STATE_ACTIVATION_FAILURE = 8, 199 STATE_PORTAL = 9, 200 STATE_ONLINE = 10, 201 STATE_CONNECT_REQUESTED = 11, // Chrome only state 202 }; 203 204 // Chrome only state set for user initiated connection attempts. 205 enum UserConnectState { 206 USER_CONNECT_NONE = 0, 207 USER_CONNECT_STARTED = 1, 208 USER_CONNECT_CONNECTED = 2, 209 USER_CONNECT_FAILED = 3 210 }; 211 212 // Network enums (see flimflam/include/network.h) 213 enum NetworkTechnology { 214 NETWORK_TECHNOLOGY_UNKNOWN = 0, 215 NETWORK_TECHNOLOGY_1XRTT = 1, 216 NETWORK_TECHNOLOGY_EVDO = 2, 217 NETWORK_TECHNOLOGY_GPRS = 3, 218 NETWORK_TECHNOLOGY_EDGE = 4, 219 NETWORK_TECHNOLOGY_UMTS = 5, 220 NETWORK_TECHNOLOGY_HSPA = 6, 221 NETWORK_TECHNOLOGY_HSPA_PLUS = 7, 222 NETWORK_TECHNOLOGY_LTE = 8, 223 NETWORK_TECHNOLOGY_LTE_ADVANCED = 9, 224 NETWORK_TECHNOLOGY_GSM = 10, 225 }; 226 227 enum ActivationState { 228 ACTIVATION_STATE_UNKNOWN = 0, 229 ACTIVATION_STATE_ACTIVATED = 1, 230 ACTIVATION_STATE_ACTIVATING = 2, 231 ACTIVATION_STATE_NOT_ACTIVATED = 3, 232 ACTIVATION_STATE_PARTIALLY_ACTIVATED = 4, 233 }; 234 235 enum NetworkRoamingState { 236 ROAMING_STATE_UNKNOWN = 0, 237 ROAMING_STATE_HOME = 1, 238 ROAMING_STATE_ROAMING = 2, 239 }; 240 241 // Device enums (see flimflam/include/device.h) 242 enum TechnologyFamily { 243 TECHNOLOGY_FAMILY_UNKNOWN = 0, 244 TECHNOLOGY_FAMILY_CDMA = 1, 245 TECHNOLOGY_FAMILY_GSM = 2 246 }; 247 248 // Type of a pending SIM operation. 249 enum SimOperationType { 250 SIM_OPERATION_NONE = 0, 251 SIM_OPERATION_CHANGE_PIN = 1, 252 SIM_OPERATION_CHANGE_REQUIRE_PIN = 2, 253 SIM_OPERATION_ENTER_PIN = 3, 254 SIM_OPERATION_UNBLOCK_PIN = 4, 255 }; 256 257 // SIMLock states (see gobi-cromo-plugin/gobi_gsm_modem.cc) 258 enum SimLockState { 259 SIM_UNKNOWN = 0, 260 SIM_UNLOCKED = 1, 261 SIM_LOCKED_PIN = 2, 262 SIM_LOCKED_PUK = 3, // also when SIM is blocked, then retries = 0. 263 }; 264 265 // SIM PinRequire states. 266 // SIM_PIN_REQUIRE_UNKNOWN - SIM card is absent or SimLockState initial value 267 // hasn't been received yet. 268 // SIM_PIN_REQUIRED - SIM card is locked when booted/wake from sleep and 269 // requires user to enter PIN. 270 // SIM_PIN_NOT_REQUIRED - SIM card is unlocked all the time and requires PIN 271 // only on certain operations, such as ChangeRequirePin, ChangePin, EnterPin. 272 enum SimPinRequire { 273 SIM_PIN_REQUIRE_UNKNOWN = 0, 274 SIM_PIN_NOT_REQUIRED = 1, 275 SIM_PIN_REQUIRED = 2, 276 }; 277 278 // Any PIN operation result (EnterPin, UnblockPin etc.). 279 enum PinOperationError { 280 PIN_ERROR_NONE = 0, 281 PIN_ERROR_UNKNOWN = 1, 282 PIN_ERROR_INCORRECT_CODE = 2, // Either PIN/PUK specified is incorrect. 283 PIN_ERROR_BLOCKED = 3, // No more PIN retries left, SIM is blocked. 284 }; 285 286 // connection errors (see flimflam/include/service.h) 287 enum ConnectionError { 288 ERROR_NO_ERROR = 0, 289 ERROR_OUT_OF_RANGE = 1, 290 ERROR_PIN_MISSING = 2, 291 ERROR_DHCP_FAILED = 3, 292 ERROR_CONNECT_FAILED = 4, 293 ERROR_BAD_PASSPHRASE = 5, 294 ERROR_BAD_WEPKEY = 6, 295 ERROR_ACTIVATION_FAILED = 7, 296 ERROR_NEED_EVDO = 8, 297 ERROR_NEED_HOME_NETWORK = 9, 298 ERROR_OTASP_FAILED = 10, 299 ERROR_AAA_FAILED = 11, 300 ERROR_INTERNAL = 12, 301 ERROR_DNS_LOOKUP_FAILED = 13, 302 ERROR_HTTP_GET_FAILED = 14, 303 ERROR_IPSEC_PSK_AUTH_FAILED = 15, 304 ERROR_IPSEC_CERT_AUTH_FAILED = 16, 305 ERROR_PPP_AUTH_FAILED = 17, 306 ERROR_EAP_AUTHENTICATION_FAILED = 18, 307 ERROR_EAP_LOCAL_TLS_FAILED = 19, 308 ERROR_EAP_REMOTE_TLS_FAILED = 20, 309 ERROR_UNKNOWN = 255 310 }; 311 312 // We are currently only supporting setting a single EAP Method. 313 enum EAPMethod { 314 EAP_METHOD_UNKNOWN = 0, 315 EAP_METHOD_PEAP = 1, 316 EAP_METHOD_TLS = 2, 317 EAP_METHOD_TTLS = 3, 318 EAP_METHOD_LEAP = 4 319 }; 320 321 // We are currently only supporting setting a single EAP phase 2 authentication. 322 enum EAPPhase2Auth { 323 EAP_PHASE_2_AUTH_AUTO = 0, 324 EAP_PHASE_2_AUTH_MD5 = 1, 325 EAP_PHASE_2_AUTH_MSCHAPV2 = 2, 326 EAP_PHASE_2_AUTH_MSCHAP = 3, 327 EAP_PHASE_2_AUTH_PAP = 4, 328 EAP_PHASE_2_AUTH_CHAP = 5 329 }; 330 331 // Misc enums 332 enum NetworkProfileType { 333 PROFILE_NONE, // Not in any profile (not remembered). 334 PROFILE_SHARED, // In the local profile, shared by all users on device. 335 PROFILE_USER // In the user provile, not visible to other users. 336 }; 337 338 // Virtual Network provider type. 339 enum ProviderType { 340 PROVIDER_TYPE_L2TP_IPSEC_PSK, 341 PROVIDER_TYPE_L2TP_IPSEC_USER_CERT, 342 PROVIDER_TYPE_OPEN_VPN, 343 // Add new provider types before PROVIDER_TYPE_MAX. 344 PROVIDER_TYPE_MAX, 345 }; 346 347 } // namespace chromeos 348 349 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_CONSTANTS_H_ 350