]> git.ipfire.org Git - thirdparty/hostap.git/blob - doc/dbus.doxygen
doc: Add D-Bus documentation for Probe Request reporting
[thirdparty/hostap.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>Blobs - as - (read)</h3>
615 <p>List of blobs names added to the Interface.</p>
616 </li>
617
618 <li>
619 <h3>BSSs - ao - (read)</h3>
620 <p>List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.</p>
621 </li>
622
623 <li>
624 <h3>Networks - ao - (read)</h3>
625 <p>List of D-Bus objects paths representing configured networks.</p>
626 </li>
627
628 <li>
629 <h3>FastReauth - b - (read/write)</h3>
630 <p>Identical to fast_reauth entry in %wpa_supplicant configuration file.</p>
631 </li>
632
633 <li>
634 <h3>ScanInterval - i - (read/write)</h3>
635 <p>Time (in seconds) between scans for a suitable AP. Must be >= 0.</p>
636 </li>
637
638 <li>
639 <h3>PKCS11EnginePath - s - (read)</h3>
640 <p>PKCS #11 engine path.</p>
641 </li>
642
643 <li>
644 <h3>PKCS11ModulePath - s - (read)</h3>
645 <p>PKCS #11 module path.</p>
646 </li>
647 </ul>
648
649 \subsection dbus_interface_signals Signals
650
651 <ul>
652 <li>
653 <h3>ScanDone ( b : success )</h3>
654 <p>Scanning finished. </p>
655 <h4>Arguments</h4>
656 <dl>
657 <dt>s : success</dt>
658 <dd>Determines if scanning was successful. If so, results are available.</dd>
659 </dl>
660 </li>
661
662 <li>
663 <h3>BSSAdded ( o : BSS, a{sv} : properties )</h3>
664 <p>Interface became aware of a new BSS.</p>
665 <h4>Arguments</h4>
666 <dl>
667 <dt>o : BSS</dt>
668 <dd>A D-Bus path to an object representing the new BSS.</dd>
669 </dl>
670 <dl>
671 <dt>a{sv} : properties</dt>
672 <dd>A dictionary containing properties of added BSS.</dd>
673 </dl>
674 </li>
675
676 <li>
677 <h3>BSSRemoved ( o : BSS )</h3>
678 <p>BSS disappeared.</p>
679 <h4>Arguments</h4>
680 <dl>
681 <dt>o : BSS</dt>
682 <dd>A D-Bus path to an object representing the BSS.</dd>
683 </dl>
684 </li>
685
686 <li>
687 <h3>BlobAdded ( s : blobName )</h3>
688 <p>A new blob has been added to the interface.</p>
689 <h4>Arguments</h4>
690 <dl>
691 <dt>s : blobName</dt>
692 <dd>A name of the added blob.</dd>
693 </dl>
694 </li>
695
696 <li>
697 <h3>BlobRemoved ( s : blobName )</h3>
698 <p>A blob has been removed from the interface.</p>
699 <h4>Arguments</h4>
700 <dl>
701 <dt>s : blobName</dt>
702 <dd>A name of the removed blob.</dd>
703 </dl>
704 </li>
705
706 <li>
707 <h3>NetworkAdded ( o : network, a{sv} : properties )</h3>
708 <p>A new network has been added to the interface.</p>
709 <h4>Arguments</h4>
710 <dl>
711 <dt>o : network</dt>
712 <dd>A D-Bus path to an object representing the added network.</dd>
713 </dl>
714 <dl>
715 <dt>a{sv} : properties</dt>
716 <dd>A dictionary containing properties of added network.</dd>
717 </dl>
718 </li>
719
720 <li>
721 <h3>NetworkRemoved ( o : network )</h3>
722 <p>The network has been removed from the interface.</p>
723 <h4>Arguments</h4>
724 <dl>
725 <dt>o : network</dt>
726 <dd>A D-Bus path to an object representing the removed network.</dd>
727 </dl>
728 </li>
729
730 <li>
731 <h3>NetworkSelected ( o : network )</h3>
732 <p>The network has been selected.</p>
733 <h4>Arguments</h4>
734 <dl>
735 <dt>o : network</dt>
736 <dd>A D-Bus path to an object representing the selected network.</dd>
737 </dl>
738 </li>
739
740 <li>
741 <h3>StaAuthorized ( s : mac )</h3>
742 <p>A new station has been authorized to the interface.</p>
743 <h4>Arguments</h4>
744 <dl>
745 <dt>s : mac</dt>
746 <dd>A mac address which has been authorized.</dd>
747 </dl>
748 </li>
749
750 <li>
751 <h3>StaDeauthorized ( s : mac )</h3>
752 <p>A station has been deauthorized to the interface.</p>
753 <h4>Arguments</h4>
754 <dl>
755 <dt>s : mac</dt>
756 <dd>A mac address which has been deauthorized.</dd>
757 </dl>
758 </li>
759
760 <li>
761 <h3>PropertiesChanged ( a{sv} : properties )</h3>
762 <p>Some properties have changed.</p>
763 <h4>Arguments</h4>
764 <dl>
765 <dt>a{sv} : properties</dt>
766 <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>
767 </dl>
768 </li>
769
770 <li>
771 <h3>Certification ( a{sv} : parameters )</h3>
772 <p>Information about server TLS certificates.</p>
773 <h4>Arguments</h4>
774 <dl>
775 <dt>a{sv} : parameters</dt>
776 <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "depth", "subject", "cert_hash", "cert".</dd>
777 </dl>
778 </li>
779
780 <li>
781 <h3>EAP ( s : status, s : parameter )</h3>
782 <p>Information about EAP peer status.</p>
783 <h4>Arguments</h4>
784 <dl>
785 <dt>s : status</dt>
786 <dd>Operation, e.g., "started", "accept proposed method", "remote certificate verification", "eap parameter needed", "completion".</dd>
787 <dt>s : parameter</dt>
788 <dd>Information about the operation, e.g., EAP method name, "success".</dd>
789 </dl>
790 </li>
791
792 <li>
793 <h3>NetworkRequest ( o : network, s : field, s : txt )</h3>
794 <p>Request for network parameter. NetworkResponse() is used to provide the requested parameter.</p>
795 <h4>Arguments</h4>
796 <dl>
797 <dt>o : network</dt>
798 <dd>D-Bus path to an object representing the network.</dd>
799 <dt>s : field</dt>
800 <dd>Requested information, e.g., "PASSWORD".</dd>
801 <dt>txt : field</dt>
802 <dd>Human readable information about the requested information.</dd>
803 </dl>
804 </li>
805
806 <li>
807 <h3>ProbeRequest ( a{sv} : args )</h3>
808 <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>
809 <h4>Arguments</h4>
810 <dl>
811 <dt>a{sv} : args</dt>
812 <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "addr", "dst", "bssid", "ies", "signal".</dd>
813 </dl>
814 </li>
815 </ul>
816
817
818 \section dbus_wps fi.w1.wpa_supplicant1.Interface.WPS
819
820 Interface implemented by objects related to network interface added to
821 %wpa_supplicant, i.e., returned by fi.w1.wpa_supplicant1.CreateInterface.
822
823 \subsection dbus_wps_methods Methods
824
825 <ul>
826 <li>
827 <h3>Start ( a{sv} : args ) --> a{sv} : output</h3>
828 <p>Starts WPS configuration.</p>
829 <h4>Arguments</h4>
830 <dl>
831 <dt>a{sv} : args</dt>
832 <dd>
833 A dictionary with arguments used to start WPS configuration. The dictionary may contain the following entries:
834 <table>
835 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
836 <tr><td>Role</td><td>s</td><td>The device's role. Possible values are "enrollee" and "registrar".</td><td>Yes</td>
837 <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>
838 <tr><td>Pin</td><td>s</td><td>WPS Pin.</td><td>Yes, for registrar role; otherwise optional</td>
839 <tr><td>Bssid</td><td>ay</td><td></td><td>No</td>
840 </table>
841 </dd>
842 </dl>
843 <h4>Returns</h4>
844 <dl>
845 <dt>a{sv} : output</dt>
846 <dd>
847 <table>
848 <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
849 <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>
850 </table>
851 </dd>
852 </dl>
853 <h4>Possible errors</h4>
854 <dl>
855 <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
856 <dd>Starting WPS configuration failed for an unknown reason.</dd>
857 <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
858 <dd>Invalid entries were found in the passed argument.</dd>
859 </dl>
860 </li>
861 </ul>
862
863 \subsection dbus_wps_properties Properties
864
865 <ul>
866 <li>
867 <h3>ProcessCredentials - b - (read/write)</h3>
868 <p>Determines if the interface will process the credentials (credentials_processed configuration file parameter).</p>
869 </li>
870 </ul>
871
872 \subsection dbus_wps_signals Signals
873
874 <ul>
875 <li>
876 <h3>Event ( s : name, a{sv} : args )</h3>
877 <p>WPS event occurred.</p>
878 <h4>Arguments</h4>
879 <dl>
880 <dt>s : event</dt>
881 <dd>Event type. Possible values are: "success, "fail" and "m2d"</dd>
882 <dt>a{sv} : args</dt>
883 <dd>
884 Event arguments. Empty for success event, one entry ( "msg" : i ) for fail event and following entries for m2d event:
885 <table>
886 <tr><th>config_methods</th><th>Value type</th>
887 <tr><td>manufacturer</td><td>q</td>
888 <tr><td>model_name</td><td>ay</td>
889 <tr><td>model_number</td><td>ay</td>
890 <tr><td>serial_number</td><td>ay</td>
891 <tr><td>dev_name</td><td>ay</td>
892 <tr><td>primary_dev_type</td><td>ay</td>
893 <tr><td>config_error</td><td>q</td>
894 <tr><td>dev_password_id</td><td>q</td>
895 </table>
896 </dd>
897 </dl>
898 </li>
899
900 <li>
901 <h3>Credentials ( a{sv} : credentials )</h3>
902 <p>WPS credentials. Dictionary contains:</p>
903 <table>
904 <tr><th>Key</th><th>Value type</th><th>Description</th>
905 <tr><td>BSSID</td><td>ay</td><td></td>
906 <tr><td>SSID</td><td>s</td><td></td>
907 <tr><td>AuthType</td><td>as</td><td>Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk"</td>
908 <tr><td>EncrType</td><td>as</td><td>Possible array elements: "none", "wep", "tkip", "aes"</td>
909 <tr><td>Key</td><td>ay</td><td>Key data</td>
910 <tr><td>KeyIndex</td><td>u</td><td>Key index</td>
911 </table>
912 </li>
913
914 <li>
915 <h3>PropertiesChanged ( a{sv} : properties )</h3>
916 <p>Some properties have changed.</p>
917 <h4>Arguments</h4>
918 <dl>
919 <dt>a{sv} : properties</dt>
920 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ProcessCredentials"</dd>
921 </dl>
922 </li>
923 </ul>
924
925
926 \section dbus_bss fi.w1.wpa_supplicant1.BSS
927
928 Interface implemented by objects representing a scanned BSSs, i.e.,
929 scan results.
930
931 \subsection dbus_bss_properties Properties
932
933 <ul>
934 <li>
935 <h3>BSSID - ay - (read)</h3>
936 <p>BSSID of the BSS.</p>
937 </li>
938 <li>
939 <h3>SSID - ay - (read)</h3>
940 <p>SSID of the BSS.</p>
941 </li>
942 <li>
943 <h3>WPA - a{sv} - (read)</h3>
944 <p>WPA information of the BSS. Empty dictionary indicates no WPA support. Dictionary entries are:</p>
945 <table>
946 <tr><td>KeyMgmt</td><td>as</td><td>Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-none"</td>
947 <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
948 <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
949 </table>
950 </li>
951 <li>
952 <h3>RSN - a{sv} - (read)</h3>
953 <p>RSN information of the BSS. Empty dictionary indicates no RSN support. Dictionary entries are:</p>
954 <table>
955 <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>
956 <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
957 <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
958 <tr><td>MgmtGroup</td><td>s</td><td>Mangement frames cipher suite. Possible values are: "aes128cmac"</td>
959 </table>
960 </li>
961 <li>
962 <h3>IEs - ay - (read)</h3>
963 <p>All IEs of the BSS as a chain of TLVs</p>
964 </li>
965 <li>
966 <h3>Privacy - b - (read)</h3>
967 <p>Indicates if BSS supports privacy.</p>
968 </li>
969 <li>
970 <h3>Mode - s - (read)</h3>
971 <p>Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".</p>
972 </li>
973 <li>
974 <h3>Frequency - q - (read)</h3>
975 <p>Frequency of the BSS in MHz.</p>
976 </li>
977 <li>
978 <h3>Rates - au - (read)</h3>
979 <p>Descending ordered array of rates supported by the BSS in bits per second.</p>
980 </li>
981 <li>
982 <h3>Signal - n - (read)</h3>
983 <p>Signal strength of the BSS.</p>
984 </li>
985 </ul>
986
987 \subsection dbus_bss_signals Signals
988
989 <ul>
990 <li>
991 <h3>PropertiesChanged ( a{sv} : properties )</h3>
992 <p>Some properties have changed.</p>
993 <h4>Arguments</h4>
994 <dl>
995 <dt>a{sv} : properties</dt>
996 <dd>A dictionary with pairs of properties names which have changed and theirs new values.</dd>
997 </dl>
998 </li>
999 </ul>
1000
1001
1002 \section dbus_network fi.w1.wpa_supplicant1.Network
1003
1004 Interface implemented by objects representing configured networks,
1005 i.e., returned by fi.w1.wpa_supplicant1.Interface.AddNetwork.
1006
1007 \subsection dbus_network_properties Properties
1008
1009 <ul>
1010 <li>
1011 <h3>Enabled - b - (read/write)</h3>
1012 <p>Determines if the configured network is enabled or not.</p>
1013 </li>
1014
1015 <li>
1016 <h3>Properties - a{sv} - (read/write)</h3>
1017 <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.
1018 </li>
1019 </ul>
1020
1021 \subsection dbus_network_signals Signals
1022
1023 <ul>
1024 <li>
1025 <h3>PropertiesChanged ( a{sv} : properties )</h3>
1026 <p>Some properties have changed.</p>
1027 <h4>Arguments</h4>
1028 <dl>
1029 <dt>a{sv} : properties</dt>
1030 <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "Enabled"</dd>
1031 </dl>
1032 </li>
1033 </ul>
1034
1035 */