Agent Manager hierarchy ======================= Service net.connman.iwd Interface net.connman.iwd.AgentManager Object path /net/connman/iwd Methods void RegisterAgent(object path) Register new agent for handling user secrets requests. The agent object's methods on the net.connman.iwd.Agent interface will be called when IWD needs to request credentials for a connection to a network in station mode. Possible Errors: [service].InvalidArguments [service].Failed [service].AlreadyExists void UnregisterAgent(object path) Unregister an existing agent. Possible Errors: [service].InvalidArguments [service].Failed [service].NotFound void RegisterNetworkConfigurationAgent(object path) Register the agent for handling IPv4 and IPv6 configuration setting. This method and its corresponding unregister method are only supported if network configuration is enabled: see EnableNetworkConfiguration in iwd.config(5) and NetworkConfigurationEnabled in net.connman.iwd.Daemon.GetInfo in daemon-api.txt. During a station-mode, AP-mode or P2P connection, IWD will obtain the IP configuration values for a network interface, either automatically from a remote server (DHCP or otherwise), generate it or read it from a settings file. If no network configuration agent is present, IWD immediately writes (commits) those values to the corresponding interface, the routing table and communicates them to the resolver. If such agent is registered, IWD requests the agent to do this last step. Connection success is not signalled until the agent method has returned. The agent may also be invoked during the connection lifetime whenever the IP configuration changes and after a roam. The agent object must have the NetworkConfigurationAgent interface. Possible Errors: [service].InvalidArguments [service].Failed [service].AlreadyExists [service].NotSupported void UnregisterNetworkConfigurationAgent(object path) Unregister an existing network configuration agent. Possible Errors: [service].InvalidArguments [service].Failed [service].NotFound [service].NotAvailable Agent hierarchy =============== Service unique name Interface net.connman.iwd.Agent Object path freely definable Methods void Release() [noreply] This method gets called when the service daemon unregisters the agent. An agent can use it to do cleanup tasks. There is no need to unregister the agent, because when this method gets called it has already been unregistered. string RequestPassphrase(object network) This method gets called when trying to connect to a network and passphrase is required. Possible Errors: net.connman.iwd.Agent.Error.Canceled string RequestPrivateKeyPassphrase(object network) This method gets called when connecting to a network that requires authentication using a locally-stored encrypted private key file, to obtain that private key's encryption passphrase. Possible Errors: net.connman.iwd.Agent.Error.Canceled (string, string) RequestUserNameAndPassword(object network) This method gets called when connecting to a network that requires authentication using a user name and password. Possible Errors: net.connman.iwd.Agent.Error.Canceled string RequestUserPassword(object network, string user) This method gets called when connecting to a network that requires authentication with a user password. The user name is optionally passed in the parameter. Possible Errors: net.connman.iwd.Agent.Error.Canceled void Cancel(string reason) [noreply] This method gets called to indicate that the agent request failed before a reply was returned. The argument will indicate why the request is being cancelled and may be "out-of-range", "user-canceled", "timed-out" or "shutdown". Examples Requesting a passphrase for WPA2 network RequestPassphrase("/net/connman/iwd/0/3/54657374_psk") ==> "secret123" NetworkConfigurationAgent hierarchy [experimental] =================================== Service unique name Interface net.connman.iwd.NetworkConfigurationAgent Object path freely definable Methods void Release() [noreply] This method gets called when the service daemon unregisters the agent. An agent can use it to do cleanup tasks. There is no need to unregister the agent, because when this method gets called it has already been unregistered. void ConfigureIPv4(object device, dict config) This method gets called during connection setup and later while the connection is operational whenever a new set of IPv4 configuration values is to be written to a network interface. The connection is aborted if the method call returns an error or times out. In case of a station-mode connection, the 'device' parameter points at an object with a net.connman.iwd.Device interface whose Name property contains the name of network interface. In case of a P2P connection, the object will have a net.connman.iwd.p2p.Peer interface whose ConnectectedInterface property contains the name of the target network interface. The 'config' dictionary (a{sv}) maps string keys to values of types defined per key. Each call receives the full set of values which supersede those from previous calls. The following key/value pairs are defined, but more may be added in future versions. string Method - Indicates whether the local address was set statically (value "static") or obtained automatically such as through DHCP (value "auto"). Even when addresses were obtained from the remote end some configuration bits, such as DNS addresses, may have been overridden locally. array(dict) Addresses - Local IP addresses. Each address is described by a set of key/value properties as documented further down. array(dict) Routes - Routes for on-link and off-link prefixes/subnets and default routers. Each route is described by a set of key/value properties as documented further down. array(string) DomainNameServers [optional] - Holds the list of DNS server addresses configured if any exist. array(string) DomainNames [optional] - Holds the network's local domain names if any exist. string MDNS [optional] - One of "true", "false" and "resolve". Controls whether Multicast DNS support is to be enabled on the link. When set to "resolve", only resolution is enabled, but not host or service registration and announcement (see systemd.network(5).) The following properties are defined for local addresses, but more may be added in the future: string Address - Holds the IP address string. byte PrefixLength [optional] - Prefix length associated with the address's subnet (IPv4 only). string Broadcast [optional] - Broadcast address associated with the address's subnet (IPv4 only). uint32 ValidLifetime [optional] - Remaining validity and ownership time for this address assignment/lease, in seconds at the time of the method call. If absent the address doesn't expire. uint32 PreferredLifetime [optional] - Number of seconds left at the time of the method call for this address to be preferred over other addresses. The following properties are defined for routes, but more may be added in the future: string, byte Destination [optional] - Holds the route's destination IP prefix string and the prefix length in bits. Absent for default routes. string Router [optional] - Holds the router's IP address. Absent for on-link routes. string PreferredSource [optional] - Route source IP address. uint32 Lifetime [optional] - Remaining route validity time in seconds at the time of the method call. If absent the route doesn't expire. uint32 Priority - Relative route priority. byte Preference [optional] - ICMPv6 route preference: 0 for medium, 1 for high and 3 for low. uint32 MTU [optional] - Router MTU. Possible Errors: net.connman.iwd.Agent.Error.Canceled net.connman.iwd.Agent.Error.Failed void ConfigureIPv6(object device, dict config) Same as ConfigureIPv4 above but for IPv6. void CancelIPv4(object device, string reason) [noreply] This method gets called to indicate that the network configuration was aborted before a reply was received for an ongoing ConfigureIPv4 or ConfigureIPv6 call. The last argument will indicate why the request is being cancelled and may be one of: "aborted", "superseded", "timed-out". void CancelIPv6(object device, string reason) [noreply] Same as CancelIPv4 above but for IPv6.