Connman configuration file format
*********************************

Connman uses configuration files to provision existing services. Connman will
be looking for its configuration files at STORAGEDIR which by default points
to /var/lib/connman/. Configuration file names must not include other
characters than letters or numbers and must have a .config suffix.
Those configuration files are text files with a simple key-value pair format,
organized into sections. Values do not comprise leading or trailing whitespace.
We typically have one file per provisioned network.

If the config file is removed, then Connman tries to remove the
provisioned services. If an individual service inside a config is removed,
then the corresponding provisioned service is removed. If a service section
is changed, then the corresponding service is removed and immediately
re-provisioned.


Global section [global]
=======================

These files can have an optional global section describing the actual file.
The two allowed fields for this section are:
- Name: Name of the network.
- Description: Description of the network.


Service sections [service_*]
============================

Each provisioned service must start with the [service_*] tag. Replace * with
an identifier unique to the config file.

Allowed fields:
- Type: Service type. We currently only support wifi and ethernet.
- IPv4: The IPv4 address, netmask and gateway. Format of the entry
  is network/netmask/gateway. The mask length can be used instead
  of netmask. The gateway can be omitted if necessary.
  The IPv4 field can also contain the string "off" or "dhcp".
  If the setting is "off", then no IPv4 address is set to the interface.
  If the setting is "dhcp", then DHCPv4 address resolution is activated.
  Example: 192.168.1.2/24/192.168.1.1
           192.168.200.100/255.255.255.0/192.168.200.1
           10.0.0.2/24
- IPv6: The IPv6 address, prefix length and gateway. Format of the entry
  is network/prefixlen/gateway. For IPv6 addresses only prefix length is
  accepted. The gateway can be omitted if necessary.
  The IPv6 field can also contain the string "off" or "auto".
  If the setting is "off", then no IPv6 address is set to the interface.
  If the setting is "auto", then SLAAC or DHCPv6 is used.
  Example: 2001:db8::2/64/2001:db8::1
           2001:db8::1:2:3:4/64
- IPv6.Privacy: IPv6 privacy option. Value can be either "disabled",
  "enabled" or "preferred" (or the misspelled "prefered"). See use_tempaddr
  variable description in Linux kernel Documentation/networking/ip-sysctl.txt
  file.
- MAC: MAC address of the interface where this setting should be applied.
  The MAC address is optional and if it is missing, then the first found
  interface is used. The byte values must have prefix 0 added,
  the bytes must be separated by ":" char and its length must be
  exactly 2 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 2 = 17 characters.
- Nameservers: Comma separated list of nameservers
- SearchDomains: Comma separated list of DNS search domains
- Timeservers: Comma separated list of timeservers
- Domain: Domain name to be used

If IPv4 address is missing then DHCP is used. If IPv6 address is missing,
then SLAAC or DHCPv6 is used.

The following options are valid if Type is "wifi"
- Name: A string representation of an 802.11 SSID. If the SSID field is
  present, the Name field is ignored.
- SSID: A hexadecimal representation of an 802.11 SSID. Use this format to
  encode special characters including starting or ending spaces. If the SSID
  field is omitted, the Name field is used instead.
- EAP: EAP type. We currently only support tls, ttls or peap.
- CACertFile: File path to CA certificate file (PEM/DER).
- ClientCertFile: File path to client certificate file (PEM/DER).
- PrivateKeyFile: File path to client private key file (PEM/DER/PFX).
- PrivateKeyPassphrase: Password/passphrase for private key file.
- PrivateKeyPassphraseType: We only support the fsid passphrase type for now.
  This is for private keys generated by using their own filesystem UUID as the
  passphrase. The PrivateKeyPassphrase field is ignored when this field is set
  to fsid.
- Identity: Identity string for EAP.
- Phase2: Phase2 (inner authentication with TLS tunnel) authentication method.
  Prefix the value with "EAP-" to indicate the usage of an EAP-based inner
  authentication method (should only be used with EAP = TTLS).
- Passphrase: RSN/WPA/WPA2 Passphrase
- Security: The security type of the network. Possible values are 'psk'
  (WPA/WPA2 PSK), 'ieee8021x' (WPA EAP), 'none' and 'wep'. When not set, the
  default value is 'ieee8021x' if an EAP type is configured, 'psk' if a
  passphrase is present and 'none' otherwise.
- Hidden: If set to true, then this AP is hidden. If missing or set to false,
  then AP is not hidden.


Examples
========

This is a configuration file for a network providing EAP-TLS, EAP-TTLS and
EAP-PEAP services. The respective SSIDs are tls_ssid, ttls_ssid and peap_ssid
and the file name is example.config.

Please note that the SSID entry is for hexadecimal encoded SSID (e.g. "SSID =
746c735f73736964"). If your SSID does not contain any exotic character then
you should use the Name entry instead (e.g. "Name = tls_ssid").

example@example:[~]$ cat /var/lib/connman/example.config
[global]
Name = Example
Description = Example network configuration

[service_tls]
Type = wifi
SSID = 746c735f73736964
EAP = tls
CACertFile = /home/user/.certs/ca.pem
ClientCertFile = /home/user/devlp/.certs/client.pem
PrivateKeyFile = /home/user/.certs/client.fsid.pem
PrivateKeyPassphraseType = fsid
Identity = user

[service_ttls]
Type = wifi
Name = ttls_ssid
EAP = ttls
CACertFile = /home/user/.cert/ca.pem
Phase2 = MSCHAPV2
Identity = user

[service_peap]
Type = wifi
Name = peap_ssid
EAP = peap
CACertFile = /home/user/.cert/ca.pem
Phase2 = MSCHAPV2
Identity = user

[service_home_ethernet]
Type = ethernet
IPv4 = 192.168.1.42/255.255.255.0/192.168.1.1
IPv6 = 2001:db8::42/64/2001:db8::1
MAC = 01:02:03:04:05:06
Nameservers = 10.2.3.4,192.168.1.99
SearchDomains = my.home,isp.net
Timeservers = 10.172.2.1,ntp.my.isp.net
Domain = my.home

[service_home_wifi]
Type = wifi
Name = my_home_wifi
Passphrase = secret
IPv4 = 192.168.2.2/255.255.255.0/192.168.2.1
MAC = 06:05:04:03:02:01
