2 \page dbus %wpa_supplicant D-Bus API
4 This section documents the %wpa_supplicant D-Bus API. Every D-Bus
5 interface implemented by %wpa_supplicant is described here including
6 their methods, signals, and properties with arguments, returned
7 values, and possible errors.
17 \section dbus_main fi.w1.wpa_supplicant1
19 Interface implemented by the main %wpa_supplicant D-Bus object
20 registered in the bus with fi.w1.wpa_supplicant1 name.
22 \subsection dbus_main_methods Methods
26 <h3>CreateInterface ( a{sv} : args ) --> o : interface</h3>
27 <p>Registers a wireless interface in %wpa_supplicant.</p>
32 A dictionary with arguments used to add the interface to %wpa_supplicant. The dictionary may contain the following entries:
34 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
35 <tr><td>Ifname</td><td>s</td><td>Name of the network interface to control, e.g., wlan0</td><td>Yes</td>
36 <tr><td>Bridge_ifname</td><td>s</td><td>Name of the bridge interface to control, e.g., br0</td><td>No</td>
37 <tr><td>Driver</td><td>s</td><td>Driver name which the interface uses, e.g., nl80211</td><td>No</td>
43 <dt>o : interface</dt>
44 <dd>A D-Bus path to object representing created interface</dd>
46 <h4>Possible errors</h4>
48 <dt>fi.w1.wpa_supplicant1.InterfaceExists</dt>
49 <dd>%wpa_supplicant already controls this interface.</dd>
50 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
51 <dd>Creating interface failed for an unknown reason.</dd>
52 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
53 <dd>Invalid entries were found in the passed argument.</dd>
58 <h3>RemoveInterface ( o : interface ) --> nothing</h3>
59 <p>Deregisters a wireless interface from %wpa_supplicant.</p>
62 <dt>o : interface</dt>
63 <dd>A D-Bus path to an object representing an interface to remove returned by CreateInterface</dd>
65 <h4>Possible errors</h4>
67 <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
68 <dd>Object pointed by the path doesn't exist or doesn't represent an interface.</dd>
69 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
70 <dd>Removing interface failed for an unknown reason.</dd>
75 <h3>GetInterface ( s : ifname ) --> o : interface</h3>
76 <p>Returns a D-Bus path to an object related to an interface which %wpa_supplicant already controls.</p>
80 <dd>Name of the network interface, e.g., wlan0</dd>
84 <dt>o : interface</dt>
85 <dd>A D-Bus path to an object representing an interface</dd>
87 <h4>Possible errors</h4>
89 <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
90 <dd>An interface with the passed name in not controlled by %wpa_supplicant.</dd>
91 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
92 <dd>Getting an interface object path failed for an unknown reason.</dd>
97 \subsection dbus_main_properties Properties
101 <h3>DebugLevel - y - (read/write)</h3>
102 <p>Global %wpa_supplicant debuging level. Possible values are 0, 1, 2, 3 and 4</p>
106 <h3>DebugTimestamp - b - (read/write)</h3>
107 <p>Global %wpa_supplicant debuging parameter. Determines if timestamps are shown in debug logs.</p>
111 <h3>DebugShowKeys - b - (read/write)</h3>
112 <p>Global %wpa_supplicant debuging parameter. Determines if secrets are shown in debug logs.</p>
116 <h3>Interfaces - ao - (read)</h3>
117 <p>An array with paths to D-Bus objects representing controlled interfaces each.</p>
121 <h3>EapMethods - as - (read)</h3>
122 <p>An array with supported EAP methods names.</p>
126 \subsection dbus_main_signals Signals
130 <h3>InterfaceAdded ( o : interface, a{sv} : properties )</h3>
131 <p>A new interface was added to %wpa_supplicant.</p>
134 <dt>o : interface</dt>
135 <dd>A D-Bus path to an object representing the added interface</dd>
138 <dt>a{sv} : properties</dt>
139 <dd>A dictionary containing properties of added interface.</dd>
144 <h3>InterfaceRemoved ( o : interface )</h3>
145 <p>An interface was removed from %wpa_supplicant.</p>
148 <dt>o : interface</dt>
149 <dd>A D-Bus path to an object representing the removed interface</dd>
154 <h3>PropertiesChanged ( a{sv} : properties )</h3>
155 <p>Some properties have changed.</p>
158 <dt>a{sv} : properties</dt>
159 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "DebugParams"</dd>
165 \section dbus_interface fi.w1.wpa_supplicant1.Interface
167 Interface implemented by objects related to network interface added to
168 %wpa_supplicant, i.e., returned by
169 fi.w1.wpa_supplicant1.CreateInterface.
171 \subsection dbus_interface_methods Methods
175 <h3>Scan ( a{sv} : args ) --> nothing</h3>
176 <p>Triggers a scan.</p>
179 <dt>a{sv} : args</dt>
181 A dictionary with arguments describing scan type:
183 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
184 <tr><td>Type</td><td>s</td><td>Type of the scan. Possible values: "active", "passive"</td><td>Yes</td>
185 <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>
186 <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>
187 <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>
191 <h4>Possible errors</h4>
193 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
194 <dd>Invalid entries were found in the passed argument.</dd>
199 <h3>Disconnect ( ) --> nothing</h3>
200 <p>Disassociates the interface from current network.</p>
201 <h4>Possible errors</h4>
203 <dt>fi.w1.wpa_supplicant1.Interface.NotConnected</dt>
204 <dd>Interface is not connected to any network.</dd>
209 <h3>AddNetwork ( a{sv} : args ) --> o : network</h3>
210 <p>Adds a new network to the interface.</p>
213 <dt>a{sv} : args</dt>
214 <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>
219 <dd>A D-Bus path to an object representing a configured network</dd>
221 <h4>Possible errors</h4>
223 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
224 <dd>Invalid entries were found in the passed argument.</dd>
225 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
226 <dd>Adding network failed for an unknown reason.</dd>
231 <h3>RemoveNetwork ( o : network ) --> nothing</h3>
232 <p>Removes a configured network from the interface.</p>
236 <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
238 <h4>Possible errors</h4>
240 <dt>fi.w1.wpa_supplicant1.Interface.NetworkUnknown</dt>
241 <dd>A passed path doesn't point to any network object.</dd>
242 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
243 <dd>A passed path doesn't point to any network object.</dd>
244 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
245 <dd>Removing network failed for an unknown reason.</dd>
250 <h3>SelectNetwork ( o : network ) --> nothing</h3>
251 <p>Attempt association with a configured network.</p>
255 <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
257 <h4>Possible errors</h4>
259 <dt>fi.w1.wpa_supplicant1.Interface.NetworkUnknown</dt>
260 <dd>A passed path doesn't point to any network object.</dd>
261 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
262 <dd>A passed path doesn't point to any network object.</dd>
267 <h3>AddBlob ( s : name, ay : data ) --> nothing</h3>
268 <p>Adds a blob to the interface.</p>
272 <dd>A name of a blob</dd>
276 <h4>Possible errors</h4>
278 <dt>fi.w1.wpa_supplicant1.Interface.BlobExists</dt>
279 <dd>A blob with the specified name already exists.</dd>
284 <h3>RemoveBlob ( s : name ) --> nothing</h3>
285 <p>Removes the blob from the interface.</p>
289 <dd>A name of the blob to remove</dd>
291 <h4>Possible errors</h4>
293 <dt>fi.w1.wpa_supplicant1.Interface.BlobUnknown</dt>
294 <dd>A blob with the specified name doesn't exist.</dd>
299 <h3>GetBlob ( s : name ) --> ay : data</h3>
300 <p>Returns the blob data of a previously added blob.</p>
304 <dd>A name of the blob</dd>
311 <h4>Possible errors</h4>
313 <dt>fi.w1.wpa_supplicant1.Interface.BlobUnknown</dt>
314 <dd>A blob with the specified name doesn't exist.</dd>
319 \subsection dbus_interface_properties Properties
323 <h3>Capabilities - a{sv} - (read)</h3>
324 <p>Capabilities of the interface. Dictionary contains following entries:</p>
326 <tr><th>Key</th><th>Value type</th><th>Description</th>
327 <tr><td>Pairwise</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "none"</td>
328 <tr><td>Group</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "wep104", "wep40"</td>
329 <tr><td>KeyMgmt</td><td>as</td><td>Possible array elements: "wpa-psk", "wpa-eap", "ieee8021x", "wpa-none", "wps", "none"</td>
330 <tr><td>Protocol</td><td>as</td><td>Possible array elements: "rsn", "wpa"</td>
331 <tr><td>AuthAlg</td><td>as</td><td>Possible array elements: "open", "shared", "leap"</td>
332 <tr><td>Scan</td><td>as</td><td>Possible array elements: "active", "passive", "ssid"</td>
333 <tr><td>Modes</td><td>as</td><td>Possible array elements: "infrastructure", "ad-hoc", "ap"</td>
338 <h3>State - s - (read)</h3>
339 <p>A state of the interface. Possible values are: return "disconnected", "inactive", "scanning", "authenticating", "associating", "associated", "4way_handshake", "group_handshake", "completed","unknown".</p>
343 <h3>Scanning - b - (read)</h3>
344 <p>Determines if the interface is already scanning or not</p>
348 <h3>ApScan - u - (read/write)</h3>
349 <p>Identical to ap_scan entry in %wpa_supplicant configuration file. Possible values are 0, 1 or 2.</p>
353 <h3>Ifname - s - (read)</h3>
354 <p>Name of network interface controlled by the interface, e.g., wlan0.</p>
358 <h3>BridgeIfname - s - (read)</h3>
359 <p>Name of bridge network interface controlled by the interface, e.g., br0.</p>
363 <h3>Driver - s - (read)</h3>
364 <p>Name of driver used by the interface, e.g., nl80211.</p>
368 <h3>CurrentBSS - o - (read)</h3>
369 <p>Path to D-Bus object representing BSS which %wpa_supplicant is associated with, or "/" if is not associated at all.</p>
373 <h3>CurrentNetwork - o - (read)</h3>
374 <p>Path to D-Bus object representing configured network which %wpa_supplicant uses at the moment, or "/" if doesn't use any.</p>
378 <h3>Blobs - as - (read)</h3>
379 <p>List of blobs names added to the Interface.</p>
383 <h3>BSSs - ao - (read)</h3>
384 <p>List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.</p>
388 <h3>Networks - ao - (read)</h3>
389 <p>List of D-Bus objects paths representing configured networks.</p>
393 \subsection dbus_interface_signals Signals
397 <h3>ScanDone ( b : success )</h3>
398 <p>Scanning finished. </p>
402 <dd>Determines if scanning was successful. If so, results are available.</dd>
407 <h3>StateChanged ( s : newState, s : oldState )</h3>
408 <p>Interface state has changed.</p>
411 <dt>s : newState</dt>
412 <dd>A state which the interface goes to</dd>
413 <dt>s : oldState</dt>
414 <dd>A state which the interface goes from</dd>
419 <h3>BSSAdded ( o : BSS, a{sv} : properties )</h3>
420 <p>Interface became aware of a new BSS.</p>
424 <dd>A D-Bus path to an object representing the new BSS.</dd>
427 <dt>a{sv} : properties</dt>
428 <dd>A dictionary containing properties of added BSS.</dd>
433 <h3>BSSRemoved ( o : BSS )</h3>
434 <p>BSS disappeared.</p>
438 <dd>A D-Bus path to an object representing the BSS.</dd>
443 <h3>BlobAdded ( s : blobName )</h3>
444 <p>A new blob has been added to the interface.</p>
447 <dt>s : blobName</dt>
448 <dd>A name of the added blob.</dd>
453 <h3>BlobRemoved ( s : blobName )</h3>
454 <p>A blob has been removed from the interface.</p>
457 <dt>s : blobName</dt>
458 <dd>A name of the removed blob.</dd>
463 <h3>NetworkAdded ( o : network, a{sv} : properties )</h3>
464 <p>A new network has been added to the interface.</p>
468 <dd>A D-Bus path to an object representing the added network.</dd>
471 <dt>a{sv} : properties</dt>
472 <dd>A dictionary containing properties of added network.</dd>
477 <h3>NetworkRemoved ( o : network )</h3>
478 <p>The network has been removed from the interface.</p>
482 <dd>A D-Bus path to an object representing the removed network.</dd>
487 <h3>NetworkSelected ( o : network )</h3>
488 <p>The network has been selected.</p>
492 <dd>A D-Bus path to an object representing the selected network.</dd>
497 <h3>PropertiesChanged ( a{sv} : properties )</h3>
498 <p>Some properties have changed.</p>
501 <dt>a{sv} : properties</dt>
502 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ApScan", "Scanning", "CurrentBSS", "CurrentNetwork"</dd>
508 \section dbus_wps fi.w1.wpa_supplicant1.Interface.WPS
510 Interface implemented by objects related to network interface added to
511 &wpa_supplicant, i.e., returned by fi.w1.wpa_supplicant1.CreateInterface.
513 \subsection dbus_wps_methods Methods
517 <h3>Start ( a{sv} : args ) --> a{sv} : output</h3>
518 <p>Starts WPS configuration.</p>
521 <dt>a{sv} : args</dt>
523 A dictionary with arguments used to start WPS configuration. The dictionary may contain the following entries:
525 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
526 <tr><td>Role</td><td>s</td><td>The device's role. Possible values are "enrollee" and "registrar".</td><td>Yes</td>
527 <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>
528 <tr><td>Pin</td><td>s</td><td>WPS Pin.</td><td>Yes, for registrar role; otherwise optional</td>
529 <tr><td>Bssid</td><td>ay</td><td></td><td>No</td>
535 <dt>a{sv} : output</dt>
538 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
539 <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>
543 <h4>Possible errors</h4>
545 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
546 <dd>Starting WPS configuration failed for an unknown reason.</dd>
547 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
548 <dd>Invalid entries were found in the passed argument.</dd>
553 \subsection dbus_wps_properties Properties
557 <h3>ProcessCredentials - b - (read/write)</h3>
558 <p>Determines if the interface will process the credentials (credentials_processed configuration file parameter).</p>
562 \subsection dbus_wps_signals Signals
566 <h3>Event ( s : name, a{sv} : args )</h3>
567 <p>WPS event occurred.</p>
571 <dd>Event type. Possible values are: "success, "fail" and "m2d"</dd>
572 <dt>a{sv} : args</dt>
574 Event arguments. Empty for success event, one entry ( "msg" : i ) for fail event and following entries for m2d event:
576 <tr><th>config_methods</th><th>Value type</th>
577 <tr><td>manufacturer</td><td>q</td>
578 <tr><td>model_name</td><td>ay</td>
579 <tr><td>model_number</td><td>ay</td>
580 <tr><td>serial_number</td><td>ay</td>
581 <tr><td>dev_name</td><td>ay</td>
582 <tr><td>primary_dev_type</td><td>ay</td>
583 <tr><td>config_error</td><td>q</td>
584 <tr><td>dev_password_id</td><td>q</td>
591 <h3>Credentials ( a{sv} : credentials )</h3>
592 <p>WPS credentials. Dictionary contains:</p>
594 <tr><th>Key</th><th>Value type</th><th>Description</th>
595 <tr><td>BSSID</td><td>ay</td><td></td>
596 <tr><td>SSID</td><td>s</td><td></td>
597 <tr><td>AuthType</td><td>as</td><td>Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk"</td>
598 <tr><td>EncrType</td><td>as</td><td>Possible array elements: "none", "wep", "tkip", "aes"</td>
599 <tr><td>Key</td><td>ay</td><td>Key data</td>
600 <tr><td>KeyIndex</td><td>u</td><td>Key index</td>
605 <h3>PropertiesChanged ( a{sv} : properties )</h3>
606 <p>Some properties have changed.</p>
609 <dt>a{sv} : properties</dt>
610 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ProcessCredentials"</dd>
616 \section dbus_bss fi.w1.wpa_supplicant1.Interface.BSS
618 Interface implemented by objects representing a scanned BSSs, i.e.,
621 \subsection dbus_bss_properties Properties
625 <h3>BSSID - ay - (read)</h3>
626 <p>BSSID of the BSS.</p>
629 <h3>SSID - ay - (read)</h3>
630 <p>SSID of the BSS.</p>
633 <h3>WPAIE - ay - (read)</h3>
634 <p>WPA information element of the BSS. The second byte contain number of bytes following it.</p>
637 <h3>RSNIE - ay - (read)</h3>
638 <p>RSN information element of the BSS. The second byte contain number of bytes following it.</p>
641 <h3>WPSIE - ay - (read)</h3>
642 <p>WPS information element of the BSS. The second byte contain number of bytes following it.</p>
645 <h3>Privacy - b - (read)</h3>
646 <p>Indicates if BSS supports privacy.</p>
649 <h3>Mode - s - (read)</h3>
650 <p>Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".</p>
653 <h3>Frequency - q - (read)</h3>
654 <p>Frequency of the BSS in MHz.</p>
657 <h3>MaxRate - q - (read)</h3>
658 <p>Maximal data rate of the BSS in bits per second.</p>
661 <h3>Signal - n - (read)</h3>
662 <p>Signal strength of the BSS.</p>
667 \section dbus_network fi.w1.wpa_supplicant1.Interface.Network
669 Interface implemented by objects representing configured networks,
670 i.e., returned by fi.w1.wpa_supplicant1.Interface.AddNetwork.
672 \subsection dbus_network_properties Properties
676 <h3>Enabled - b - (read/write)</h3>
677 <p>Determines if the configured network is enabled or not.</p>
681 <h3>Properties - a{sv} - (read)</h3>
682 <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.
686 \subsection dbus_network_signals Signals
690 <h3>PropertiesChanged ( a{sv} : properties )</h3>
691 <p>Some properties have changed.</p>
694 <dt>a{sv} : properties</dt>
695 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "Enabled"</dd>