doc: Document D-Bus WPS property ConfigMethods
[mech_eap.git] / doc / dbus.doxygen
1 /**
2 \page dbus %wpa_supplicant D-Bus API
3
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.
8
9 Interfaces:
10 - \ref dbus_main
11 - \ref dbus_interface
12 - \ref dbus_wps
13 - \ref dbus_bss
14 - \ref dbus_network
15
16
17 \section dbus_main fi.w1.wpa_supplicant1
18
19 Interface implemented by the main %wpa_supplicant D-Bus object
20 registered in the bus with fi.w1.wpa_supplicant1 name.
21
22 \subsection dbus_main_methods Methods
23
24 <ul>
25       <li>
26         <h3>CreateInterface ( a{sv} : args ) --> o : interface</h3>
27         <p>Registers a wireless interface in %wpa_supplicant.</p>
28         <h4>Arguments</h4>
29         <dl>
30           <dt>a{sv} : args</dt>
31           <dd>
32             A dictionary with arguments used to add the interface to %wpa_supplicant. The dictionary may contain the following entries:
33             <table>
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>BridgeIfname</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>
38               <tr><td>ConfigFile</td><td>s</td><td>Configuration file path</td><td>No</td>
39             </table>
40           </dd>
41         </dl>
42         <h4>Returns</h4>
43         <dl>
44           <dt>o : interface</dt>
45           <dd>A D-Bus path to object representing created interface</dd>
46         </dl>
47         <h4>Possible errors</h4>
48         <dl>
49           <dt>fi.w1.wpa_supplicant1.InterfaceExists</dt>
50           <dd>%wpa_supplicant already controls this interface.</dd>
51           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
52           <dd>Creating interface failed for an unknown reason.</dd>
53           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
54           <dd>Invalid entries were found in the passed argument.</dd>
55         </dl>
56       </li>
57
58       <li>
59         <h3>RemoveInterface ( o : interface ) --> nothing</h3>
60         <p>Deregisters a wireless interface from %wpa_supplicant.</p>
61         <h4>Arguments</h4>
62         <dl>
63           <dt>o : interface</dt>
64           <dd>A D-Bus path to an object representing an interface to remove returned by CreateInterface</dd>
65         </dl>
66         <h4>Possible errors</h4>
67         <dl>
68           <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
69           <dd>Object pointed by the path doesn't exist or doesn't represent an interface.</dd>
70           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
71           <dd>Removing interface failed for an unknown reason.</dd>
72         </dl>
73       </li>
74
75       <li>
76         <h3>GetInterface ( s : ifname ) --> o : interface</h3>
77         <p>Returns a D-Bus path to an object related to an interface which %wpa_supplicant already controls.</p>
78         <h4>Arguments</h4>
79         <dl>
80           <dt>s : ifname</dt>
81           <dd>Name of the network interface, e.g., wlan0</dd>
82         </dl>
83         <h4>Returns</h4>
84         <dl>
85           <dt>o : interface</dt>
86           <dd>A D-Bus path to an object representing an interface</dd>
87         </dl>
88         <h4>Possible errors</h4>
89         <dl>
90           <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
91           <dd>An interface with the passed name in not controlled by %wpa_supplicant.</dd>
92           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
93           <dd>Getting an interface object path failed for an unknown reason.</dd>
94         </dl>
95       </li>
96     </ul>
97
98 \subsection dbus_main_properties Properties
99
100 <ul>
101       <li>
102         <h3>DebugLevel - s - (read/write)</h3>
103         <p>Global %wpa_supplicant debugging level. Possible values are
104         "msgdump" (verbose debugging), "debug" (debugging),
105         "info" (informative), "warning" (warnings), and "error" (errors).</p>
106       </li>
107
108       <li>
109         <h3>DebugTimestamp - b - (read/write)</h3>
110         <p>Global %wpa_supplicant debugging parameter. Determines if timestamps are shown in debug logs.</p>
111       </li>
112
113       <li>
114         <h3>DebugShowKeys - b - (read/write)</h3>
115         <p>Global %wpa_supplicant debugging parameter. Determines if secrets are shown in debug logs.</p>
116       </li>
117
118       <li>
119         <h3>Interfaces - ao - (read)</h3>
120         <p>An array with paths to D-Bus objects representing controlled interfaces each.</p>
121       </li>
122
123       <li>
124         <h3>EapMethods - as - (read)</h3>
125         <p>An array with supported EAP methods names.</p>
126       </li>
127
128       <li>
129         <h3>Capabilities - as - (read)</h3>
130         <p>An array with supported capabilities (e.g., "ap", "ibss-rsn", "p2p", "interworking").</p>
131       </li>
132     </ul>
133
134 \subsection dbus_main_signals Signals
135
136 <ul>
137       <li>
138         <h3>InterfaceAdded ( o : interface, a{sv} : properties )</h3>
139         <p>A new interface was added to %wpa_supplicant.</p>
140         <h4>Arguments</h4>
141         <dl>
142           <dt>o : interface</dt>
143           <dd>A D-Bus path to an object representing the added interface</dd>
144         </dl>
145         <dl>
146           <dt>a{sv} : properties</dt>
147           <dd>A dictionary containing properties of added interface.</dd>
148         </dl>
149       </li>
150
151       <li>
152         <h3>InterfaceRemoved ( o : interface )</h3>
153         <p>An interface was removed from %wpa_supplicant.</p>
154         <h4>Arguments</h4>
155         <dl>
156           <dt>o : interface</dt>
157           <dd>A D-Bus path to an object representing the removed interface</dd>
158         </dl>
159       </li>
160
161       <li>
162         <h3>PropertiesChanged ( a{sv} : properties )</h3>
163         <p>Some properties have changed.</p>
164         <h4>Arguments</h4>
165         <dl>
166           <dt>a{sv} : properties</dt>
167           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "DebugParams"</dd>
168         </dl>
169       </li>
170     </ul>
171
172
173 \section dbus_interface fi.w1.wpa_supplicant1.Interface
174
175 Interface implemented by objects related to network interface added to
176 %wpa_supplicant, i.e., returned by
177 fi.w1.wpa_supplicant1.CreateInterface.
178
179 \subsection dbus_interface_methods Methods
180
181 <ul>
182       <li>
183         <h3>Scan ( a{sv} : args ) --> nothing</h3>
184         <p>Triggers a scan.</p>
185         <h4>Arguments</h4>
186         <dl>
187           <dt>a{sv} : args</dt>
188           <dd>
189             A dictionary with arguments describing scan type:
190             <table>
191               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
192               <tr><td>Type</td><td>s</td><td>Type of the scan. Possible values: "active", "passive"</td><td>Yes</td>
193               <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>
194               <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>
195               <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>
196               <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>
197             </table>
198           </dd>
199         </dl>
200         <h4>Possible errors</h4>
201         <dl>
202           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
203           <dd>Invalid entries were found in the passed argument.</dd>
204         </dl>
205       </li>
206
207       <li>
208         <h3>Disconnect ( ) --> nothing</h3>
209         <p>Disassociates the interface from current network.</p>
210         <h4>Possible errors</h4>
211         <dl>
212           <dt>fi.w1.wpa_supplicant1.NotConnected</dt>
213           <dd>Interface is not connected to any network.</dd>
214         </dl>
215       </li>
216
217       <li>
218         <h3>AddNetwork ( a{sv} : args ) --> o : network</h3>
219         <p>Adds a new network to the interface.</p>
220         <h4>Arguments</h4>
221         <dl>
222           <dt>a{sv} : args</dt>
223           <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>
224         </dl>
225         <h4>Returns</h4>
226         <dl>
227           <dt>o : network</dt>
228           <dd>A D-Bus path to an object representing a configured network</dd>
229         </dl>
230         <h4>Possible errors</h4>
231         <dl>
232           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
233           <dd>Invalid entries were found in the passed argument.</dd>
234           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
235           <dd>Adding network failed for an unknown reason.</dd>
236         </dl>
237       </li>
238
239       <li>
240         <h3>RemoveNetwork ( o : network ) --> nothing</h3>
241         <p>Removes a configured network from the interface.</p>
242         <h4>Arguments</h4>
243         <dl>
244           <dt>o : network</dt>
245           <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
246         </dl>
247         <h4>Possible errors</h4>
248         <dl>
249           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
250           <dd>A passed path doesn't point to any network object.</dd>
251           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
252           <dd>A passed path doesn't point to any network object.</dd>
253           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
254           <dd>Removing network failed for an unknown reason.</dd>
255         </dl>
256       </li>
257
258       <li>
259         <h3>RemoveAllNetworks ( ) --> nothing</h3>
260         <p>Remove all configured networks from the interface.</p>
261       </li>
262
263       <li>
264         <h3>SelectNetwork ( o : network ) --> nothing</h3>
265         <p>Attempt association with a configured network.</p>
266         <h4>Arguments</h4>
267         <dl>
268           <dt>o : network</dt>
269           <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
270         </dl>
271         <h4>Possible errors</h4>
272         <dl>
273           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
274           <dd>A passed path doesn't point to any network object.</dd>
275           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
276           <dd>A passed path doesn't point to any network object.</dd>
277         </dl>
278       </li>
279
280       <li>
281         <h3>Reassociate ( ) --> nothing</h3>
282         <p>Attempt reassociation.</p>
283         <h4>Possible errors</h4>
284         <dl>
285           <dt>fi.w1.wpa_supplicant1.InterfaceDisabled</dt>
286           <dd>The interface is disabled.</dd>
287         </dl>
288       </li>
289
290       <li>
291         <h3>Reattach ( ) --> nothing</h3>
292         <p>Attempt reassociation back to the current BSS.</p>
293         <h4>Possible errors</h4>
294         <dl>
295           <dt>fi.w1.wpa_supplicant1.NotConnected</dt>
296           <dd>Interface is not connected to any network.</dd>
297         </dl>
298       </li>
299
300       <li>
301         <h3>AddBlob ( s : name, ay : data ) --> nothing</h3>
302         <p>Adds a blob to the interface.</p>
303         <h4>Arguments</h4>
304         <dl>
305           <dt>s : name</dt>
306           <dd>A name of a blob</dd>
307           <dt>ay : data</dt>
308           <dd>A blob data</dd>
309         </dl>
310         <h4>Possible errors</h4>
311         <dl>
312           <dt>fi.w1.wpa_supplicant1.BlobExists</dt>
313           <dd>A blob with the specified name already exists.</dd>
314         </dl>
315       </li>
316
317       <li>
318         <h3>RemoveBlob ( s : name ) --> nothing</h3>
319         <p>Removes the blob from the interface.</p>
320         <h4>Arguments</h4>
321         <dl>
322           <dt>s : name</dt>
323           <dd>A name of the blob to remove</dd>
324         </dl>
325         <h4>Possible errors</h4>
326         <dl>
327           <dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
328           <dd>A blob with the specified name doesn't exist.</dd>
329         </dl>
330       </li>
331
332       <li>
333         <h3>GetBlob ( s : name ) --> ay : data</h3>
334         <p>Returns the blob data of a previously added blob.</p>
335         <h4>Arguments</h4>
336         <dl>
337           <dt>s : name</dt>
338           <dd>A name of the blob</dd>
339         </dl>
340         <h4>Returns</h4>
341         <dl>
342           <dt>ay : data</dt>
343           <dd>A blob data</dd>
344         </dl>
345         <h4>Possible errors</h4>
346         <dl>
347           <dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
348           <dd>A blob with the specified name doesn't exist.</dd>
349         </dl>
350       </li>
351       <li>
352         <h3>AutoScan ( s : arg ) --> nothing</h3>
353         <p>Set autoscan parameters for the interface.</p>
354         <h4>Arguments</h4>
355         <dl>
356           <dt>s : arg</dt>
357           <dd>Autoscan parameter line or empty to unset autoscan.</dd>
358         </dl>
359         <h4>Possible errors</h4>
360         <dl>
361           <dt>fi.w1.wpa_supplicant1.NoMemory</dt>
362           <dd>Needed memory was not possible to get allocated.</dd>
363           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
364           <dd>Invalid entries were found in the passed argument.</dd>
365         </dl>
366       </li>
367       <li>
368         <h3>TDLSDiscover ( s : peer_address ) --> nothing</h3>
369         <p>Initiate a TDLS discovery for a peer.</p>
370         <h4>Arguments</h4>
371         <dl>
372           <dt>s : peer_address</dt>
373           <dd>MAC address for the peer to perform TDLS discovery.</dd>
374         </dl>
375         <h4>Possible errors</h4>
376         <dl>
377           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
378           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
379           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
380           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
381         </dl>
382       </li>
383       <li>
384         <h3>TDLSSetup ( s : peer_address ) --> nothing</h3>
385         <p>Setup a TDLS session for a peer.</p>
386         <h4>Arguments</h4>
387         <dl>
388           <dt>s : peer_address</dt>
389           <dd>MAC address for the peer to perform TDLS setup.</dd>
390         </dl>
391         <h4>Possible errors</h4>
392         <dl>
393           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
394           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
395           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
396           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
397         </dl>
398       </li>
399       <li>
400         <h3>TDLSStatus ( s : peer_address ) --> s</h3>
401         <p>Return TDLS status with respect to a peer.</p>
402         <h4>Arguments</h4>
403         <dl>
404           <dt>s : peer_address</dt>
405           <dd>MAC address for the peer for which status is requested.</dd>
406         </dl>
407         <h4>Returns</h4>
408         <dl>
409           <dt>s : status</dt>
410           <dd>Current status of the TDLS link with the selected peer.</dd>
411         </dl>
412         <h4>Possible errors</h4>
413         <dl>
414           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
415           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
416         </dl>
417       </li>
418       <li>
419         <h3>TDLSTeardown ( s : peer_address ) --> nothing</h3>
420         <p>Tear down a TDLS session with a peer.</p>
421         <h4>Arguments</h4>
422         <dl>
423           <dt>s : peer_address</dt>
424           <dd>MAC address for the peer to tear down TDLS connectivity with.</dd>
425         </dl>
426         <h4>Possible errors</h4>
427         <dl>
428           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
429           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
430           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
431           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
432         </dl>
433       </li>
434       <li>
435         <h3>EAPLogoff ( ) --> nothing</h3>
436         <p>IEEE 802.1X EAPOL state machine logoff.</p>
437       </li>
438       <li>
439         <h3>EAPLogon ( ) --> nothing</h3>
440         <p>IEEE 802.1X EAPOL state machine logon.</p>
441       </li>
442
443       <li>
444         <h3>NetworkReply ( o : network, s : field, s : value ) --> nothing</h3>
445         <p>Provide parameter requested by NetworkRequest().</p>
446         <h4>Arguments</h4>
447         <dl>
448           <dt>o : network</dt>
449           <dd>A D-Bus path to an object representing the network (copied from NetworkRequest()).</dd>
450           <dt>s : field</dt>
451           <dd>Requested information (copied from NetworkRequest()).</dd>
452           <dt>s : value</dt>
453           <dd>The requested information (e.g., password for EAP authentication).</dd>
454         </dl>
455         <h4>Possible errors</h4>
456         <dl>
457           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
458           <dd>A passed path doesn't point to any network object.</dd>
459           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
460           <dd>A passed path doesn't point to any network object.</dd>
461           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
462           <dd>IEEE 802.1X support was not included in the build.</dd>
463         </dl>
464       </li>
465
466       <li>
467         <h3>SetPKCS11EngineAndModulePath ( s : pkcs11_engine_path, s : pkcs11_module_path ) --> nothing</h3>
468         <p>Set PKCS #11 engine and module path.</p>
469         <h4>Arguments</h4>
470         <dl>
471           <dt>s : pkcs11_engine_path</dt>
472           <dd>PKCS #11 engine path.</dd>
473           <dt>s : pkcs11_module_path</dt>
474           <dd>PKCS #11 module path.</dd>
475         </dl>
476         <h4>Possible errors</h4>
477         <dl>
478           <dt>org.freedesktop.DBus.Error.Failed.InvalidArgs</dt>
479           <dd>Invalid PKCS #11 engine or module path.</dd>
480           <dt>org.freedesktop.DBus.Error.Failed</dt>
481           <dd>Reinit of the EAPOL state machine with the new PKCS #11 engine and module path failed.</dd>
482         </dl>
483       </li>
484       <li>
485         <h3>SignalPoll ( ) --> a{sv} : properties</h3>
486         <p>Fetch signal properties for the current connection.</p>
487         <h4>Returns</h4>
488         <dl>
489           <dt>a{sv} : properties</dt>
490           <dd>
491             <table>
492               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
493               <tr><td>linkspeed</td><td>i</td><td>Link speed (Mbps)</td><td>No</td>
494               <tr><td>noise</td><td>i</td><td>Noise (dBm)</td><td>No</td>
495               <tr><td>width</td><td>s</td><td>Channel width</td><td>No</td>
496               <tr><td>frequency</td><td>u</td><td>Frequency (MHz)</td><td>No</td>
497               <tr><td>rssi</td><td>i</td><td>RSSI (dBm)</td><td>No</td>
498               <tr><td>avg-rssi</td><td>i</td><td>Average RSSI (dBm)</td><td>No</td>
499               <tr><td>center-frq1</td><td>i</td><td>VHT segment 1 frequency (MHz)</td><td>No</td>
500               <tr><td>center-frq2</td><td>i</td><td>VHT segment 2 frequency (MHz)</td><td>No</td>
501             </table>
502           </dd>
503         </dl>
504       </li>
505       <li>
506         <h3>FlushBSS ( u : age ) --> nothing</h3>
507         <p>Flush BSS entries from the cache.</p>
508         <h4>Arguments</h4>
509         <dl>
510           <dt>u : age</dt>
511           <dd>Maximum age in seconds for BSS entries to keep in cache (0 = remove all entries).</dd>
512         </dl>
513       </li>
514
515       <li>
516         <h3>SubscribeProbeReq ( ) --> nothing</h3>
517         <p>Subscribe to receive Probe Request events. This is needed in addition to registering a signal handler for the ProbeRequest signal to avoid flooding D-Bus with all Probe Request indications when no application is interested in them.</p>
518         <h4>Possible errors</h4>
519         <dl>
520           <dt>fi.w1.wpa_supplicant1.SubscriptionInUse</dt>
521           <dd>Another application is already subscribed.</dd>
522           <dt>fi.w1.wpa_supplicant1.NoMemory</dt>
523           <dd>Needed memory was not possible to get allocated.</dd>
524         </dl>
525       </li>
526
527       <li>
528         <h3>UnsubscribeProbeReq ( ) --> nothing</h3>
529         <p>Unsubscribe from receiving Probe Request events.</p>
530         <h4>Possible errors</h4>
531         <dl>
532           <dt>fi.w1.wpa_supplicant1.NoSubscription</dt>
533           <dd>No subscription in place.</dd>
534           <dt>fi.w1.wpa_supplicant1.SubscriptionNotYou</dt>
535           <dd>Subscription in place, but for another process.</dd>
536         </dl>
537       </li>
538     </ul>
539
540 \subsection dbus_interface_properties Properties
541
542 <ul>
543       <li>
544         <h3>Capabilities - a{sv} - (read)</h3>
545         <p>Capabilities of the interface. Dictionary contains following entries:</p>
546         <table>
547           <tr><th>Key</th><th>Value type</th><th>Description</th>
548           <tr><td>Pairwise</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "none"</td>
549           <tr><td>Group</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "wep104", "wep40"</td>
550           <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>
551           <tr><td>Protocol</td><td>as</td><td>Possible array elements: "rsn", "wpa"</td>
552           <tr><td>AuthAlg</td><td>as</td><td>Possible array elements: "open", "shared", "leap"</td>
553           <tr><td>Scan</td><td>as</td><td>Possible array elements: "active", "passive", "ssid"</td>
554           <tr><td>Modes</td><td>as</td><td>Possible array elements: "infrastructure", "ad-hoc", "ap"</td>
555         </table>
556       </li>
557
558       <li>
559         <h3>State - s - (read)</h3>
560         <p>A state of the interface. Possible values are: return "disconnected", "inactive", "scanning", "authenticating", "associating", "associated", "4way_handshake", "group_handshake", "completed","unknown".</p>
561       </li>
562
563       <li>
564         <h3>Scanning - b - (read)</h3>
565         <p>Determines if the interface is already scanning or not</p>
566       </li>
567
568       <li>
569         <h3>ApScan - u - (read/write)</h3>
570         <p>Identical to ap_scan entry in %wpa_supplicant configuration file. Possible values are 0, 1 or 2.</p>
571       </li>
572
573       <li>
574         <h3>BSSExpireAge - u - (read/write)</h3>
575         <p>Identical to bss_expiration_age entry in %wpa_supplicant configuration file.</p>
576       </li>
577
578       <li>
579         <h3>BSSExpireCount - u - (read/write)</h3>
580         <p>Identical to bss_expiration_scan_count entry in %wpa_supplicant configuration file.</p>
581       </li>
582
583       <li>
584         <h3>Country - s - (read/write)</h3>
585         <p>Identical to country entry in %wpa_supplicant configuration file.</p>
586       </li>
587
588       <li>
589         <h3>Ifname - s - (read)</h3>
590         <p>Name of network interface controlled by the interface, e.g., wlan0.</p>
591       </li>
592
593       <li>
594         <h3>BridgeIfname - s - (read)</h3>
595         <p>Name of bridge network interface controlled by the interface, e.g., br0.</p>
596       </li>
597
598       <li>
599         <h3>Driver - s - (read)</h3>
600         <p>Name of driver used by the interface, e.g., nl80211.</p>
601       </li>
602
603       <li>
604         <h3>CurrentBSS - o - (read)</h3>
605         <p>Path to D-Bus object representing BSS which %wpa_supplicant is associated with, or "/" if is not associated at all.</p>
606       </li>
607
608       <li>
609         <h3>CurrentNetwork - o - (read)</h3>
610         <p>Path to D-Bus object representing configured network which %wpa_supplicant uses at the moment, or "/" if doesn't use any.</p>
611       </li>
612
613       <li>
614         <h3>CurrentAuthMode - s - (read)</h3>
615         <p>Current authentication type.</p>
616       </li>
617
618       <li>
619         <h3>Blobs - as - (read)</h3>
620         <p>List of blobs names added to the Interface.</p>
621       </li>
622
623       <li>
624         <h3>BSSs - ao - (read)</h3>
625         <p>List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.</p>
626       </li>
627
628       <li>
629         <h3>Networks - ao - (read)</h3>
630         <p>List of D-Bus objects paths representing configured networks.</p>
631       </li>
632
633       <li>
634         <h3>FastReauth - b - (read/write)</h3>
635         <p>Identical to fast_reauth entry in %wpa_supplicant configuration file.</p>
636       </li>
637
638       <li>
639         <h3>ScanInterval - i - (read/write)</h3>
640         <p>Time (in seconds) between scans for a suitable AP. Must be >= 0.</p>
641       </li>
642
643       <li>
644         <h3>PKCS11EnginePath - s - (read)</h3>
645         <p>PKCS #11 engine path.</p>
646       </li>
647
648       <li>
649         <h3>PKCS11ModulePath - s - (read)</h3>
650         <p>PKCS #11 module path.</p>
651       </li>
652
653       <li>
654         <h3>DisconnectReason - i - (read)</h3>
655         <p>The most recent IEEE 802.11 reason code for disconnect. Negative value indicates locally generated disconnection.</p>
656       </li>
657     </ul>
658
659 \subsection dbus_interface_signals Signals
660
661 <ul>
662       <li>
663         <h3>ScanDone ( b : success )</h3>
664         <p>Scanning finished. </p>
665         <h4>Arguments</h4>
666         <dl>
667           <dt>s : success</dt>
668           <dd>Determines if scanning was successful. If so, results are available.</dd>
669         </dl>
670       </li>
671
672       <li>
673         <h3>BSSAdded ( o : BSS, a{sv} : properties )</h3>
674         <p>Interface became aware of a new BSS.</p>
675         <h4>Arguments</h4>
676         <dl>
677           <dt>o : BSS</dt>
678           <dd>A D-Bus path to an object representing the new BSS.</dd>
679         </dl>
680         <dl>
681           <dt>a{sv} : properties</dt>
682           <dd>A dictionary containing properties of added BSS.</dd>
683         </dl>
684       </li>
685
686       <li>
687         <h3>BSSRemoved ( o : BSS )</h3>
688         <p>BSS disappeared.</p>
689         <h4>Arguments</h4>
690         <dl>
691           <dt>o : BSS</dt>
692           <dd>A D-Bus path to an object representing the BSS.</dd>
693         </dl>
694       </li>
695
696       <li>
697         <h3>BlobAdded ( s : blobName )</h3>
698         <p>A new blob has been added to the interface.</p>
699         <h4>Arguments</h4>
700         <dl>
701           <dt>s : blobName</dt>
702           <dd>A name of the added blob.</dd>
703         </dl>
704       </li>
705
706       <li>
707         <h3>BlobRemoved ( s : blobName )</h3>
708         <p>A blob has been removed from the interface.</p>
709         <h4>Arguments</h4>
710         <dl>
711           <dt>s : blobName</dt>
712           <dd>A name of the removed blob.</dd>
713         </dl>
714       </li>
715
716       <li>
717         <h3>NetworkAdded ( o : network, a{sv} : properties )</h3>
718         <p>A new network has been added to the interface.</p>
719         <h4>Arguments</h4>
720         <dl>
721           <dt>o : network</dt>
722           <dd>A D-Bus path to an object representing the added network.</dd>
723         </dl>
724         <dl>
725           <dt>a{sv} : properties</dt>
726           <dd>A dictionary containing properties of added network.</dd>
727         </dl>
728       </li>
729
730       <li>
731         <h3>NetworkRemoved ( o : network )</h3>
732         <p>The network has been removed from the interface.</p>
733         <h4>Arguments</h4>
734         <dl>
735           <dt>o : network</dt>
736           <dd>A D-Bus path to an object representing the removed network.</dd>
737         </dl>
738       </li>
739
740       <li>
741         <h3>NetworkSelected ( o : network )</h3>
742         <p>The network has been selected.</p>
743         <h4>Arguments</h4>
744         <dl>
745           <dt>o : network</dt>
746           <dd>A D-Bus path to an object representing the selected network.</dd>
747         </dl>
748       </li>
749
750       <li>
751         <h3>StaAuthorized ( s : mac )</h3>
752         <p>A new station has been authorized to the interface.</p>
753         <h4>Arguments</h4>
754         <dl>
755           <dt>s : mac</dt>
756           <dd>A mac address which has been authorized.</dd>
757         </dl>
758       </li>
759
760       <li>
761         <h3>StaDeauthorized ( s : mac )</h3>
762         <p>A station has been deauthorized to the interface.</p>
763         <h4>Arguments</h4>
764         <dl>
765           <dt>s : mac</dt>
766           <dd>A mac address which has been deauthorized.</dd>
767         </dl>
768       </li>
769
770       <li>
771         <h3>PropertiesChanged ( a{sv} : properties )</h3>
772         <p>Some properties have changed.</p>
773         <h4>Arguments</h4>
774         <dl>
775           <dt>a{sv} : properties</dt>
776           <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>
777         </dl>
778       </li>
779
780       <li>
781         <h3>Certification ( a{sv} : parameters )</h3>
782         <p>Information about server TLS certificates.</p>
783         <h4>Arguments</h4>
784         <dl>
785           <dt>a{sv} : parameters</dt>
786           <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "depth", "subject", "cert_hash", "cert".</dd>
787         </dl>
788       </li>
789
790       <li>
791         <h3>EAP ( s : status, s : parameter )</h3>
792         <p>Information about EAP peer status.</p>
793         <h4>Arguments</h4>
794         <dl>
795           <dt>s : status</dt>
796           <dd>Operation, e.g., "started", "accept proposed method", "remote certificate verification", "eap parameter needed", "completion".</dd>
797           <dt>s : parameter</dt>
798           <dd>Information about the operation, e.g., EAP method name, "success".</dd>
799         </dl>
800       </li>
801
802       <li>
803         <h3>NetworkRequest ( o : network, s : field, s : txt )</h3>
804         <p>Request for network parameter. NetworkResponse() is used to provide the requested parameter.</p>
805         <h4>Arguments</h4>
806         <dl>
807           <dt>o : network</dt>
808           <dd>D-Bus path to an object representing the network.</dd>
809           <dt>s : field</dt>
810           <dd>Requested information, e.g., "PASSWORD".</dd>
811           <dt>txt : field</dt>
812           <dd>Human readable information about the requested information.</dd>
813         </dl>
814       </li>
815
816       <li>
817         <h3>ProbeRequest ( a{sv} : args )</h3>
818         <p>Information about a received Probe Request frame. This signal is delivered only to a single application that has subscribed to received the events with SubscribeProbeReq().</p>
819         <h4>Arguments</h4>
820         <dl>
821           <dt>a{sv} : args</dt>
822           <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "addr", "dst", "bssid", "ies", "signal".</dd>
823         </dl>
824       </li>
825     </ul>
826
827
828 \section dbus_wps fi.w1.wpa_supplicant1.Interface.WPS
829
830 Interface implemented by objects related to network interface added to
831 %wpa_supplicant, i.e., returned by fi.w1.wpa_supplicant1.CreateInterface.
832
833 \subsection dbus_wps_methods Methods
834
835 <ul>
836       <li>
837         <h3>Start ( a{sv} : args ) --> a{sv} : output</h3>
838         <p>Starts WPS configuration.</p>
839         <h4>Arguments</h4>
840         <dl>
841           <dt>a{sv} : args</dt>
842           <dd>
843             A dictionary with arguments used to start WPS configuration. The dictionary may contain the following entries:
844             <table>
845               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
846               <tr><td>Role</td><td>s</td><td>The device's role. Possible values are "enrollee" and "registrar".</td><td>Yes</td>
847               <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>
848               <tr><td>Pin</td><td>s</td><td>WPS Pin.</td><td>Yes, for registrar role; otherwise optional</td>
849               <tr><td>Bssid</td><td>ay</td><td></td><td>No</td>
850             </table>
851           </dd>
852         </dl>
853         <h4>Returns</h4>
854         <dl>
855           <dt>a{sv} : output</dt>
856           <dd>
857             <table>
858               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
859               <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>
860             </table>
861           </dd>
862         </dl>
863         <h4>Possible errors</h4>
864         <dl>
865           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
866           <dd>Starting WPS configuration failed for an unknown reason.</dd>
867           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
868           <dd>Invalid entries were found in the passed argument.</dd>
869         </dl>
870       </li>
871     </ul>
872
873 \subsection dbus_wps_properties Properties
874
875 <ul>
876       <li>
877         <h3>ProcessCredentials - b - (read/write)</h3>
878         <p>Determines if the interface will process the credentials (credentials_processed configuration file parameter).</p>
879       </li>
880       <li>
881         <h3>ConfigMethods - s - (read/write)</h3>
882         <p>The currently advertised WPS configuration methods. Available methods: usba ethernet label display ext_nfc_token int_nfc_token nfc_interface push_button keypad virtual_display physical_display virtual_push_button physical_push_button.</p>
883       </li>
884     </ul>
885
886 \subsection dbus_wps_signals Signals
887
888 <ul>
889       <li>
890         <h3>Event ( s : name, a{sv} : args )</h3>
891         <p>WPS event occurred.</p>
892         <h4>Arguments</h4>
893         <dl>
894           <dt>s : event</dt>
895           <dd>Event type. Possible values are: "success, "fail" and "m2d"</dd>
896           <dt>a{sv} : args</dt>
897           <dd>
898             Event arguments. Empty for success event, one entry ( "msg" : i ) for fail event and following entries for m2d event:
899             <table>
900               <tr><th>config_methods</th><th>Value type</th>
901               <tr><td>manufacturer</td><td>q</td>
902               <tr><td>model_name</td><td>ay</td>
903               <tr><td>model_number</td><td>ay</td>
904               <tr><td>serial_number</td><td>ay</td>
905               <tr><td>dev_name</td><td>ay</td>
906               <tr><td>primary_dev_type</td><td>ay</td>
907               <tr><td>config_error</td><td>q</td>
908               <tr><td>dev_password_id</td><td>q</td>
909             </table>
910           </dd>
911         </dl>
912       </li>
913
914       <li>
915         <h3>Credentials ( a{sv} : credentials )</h3>
916         <p>WPS credentials. Dictionary contains:</p>
917         <table>
918           <tr><th>Key</th><th>Value type</th><th>Description</th>
919           <tr><td>BSSID</td><td>ay</td><td></td>
920           <tr><td>SSID</td><td>s</td><td></td>
921           <tr><td>AuthType</td><td>as</td><td>Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk"</td>
922           <tr><td>EncrType</td><td>as</td><td>Possible array elements: "none", "wep", "tkip", "aes"</td>
923           <tr><td>Key</td><td>ay</td><td>Key data</td>
924           <tr><td>KeyIndex</td><td>u</td><td>Key index</td>
925         </table>
926       </li>
927
928       <li>
929         <h3>PropertiesChanged ( a{sv} : properties )</h3>
930         <p>Some properties have changed.</p>
931         <h4>Arguments</h4>
932         <dl>
933           <dt>a{sv} : properties</dt>
934           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ProcessCredentials"</dd>
935         </dl>
936       </li>
937     </ul>
938
939
940 \section dbus_bss fi.w1.wpa_supplicant1.BSS
941
942 Interface implemented by objects representing a scanned BSSs, i.e.,
943 scan results.
944
945 \subsection dbus_bss_properties Properties
946
947 <ul>
948       <li>
949         <h3>BSSID - ay - (read)</h3>
950         <p>BSSID of the BSS.</p>
951       </li>
952       <li>
953         <h3>SSID - ay - (read)</h3>
954         <p>SSID of the BSS.</p>
955       </li>
956       <li>
957         <h3>WPA - a{sv} - (read)</h3>
958         <p>WPA information of the BSS. Empty dictionary indicates no WPA support. Dictionary entries are:</p>
959         <table>
960           <tr><td>KeyMgmt</td><td>as</td><td>Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-none"</td>
961           <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
962           <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
963         </table>
964       </li>
965       <li>
966         <h3>RSN - a{sv} - (read)</h3>
967         <p>RSN information of the BSS. Empty dictionary indicates no RSN support. Dictionary entries are:</p>
968         <table>
969           <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>
970           <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
971           <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
972           <tr><td>MgmtGroup</td><td>s</td><td>Mangement frames cipher suite. Possible values are: "aes128cmac"</td>
973         </table>
974       </li>
975       <li>
976         <h3>WPS - a{sv} - (read)</h3>
977         <p>WPS information of the BSS. Empty dictionary indicates no WPS support. Dictionary entries are:</p>
978         <table>
979           <tr><td>Type</td><td>s</td><td>"pbc", "pin", ""</td>
980         </table>
981       </li>
982       <li>
983         <h3>IEs - ay - (read)</h3>
984         <p>All IEs of the BSS as a chain of TLVs</p>
985       </li>
986       <li>
987         <h3>Privacy - b - (read)</h3>
988         <p>Indicates if BSS supports privacy.</p>
989       </li>
990       <li>
991         <h3>Mode - s - (read)</h3>
992         <p>Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".</p>
993       </li>
994       <li>
995         <h3>Frequency - q - (read)</h3>
996         <p>Frequency of the BSS in MHz.</p>
997       </li>
998       <li>
999         <h3>Rates - au - (read)</h3>
1000         <p>Descending ordered array of rates supported by the BSS in bits per second.</p>
1001       </li>
1002       <li>
1003         <h3>Signal - n - (read)</h3>
1004         <p>Signal strength of the BSS.</p>
1005       </li>
1006       <li>
1007         <h3>Age - u - (read)</h3>
1008         <p>Number of seconds since the BSS was last seen.</p>
1009       </li>
1010     </ul>
1011
1012 \subsection dbus_bss_signals Signals
1013
1014 <ul>
1015       <li>
1016         <h3>PropertiesChanged ( a{sv} : properties )</h3>
1017         <p>Some properties have changed.</p>
1018         <h4>Arguments</h4>
1019         <dl>
1020           <dt>a{sv} : properties</dt>
1021           <dd>A dictionary with pairs of properties names which have changed and theirs new values.</dd>
1022         </dl>
1023       </li>
1024     </ul>
1025
1026
1027 \section dbus_network fi.w1.wpa_supplicant1.Network
1028
1029 Interface implemented by objects representing configured networks,
1030 i.e., returned by fi.w1.wpa_supplicant1.Interface.AddNetwork.
1031
1032 \subsection dbus_network_properties Properties
1033
1034 <ul>
1035       <li>
1036         <h3>Enabled - b - (read/write)</h3>
1037         <p>Determines if the configured network is enabled or not.</p>
1038       </li>
1039
1040       <li>
1041         <h3>Properties - a{sv} - (read/write)</h3>
1042         <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.
1043       </li>
1044     </ul>
1045
1046 \subsection dbus_network_signals Signals
1047
1048 <ul>
1049       <li>
1050         <h3>PropertiesChanged ( a{sv} : properties )</h3>
1051         <p>Some properties have changed.</p>
1052         <h4>Arguments</h4>
1053         <dl>
1054           <dt>a{sv} : properties</dt>
1055           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "Enabled"</dd>
1056         </dl>
1057       </li>
1058     </ul>
1059
1060 */