2009-12-26 18:54:24 +01:00
/**
\page dbus %wpa_supplicant D-Bus API
This section documents the %wpa_supplicant D-Bus API. Every D-Bus
interface implemented by %wpa_supplicant is described here including
their methods, signals, and properties with arguments, returned
values, and possible errors.
Interfaces:
- \ref dbus_main
- \ref dbus_interface
- \ref dbus_wps
- \ref dbus_bss
- \ref dbus_network
\section dbus_main fi.w1.wpa_supplicant1
Interface implemented by the main %wpa_supplicant D-Bus object
registered in the bus with fi.w1.wpa_supplicant1 name.
\subsection dbus_main_methods Methods
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>CreateInterface ( a{sv} : args ) --> o : interface</h3>
<p>Registers a wireless interface in %wpa_supplicant.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : args</dt>
<dd>
A dictionary with arguments used to add the interface to %wpa_supplicant. The dictionary may contain the following entries:
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
<tr><td>Ifname</td><td>s</td><td>Name of the network interface to control, e.g., wlan0</td><td>Yes</td>
2014-12-28 16:05:11 +01:00
<tr><td>BridgeIfname</td><td>s</td><td>Name of the bridge interface to control, e.g., br0</td><td>No</td>
2009-12-26 18:54:24 +01:00
<tr><td>Driver</td><td>s</td><td>Driver name which the interface uses, e.g., nl80211</td><td>No</td>
2014-12-28 16:05:11 +01:00
<tr><td>ConfigFile</td><td>s</td><td>Configuration file path</td><td>No</td>
2009-12-26 18:54:24 +01:00
</table>
</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>o : interface</dt>
<dd>A D-Bus path to object representing created interface</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InterfaceExists</dt>
<dd>%wpa_supplicant already controls this interface.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Creating interface failed for an unknown reason.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>Invalid entries were found in the passed argument.</dd>
</dl>
</li>
<li>
<h3>RemoveInterface ( o : interface ) --> nothing</h3>
<p>Deregisters a wireless interface from %wpa_supplicant.</p>
<h4>Arguments</h4>
<dl>
<dt>o : interface</dt>
<dd>A D-Bus path to an object representing an interface to remove returned by CreateInterface</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
<dd>Object pointed by the path doesn't exist or doesn't represent an interface.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Removing interface failed for an unknown reason.</dd>
</dl>
</li>
<li>
<h3>GetInterface ( s : ifname ) --> o : interface</h3>
<p>Returns a D-Bus path to an object related to an interface which %wpa_supplicant already controls.</p>
<h4>Arguments</h4>
<dl>
<dt>s : ifname</dt>
<dd>Name of the network interface, e.g., wlan0</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>o : interface</dt>
<dd>A D-Bus path to an object representing an interface</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
<dd>An interface with the passed name in not controlled by %wpa_supplicant.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Getting an interface object path failed for an unknown reason.</dd>
</dl>
</li>
</ul>
\subsection dbus_main_properties Properties
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
2010-01-04 15:22:26 +01:00
<h3>DebugLevel - s - (read/write)</h3>
2010-01-01 22:17:07 +01:00
<p>Global %wpa_supplicant debugging level. Possible values are
2010-01-04 15:22:26 +01:00
"msgdump" (verbose debugging), "debug" (debugging),
"info" (informative), "warning" (warnings), and "error" (errors).</p>
2010-01-01 12:00:22 +01:00
</li>
<li>
<h3>DebugTimestamp - b - (read/write)</h3>
2010-01-01 22:17:07 +01:00
<p>Global %wpa_supplicant debugging parameter. Determines if timestamps are shown in debug logs.</p>
2010-01-01 12:00:22 +01:00
</li>
<li>
<h3>DebugShowKeys - b - (read/write)</h3>
2010-01-01 22:17:07 +01:00
<p>Global %wpa_supplicant debugging parameter. Determines if secrets are shown in debug logs.</p>
2009-12-26 18:54:24 +01:00
</li>
<li>
<h3>Interfaces - ao - (read)</h3>
<p>An array with paths to D-Bus objects representing controlled interfaces each.</p>
</li>
<li>
<h3>EapMethods - as - (read)</h3>
<p>An array with supported EAP methods names.</p>
</li>
2014-12-28 17:07:09 +01:00
<li>
<h3>Capabilities - as - (read)</h3>
<p>An array with supported capabilities (e.g., "ap", "ibss-rsn", "p2p", "interworking").</p>
</li>
2009-12-26 18:54:24 +01:00
</ul>
\subsection dbus_main_signals Signals
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
2010-01-01 11:47:59 +01:00
<h3>InterfaceAdded ( o : interface, a{sv} : properties )</h3>
2009-12-26 18:54:24 +01:00
<p>A new interface was added to %wpa_supplicant.</p>
<h4>Arguments</h4>
<dl>
<dt>o : interface</dt>
<dd>A D-Bus path to an object representing the added interface</dd>
</dl>
2010-01-01 11:47:59 +01:00
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary containing properties of added interface.</dd>
</dl>
2009-12-26 18:54:24 +01:00
</li>
<li>
<h3>InterfaceRemoved ( o : interface )</h3>
<p>An interface was removed from %wpa_supplicant.</p>
<h4>Arguments</h4>
<dl>
<dt>o : interface</dt>
<dd>A D-Bus path to an object representing the removed interface</dd>
</dl>
</li>
<li>
<h3>PropertiesChanged ( a{sv} : properties )</h3>
<p>Some properties have changed.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "DebugParams"</dd>
</dl>
</li>
</ul>
\section dbus_interface fi.w1.wpa_supplicant1.Interface
Interface implemented by objects related to network interface added to
%wpa_supplicant, i.e., returned by
fi.w1.wpa_supplicant1.CreateInterface.
\subsection dbus_interface_methods Methods
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>Scan ( a{sv} : args ) --> nothing</h3>
<p>Triggers a scan.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : args</dt>
<dd>
A dictionary with arguments describing scan type:
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
<tr><td>Type</td><td>s</td><td>Type of the scan. Possible values: "active", "passive"</td><td>Yes</td>
<tr><td>SSIDs</td><td>aay</td><td>Array of SSIDs to scan for (applies only if scan type is active)</td><td>No</td>
<tr><td>IEs</td><td>aay</td><td>Information elements to used in active scan (applies only if scan type is active)</td><td>No</td>
<tr><td>Channels</td><td>a(uu)</td><td>Array of frequencies to scan in form of (center, width) in MHz.</td><td>No</td>
2013-10-22 22:35:45 +02:00
<tr><td>AllowRoam</td><td>b</td><td>TRUE (or absent) to allow a roaming decision based on the results of this scan, FALSE to prevent a roaming decision.</td><td>No</td>
2009-12-26 18:54:24 +01:00
</table>
</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>Invalid entries were found in the passed argument.</dd>
</dl>
</li>
<li>
<h3>Disconnect ( ) --> nothing</h3>
<p>Disassociates the interface from current network.</p>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.NotConnected</dt>
2009-12-26 18:54:24 +01:00
<dd>Interface is not connected to any network.</dd>
</dl>
</li>
<li>
<h3>AddNetwork ( a{sv} : args ) --> o : network</h3>
<p>Adds a new network to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : args</dt>
<dd>A dictionary with network configuration. Dictionary entries are equivalent to entries in the "network" block in %wpa_supplicant configuration file. Entry values should be appropriate type to the entry, e.g., an entry with key "frequency" should have value type int.</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing a configured network</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>Invalid entries were found in the passed argument.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Adding network failed for an unknown reason.</dd>
</dl>
</li>
<li>
<h3>RemoveNetwork ( o : network ) --> nothing</h3>
<p>Removes a configured network from the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
</dl>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
2009-12-26 18:54:24 +01:00
<dd>A passed path doesn't point to any network object.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>A passed path doesn't point to any network object.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Removing network failed for an unknown reason.</dd>
</dl>
</li>
2014-12-28 19:15:56 +01:00
<li>
<h3>RemoveAllNetworks ( ) --> nothing</h3>
<p>Remove all configured networks from the interface.</p>
</li>
2009-12-26 18:54:24 +01:00
<li>
<h3>SelectNetwork ( o : network ) --> nothing</h3>
<p>Attempt association with a configured network.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
</dl>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
2009-12-26 18:54:24 +01:00
<dd>A passed path doesn't point to any network object.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>A passed path doesn't point to any network object.</dd>
</dl>
</li>
2014-04-04 15:49:53 +02:00
<li>
<h3>Reassociate ( ) --> nothing</h3>
<p>Attempt reassociation.</p>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InterfaceDisabled</dt>
<dd>The interface is disabled.</dd>
</dl>
</li>
2014-12-28 18:56:36 +01:00
<li>
<h3>Reattach ( ) --> nothing</h3>
<p>Attempt reassociation back to the current BSS.</p>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.NotConnected</dt>
<dd>Interface is not connected to any network.</dd>
</dl>
</li>
2009-12-26 18:54:24 +01:00
<li>
<h3>AddBlob ( s : name, ay : data ) --> nothing</h3>
<p>Adds a blob to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : name</dt>
<dd>A name of a blob</dd>
<dt>ay : data</dt>
<dd>A blob data</dd>
</dl>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.BlobExists</dt>
2009-12-26 18:54:24 +01:00
<dd>A blob with the specified name already exists.</dd>
</dl>
</li>
<li>
<h3>RemoveBlob ( s : name ) --> nothing</h3>
<p>Removes the blob from the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : name</dt>
<dd>A name of the blob to remove</dd>
</dl>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
2009-12-26 18:54:24 +01:00
<dd>A blob with the specified name doesn't exist.</dd>
</dl>
</li>
<li>
<h3>GetBlob ( s : name ) --> ay : data</h3>
<p>Returns the blob data of a previously added blob.</p>
<h4>Arguments</h4>
<dl>
<dt>s : name</dt>
<dd>A name of the blob</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>ay : data</dt>
<dd>A blob data</dd>
</dl>
<h4>Possible errors</h4>
<dl>
2010-01-09 10:40:15 +01:00
<dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
2009-12-26 18:54:24 +01:00
<dd>A blob with the specified name doesn't exist.</dd>
</dl>
</li>
2012-06-26 18:05:09 +02:00
<li>
<h3>AutoScan ( s : arg ) --> nothing</h3>
<p>Set autoscan parameters for the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : arg</dt>
<dd>Autoscan parameter line or empty to unset autoscan.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.NoMemory</dt>
<dd>Needed memory was not possible to get allocated.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>Invalid entries were found in the passed argument.</dd>
</dl>
2013-04-23 16:57:55 +02:00
</li>
2013-11-18 23:31:25 +01:00
<li>
<h3>TDLSDiscover ( s : peer_address ) --> nothing</h3>
<p>Initiate a TDLS discovery for a peer.</p>
<h4>Arguments</h4>
<dl>
<dt>s : peer_address</dt>
<dd>MAC address for the peer to perform TDLS discovery.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>The "peer_address" argument is not a properly formatted MAC.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Initiating the TDLS operation failed for an unknown reason.</dd>
</dl>
</li>
<li>
<h3>TDLSSetup ( s : peer_address ) --> nothing</h3>
<p>Setup a TDLS session for a peer.</p>
<h4>Arguments</h4>
<dl>
<dt>s : peer_address</dt>
<dd>MAC address for the peer to perform TDLS setup.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>The "peer_address" argument is not a properly formatted MAC.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Initiating the TDLS operation failed for an unknown reason.</dd>
</dl>
</li>
<li>
<h3>TDLSStatus ( s : peer_address ) --> s</h3>
<p>Return TDLS status with respect to a peer.</p>
<h4>Arguments</h4>
<dl>
<dt>s : peer_address</dt>
<dd>MAC address for the peer for which status is requested.</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>s : status</dt>
<dd>Current status of the TDLS link with the selected peer.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>The "peer_address" argument is not a properly formatted MAC.</dd>
</dl>
</li>
<li>
<h3>TDLSTeardown ( s : peer_address ) --> nothing</h3>
<p>Tear down a TDLS session with a peer.</p>
<h4>Arguments</h4>
<dl>
<dt>s : peer_address</dt>
<dd>MAC address for the peer to tear down TDLS connectivity with.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>The "peer_address" argument is not a properly formatted MAC.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Initiating the TDLS operation failed for an unknown reason.</dd>
</dl>
</li>
2013-04-23 16:57:55 +02:00
<li>
<h3>EAPLogoff ( ) --> nothing</h3>
<p>IEEE 802.1X EAPOL state machine logoff.</p>
</li>
<li>
<h3>EAPLogon ( ) --> nothing</h3>
<p>IEEE 802.1X EAPOL state machine logon.</p>
</li>
2013-11-23 09:38:07 +01:00
2014-12-28 20:45:21 +01:00
<li>
<h3>NetworkReply ( o : network, s : field, s : value ) --> nothing</h3>
<p>Provide parameter requested by NetworkRequest().</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing the network (copied from NetworkRequest()).</dd>
<dt>s : field</dt>
<dd>Requested information (copied from NetworkRequest()).</dd>
<dt>s : value</dt>
<dd>The requested information (e.g., password for EAP authentication).</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
<dd>A passed path doesn't point to any network object.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>A passed path doesn't point to any network object.</dd>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>IEEE 802.1X support was not included in the build.</dd>
</dl>
</li>
2013-11-23 09:38:07 +01:00
<li>
<h3>SetPKCS11EngineAndModulePath ( s : pkcs11_engine_path, s : pkcs11_module_path ) --> nothing</h3>
<p>Set PKCS #11 engine and module path.</p>
<h4>Arguments</h4>
<dl>
<dt>s : pkcs11_engine_path</dt>
<dd>PKCS #11 engine path.</dd>
<dt>s : pkcs11_module_path</dt>
<dd>PKCS #11 module path.</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>org.freedesktop.DBus.Error.Failed.InvalidArgs</dt>
<dd>Invalid PKCS #11 engine or module path.</dd>
<dt>org.freedesktop.DBus.Error.Failed</dt>
<dd>Reinit of the EAPOL state machine with the new PKCS #11 engine and module path failed.</dd>
</dl>
</li>
2014-12-28 18:30:26 +01:00
<li>
<h3>SignalPoll ( ) --> a{sv} : properties</h3>
<p>Fetch signal properties for the current connection.</p>
<h4>Returns</h4>
<dl>
<dt>a{sv} : properties</dt>
<dd>
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
<tr><td>linkspeed</td><td>i</td><td>Link speed (Mbps)</td><td>No</td>
<tr><td>noise</td><td>i</td><td>Noise (dBm)</td><td>No</td>
<tr><td>width</td><td>s</td><td>Channel width</td><td>No</td>
<tr><td>frequency</td><td>u</td><td>Frequency (MHz)</td><td>No</td>
<tr><td>rssi</td><td>i</td><td>RSSI (dBm)</td><td>No</td>
<tr><td>avg-rssi</td><td>i</td><td>Average RSSI (dBm)</td><td>No</td>
<tr><td>center-frq1</td><td>i</td><td>VHT segment 1 frequency (MHz)</td><td>No</td>
<tr><td>center-frq2</td><td>i</td><td>VHT segment 2 frequency (MHz)</td><td>No</td>
</table>
</dd>
</dl>
</li>
2014-12-28 20:00:06 +01:00
<li>
<h3>FlushBSS ( u : age ) --> nothing</h3>
<p>Flush BSS entries from the cache.</p>
<h4>Arguments</h4>
<dl>
<dt>u : age</dt>
<dd>Maximum age in seconds for BSS entries to keep in cache (0 = remove all entries).</dd>
</dl>
</li>
2009-12-26 18:54:24 +01:00
</ul>
\subsection dbus_interface_properties Properties
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>Capabilities - a{sv} - (read)</h3>
<p>Capabilities of the interface. Dictionary contains following entries:</p>
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th>
<tr><td>Pairwise</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "none"</td>
<tr><td>Group</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "wep104", "wep40"</td>
2010-04-11 20:37:28 +02:00
<tr><td>KeyMgmt</td><td>as</td><td>Possible array elements: "wpa-psk", "wpa-ft-psk", "wpa-psk-sha256", "wpa-eap", "wpa-ft-eap", "wpa-eap-sha256", "ieee8021x", "wpa-none", "wps", "none"</td>
2009-12-26 18:54:24 +01:00
<tr><td>Protocol</td><td>as</td><td>Possible array elements: "rsn", "wpa"</td>
<tr><td>AuthAlg</td><td>as</td><td>Possible array elements: "open", "shared", "leap"</td>
<tr><td>Scan</td><td>as</td><td>Possible array elements: "active", "passive", "ssid"</td>
<tr><td>Modes</td><td>as</td><td>Possible array elements: "infrastructure", "ad-hoc", "ap"</td>
</table>
</li>
<li>
<h3>State - s - (read)</h3>
<p>A state of the interface. Possible values are: return "disconnected", "inactive", "scanning", "authenticating", "associating", "associated", "4way_handshake", "group_handshake", "completed","unknown".</p>
</li>
<li>
<h3>Scanning - b - (read)</h3>
<p>Determines if the interface is already scanning or not</p>
</li>
<li>
<h3>ApScan - u - (read/write)</h3>
<p>Identical to ap_scan entry in %wpa_supplicant configuration file. Possible values are 0, 1 or 2.</p>
</li>
2012-04-01 17:05:22 +02:00
<li>
<h3>BSSExpireAge - u - (read/write)</h3>
<p>Identical to bss_expiration_age entry in %wpa_supplicant configuration file.</p>
</li>
<li>
<h3>BSSExpireCount - u - (read/write)</h3>
<p>Identical to bss_expiration_scan_count entry in %wpa_supplicant configuration file.</p>
</li>
<li>
<h3>Country - s - (read/write)</h3>
<p>Identical to country entry in %wpa_supplicant configuration file.</p>
</li>
2009-12-26 18:54:24 +01:00
<li>
<h3>Ifname - s - (read)</h3>
<p>Name of network interface controlled by the interface, e.g., wlan0.</p>
</li>
<li>
<h3>BridgeIfname - s - (read)</h3>
<p>Name of bridge network interface controlled by the interface, e.g., br0.</p>
</li>
<li>
<h3>Driver - s - (read)</h3>
<p>Name of driver used by the interface, e.g., nl80211.</p>
</li>
<li>
<h3>CurrentBSS - o - (read)</h3>
<p>Path to D-Bus object representing BSS which %wpa_supplicant is associated with, or "/" if is not associated at all.</p>
</li>
<li>
<h3>CurrentNetwork - o - (read)</h3>
<p>Path to D-Bus object representing configured network which %wpa_supplicant uses at the moment, or "/" if doesn't use any.</p>
</li>
<li>
<h3>Blobs - as - (read)</h3>
<p>List of blobs names added to the Interface.</p>
</li>
<li>
<h3>BSSs - ao - (read)</h3>
<p>List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.</p>
</li>
<li>
<h3>Networks - ao - (read)</h3>
<p>List of D-Bus objects paths representing configured networks.</p>
</li>
2012-04-01 17:05:22 +02:00
<li>
<h3>FastReauth - b - (read/write)</h3>
<p>Identical to fast_reauth entry in %wpa_supplicant configuration file.</p>
</li>
<li>
<h3>ScanInterval - i - (read/write)</h3>
<p>Time (in seconds) between scans for a suitable AP. Must be >= 0.</p>
</li>
2013-11-23 09:38:07 +01:00
<li>
<h3>PKCS11EnginePath - s - (read)</h3>
<p>PKCS #11 engine path.</p>
</li>
<li>
<h3>PKCS11ModulePath - s - (read)</h3>
<p>PKCS #11 module path.</p>
</li>
2009-12-26 18:54:24 +01:00
</ul>
\subsection dbus_interface_signals Signals
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>ScanDone ( b : success )</h3>
<p>Scanning finished. </p>
<h4>Arguments</h4>
<dl>
<dt>s : success</dt>
<dd>Determines if scanning was successful. If so, results are available.</dd>
</dl>
</li>
<li>
2010-01-01 11:47:59 +01:00
<h3>BSSAdded ( o : BSS, a{sv} : properties )</h3>
2009-12-26 18:54:24 +01:00
<p>Interface became aware of a new BSS.</p>
<h4>Arguments</h4>
<dl>
<dt>o : BSS</dt>
<dd>A D-Bus path to an object representing the new BSS.</dd>
</dl>
2010-01-01 11:47:59 +01:00
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary containing properties of added BSS.</dd>
</dl>
2009-12-26 18:54:24 +01:00
</li>
<li>
<h3>BSSRemoved ( o : BSS )</h3>
<p>BSS disappeared.</p>
<h4>Arguments</h4>
<dl>
<dt>o : BSS</dt>
<dd>A D-Bus path to an object representing the BSS.</dd>
</dl>
</li>
<li>
<h3>BlobAdded ( s : blobName )</h3>
<p>A new blob has been added to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : blobName</dt>
<dd>A name of the added blob.</dd>
</dl>
</li>
<li>
<h3>BlobRemoved ( s : blobName )</h3>
<p>A blob has been removed from the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : blobName</dt>
<dd>A name of the removed blob.</dd>
</dl>
</li>
<li>
2010-01-01 11:47:59 +01:00
<h3>NetworkAdded ( o : network, a{sv} : properties )</h3>
2009-12-26 18:54:24 +01:00
<p>A new network has been added to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing the added network.</dd>
</dl>
2010-01-01 11:47:59 +01:00
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary containing properties of added network.</dd>
</dl>
2009-12-26 18:54:24 +01:00
</li>
<li>
<h3>NetworkRemoved ( o : network )</h3>
<p>The network has been removed from the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing the removed network.</dd>
</dl>
</li>
<li>
<h3>NetworkSelected ( o : network )</h3>
<p>The network has been selected.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>A D-Bus path to an object representing the selected network.</dd>
</dl>
</li>
2013-06-22 11:09:09 +02:00
<li>
<h3>StaAuthorized ( s : mac )</h3>
<p>A new station has been authorized to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : mac</dt>
<dd>A mac address which has been authorized.</dd>
</dl>
</li>
<li>
<h3>StaDeauthorized ( s : mac )</h3>
<p>A station has been deauthorized to the interface.</p>
<h4>Arguments</h4>
<dl>
<dt>s : mac</dt>
<dd>A mac address which has been deauthorized.</dd>
</dl>
</li>
2009-12-26 18:54:24 +01:00
<li>
<h3>PropertiesChanged ( a{sv} : properties )</h3>
<p>Some properties have changed.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : properties</dt>
2010-01-04 15:33:44 +01:00
<dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ApScan", "Scanning", "State", "CurrentBSS", "CurrentNetwork"</dd>
2009-12-26 18:54:24 +01:00
</dl>
</li>
2014-12-28 20:45:21 +01:00
<li>
<h3>Certification ( a{sv} : parameters )</h3>
<p>Information about server TLS certificates.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : parameters</dt>
<dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "depth", "subject", "cert_hash", "cert".</dd>
</dl>
</li>
<li>
<h3>EAP ( s : status, s : parameter )</h3>
<p>Information about EAP peer status.</p>
<h4>Arguments</h4>
<dl>
<dt>s : status</dt>
<dd>Operation, e.g., "started", "accept proposed method", "remote certificate verification", "eap parameter needed", "completion".</dd>
<dt>s : parameter</dt>
<dd>Information about the operation, e.g., EAP method name, "success".</dd>
</dl>
</li>
<li>
<h3>NetworkRequest ( o : network, s : field, s : txt )</h3>
<p>Request for network parameter. NetworkResponse() is used to provide the requested parameter.</p>
<h4>Arguments</h4>
<dl>
<dt>o : network</dt>
<dd>D-Bus path to an object representing the network.</dd>
<dt>s : field</dt>
<dd>Requested information, e.g., "PASSWORD".</dd>
<dt>txt : field</dt>
<dd>Human readable information about the requested information.</dd>
</dl>
</li>
2009-12-26 18:54:24 +01:00
</ul>
\section dbus_wps fi.w1.wpa_supplicant1.Interface.WPS
Interface implemented by objects related to network interface added to
2010-01-01 21:15:32 +01:00
%wpa_supplicant, i.e., returned by fi.w1.wpa_supplicant1.CreateInterface.
2009-12-26 18:54:24 +01:00
\subsection dbus_wps_methods Methods
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>Start ( a{sv} : args ) --> a{sv} : output</h3>
<p>Starts WPS configuration.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : args</dt>
<dd>
A dictionary with arguments used to start WPS configuration. The dictionary may contain the following entries:
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
<tr><td>Role</td><td>s</td><td>The device's role. Possible values are "enrollee" and "registrar".</td><td>Yes</td>
<tr><td>Type</td><td>s</td><td>WPS authentication type. Applies only for enrollee role. Possible values are "pin" and "pbc".</td><td>Yes, for enrollee role; otherwise no</td>
<tr><td>Pin</td><td>s</td><td>WPS Pin.</td><td>Yes, for registrar role; otherwise optional</td>
<tr><td>Bssid</td><td>ay</td><td></td><td>No</td>
</table>
</dd>
</dl>
<h4>Returns</h4>
<dl>
<dt>a{sv} : output</dt>
<dd>
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
<tr><td>Pin</td><td>s</td><td>Newly generated PIN, if not specified for enrollee role and pin authentication type.</td><td>No</td>
</table>
</dd>
</dl>
<h4>Possible errors</h4>
<dl>
<dt>fi.w1.wpa_supplicant1.UnknownError</dt>
<dd>Starting WPS configuration failed for an unknown reason.</dd>
<dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
<dd>Invalid entries were found in the passed argument.</dd>
</dl>
</li>
</ul>
\subsection dbus_wps_properties Properties
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>ProcessCredentials - b - (read/write)</h3>
<p>Determines if the interface will process the credentials (credentials_processed configuration file parameter).</p>
</li>
</ul>
\subsection dbus_wps_signals Signals
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>Event ( s : name, a{sv} : args )</h3>
<p>WPS event occurred.</p>
<h4>Arguments</h4>
<dl>
<dt>s : event</dt>
<dd>Event type. Possible values are: "success, "fail" and "m2d"</dd>
<dt>a{sv} : args</dt>
<dd>
Event arguments. Empty for success event, one entry ( "msg" : i ) for fail event and following entries for m2d event:
<table>
<tr><th>config_methods</th><th>Value type</th>
<tr><td>manufacturer</td><td>q</td>
<tr><td>model_name</td><td>ay</td>
<tr><td>model_number</td><td>ay</td>
<tr><td>serial_number</td><td>ay</td>
<tr><td>dev_name</td><td>ay</td>
<tr><td>primary_dev_type</td><td>ay</td>
<tr><td>config_error</td><td>q</td>
<tr><td>dev_password_id</td><td>q</td>
</table>
</dd>
</dl>
</li>
<li>
<h3>Credentials ( a{sv} : credentials )</h3>
<p>WPS credentials. Dictionary contains:</p>
<table>
<tr><th>Key</th><th>Value type</th><th>Description</th>
<tr><td>BSSID</td><td>ay</td><td></td>
<tr><td>SSID</td><td>s</td><td></td>
<tr><td>AuthType</td><td>as</td><td>Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk"</td>
<tr><td>EncrType</td><td>as</td><td>Possible array elements: "none", "wep", "tkip", "aes"</td>
<tr><td>Key</td><td>ay</td><td>Key data</td>
<tr><td>KeyIndex</td><td>u</td><td>Key index</td>
</table>
</li>
<li>
<h3>PropertiesChanged ( a{sv} : properties )</h3>
<p>Some properties have changed.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ProcessCredentials"</dd>
</dl>
</li>
</ul>
2010-01-09 10:40:15 +01:00
\section dbus_bss fi.w1.wpa_supplicant1.BSS
2009-12-26 18:54:24 +01:00
Interface implemented by objects representing a scanned BSSs, i.e.,
scan results.
\subsection dbus_bss_properties Properties
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
2010-01-01 11:28:24 +01:00
<h3>BSSID - ay - (read)</h3>
<p>BSSID of the BSS.</p>
</li>
<li>
<h3>SSID - ay - (read)</h3>
<p>SSID of the BSS.</p>
</li>
<li>
2010-01-16 15:37:37 +01:00
<h3>WPA - a{sv} - (read)</h3>
<p>WPA information of the BSS. Empty dictionary indicates no WPA support. Dictionary entries are:</p>
<table>
<tr><td>KeyMgmt</td><td>as</td><td>Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-none"</td>
<tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
<tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
</table>
2010-01-01 11:28:24 +01:00
</li>
<li>
2010-01-16 15:37:37 +01:00
<h3>RSN - a{sv} - (read)</h3>
<p>RSN information of the BSS. Empty dictionary indicates no RSN support. Dictionary entries are:</p>
<table>
<tr><td>KeyMgmt</td><td>as</td><td>Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-ft-psk", "wpa-ft-eap", "wpa-psk-sha256", "wpa-eap-sha256",</td>
<tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
<tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
<tr><td>MgmtGroup</td><td>s</td><td>Mangement frames cipher suite. Possible values are: "aes128cmac"</td>
</table>
2010-01-01 11:28:24 +01:00
</li>
<li>
2010-01-16 15:37:37 +01:00
<h3>IEs - ay - (read)</h3>
<p>All IEs of the BSS as a chain of TLVs</p>
2010-01-01 11:28:24 +01:00
</li>
<li>
<h3>Privacy - b - (read)</h3>
<p>Indicates if BSS supports privacy.</p>
</li>
<li>
<h3>Mode - s - (read)</h3>
<p>Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".</p>
</li>
<li>
<h3>Frequency - q - (read)</h3>
<p>Frequency of the BSS in MHz.</p>
</li>
<li>
2010-01-04 15:52:30 +01:00
<h3>Rates - au - (read)</h3>
<p>Descending ordered array of rates supported by the BSS in bits per second.</p>
2010-01-01 11:28:24 +01:00
</li>
<li>
<h3>Signal - n - (read)</h3>
<p>Signal strength of the BSS.</p>
2009-12-26 18:54:24 +01:00
</li>
</ul>
2010-01-06 19:06:11 +01:00
\subsection dbus_bss_signals Signals
2014-12-28 16:03:18 +01:00
<ul>
2010-01-06 19:06:11 +01:00
<li>
<h3>PropertiesChanged ( a{sv} : properties )</h3>
<p>Some properties have changed.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary with pairs of properties names which have changed and theirs new values.</dd>
</dl>
</li>
</ul>
2009-12-26 18:54:24 +01:00
2010-01-09 10:40:15 +01:00
\section dbus_network fi.w1.wpa_supplicant1.Network
2009-12-26 18:54:24 +01:00
Interface implemented by objects representing configured networks,
i.e., returned by fi.w1.wpa_supplicant1.Interface.AddNetwork.
\subsection dbus_network_properties Properties
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>Enabled - b - (read/write)</h3>
<p>Determines if the configured network is enabled or not.</p>
</li>
<li>
<h3>Properties - a{sv} - (read)</h3>
<p>Properties of the configured network. Dictionary contains entries from "network" block of %wpa_supplicant configuration file. All values are string type, e.g., frequency is "2437", not 2437.
</li>
</ul>
\subsection dbus_network_signals Signals
2014-12-28 16:03:18 +01:00
<ul>
2009-12-26 18:54:24 +01:00
<li>
<h3>PropertiesChanged ( a{sv} : properties )</h3>
<p>Some properties have changed.</p>
<h4>Arguments</h4>
<dl>
<dt>a{sv} : properties</dt>
<dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "Enabled"</dd>
</dl>
</li>
</ul>
*/