Home | History | Annotate | Download | only in doc
      1 Service hierarchy
      2 =================
      3 
      4 Service		org.chromium.flimflam
      5 Interface	org.chromium.flimflam.Service
      6 Object path	[variable prefix]/{service0,service1,...}
      7 
      8 Methods		dict GetProperties()
      9 
     10 			Return the properties for the service object. See
     11 			the Properties section for available properties.
     12 
     13 		void SetProperty(string name, variant value)
     14 
     15 			Change the value of the specified property. Only
     16 			properties that are listed as read-write are
     17 			changeable. On success a PropertyChanged signal
     18 			will be emitted.
     19 
     20 			Possible Errors: [service].Error.InvalidArguments
     21 					 [service].Error.InvalidProperty
     22 					 [service].Error.InvalidService
     23 					 [service].Error.InvalidPassphrase
     24 
     25 		void SetProperties(dict properties)
     26 
     27 			Set multiple properties in a Service at once.
     28 			Each property from the dict is applied, excluding
     29 			the "Profile" property and all properties intrinsic
     30 			to the service including "Type" for all services,
     31 			as well as "Mode", "SSID" and "Security" for WiFi
     32 			services.  In the event of multiple errors while
     33 			applying properties to the service, the first error
     34 			code is returned by this call.
     35 
     36 			Possible Errors: [service].Error.InvalidArguments
     37 					 [service].Error.InvalidProperty
     38 					 [service].Error.InvalidService
     39 					 [service].Error.InvalidPassphrase
     40 
     41 		void ClearProperty(string name)
     42 
     43 			Clear the value of the specified property. Only
     44 			properties that are listed as read-write are
     45 			changeable. On success a PropertyChanged signal
     46 			will be emitted.
     47 
     48 			Possible Errors: [service].Error.InvalidArguments
     49 					 [service].Error.InvalidProperty
     50 
     51 		array{bool} ClearProperties(array{string} names)
     52 
     53 			Clear the value of the specified properties.  Calls
     54 			ClearProperty above on each of the property names
     55 			and returns an array of boolean values indicating
     56 			whether each ClearProperty attempt succeeded.
     57 
     58 		void Connect()
     59 
     60 			Initiate a connection for the specified service.
     61 
     62 			For Ethernet devices this method can only be used
     63 			if it has previously been disconnected. Otherwise
     64 			the plugging of a cable automatically triggers
     65 			a connection.  If no cable is plugged in this
     66 			method will fail.
     67 
     68 			If the requested service is already connected
     69 			then this request is ignored and AlreadyConnected
     70 			is returned.
     71 
     72 			If the requested service is in the process of
     73 			connecting then this request is ignored and
     74 			InProgress is returned.
     75 
     76 			If another service of the same type is connected or
     77 			connecting then it is terminated before this request
     78 			is handled.
     79 
     80                         If the requested service cannot, for reasons not
     81                         described above, be connected, OperationFailed is
     82                         returned.
     83 
     84 			Possible Errors: [service].Error.AlreadyConnected
     85 					 [service].Error.InProgress
     86 					 [service].Error.OperationAborted
     87 					 [service].Error.InvalidService
     88 					 [service].Error.OperationFailed
     89 
     90 		void Disconnect()
     91 
     92 			Disconnect a service. If the service is not
     93 			connected or in the process of connecting an
     94 			error message will be generated.
     95 
     96 			For Ethernet devices this will remove all
     97 			Layer 3 state and mark the associated network
     98 			interface down.  If no cable is plugged in this
     99 			request will fail.
    100 
    101 			This method can also be used to abort a previous
    102 			connection attempt via the Connect method.
    103 
    104 			Possible Errors: [service].Error.InvalidArguments
    105 			                 [service].Error.OperationFailed
    106 
    107 		void Remove()
    108 
    109 			Disconnect and remove the configuration of a
    110 			service.  This disassociates the service from
    111 			its current profile.  If another profile supports
    112 			this service, it will be re-configured there.
    113 
    114 			This method is not permitted for Ethernet devices;
    115 			it will generate a NotSupported error response.
    116 
    117 			Possible Errors: [service].Error.InvalidArguments
    118 					 [service].Error.NotSupported
    119 
    120 		void ActivateCellularModem(string carrier)
    121 
    122 			Activate a cellular modem on the provided carrier.
    123 
    124 			This method returns immediately.  The caller
    125 			can either poll the Cellular.ActivationState
    126 			property, or monitor the PropertyChanged
    127 			signal to know when and if the
    128 			ActivateCellularModem call succeeded.
    129 
    130 			The correct carrier specific modem firmware
    131 			must already be loaded before this method is
    132 			called.
    133 
    134 			If this method is called for a non-cellular
    135 			service or on a service associated with a
    136 			non-CDMA device, it will return a NotSupported
    137 			error.
    138 
    139 			If the device is already activated nothing is returned.
    140 			but if the device needs to be activated an InProgress
    141 			error is returned.
    142 
    143 			Expected Result: [service].Error.InProgress
    144 			Possible Errors: [service].Error.NotSupported
    145 
    146 		void CompleteCellularActivation()
    147 
    148 			Complete the activation of a cellular service that is
    149 			being activated over a non-cellular network.  This
    150 			method is called upon the completion of the online
    151 			payment portal and performs the necessary checks
    152 			to ensure the activation process has fully completed.
    153 
    154 			This method returns immediately.  The caller
    155 			can either poll the Cellular.ActivationState
    156 			property, or monitor the PropertyChanged
    157 			signal to know when and if the activation process
    158 			has completed.
    159 
    160 			If this method is called on a non-cellular service
    161 			or on a cellular service that is not being activated
    162 			over a non-cellular network, it will return a
    163 			NotSupported error.
    164 
    165 			If the cellular service is already activated or being
    166 			activated, nothing is returned.
    167 
    168 			Possible Errors: [service].Error.NotSupported
    169 
    170 		dict GetLoadableProfileEntries()
    171 
    172 			Return a dictionary of object_path -> string pairs
    173 			which refer to the profile entries from the loaded
    174 			profiles in the Manager that could possibly provide
    175 			configuration for this service.  Each entry contains
    176 			the DBus path of the profile and the string entry
    177 			name (within that profile) that contains configuration
    178 			for this service.  Callers can use each of these
    179 			argument pairs to do a "GetEntry" call on each profile
    180 			object.
    181 
    182 Signals		PropertyChanged(string name, variant value)
    183 
    184 			This signal indicates a changed value of the given
    185 			property.
    186 
    187 
    188 Properties	boolean AutoConnect [readwrite]
    189 
    190 			If set to true, this service will auto-connect
    191 			when no other connection is available.  If multiple
    192 			services are marked for auto-connect then the highest
    193 			priority available service will be selected.
    194 
    195 			On a successful connection, this property may be
    196 			set to true automatically, depending on the service
    197 			type and if this property was not explicitly set on
    198 			the service before.
    199 
    200 		boolean Cellular.ActivateOverNonCellularNetwork [readonly]
    201 
    202 			(Cellular only) If set to true, this service must be
    203 			activated over a non-cellular network instead of the
    204 			same cellular network.
    205 
    206 		string Cellular.ActivationState [readonly]
    207 
    208 			(Cellular only) The activate state of the device
    209 			on the cellular network.  Possible values for
    210 			activate_state are:
    211 			   "not-activated"
    212 			   "activating"
    213 			   "partially-activated"
    214 			   "activated"
    215 
    216 			A CDMA device can be activated by calling the
    217 			Activate method.
    218 
    219 			This property is relevant only for services
    220 			associated with a CDMA cellular device.
    221 
    222 		dict Cellular.ServingOperator [readonly] [GSM only]
    223 			(Cellular only) Description of the operator on whose
    224 			network the modem is currently registered, if any.
    225 			The dictionary may contain the following string-valued
    226 			properties:
    227 
    228 			"name"       The operator name
    229 			"country"    The two-letter country code.
    230 			"network_id" The MCC (Mobile Country Code)
    231 				     and MNC (Mobile Network Code) of the
    232 				     operator on whose network the device is
    233 				     registered. The value of the property is
    234 				     the simple concatenation of the MCC and
    235 				     the MNC, with no separator. The first
    236 				     three digits are always the MCC, and
    237 				     the following two or three digits are the
    238 				     MNC.
    239 
    240 		string Cellular.NetworkTechnology [readonly]
    241 
    242 			(Cellular only) If the modem is registered on a
    243 			network, then this property gives the data bearer
    244 			technology currently in use.  The following
    245 			table lists the values this property may have,
    246 			along with a rough indication of the "generation"
    247 			to which the technology is considered to belong.
    248 
    249 			Value          Generation
    250 			-----------------------------
    251 			"1xRTT" (CDMA) 2.5G
    252 			"EVDO" (CDMA)  3G to 3.5G
    253 			"GPRS"         2.5G
    254 			"EDGE"         2.75G
    255 			"UMTS"         3G
    256 			"HSPA"         3.5G
    257 			"HSPA+"        3.75G
    258 			"LTE"          3.9G
    259 			"LTE Advanced" 4G
    260 
    261 		string Cellular.RoamingState [readonly]
    262 
    263 			(Cellular only) The roaming status of the modem on
    264 			the current network. Possible values are "home",
    265 			"roaming", and "unknown".
    266 
    267 		string Cellular.Olp [readonly]
    268 
    269 			(Cellular only) A dictionary describing the
    270 			online payment portal (OLP) at which a user
    271 			can sign up for, or modify, a mobile data
    272 			plan.  The value of this property is a
    273 			string -> string dictionary, which includes
    274 			the following keys:
    275 
    276 			"url"      The URL for the portal
    277 			"method"   The HTTP method to use, "GET" or "POST"
    278 			"postdata" If the method is POST then this key is
    279 				   present and contains the postdata
    280 				   to send.
    281 
    282 		dict Cellular.APN [readwrite] [GSM only]
    283 
    284 			(Cellular only) The APN to be used with a GSM
    285 			carrier for making data connections. The value of
    286 			this property is a string -> string dictionary,
    287 			which must include at least the following key:
    288 
    289 			"apn"  The APN to use for making connections
    290 
    291 			There are three optional properties. The first is
    292 
    293 			"network_id" The network ID (MCC/MNC pair) of the
    294 			             network for which the APN should be used.
    295 				     If not specified, then the network ID of
    296 				     the currently registered network is used.
    297 
    298 			The other two optional properties are "username"
    299 			and "password", which, if specified, will be supplied
    300 			to the connect operation on the modem along with the
    301 			APN.
    302 
    303 			When the APN is set using this method, it overrides
    304 			any APN that may be associated with the specified
    305 			network ID in the APN database. The APN setting is
    306 			persistent across reboots.
    307 
    308 			A user-specified APN may be cleared by clearing this
    309 			property.
    310 
    311 			The algorithm for connecting to GSM networks is as
    312 			follows, stopping when a connection is succesfully
    313 			established:
    314 			1. Try the last APN that resulted in a successful
    315 			   connection.
    316 			2. Try the APN that was set from the Cellular.APN
    317 			   property (if any).
    318 			3. Try the list of APNs for the current provider one
    319 			   at a time. The list comes from the mobile broadband
    320 			   provider information database.
    321 			4. As a last resort, try connecting without specifying
    322 			   an APN.
    323 
    324 			If all these steps fail, then the connect attempt fails.
    325 			Whenever this property is set to establish a new APN to
    326 			use, the remembered last-good-APN is cleared. The
    327 			remembered last-good-APN is persistent across reboots.
    328 
    329 		dict Cellular.LastGoodAPN [readonly] [GSM only]
    330 
    331 			(Cellular only) The APN information used in the
    332 			last successful connection attempt.  If the last
    333 			attempt was unsuccesful, this property is unset.
    334 			The format of this property is the same as for
    335 			the Cellular.APN property.
    336 
    337 		boolean Cellular.OutOfCredits [readonly]
    338 
    339 			(Cellular only) Indicates whether a cellular service
    340 			has any remaining bandwidth credits with the carrier.
    341 
    342 		string Cellular.PPP.Username [readwrite]
    343 			(Cellular only) For cellular devices with a PPP
    344 			link-layer, the username for PPP authentication.
    345 
    346 		string Cellular.PPP.Password [writeonly]
    347 			(Cellular only) For cellular devices with a PPP
    348 			link-layer, the password for PPP authentication.
    349 
    350 		string CheckPortal [readwrite]
    351 
    352 			Control captive portal checking.  Possible values
    353 			are "true", "false", and "auto" (default).
    354 			When set to "auto" captive portal checking is
    355 			controlled by Manager.CheckPortalList (which
    356 			is a per-technology mask/list of which services
    357 			should do captive portal checking).
    358 
    359 		boolean Connectable [readonly]
    360 
    361 			Indicates whether a service is prepared for use
    362 			as an argument to the Connect method.  A service
    363 			will not be marked Connectable if, for example,
    364 			it is missing necessary security credentials.
    365 			Clients may use this property to not disable
    366 			services or to mark them in some way to indicate
    367 			they are present but not usable.
    368 
    369 		string Country [readonly]
    370 
    371 			(WiFi only) Indicates the 2-letter country code
    372 			reported by the representative endpoint for this
    373 			service.
    374 
    375 		object Device [readonly]
    376 
    377 			The object path of the associated device.
    378 			This value may be used to retrieve and manipulate
    379 			Layer 3 configuration state.
    380 
    381 			A value of "/" indicates that the service is
    382 			not bound to any device.
    383 
    384 		string DHCPProperty.Hostname [readwrite]
    385 
    386 			Optional setting to configure DHCP requests.  Some DHCP
    387 			servers may register a DNS entry on behalf of this
    388 			hostname; others may just make available a table for
    389 			administrators to tell what machines are on their
    390 			network.
    391 
    392 			The default for this name is empty, which means that the
    393 			system will not report a hostname.  When this property
    394 			is set it will be persisted in the default profile.
    395 
    396 		string DHCPProperty.VendorClass [readwrite]
    397 
    398 			Optional setting to configure DHCP requests.  This
    399 			setting can be used to identify the vendor that
    400 			manufactured the client hardware, the software in use,
    401 			or an industry consortium to which the vendor belongs.
    402 
    403 			The default for this property is empty, which means the
    404 			system will not report a Vendor Class.  When set, this
    405 			property will override the default setting and be
    406 			persisted in the default profile.
    407 
    408 		array{string} Diagnostics.Disconnects [readonly]
    409 
    410 			History (wall-clock timestamps) of connection drops.
    411 
    412 		array{string} Diagnostics.Misconnects [readonly]
    413 
    414 			History (wall-clock timestamps) of failed connection
    415 			attempts.
    416 
    417 		string EAP.Identity [readwrite]
    418 
    419 			The client identity string used in setting up
    420 			services of type "802_1x".
    421 
    422 			This property is included in get requests only
    423 			when the requester has sufficient privileges.
    424 
    425 		string EAP.EAP [readwrite]
    426 
    427 			The EAP methods that will be accepted when setting
    428 			up services of type "802_1x".
    429 
    430 			This property is included in get requests only
    431 			when the requester has sufficient privileges.
    432 
    433 		string EAP.InnerEAP [readwrite]
    434 
    435 			The authentication methods that will be on the
    436 			inside of a PEAP or EAP-TTLS tunnel.
    437 
    438 			This property is included in get requests only
    439 			when the requester has sufficient privileges.
    440 
    441 		string EAP.AnonymousIdentity [readwrite]
    442 
    443 			The client identity string that will be used
    444 			for the outer EAP authentication for tunneled
    445 			methods such as PEAP and EAP-TTLS.
    446 
    447 			This property is included in get requests only
    448 			when the requester has sufficient privileges.
    449 
    450 		string EAP.CertID [readwrite]
    451 
    452 			The PKCS#11 identifier of the client certificate
    453 			to use when setting up services of type "802_1x".
    454 
    455 			This property is included in get requests only
    456 			when the requester has sufficient privileges.
    457 
    458 		string EAP.PrivateKey [readwrite]
    459 
    460 			The pathname of a file containing the private
    461 			key for setting up services of type "802_1x".
    462 			The private key file must be in PEM format.
    463 
    464 			This property is included in get requests only
    465 			when the requester has sufficient privileges.
    466 
    467 		string EAP.PrivateKeyPassword [readwrite]
    468 
    469 			The password to decrypt a private key given
    470 			in EAP.PrivateKey.
    471 
    472 			This property is included in get requests only
    473 			when the requester has sufficient privileges.
    474 
    475 		string EAP.KeyID [readwrite]
    476 
    477 			The PKCS#11 identifier of the private key to
    478 			use when setting up services of type "802_1x".
    479 
    480 			This property is included in get requests only
    481 			when the requester has sufficient privileges.
    482 
    483 		string EAP.CACert [readwrite]
    484 
    485 			The pathname of a file containing the Certificate
    486 			Authority's certificate for validating server
    487 			certificates during the 802.1x authentication
    488 			process.
    489 
    490 			This property is included in get requests only
    491 			when the requester has sufficient privileges.
    492 
    493 		string EAP.CACertID [readwrite]
    494 
    495 			The PKCS#11 ID of the EAP.CACert file for
    496 			validating server certificate recieved during
    497 			the 802.1x authentication process.
    498 
    499 			This property is included in get requests only
    500 			when the requester has sufficient privileges.
    501 
    502 		string EAP.CACertPEM [readwrite]
    503 
    504 			An x509 CA certificate in PEM format; specifically
    505 			the base64 counterpart of the DER contents
    506 			surrounded by a "-----BEGIN CERTIFICATE-----" and
    507 			"-----END CERTIFICATE-----" line.  This certificate
    508 			will be used to authenticate the remote RADIUS
    509 			server in the 802.1x authentication process.
    510 
    511 		boolean EAP.UseSystemCAs [readwrite]
    512 
    513 			Control whether EAP operations are
    514 			configured to use the system's installed set
    515 			of certificate authorities when validating
    516 			server certificates. Note that if UseSystemCAs
    517 			is false and no CA is specified with EAP.CACert
    518 			or EAP.CaCertID - that is, no CAs are configured
    519 			at all - server certificates will not have their
    520 			signatures checked. Defaults to true.
    521 
    522 			This property is included in get requests only
    523 			when the requester has sufficient privileges.
    524 
    525 		string EAP.PIN [readwrite]
    526 
    527 			The PIN used to authenticate to the PKCS#11 device
    528 			to retrieve a client certificate, private key,
    529 			or certificate authority certificate.
    530 
    531 			This property is included in get requests only
    532 			when the requester has sufficient privileges.
    533 
    534 		string EAP.Password [readwrite]
    535 
    536 			The password to use in 802.1x authentication.
    537 
    538 			This property is included in get requests only
    539 			when the requester has sufficient privileges.
    540 
    541 		string EAP.KeyMgmt [readwrite]
    542 
    543 			(WiFi only) The key management algorithm to be
    544 			used in 802.1x authentication.	If this property
    545 			is not set then "WPA-EAP" is used for the key
    546 			management algorithm.
    547 
    548 			This property is included in get requests only
    549 			when the requester has sufficient privileges.
    550 
    551 		array{string} EAP.RemoteCertification [readonly]
    552 
    553 			(WiFi only) The list of certificate subject names
    554 			reported by the remote RADIUS server.  This
    555 			property is set during 802.1x negotiation and
    556 			persists after disconnection for later inspection,
    557 			but is not persisted between connection manager
    558 			restarts.  It is also cleared at the beginning of
    559 			the next connection.
    560 
    561 		string EAP.SubjectMatch [readwrite]
    562 
    563 			(WiFi only) A substring which the remote
    564 			RADIUS server certificate subject name must
    565 			contain.  If the subject does not contain this
    566 			substring, abort 802.1x negotiation.
    567 
    568 		string Error [readonly]
    569 
    570 			The service error status details.
    571 
    572 			When error occur during connection or disconnection
    573 			the detailed information are represented in this
    574 			property to help the user interface to present the
    575 			user with alternate options.
    576 
    577 			This property is only valid when the service is in a
    578 			failure state. Otherwise it might be empty or not
    579 			present at all.
    580 
    581 			Look for "Flimflam error options" in
    582 			system_api/dbus/shill/dbus-constants.h for the set of
    583 			defined error codes.
    584 
    585 		string ErrorDetails [readonly]
    586 
    587 			Free-style service error status details in addition to
    588 			the defined error codes presented through the
    589 			Service.Error property. For example, this property may
    590 			contain a server-supplied error description for a
    591 			rejected VPN connection attempt.
    592 
    593 			This property is only valid when the service is in a
    594 			failure state. Otherwise it might be empty or not
    595 			present at all.
    596 
    597 		string GUID [readwrite]
    598 
    599 			The Globally Unique IDentifier for the service.
    600 			This value may be set by a client and is
    601 			intended for cross-referencing Service objects
    602 			to externally-maintained data.
    603 
    604 		object IPConfig [readonly]
    605 
    606 			The object path of the associated IP configuration.
    607 			This value only exists when the service is connected,
    608 			and is used used to retrieve Layer 3 configuration
    609 			state.  A PropertyChanged signal for this object path
    610 			is emitted every time the IP address is configured
    611 			(for example during DHCP renewals), although the
    612 			actual value may not have changed.
    613 
    614 		boolean IsActive [readonly]
    615 
    616 			Will be true if this service has a default route;
    617 			i.e.  network traffic is being sent through it.
    618 
    619 		boolean LinkMonitorDisable [readwrite]
    620 
    621 			Specifies whether to disable or enable link monitoring
    622 			for this service. When link monitor is enabled, periodic
    623 			ARP to the gateway IP address will be performed.
    624 
    625 		boolean ManagedCredentials [readwrite]
    626 
    627 			Specifies whether the credentials for this service
    628 			are managed outside of shill, and are validated
    629 			in some manner other than by the user.  As such, these
    630 			credentials need not be validated via an initial
    631 			connection attempt.  Even without this validation,
    632 			the service will be considered of equal priority to
    633 			other services that have been connected before.
    634 
    635 		string Mode [readonly]
    636 
    637 			If the service type is "wifi", then this property is
    638 			present and contains the mode of the network. The
    639 			possible values are "managed" or "adhoc".
    640 
    641 			This property is present only for WiFi services.
    642 
    643 		string Name [readonly]
    644 
    645 			The service name (for example "Wireless" etc.)
    646 
    647 			This name can be used for directly displaying it in
    648 			the application. It has pure informational purpose.
    649 
    650 			For Ethernet devices and hidden WiFi networks it is
    651 			not guaranteed that this property is present. For
    652 			visible WiFi networks, this may contain the SSID.
    653 
    654 			See also the WiFi.HexSSID property.
    655 
    656 		string OpenVPN.Auth [writeonly]
    657 
    658 			(VPN services of type OpenVPN only) Specify the
    659 			authentication algorithm to OpenVPN.
    660 			See the "--auth" option in the OpenVPN documentation.
    661 			The current value of this property is readable
    662 			in the "Provider" property of this service.
    663 
    664 		string OpenVPN.AuthNoCache [writeonly]
    665 
    666 			(VPN services of type OpenVPN only) If this value
    667 			is set to anything, do not cache usernames or passwords
    668 			in the OpenVPN client.  See the "--auth" flag in the
    669 			OpenVPN documentation.  The current value of this
    670 			property is readable in the "Provider" property of this
    671 			service.
    672 
    673 		string OpenVPN.AuthRetry [writeonly]
    674 
    675 			(VPN services of type OpenVPN only) Specify how to
    676 			handle authentication failures.
    677 			See the "--auth-retry" option in the OpenVPN
    678 			documentation.  The current value of this property
    679 			is readable in the "Provider" property of this service.
    680 
    681 		string OpenVPN.AuthUserPass [writeonly]
    682 
    683 			(VPN services of type OpenVPN only) Authenticate
    684 			with username and password if this option is non-empty.
    685 			For this option to work, the "OpenVPN.User" property
    686 			must also be set.  The current value of this property
    687 			is readable in the "Provider" property of this service.
    688 
    689 		string OpenVPN.CACert [writeonly]
    690 
    691 			(VPN services of type OpenVPN only) Specify the
    692 			filename of the certificate to be used to verify the
    693 			OpenVPN server.  Only one of "OpenVPN.CACert" or
    694 			"OpenVPN.CACertPEM" can be specified.  The current
    695 			value of this property is readable in the "Provider"
    696 			property of this service.
    697 
    698 		string OpenVPN.CACertNSS [writeonly]
    699 
    700 			(VPN services of type OpenVPN only) [Deprecated]
    701 			This value is no longer honored in shill, but any
    702 			value stored here is persisted so that callers can
    703 			migrate this to the correct value of OpenVPN.CACertPEM.
    704 			The current value of this property is readable in the
    705 			"Provider" property of this service.
    706 
    707 		array{string} OpenVPN.CACertPEM [writeonly]
    708 
    709 			(VPN services of type OpenVPN only) The list of
    710 			x509 CA certificates to be used to verify the remote
    711 			server.  Any of these certificates can directly sign
    712 			the server certificate.  Each x509 CA certificate
    713 			must be in in PEM format; specifically
    714 			the base64 counterpart of the DER contents, optionally
    715 			surrounded by a "-----BEGIN CERTIFICATE-----" and
    716 			"-----END CERTIFICATE-----" line.  Only one of
    717 			"OpenVPN.CACert" or "OpenVPN.CACertPEM" can be
    718 			specified.  The current value of this property is
    719 			readable in the "Provider" property of this service.
    720 
    721 		string OpenVPN.Cert [writeonly]
    722 
    723 			(VPN services of type OpenVPN only) Specify a
    724 			filename of to use as the client certificate in
    725 			authentication.   See the "--cert" option in the
    726 			OpenVPN documentation.  The current value of this
    727 			property is readable in the "Provider" property of
    728 			this service.
    729 
    730 		string OpenVPN.Cipher [writeonly]
    731 
    732 			(VPN services of type OpenVPN only) Specify the
    733 			cipher algorithm for encrypted packets.  See the
    734 			"--cipher" option in the OpenVPN documentation.
    735 			The current value of this property is readable in
    736 			the "Provider" property of this service.
    737 
    738 		string OpenVPN.CompLZO [writeonly]
    739 
    740 			(VPN services of type OpenVPN only) If non-empty,
    741 			enable fast LZO compression.  See the
    742 			"--comp-lzo" option in the OpenVPN documentation.
    743 			The current value of this property is readable in
    744 			the "Provider" property of this service.
    745 
    746 		string OpenVPN.CompNoAdapt [writeonly]
    747 
    748 			(VPN services of type OpenVPN only) If non-empty,
    749 			don't use adaptive compression when fast LZO
    750 			is enabled compression.  See the "--comp-noadapt"
    751 			option in the OpenVPN documentation.  The current
    752 			value of this property is readable in the "Provider"
    753 			property of this service.
    754 
    755 		array{string} OpenVPN.ExtraCertPEM [writeonly]
    756 
    757 			(VPN services of type OpenVPN only) A list of
    758 			additonal x509 CA certificates to be used to complete
    759 			the certificate authentication chain from the CA
    760 			certificates.  Each x509 CA certificate must be in in
    761 			PEM format; specifically the base64 counterpart of
    762 			the DER contents, optionally surrounded by a
    763 			"-----BEGIN CERTIFICATE-----" and
    764 			"-----END CERTIFICATE-----" line.  The current
    765 			value of this property is readable in the "Provider"
    766 			property of this service.
    767 
    768 		string OpenVPN.IgnoreDefaultRoute [writeonly]
    769 
    770 			(VPN services of type OpenVPN only) If set, a
    771 			default route to the default gateway specified by
    772 			the server will not be configured.  This allows this
    773 			connection to operate as a "split tunnel" in
    774 			configurations where the server allows this.  Since
    775 			this option does not ignore routes explicitly pushed
    776 			from the server, this option does not allow split
    777 			tunnels when they are expressly forbidden in the
    778 			server configuration.  The server can directly
    779 			override this option by pushing a "redirect-gateway"
    780 			or "redirect-private" option to the client.  The
    781 			current value of this property is readable in the
    782 			"Provider" property of this service.
    783 
    784 		string OpenVPN.Key [writeonly]
    785 
    786 			(VPN services of type OpenVPN only) Specify the
    787 			filename of the private key the client uses to
    788 			verify itself to the OpenVPN server.  See the
    789 			"--key" option in the OpenVPN documentation.  The
    790 			current value of this property is readable in the
    791 			"Provider" property of this service.
    792 
    793 		string OpenVPN.KeyDirection [writeonly]
    794 
    795 			(VPN services of type OpenVPN only) [Deprecated]
    796 			This property is only provided for backwards
    797 			compatibility.
    798 
    799 		string OpenVPN.Mgmt.Enable [writeonly]
    800 
    801 			(VPN services of type OpenVPN only) [Deprecated]
    802 			This property is only provided for backwards
    803 			compatibility.
    804 
    805 		string OpenVPN.NsCertType [writeonly]
    806 
    807 			(VPN services of type OpenVPN only) If non-empty,
    808 			specifies that the peer certificate must be signed
    809 			with an explicit nsCertType designation.  The value
    810 			assigned to this property specified the role that
    811 			should be assigned to the certificate.  See the
    812 			"--ns-cert-type" option in the OpenVPN documentation.
    813 			The current value of this property is readable in the
    814 			"Provider" property of this service.
    815 
    816 		string OpenVPN.OTP [writeonly]
    817 
    818 			(VPN services of type OpenVPN only) Specifies a
    819 			one-time-password (OTP) to be used during the
    820 			authentication phase.  The connection manager only
    821 			stores this value for the duration of a connection
    822 			attempt and will never persist this to a stored
    823 			profile.
    824 
    825 		string OpenVPN.Password [writeonly]
    826 
    827 			(VPN services of type OpenVPN only) Specifies a
    828 			password to be used during the authentication phase.
    829 
    830 		string OpenVPN.Pkcs11.ID [writeonly]
    831 
    832 			(VPN services of type OpenVPN only) Specify the
    833 			PKCS11 certificate id when using a crypto token
    834 			to perform certificate authentication.
    835 
    836 		string OpenVPN.Pkcs11.PIN [writeonly]
    837 
    838 			(VPN services of type OpenVPN only) Specifies a
    839 			PIN used to gain access to the cryptographic token
    840 			when using the "OpenVPN.Pkcs11.ID" property.
    841 
    842 		string OpenVPN.Pkcs11.Provider [writeonly]
    843 
    844 			(VPN services of type OpenVPN only) Specifies a
    845 			the provider for the the cryptographic token
    846 			when using the "OpenVPN.Pkcs11.ID" property.
    847 			The current value of this property is readable in the
    848 			"Provider" property of this service.
    849 
    850 		string OpenVPN.Ping [writeonly]
    851 
    852 			(VPN services of type OpenVPN only) If non-empty,
    853 			this specifies the period in seconds between sending
    854 			pings to the OpenVPN server.  See the "--ping" option
    855 			in the OpenVPN documentation.  The current value of
    856 			this property is readable in the "Provider" property
    857 			of this service.
    858 
    859 		string OpenVPN.PingExit [writeonly]
    860 
    861 			(VPN services of type OpenVPN only) If non-empty,
    862 			exit if this many seconds pass without reception
    863 			of a ping reply from the OpenVPN server.  See the
    864 			"--ping-exit" option in the OpenVPN documentation.
    865 			The current value of this property is readable in the
    866 			"Provider" property of this service.
    867 
    868 		string OpenVPN.PingRestart [writeonly]
    869 
    870 			(VPN services of type OpenVPN only) If non-empty,
    871 			restart if this many seconds pass without reception
    872 			of a ping reply from the OpenVPN server.  See the
    873 			"--ping-restart" option in the OpenVPN documentation.
    874 			The current value of this property is readable in the
    875 			"Provider" property of this service.
    876 
    877 		string OpenVPN.Port [writeonly]
    878 
    879 			(VPN services of type OpenVPN only) If non-empty,
    880 			use this port for both the local and remote.
    881 			See the "--port" option in the OpenVPN documentation.
    882 			The current value of this property is readable in the
    883 			"Provider" property of this service.
    884 
    885 		string OpenVPN.Proto [writeonly]
    886 
    887 			(VPN services of type OpenVPN only) If non-empty,
    888 			sets the protocol ("udp", "tcp-client", "tcp-server)
    889 			for the OpenVPN connection.  See the "--proto" option
    890 			in the OpenVPN documentation.  The current value of
    891 			this property is readable in the "Provider" property
    892 			of this service.
    893 
    894 		string OpenVPN.PushPeerInfo [writeonly]
    895 
    896 			(VPN services of type OpenVPN only) If non-empty,
    897 			specifies that client information should be pushed
    898 			to the server.  See the "--push-peer-info" option
    899 			in the OpenVPN documentation.  The current value of
    900 			this property is readable in the "Provider" property
    901 			of this service.
    902 
    903 		string OpenVPN.RemoteCertEKU [writeonly]
    904 
    905 			(VPN services of type OpenVPN only) Require that
    906 			the remote peer certificate be signed with the
    907 			specified extended key usage OID.  See the
    908 			"--remote-cert-eku" option in the OpenVPN
    909 			documentation.  The current value of this property
    910 			is readable in the "Provider" property of this service.
    911 
    912 		string OpenVPN.RemoteCertKU [writeonly]
    913 
    914 			(VPN services of type OpenVPN only) Require that
    915 			the remote peer certificate be signed with the
    916 			specified key usage in hex format.  See the
    917 			"--remote-cert-ku" option in the OpenVPN
    918 			documentation.  The current value of this property
    919 			is readable in the "Provider" property of this service.
    920 
    921 		string OpenVPN.RemoteCertTLS [writeonly]
    922 
    923 			(VPN services of type OpenVPN only) Require that
    924 			the remote peer certificate be signed with the
    925 			specified key usage and extend key usage based on
    926 			RFC3280 TLS rules.  See the "--remote-cert-tls" option
    927 			in the OpenVPN documentation.  The current value of
    928 			this property is readable in the "Provider" property
    929 			of this service.
    930 
    931 		string OpenVPN.RenegSec [writeonly]
    932 
    933 			(VPN services of type OpenVPN only) Specifies the
    934 			period (in seconds) to re-negotiate the data channel
    935 			key.  See the "--reneg-sec" option in the OpenVPN
    936 			documentation.  The current value of this property is
    937 			readable in the "Provider" property of this service.
    938 
    939 		string OpenVPN.ServerPollTimeout [writeonly]
    940 
    941 			(VPN services of type OpenVPN only) Specifies the
    942 			period (in seconds) to wait to for a response from
    943 			the server.  See the "--server-poll-timeout" option
    944 			in the OpenVPN documentation.  The current value of
    945 			this property is readable in the "Provider" property
    946 			of this service.
    947 
    948 		string OpenVPN.Shaper [writeonly]
    949 
    950 			(VPN services of type OpenVPN only) Restricts the
    951 			number of bytes per second to be output to the peer.
    952 			See the "--shaper" option in the OpenVPN documentation.
    953 			The current value of this property is readable in the
    954 			"Provider" property of this service.
    955 
    956 		string OpenVPN.StaticChallenge [writeonly]
    957 
    958 			(VPN services of type OpenVPN only) Enable static
    959 			challenge/response protocol.  See the
    960 			"--static-challenge" option in the OpenVPN
    961 			documentation.  The current value of this property
    962 			is readable in the "Provider" property of this service.
    963 
    964 		string OpenVPN.TLSAuth [writeonly]
    965 
    966 			(VPN services of type OpenVPN only) If non-empty,
    967 			passes this as the "--tls-auth" argument to OpenVPN.
    968 			The current value of this property is readable in the
    969 			"Provider" property of this service.
    970 
    971 		string OpenVPN.TLSAuthContents [writeonly]
    972 
    973 			(VPN services of type OpenVPN only) Creates a
    974 			temporary file with the contents of this property
    975 			and passes it to OpenVPN using the "--tls-auth"
    976 			option.  The current value of this property
    977 			is readable in the "Provider" property of this service.
    978 
    979 		string OpenVPN.TLSRemote [writeonly]
    980 
    981 			(VPN services of type OpenVPN only) Specifies
    982 			the only X509 name that is allowed for the peer.  See
    983 			the" --tls-remote" option in the OpenVPN
    984 			documentation.  The current value of this property
    985 			is readable in the "Provider" property of this service.
    986 
    987 		string OpenVPN.Token [writeonly]
    988 
    989 			(VPN services of type OpenVPN only) Specifies a
    990 			single-use token to be used during the static challenge
    991 			phase of authentication.  This will be used instead of
    992 			the standard OpenVPN "SCRV1:" response containing the
    993 			password and OTP parameters.  This is useful in
    994 			installations where the default base64 encoding may be
    995 			too large to fit in the buffer size available, and
    996 			server implementations have been changed to avoid this.
    997 			The connection manager only stores this value for the
    998 			duration of a connection attempt and will never persist
    999 			this to a stored profile.
   1000 
   1001 		string OpenVPN.User [writeonly]
   1002 
   1003 			(VPN services of type OpenVPN only) Specifies
   1004 			the username to be specified in authentication to
   1005 			the OpenVPN server.  The current value of this property
   1006 			is readable in the "Provider" property of this service.
   1007 
   1008 		string OpenVPN.Verb [writeonly]
   1009 
   1010 			(VPN services of type OpenVPN only) If non-empty,
   1011 			passes this as the "--verb" argument to OpenVPN,
   1012 			which sets the debug verbosity.  By default this
   1013 			value is set based on shill's debugging level for VPN.
   1014 			The current value of this property is readable in the
   1015 			"Provider" property of this service.
   1016 
   1017 		string OpenVPN.VerifyHash [writeonly]
   1018 
   1019 			(VPN services of type OpenVPN only) If non-empty,
   1020 			passes this as the "--verify-hash" argument to OpenVPN,
   1021 			which specifies the SHA1 fingerprint for level-1
   1022 			certificate.  The current value of this property is
   1023 			readable in the "Provider" property of this service.
   1024 
   1025 		string OpenVPN.VerifyX509Name [writeonly]
   1026 
   1027 			(VPN services of type OpenVPN only) If non-empty,
   1028 			passes this as the "--verify-x509-name" argument to
   1029 			OpenVPN, which specifies the X509 subject distinguished
   1030 			name we mandate the remote VPN server to have.  The
   1031 			current value of this property is readable in the
   1032 			"Provider" property of this service.
   1033 
   1034 		string OpenVPN.VerifyX509Type [writeonly]
   1035 
   1036 			(VPN services of type OpenVPN only) If non-empty,
   1037 			this string is passed as a second parameter to the
   1038 			"--verify-x509-name" flag sent to OpenVPN, which
   1039 			qualifies the type of parameter specified in the
   1040 			"OpenVPN.VerifyX509Name" property of this service.
   1041 			If the "OpenVPN.VerifyX509Name" property is unset or
   1042 			empty, setting this property has no effect during
   1043 			connection.  Please see the documentation of the
   1044 			"--verify-x509-name" flag in the OpenVPN documentation
   1045 			to better understand how these two parameters interact.
   1046 			The current value of this property is readable in the
   1047 			"Provider" property of this service.
   1048 
   1049 		int PPPoE.LCPEchoFailure
   1050 
   1051 			(PPPoE only) If set, the number of LCP echo responses
   1052 			that this service will tolerate missing from the PPP
   1053 			peer before terminating the connection.
   1054 
   1055 		int PPPoE.LCPEchoInterval
   1056 
   1057 			(PPPoE only) If set, used as the number of seconds
   1058 			between sending LCP echo requests to the PPP peer.
   1059 
   1060 		int PPPoE.MaxAuthFailure
   1061 
   1062 			(PPPoE only) The maximum number of authentication
   1063 			failures to allow before terminating the connection.  A
   1064 			value of 0 means no limit.  The default is 3.
   1065 
   1066 		string PPPoE.Password
   1067 
   1068 			(PPPoE only) This string is used as the password
   1069 			during authentication with a PPPoE server.  If empty,
   1070 			it will still be used during authentication if
   1071 			requested.
   1072 
   1073 		string PPPoE.Username
   1074 
   1075 			(PPPoE only) If non-empty, this string is used as the
   1076 			username during authentication with a PPPoE server.  If
   1077 			empty, it will still be used during authentication if
   1078 			requested.
   1079 
   1080 		string Passphrase [readwrite]
   1081 
   1082 			If the service type is "wifi", then this property
   1083 			holds a passphrase used in setting up services of
   1084 			type "wep", "wpa", "rsn", "psk", or a private
   1085 			key password used in setting up services of
   1086 			type "802_1x".
   1087 
   1088 			For "wep" services, this must contain the WEP
   1089 			key and, optionally, a key index.  Only 40-bit
   1090 			and 104-bit WEP keys are supported.  The WEP
   1091 			key can be formatted either as an ASCII string
   1092 			(5 or 13 characters), or as ASCII hex digits
   1093 			(10 or 26). When using ASCII hex digits, the
   1094 			key may optionally be preceded by "0x" or "0X".
   1095 			To specify an optional WEP key index, prepend
   1096 			the key with "0:", "1:", "2:" or "3:".  If no
   1097 			index is specified, 0 is used.
   1098 
   1099 			By default this property is not included in get
   1100 			requests.  It may be present if a non-default
   1101 			security policy is configured and the client has
   1102 			"read secret" privileges.
   1103 
   1104 			Note that no PropertyChanged signals are sent for
   1105 			this property. The PassphraseRequired property
   1106 			should be monitored instead.
   1107 
   1108 		boolean PassphraseRequired [readonly]
   1109 
   1110 			If the service type is "wifi", then this property
   1111 			indicates if a passphrase or key (for WEP) is required.
   1112 
   1113 			If a passphrase has been set already or if no
   1114 			passphrase is needed, then this property will
   1115 			be set to false.
   1116 
   1117 			UI clients may monitor this property for a
   1118 			PropertyChanged signals to prompt for a required
   1119 			passphrase or key.
   1120 
   1121                         [We will be supporting this soon for VPN]
   1122 
   1123 		string PhysicalTechnology [readonly, optional]
   1124 
   1125 			If the service type is "vpn" and the service is
   1126 			connected, this property is present and exposes the
   1127 			Type property of the underliying physical service used.
   1128 			Otherwise the property is not present.
   1129 
   1130 		string PortalDetectionFailedPhase [readonly]
   1131 
   1132 			Indicates the phase that portal detection was in
   1133 			when it last failed.
   1134 
   1135 			Possible values:
   1136 
   1137 				DNS - During DNS lookup
   1138 				Connection - during the TCP connection setup
   1139 				HTTP - during the HTTP connection setup
   1140 				Content - The content of the HTTP response
   1141 				Unknown - Failure in an unknown step
   1142 
   1143 		string PortalDetectionFailedStatus [readonly]
   1144 
   1145 			Indicates the portal detection failure reason when
   1146 			it last failed.
   1147 
   1148 			Possible values:
   1149 
   1150 				Failure - The attempt failed at this phase
   1151 				Success - The attempt succeeded at this phase
   1152 				Timeout - The attempt timed out at this phase
   1153 
   1154 		string PreviousError [readonly]
   1155 
   1156 			The most recent service error status logged.  Even
   1157 			after the service leaves the failed state, this
   1158 			property retains the last value that the Error property
   1159 			contained.
   1160 
   1161 			Note that no PropertyChanged signals are sent for
   1162 			this property. The Error property should be monitored
   1163 			instead.
   1164 
   1165 		int32 PreviousErrorSerialNumber [readonly]
   1166 
   1167 			This number increases by one every time a service
   1168 			failure is logged.  It returns to zero if shill
   1169 			restarts.
   1170 
   1171 			Note that no PropertyChanged signals are sent for
   1172 			this property. The Error property should be monitored
   1173 			instead.
   1174 
   1175 		int32 Priority [readwrite]
   1176 
   1177 			An optional value used to calculate the priority order
   1178 			of this service.  Priorities are between 1 to 100.
   1179 			Services with priorities are sorted ahead of services
   1180 			without.  Services with the same priority are ordered
   1181 			by other means such as service type signal strength
   1182 			or technology.
   1183 
   1184 			By default services are not assigned a priority;
   1185 			clients must set one if they desire.  To remove an
   1186 			existing priority use the ClearProperty method.
   1187 
   1188 		int32 PriorityWithinTechnology [readwrite]
   1189 
   1190 			An optional value used to calculate the priority order
   1191 			of this service.  Priorities are between 1 to 100.
   1192 			Services with priorities are sorted ahead of services
   1193 			without.  Services with the same priority are ordered
   1194 			by other means such as service type and signal
   1195 			strength, but notably not technology.  This property
   1196 			can be used instead of the Priority property when
   1197 			the intent is to rank the service relative to other
   1198 			services of the same technology.
   1199 
   1200 			By default services are not assigned a priority;
   1201 			clients must set one if they desire.  To remove an
   1202 			existing priority use the ClearProperty method.
   1203 
   1204 		string Profile [readwrite]
   1205 
   1206 			The object path of the associated Profile object.
   1207 			This may not be present or may be empty if the Service
   1208 			object has not been written to a profile yet.
   1209 
   1210 		string ProxyConfig [readwrite]
   1211 
   1212 			An externalized json dictionary describing the proxy
   1213                         configuration that can be stored on the service, and
   1214                         modified by a user.
   1215 			Flimflam does not use this information for anything,
   1216 			but it is left available to the caller, and stored
   1217 			persistently.
   1218 			This property may be set by any client and will be
   1219                         adopted by chrome during run-time.  If syntax of the
   1220                         value is wrong, chrome will ignore this property during
   1221                         runtime.
   1222                         The value of this property is a string -> string
   1223                         dictionary that includes the following keys. The final
   1224                         string is a comma separated list of key-value pairs
   1225                         enclosed by "{" and "}"; syntax of a key-value pair is:
   1226                         <key>":"<value>. Example:
   1227                         {"mode":"fixed-servers","server":"http=foopy:80"}
   1228 
   1229 			"mode"
   1230                             type of proxy that can be one of:
   1231                             "direct" --
   1232                               direct connection to network, other preferences
   1233                               are ignored
   1234                             "auto_detect" --
   1235                               try to retrieve a PAC script from
   1236                               http://wpad/wpad.dat or fall back to direct
   1237                               connection
   1238                             "pac_script" --
   1239                               try to retrieve PAC script specified for "pac_url"
   1240                               (see below) or fall back to direct connection
   1241                             "fixed_servers" --
   1242                               manual configuration of one or more servers
   1243                               to be used as proxy
   1244 
   1245 			"pac_url"
   1246                             URL for proxy .pac file (meaningful only if mode=
   1247                             pac_script); scheme of URL must be specified
   1248 
   1249 			"pac_mandatory"
   1250                             indciate if a valid PAC script is mandatory
   1251                             (meaningful only if mode=pac_script);
   1252                             value is either true or false (without quotes), e.g.
   1253                             "pac_mandatory":true;
   1254                             if true, network traffic does not fall back to
   1255                             direct connections in case the PAC script is not
   1256                             available
   1257 
   1258 			"server"
   1259                             proxy server for manual configuration (meaningful
   1260                             only if mode=fixed-servers); syntax is
   1261                             [<proxy-scheme>"://"]<proxy-host>[":"<proxy-port>];
   1262                             if the proxy to use depends on the scheme of the
   1263                             URL, specify a semicolon separated list of :
   1264                             <url-scheme>"="<proxy-uri>
   1265                             for example:
   1266                             - "http=foopy:80;ftp=foopy2" --
   1267                               use HTTP proxy "foopy:80" for http:// URLs, and
   1268                               HTTP proxy "foopy2:80" for ftp:// URLS
   1269                             - "foopy:80" -- use HTTP proxy "foopy:80" for all
   1270                               URLs
   1271                             - "socks4://foopy" --
   1272                               use SOCKS v4 proxy "foopy:80" for all URLs
   1273 
   1274 			"bypass_list"
   1275                             proxy bypass rules for manual configuration
   1276                             (meaningful only if mode=fixed-servers); format
   1277                             can be any one of the following:
   1278                             1) [<url_scheme>"://"]<hostname_pattern>[":"<port>]
   1279                                Match all hostnames that match the pattern
   1280                                hostname_pattern which can be a substring of the
   1281                                hostname with asterisks.
   1282                                Examples: "foobar.com", "*foobar.com",
   1283                                "*.foobar.com", "*foobar.com:99",
   1284                                "https://x.*.y.com:99"
   1285                             2) "."<hostname_suffix_pattern>[":"<port>]
   1286                                Match a particular domain suffix.
   1287                                Examples: ".google.com", ".com",
   1288                                "http://.google.com"
   1289                             3) [<scheme>"://"]<ip_literal>[":"<port>]
   1290                                Match URLs that are IP address literals.
   1291                                Conceptually this is the similar to (1), but with
   1292                                special cases to handle IP literal
   1293                                canonicalization. For example matching on
   1294                                "[0:0:0::1]" would be the same as matching on
   1295                                "[::1]" since the IPv6 canonicalization is done
   1296                                internally.
   1297                                Examples: "127.0.1", "[0:0::1]", "[::1]",
   1298                                "http://[::1]:99"
   1299                             4) <ip_literal>"/"<prefix_length_in_bits>
   1300                                Match any URL that is to an IP literal that falls
   1301                                in the given range. IP range is specified using
   1302                                CIDR notation.
   1303                                Examples: "192.168.1.1/16", "fefe:13::abc/33".
   1304                             5)  "<local>"
   1305                                 Match local addresses; this is a literal string.
   1306                                 "<local>" matches one of: "127.0.0.1", "::1",
   1307                                 "localhost".
   1308 
   1309 		dict Provider [readonly]
   1310 
   1311 			(VPN only) Provider data.  The Provider is a container
   1312 			which reports all of the VPN-specific properties of a
   1313 			service.
   1314 
   1315 			string Host [readonly]
   1316 				VPN host IP address.
   1317 			string Type [readonly]
   1318 				VPN provider type (e.g. openvpn).
   1319 
   1320 		string Provider.Host [writeonly]
   1321 
   1322 			(VPN only) Host name of the VPN server.  The current
   1323 			value of this property is readable in the "Provider"
   1324 			property of this service.
   1325 
   1326 		string Provider.Name [writeonly]
   1327 
   1328 			(VPN only) The name assigned to this VPN service.  The
   1329 			current value of this property is readable in the
   1330 			"Provider" property of this service.
   1331 
   1332 		string Provider.Type [writeonly]
   1333 
   1334 			(VPN only) The type of VPN service.  This value is
   1335 			only settable when creating this service (via the
   1336 			Manager GetService or ConfigureService methods).  The
   1337 			current value of this property is readable in the
   1338 			"Provider" property of this service.
   1339 
   1340 		boolean SaveCredentials [readwrite]
   1341 
   1342 			This property indicates if security credentials
   1343 			should be reused and/or written to stable storage.
   1344 			Setting this property to FALSE ensures nothing is
   1345 			recorded and the client must supply credentials
   1346 			for each Connect request.
   1347 
   1348 			The following credentials are not recorded when
   1349 			this property is set to FALSE:
   1350 
   1351 			Passphrase
   1352 			EAP.Identity
   1353 			EAP.AnonymousIdentity
   1354 			EAP.ClientCert
   1355 			EAP.CertID
   1356 			EAP.PrivateKey
   1357 			EAP.PrivateKeyPassword
   1358 			EAP.KeyID
   1359 			EAP.PIN
   1360 			EAP.Password
   1361 
   1362 			Note that no PropertyChanged signals are sent for
   1363 			this property.
   1364 
   1365 		string Security [readonly]
   1366 
   1367 			If the service type is "wifi", then this property is
   1368 			present and contains the security method or key
   1369 			management setting.
   1370 
   1371 			Possible values are: "none" (no privacy),
   1372 			"wep" (fixed key WEP), "wpa" (WPA-PSK), "rsn"
   1373 			(IEEE 802.11i-PSK), "psk" (either "wpa" or "rsn"),
   1374 			and "802_1x" (IEEE 802.11i with 802.1x authentication).
   1375 
   1376 			This property is only present for WiFi services.
   1377 
   1378 		string SecurityClass [readonly]
   1379 
   1380 			If the service type is "wifi", then this property is
   1381 			present and contains the security class of the service.
   1382 			The security class groups together WPA and WPA-2 networks,
   1383 			to allow for seamless roaming between them.
   1384 
   1385 			Possible values are: "none" (no privacy),
   1386 			"wep" (fixed key WEP), "psk" (WPA-PSK or IEEE 802.11i-PSK),
   1387 			and "802_1x" (IEEE 802.11i with 802.1x authentication).
   1388 
   1389 			This property is only present for WiFi services.
   1390 
   1391 		string State [readonly]
   1392 
   1393 			The state of the service; one of:
   1394 
   1395 			"idle"		The service is not enabled or otherwise
   1396 					operational.
   1397 
   1398 			"association"	Intermediate states associated with
   1399 					connection-based devices such as WiFi
   1400 					and Cellular.  These are exposed for
   1401 					UI applications to provide more
   1402 					fine-grained status.
   1403 
   1404 			"configuration"	Layer 2 is setup but Layer 3 setup
   1405 					has yet to completed.
   1406 
   1407 			"ready"		Layer 3 setup is complete; ready to
   1408 					transit and receive data.
   1409 
   1410 			"portal"	Layer 3 setup is complete but
   1411 					connectivity to the Internet may be
   1412 					limited or unavailable.
   1413 
   1414 			"online"	Layer 3 setup is complete and an
   1415 					Internet connection has been checked
   1416 					to support HTTP access to the
   1417 					Manager.PortalURL site.
   1418 
   1419 			"failure"	An error occurred while trying to
   1420 					reach the "ready" state. Consult the
   1421 					Error propery for details.
   1422 
   1423 		string StaticIP.Address [readwrite]
   1424 		string StaticIP.Gateway [readwrite]
   1425 		int32 StaticIP.Mtu [readwrite]
   1426 		string StaticIP.NameServers [readwrite]
   1427 		string StaticIP.PeerAddress [readwrite]
   1428 		int32 StaticIP.Prefixlen [readwrite]
   1429 
   1430 			[Deprecated] The properties above are deprecated in
   1431 			favor of StaticIPConfig property.
   1432 
   1433 			The properties above can be set on a service to
   1434 			selectively override individual parameters received
   1435 			over DHCP or whatever default IP aquisition technique
   1436 			is used by the service.  The "StaticIP.NameServers"
   1437 			property should be a comma-separated list of IP
   1438 			addresses.
   1439 
   1440 			Additionally, in services that use DHCP, if the
   1441 			"StaticIP.Address" and "StaticIP.Prefixlen"
   1442 			parameters are both set on a service, the service
   1443 			will be configured as soon as a link is established,
   1444 			in order to allow full static IP configuration.  A
   1445 			DHCP client will be launched in parallel, which, if
   1446 			successful, will provide values for any parameters
   1447 			that were not set statically.
   1448 
   1449 			The IPConfig associated with the service (object
   1450 			path supplied in the "IPConfig" property above)
   1451 			will display the result of the merged network
   1452 			parameters.
   1453 
   1454 		string SavedIP.Address [readonly]
   1455 		string SavedIP.Gateway [readonly]
   1456 		int32 SavedIP.Mtu [readonly]
   1457 		string SavedIP.NameServers [readonly]
   1458 		string SavedIP.PeerAddress [readonly]
   1459 		int32 SavedIP.Prefixlen [readonly]
   1460 
   1461 			[Deprecated] The properties above are deprecated in
   1462 			favor of SavedIPConfig property.
   1463 
   1464 			The properties above are set on a service to present
   1465 			the configuration that was recieved from the DHCP
   1466 			server prior to applying any "StaticIP.*" parameters
   1467 			during the most recent connection attempt.  All
   1468 			parameters are saved regardless of whether they were
   1469 			overridden.
   1470 
   1471 			Note that if a "StaticIP.*" parameter is set on
   1472 			a service, but the service has not been re-connected,
   1473 			the IPConfig object will still contain the true
   1474 			value that the interface is set to.
   1475 
   1476 		dict StaticIPConfig [readwrite]
   1477 
   1478 			A dictionary of static IP configuration parameters
   1479 			used to selectively override individual parameters
   1480 			received over DHCP or whatever default IP aquisition
   1481 			technique is used by the service.
   1482 
   1483 			Additionally, in services that use DHCP, if the
   1484 			"Address" and "Prefixlen" fields are both set in the
   1485 			dictionary, the service will be configured as soon as
   1486 			a link is established, in order to allow full static
   1487 			IP configuration.  A DHCP client will be launched in
   1488 			parallel, which, if successful, will provide values for
   1489 			any parameters that were not set statically.
   1490 
   1491 			The IPConfig associated with the service (object
   1492 			path supplied in the "IPConfig" property above)
   1493 			will display the result of the merged network
   1494 			parameters.
   1495 
   1496 			Here are the expected keys within the dict:
   1497 				string Address
   1498 				string Gateway
   1499 				int32 Mtu
   1500 				array{string} NameServers
   1501 				string PeerAddress
   1502 				int32 Prefixlen
   1503 
   1504 		dict SavedIPConfig [readonly]
   1505 
   1506 			This property present a dictionary of the IP config
   1507 			that was received from the DHCP server prior to
   1508 			applying any static IP parameters during the most
   1509 			recent connection attempt. All parameters are saved
   1510 			regardless of whether they were overridden.
   1511 
   1512 			Note that if a static IP parameter is set on
   1513 			a service, but the service has not been re-connected,
   1514 			the IPConfig object will still contain the true
   1515 			value that the interface is set to.
   1516 
   1517 			Here are the expected keys within the dict:
   1518 				string Address
   1519 				string Gateway
   1520 				int32 Mtu
   1521 				array{string} NameServers
   1522 				string PeerAddress
   1523 				int32 Prefixlen
   1524 
   1525 		uint8 Strength [readonly]
   1526 
   1527 			Indicates the signal strength of the service. This
   1528 			is a normalized value between 0 and 100.
   1529 
   1530 			This property will not be present for Ethernet
   1531 			devices.
   1532 
   1533 		string Tethering [readonly]
   1534 
   1535 			Returns a string that indicates an estimate of
   1536 			whether the service is likely to be providing
   1537 			internet connectivity over a mobile network backhaul.
   1538 			The possible values of this string are:
   1539 
   1540 				NotDetected: Tethering is not detected.
   1541 				Suspected: Something in the network scan
   1542 					provides circumstantial evidence
   1543 					that this service is tethered.
   1544 				Confirmed: Some definitive evidence has
   1545 					been discovered that indicates
   1546 					either this service is tethered
   1547 					or the server is overtly pretending
   1548 					to be tethered.
   1549 
   1550 			This property is only visible in service types
   1551 			which can support tethering.  Currently only
   1552 			Ethernet and WiFi services support this property
   1553 			directly.  VPN services make this property visible
   1554 			if the service they're using for connectivity does
   1555 			(i.e., if VPN connectivity is gained via Ethernet
   1556 			or WiFi).
   1557 
   1558 		string Type [readonly]
   1559 
   1560 			The service type; one of:
   1561 			  "ethernet"    (802.3 wired Ethernet),
   1562 			  "wifi"        (IEEE 802.11),
   1563 			  "wimax"       (IEEE 802.16),
   1564 			  "bluetooth"   (Bluetooth PAN),
   1565 			  "cellular"    (3G Cellular), or
   1566 			  "vpn"         (Virtual Private Network).
   1567 
   1568 			This information should only be used to determine
   1569 			advanced properties or showing the correct icon
   1570 			to the user.
   1571 
   1572 		string UIData [readwrite]
   1573 
   1574 			This is additional data available about this service
   1575 			for use by the user interface.  This value is opaque
   1576 			and not used by shill.
   1577 
   1578 		bool Visible [readonly]
   1579 
   1580 			WiMax and WiFi services list all services for which
   1581 			configuration exists in the manager's
   1582 			ServiceCompleteList.  Those service types have this
   1583 			property set to false if such a configured service
   1584 			is not actually in range.  For all other services
   1585 			(including all other service types) this property
   1586 			is always true.
   1587 
   1588 		string WiFi.AuthMode [readonly]
   1589 
   1590 			(WiFi only) If the service state is
   1591 			"configuration" or "ready", then this property
   1592 			will be present and contains the negotiated
   1593 			authentication method.
   1594 
   1595 			There are too many possible values to enumerate here.
   1596 			The complete set depends on the capabilities of the
   1597 			associated WiFi supplicant.
   1598 
   1599 		string WiFi.BSSID [readonly]
   1600 
   1601 			(WiFi only) The BSSID of the associated AP.
   1602 			One can monitor this property for PropertyChanged
   1603 			signals to identify when roaming changes the
   1604 			current AP.
   1605 
   1606 			The BSSID is formatted as colon-separated octets.
   1607 			E.g. "00:01:02:03:04:05".
   1608 
   1609 		boolean WiFi.HiddenSSID [readwrite]
   1610 
   1611 			(WiFi only) If true, the associated WiFi network
   1612 			does not broadcast its SSID in beacon frames.
   1613 			This property instructs shill to actively scan
   1614 			for this SSID.  This value is cleared when this
   1615 			service is removed from all active profiles.
   1616 
   1617 		uint16 WiFi.Frequency [readonly]
   1618 
   1619 			(WiFi only) The operating frequency in MHz of
   1620 			the Service. If the Service is connected, this
   1621 			is the frequency on which it is connected.
   1622 			Otherwise, this is the frequency of the best
   1623 			available BSS (roughly, AP) for this Service.
   1624 
   1625 		array{uint16} WiFi.FrequencyList [readonly]
   1626 
   1627 			(WiFi only) The operating frequencies in MHz of
   1628 			the Service. This lists all of the frequencies
   1629 			where this Service has recently been seen.
   1630 
   1631 			This list is not necessarily complete, as:
   1632 			a) not all scans check every channel,
   1633 			b) an AP may not have responded in time, and
   1634 			c) some scan results may have expired from the
   1635                            cache.
   1636 
   1637 		string WiFi.PhyMode [readonly]
   1638 
   1639 			(WiFi only) If the service state is
   1640 			"configuration" or "ready", then this property
   1641 			will be present and contains the negotiated
   1642 			operating mode for the channel.  Possible values
   1643 			include "802.11a", "802.11b", "802.11g",
   1644 			"802.11n".  This value is for informational
   1645 			purposes only.
   1646 
   1647 		string WiFi.HexSSID [readonly]
   1648 
   1649 			(WiFi only) This property holds a hex-encoded copy
   1650 			of the SSID.  Since the Name property is enforced
   1651 			by the D-Bus protocol to be a valid UTF-8 string
   1652 			but SSIDs can be an abitrary sequence of bytes, this
   1653 			property will always contain the true value of the
   1654 			SSID, while the Name property may differ from the
   1655 			true representation.
   1656 
   1657 			See also the Name property. (Note that there is
   1658 			no SSID property for reasons explained above.)
   1659 
   1660 		string WiFi.SSID [readonly]
   1661 
   1662 			(WiFi only) The service's SSID. Must have a non-zero
   1663 			length less than or equal to 32.
   1664 
   1665 		bool WiFi.ProtectedManagementFrameRequired [readonly]
   1666 
   1667 			(WiFi only) This property indicates whether an AP for
   1668 			this service has been seen that requires 802.11w
   1669 			(Protected Management Frame) support.
   1670 
   1671 		dict WiFi.VendorInformation [readonly]
   1672 
   1673 			(WiFi only) Information about the vendor of the
   1674 			AP, gleaned from WPS and vendor-specific information
   1675 			elements in the beacon and probe respondss.
   1676 
   1677 			string Manufacturer [readonly]
   1678 				Device manufacturer name as supplied by WPS IE.
   1679 			string ModelName [readonly]
   1680 				Device model name as supplied by WPS IE.
   1681 			string ModelNumber [readonly]
   1682 				Device model number as supplied by WPS IE.
   1683 			string DeviceName [readonly]
   1684 				Device name as supplied by WPS IE.
   1685 			string OUIList [readonly]
   1686 				Space separated list of OUI identifiers for
   1687 				vendor-specific IEs that were neither the
   1688 				Microsoft nor Epigram identifiers (the former
   1689 				two are used for platform-neutral information).
   1690 
   1691 		uint16 WiFi.RoamThreshold [readwrite]
   1692 
   1693 			(WiFi only) The roam threshold is the AP
   1694 			signal-to-noise value (in dB) below which
   1695 			wpa_supplicant will attempt to roam to a new AP.
   1696 			This per-service RoamThreshold property overrides
   1697 			the WiFi device-wide RoamThreshold set through the
   1698 			device DBus API. Changes to this property will only
   1699 			take effect on the next time the WiFi device connects
   1700 			to this service.
   1701