Home | History | Annotate | Download | only in cros
      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