P2P: Add P2P Cancel method over D-Bus interface
[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_p2pdevice
14 - \ref dbus_bss
15 - \ref dbus_network
16 - \ref dbus_peer
17 - \ref dbus_group
18 - \ref dbus_persistent_group
19
20
21 \section dbus_main fi.w1.wpa_supplicant1
22
23 Interface implemented by the main wpa_supplicant D-Bus object
24 registered in the bus with fi.w1.wpa_supplicant1 name.
25
26 \subsection dbus_main_methods Methods
27
28 <ul>
29       <li>
30         <h3>CreateInterface ( a{sv} : args ) --> o : interface</h3>
31         <p>Registers a wireless interface in wpa_supplicant.</p>
32         <h4>Arguments</h4>
33         <dl>
34           <dt>a{sv} : args</dt>
35           <dd>
36             A dictionary with arguments used to add the interface to wpa_supplicant. The dictionary may contain the following entries:
37             <table>
38               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
39               <tr><td>Ifname</td><td>s</td><td>Name of the network interface to control, e.g., wlan0</td><td>Yes</td>
40               <tr><td>BridgeIfname</td><td>s</td><td>Name of the bridge interface to control, e.g., br0</td><td>No</td>
41               <tr><td>Driver</td><td>s</td><td>Driver name which the interface uses, e.g., nl80211</td><td>No</td>
42               <tr><td>ConfigFile</td><td>s</td><td>Configuration file path</td><td>No</td>
43             </table>
44           </dd>
45         </dl>
46         <h4>Returns</h4>
47         <dl>
48           <dt>o : interface</dt>
49           <dd>A D-Bus path to object representing created interface</dd>
50         </dl>
51         <h4>Possible errors</h4>
52         <dl>
53           <dt>fi.w1.wpa_supplicant1.InterfaceExists</dt>
54           <dd>wpa_supplicant already controls this interface.</dd>
55           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
56           <dd>Creating interface failed for an unknown reason.</dd>
57           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
58           <dd>Invalid entries were found in the passed argument.</dd>
59         </dl>
60       </li>
61
62       <li>
63         <h3>RemoveInterface ( o : interface ) --> nothing</h3>
64         <p>Deregisters a wireless interface from wpa_supplicant.</p>
65         <h4>Arguments</h4>
66         <dl>
67           <dt>o : interface</dt>
68           <dd>A D-Bus path to an object representing an interface to remove returned by CreateInterface</dd>
69         </dl>
70         <h4>Possible errors</h4>
71         <dl>
72           <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
73           <dd>Object pointed by the path doesn't exist or doesn't represent an interface.</dd>
74           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
75           <dd>Removing interface failed for an unknown reason.</dd>
76         </dl>
77       </li>
78
79       <li>
80         <h3>GetInterface ( s : ifname ) --> o : interface</h3>
81         <p>Returns a D-Bus path to an object related to an interface which wpa_supplicant already controls.</p>
82         <h4>Arguments</h4>
83         <dl>
84           <dt>s : ifname</dt>
85           <dd>Name of the network interface, e.g., wlan0</dd>
86         </dl>
87         <h4>Returns</h4>
88         <dl>
89           <dt>o : interface</dt>
90           <dd>A D-Bus path to an object representing an interface</dd>
91         </dl>
92         <h4>Possible errors</h4>
93         <dl>
94           <dt>fi.w1.wpa_supplicant1.InterfaceUnknown</dt>
95           <dd>An interface with the passed name in not controlled by wpa_supplicant.</dd>
96           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
97           <dd>Getting an interface object path failed for an unknown reason.</dd>
98         </dl>
99       </li>
100     </ul>
101
102 \subsection dbus_main_properties Properties
103
104 <ul>
105       <li>
106         <h3>DebugLevel - s - (read/write)</h3>
107         <p>Global wpa_supplicant debugging level. Possible values are
108         "msgdump" (verbose debugging), "debug" (debugging),
109         "info" (informative), "warning" (warnings), and "error" (errors).</p>
110       </li>
111
112       <li>
113         <h3>DebugTimestamp - b - (read/write)</h3>
114         <p>Global wpa_supplicant debugging parameter. Determines if timestamps are shown in debug logs.</p>
115       </li>
116
117       <li>
118         <h3>DebugShowKeys - b - (read/write)</h3>
119         <p>Global wpa_supplicant debugging parameter. Determines if secrets are shown in debug logs.</p>
120       </li>
121
122       <li>
123         <h3>Interfaces - ao - (read)</h3>
124         <p>An array with paths to D-Bus objects representing controlled interfaces each.</p>
125       </li>
126
127       <li>
128         <h3>EapMethods - as - (read)</h3>
129         <p>An array with supported EAP methods names.</p>
130       </li>
131
132       <li>
133         <h3>Capabilities - as - (read)</h3>
134         <p>An array with supported capabilities (e.g., "ap", "ibss-rsn", "p2p", "interworking").</p>
135       </li>
136
137       <li>
138         <h3>WFDIEs - ay - (read/write)</h3>
139         <p>Wi-Fi Display subelements.</p>
140       </li>
141     </ul>
142
143 \subsection dbus_main_signals Signals
144
145 <ul>
146       <li>
147         <h3>InterfaceAdded ( o : interface, a{sv} : properties )</h3>
148         <p>A new interface was added to wpa_supplicant.</p>
149         <h4>Arguments</h4>
150         <dl>
151           <dt>o : interface</dt>
152           <dd>A D-Bus path to an object representing the added interface</dd>
153         </dl>
154         <dl>
155           <dt>a{sv} : properties</dt>
156           <dd>A dictionary containing properties of added interface.</dd>
157         </dl>
158       </li>
159
160       <li>
161         <h3>InterfaceRemoved ( o : interface )</h3>
162         <p>An interface was removed from wpa_supplicant.</p>
163         <h4>Arguments</h4>
164         <dl>
165           <dt>o : interface</dt>
166           <dd>A D-Bus path to an object representing the removed interface</dd>
167         </dl>
168       </li>
169
170       <li>
171         <h3>PropertiesChanged ( a{sv} : properties )</h3>
172         <p>Some properties have changed.</p>
173         <h4>Arguments</h4>
174         <dl>
175           <dt>a{sv} : properties</dt>
176           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "DebugParams"</dd>
177         </dl>
178       </li>
179     </ul>
180
181
182 \section dbus_interface fi.w1.wpa_supplicant1.Interface
183
184 Interface implemented by objects related to network interface added to
185 wpa_supplicant, i.e., returned by
186 fi.w1.wpa_supplicant1.CreateInterface.
187
188 \subsection dbus_interface_methods Methods
189
190 <ul>
191       <li>
192         <h3>Scan ( a{sv} : args ) --> nothing</h3>
193         <p>Triggers a scan.</p>
194         <h4>Arguments</h4>
195         <dl>
196           <dt>a{sv} : args</dt>
197           <dd>
198             A dictionary with arguments describing scan type:
199             <table>
200               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
201               <tr><td>Type</td><td>s</td><td>Type of the scan. Possible values: "active", "passive"</td><td>Yes</td>
202               <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>
203               <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>
204               <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>
205               <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>
206             </table>
207           </dd>
208         </dl>
209         <h4>Possible errors</h4>
210         <dl>
211           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
212           <dd>Invalid entries were found in the passed argument.</dd>
213         </dl>
214       </li>
215
216       <li>
217         <h3>Disconnect ( ) --> nothing</h3>
218         <p>Disassociates the interface from current network.</p>
219         <h4>Possible errors</h4>
220         <dl>
221           <dt>fi.w1.wpa_supplicant1.NotConnected</dt>
222           <dd>Interface is not connected to any network.</dd>
223         </dl>
224       </li>
225
226       <li>
227         <h3>AddNetwork ( a{sv} : args ) --> o : network</h3>
228         <p>Adds a new network to the interface.</p>
229         <h4>Arguments</h4>
230         <dl>
231           <dt>a{sv} : args</dt>
232           <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>
233         </dl>
234         <h4>Returns</h4>
235         <dl>
236           <dt>o : network</dt>
237           <dd>A D-Bus path to an object representing a configured network</dd>
238         </dl>
239         <h4>Possible errors</h4>
240         <dl>
241           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
242           <dd>Invalid entries were found in the passed argument.</dd>
243           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
244           <dd>Adding network failed for an unknown reason.</dd>
245         </dl>
246       </li>
247
248       <li>
249         <h3>RemoveNetwork ( o : network ) --> nothing</h3>
250         <p>Removes a configured network from the interface.</p>
251         <h4>Arguments</h4>
252         <dl>
253           <dt>o : network</dt>
254           <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
255         </dl>
256         <h4>Possible errors</h4>
257         <dl>
258           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
259           <dd>A passed path doesn't point to any network object.</dd>
260           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
261           <dd>A passed path doesn't point to any network object.</dd>
262           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
263           <dd>Removing network failed for an unknown reason.</dd>
264         </dl>
265       </li>
266
267       <li>
268         <h3>RemoveAllNetworks ( ) --> nothing</h3>
269         <p>Remove all configured networks from the interface.</p>
270       </li>
271
272       <li>
273         <h3>SelectNetwork ( o : network ) --> nothing</h3>
274         <p>Attempt association with a configured network.</p>
275         <h4>Arguments</h4>
276         <dl>
277           <dt>o : network</dt>
278           <dd>A D-Bus path to an object representing a configured network returned by fi.w1.wpa_supplicant1.Interface.AddNetwork</dd>
279         </dl>
280         <h4>Possible errors</h4>
281         <dl>
282           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
283           <dd>A passed path doesn't point to any network object.</dd>
284           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
285           <dd>A passed path doesn't point to any network object.</dd>
286         </dl>
287       </li>
288
289       <li>
290         <h3>Reassociate ( ) --> nothing</h3>
291         <p>Attempt reassociation.</p>
292         <h4>Possible errors</h4>
293         <dl>
294           <dt>fi.w1.wpa_supplicant1.InterfaceDisabled</dt>
295           <dd>The interface is disabled.</dd>
296         </dl>
297       </li>
298
299       <li>
300         <h3>Reattach ( ) --> nothing</h3>
301         <p>Attempt reassociation back to the current BSS.</p>
302         <h4>Possible errors</h4>
303         <dl>
304           <dt>fi.w1.wpa_supplicant1.NotConnected</dt>
305           <dd>Interface is not connected to any network.</dd>
306         </dl>
307       </li>
308
309       <li>
310         <h3>AddBlob ( s : name, ay : data ) --> nothing</h3>
311         <p>Adds a blob to the interface.</p>
312         <h4>Arguments</h4>
313         <dl>
314           <dt>s : name</dt>
315           <dd>A name of a blob</dd>
316           <dt>ay : data</dt>
317           <dd>A blob data</dd>
318         </dl>
319         <h4>Possible errors</h4>
320         <dl>
321           <dt>fi.w1.wpa_supplicant1.BlobExists</dt>
322           <dd>A blob with the specified name already exists.</dd>
323         </dl>
324       </li>
325
326       <li>
327         <h3>RemoveBlob ( s : name ) --> nothing</h3>
328         <p>Removes the blob from the interface.</p>
329         <h4>Arguments</h4>
330         <dl>
331           <dt>s : name</dt>
332           <dd>A name of the blob to remove</dd>
333         </dl>
334         <h4>Possible errors</h4>
335         <dl>
336           <dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
337           <dd>A blob with the specified name doesn't exist.</dd>
338         </dl>
339       </li>
340
341       <li>
342         <h3>GetBlob ( s : name ) --> ay : data</h3>
343         <p>Returns the blob data of a previously added blob.</p>
344         <h4>Arguments</h4>
345         <dl>
346           <dt>s : name</dt>
347           <dd>A name of the blob</dd>
348         </dl>
349         <h4>Returns</h4>
350         <dl>
351           <dt>ay : data</dt>
352           <dd>A blob data</dd>
353         </dl>
354         <h4>Possible errors</h4>
355         <dl>
356           <dt>fi.w1.wpa_supplicant1.BlobUnknown</dt>
357           <dd>A blob with the specified name doesn't exist.</dd>
358         </dl>
359       </li>
360       <li>
361         <h3>AutoScan ( s : arg ) --> nothing</h3>
362         <p>Set autoscan parameters for the interface.</p>
363         <h4>Arguments</h4>
364         <dl>
365           <dt>s : arg</dt>
366           <dd>Autoscan parameter line or empty to unset autoscan.</dd>
367         </dl>
368         <h4>Possible errors</h4>
369         <dl>
370           <dt>fi.w1.wpa_supplicant1.NoMemory</dt>
371           <dd>Needed memory was not possible to get allocated.</dd>
372           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
373           <dd>Invalid entries were found in the passed argument.</dd>
374         </dl>
375       </li>
376       <li>
377         <h3>TDLSDiscover ( s : peer_address ) --> nothing</h3>
378         <p>Initiate a TDLS discovery for a peer.</p>
379         <h4>Arguments</h4>
380         <dl>
381           <dt>s : peer_address</dt>
382           <dd>MAC address for the peer to perform TDLS discovery.</dd>
383         </dl>
384         <h4>Possible errors</h4>
385         <dl>
386           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
387           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
388           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
389           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
390         </dl>
391       </li>
392       <li>
393         <h3>TDLSSetup ( s : peer_address ) --> nothing</h3>
394         <p>Setup a TDLS session for a peer.</p>
395         <h4>Arguments</h4>
396         <dl>
397           <dt>s : peer_address</dt>
398           <dd>MAC address for the peer to perform TDLS setup.</dd>
399         </dl>
400         <h4>Possible errors</h4>
401         <dl>
402           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
403           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
404           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
405           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
406         </dl>
407       </li>
408       <li>
409         <h3>TDLSStatus ( s : peer_address ) --> s</h3>
410         <p>Return TDLS status with respect to a peer.</p>
411         <h4>Arguments</h4>
412         <dl>
413           <dt>s : peer_address</dt>
414           <dd>MAC address for the peer for which status is requested.</dd>
415         </dl>
416         <h4>Returns</h4>
417         <dl>
418           <dt>s : status</dt>
419           <dd>Current status of the TDLS link with the selected peer.</dd>
420         </dl>
421         <h4>Possible errors</h4>
422         <dl>
423           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
424           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
425         </dl>
426       </li>
427       <li>
428         <h3>TDLSTeardown ( s : peer_address ) --> nothing</h3>
429         <p>Tear down a TDLS session with a peer.</p>
430         <h4>Arguments</h4>
431         <dl>
432           <dt>s : peer_address</dt>
433           <dd>MAC address for the peer to tear down TDLS connectivity with.</dd>
434         </dl>
435         <h4>Possible errors</h4>
436         <dl>
437           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
438           <dd>The "peer_address" argument is not a properly formatted MAC.</dd>
439           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
440           <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
441         </dl>
442       </li>
443       <li>
444         <h3>EAPLogoff ( ) --> nothing</h3>
445         <p>IEEE 802.1X EAPOL state machine logoff.</p>
446       </li>
447       <li>
448         <h3>EAPLogon ( ) --> nothing</h3>
449         <p>IEEE 802.1X EAPOL state machine logon.</p>
450       </li>
451
452       <li>
453         <h3>NetworkReply ( o : network, s : field, s : value ) --> nothing</h3>
454         <p>Provide parameter requested by NetworkRequest().</p>
455         <h4>Arguments</h4>
456         <dl>
457           <dt>o : network</dt>
458           <dd>A D-Bus path to an object representing the network (copied from NetworkRequest()).</dd>
459           <dt>s : field</dt>
460           <dd>Requested information (copied from NetworkRequest()).</dd>
461           <dt>s : value</dt>
462           <dd>The requested information (e.g., password for EAP authentication).</dd>
463         </dl>
464         <h4>Possible errors</h4>
465         <dl>
466           <dt>fi.w1.wpa_supplicant1.NetworkUnknown</dt>
467           <dd>A passed path doesn't point to any network object.</dd>
468           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
469           <dd>A passed path doesn't point to any network object.</dd>
470           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
471           <dd>IEEE 802.1X support was not included in the build.</dd>
472         </dl>
473       </li>
474
475       <li>
476         <h3>SetPKCS11EngineAndModulePath ( s : pkcs11_engine_path, s : pkcs11_module_path ) --> nothing</h3>
477         <p>Set PKCS #11 engine and module path.</p>
478         <h4>Arguments</h4>
479         <dl>
480           <dt>s : pkcs11_engine_path</dt>
481           <dd>PKCS #11 engine path.</dd>
482           <dt>s : pkcs11_module_path</dt>
483           <dd>PKCS #11 module path.</dd>
484         </dl>
485         <h4>Possible errors</h4>
486         <dl>
487           <dt>org.freedesktop.DBus.Error.Failed.InvalidArgs</dt>
488           <dd>Invalid PKCS #11 engine or module path.</dd>
489           <dt>org.freedesktop.DBus.Error.Failed</dt>
490           <dd>Reinit of the EAPOL state machine with the new PKCS #11 engine and module path failed.</dd>
491         </dl>
492       </li>
493       <li>
494         <h3>SignalPoll ( ) --> a{sv} : properties</h3>
495         <p>Fetch signal properties for the current connection.</p>
496         <h4>Returns</h4>
497         <dl>
498           <dt>a{sv} : properties</dt>
499           <dd>
500             <table>
501               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
502               <tr><td>linkspeed</td><td>i</td><td>Link speed (Mbps)</td><td>No</td>
503               <tr><td>noise</td><td>i</td><td>Noise (dBm)</td><td>No</td>
504               <tr><td>width</td><td>s</td><td>Channel width</td><td>No</td>
505               <tr><td>frequency</td><td>u</td><td>Frequency (MHz)</td><td>No</td>
506               <tr><td>rssi</td><td>i</td><td>RSSI (dBm)</td><td>No</td>
507               <tr><td>avg-rssi</td><td>i</td><td>Average RSSI (dBm)</td><td>No</td>
508               <tr><td>center-frq1</td><td>i</td><td>VHT segment 1 frequency (MHz)</td><td>No</td>
509               <tr><td>center-frq2</td><td>i</td><td>VHT segment 2 frequency (MHz)</td><td>No</td>
510             </table>
511           </dd>
512         </dl>
513       </li>
514       <li>
515         <h3>FlushBSS ( u : age ) --> nothing</h3>
516         <p>Flush BSS entries from the cache.</p>
517         <h4>Arguments</h4>
518         <dl>
519           <dt>u : age</dt>
520           <dd>Maximum age in seconds for BSS entries to keep in cache (0 = remove all entries).</dd>
521         </dl>
522       </li>
523
524       <li>
525         <h3>SubscribeProbeReq ( ) --> nothing</h3>
526         <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>
527         <h4>Possible errors</h4>
528         <dl>
529           <dt>fi.w1.wpa_supplicant1.SubscriptionInUse</dt>
530           <dd>Another application is already subscribed.</dd>
531           <dt>fi.w1.wpa_supplicant1.NoMemory</dt>
532           <dd>Needed memory was not possible to get allocated.</dd>
533         </dl>
534       </li>
535
536       <li>
537         <h3>UnsubscribeProbeReq ( ) --> nothing</h3>
538         <p>Unsubscribe from receiving Probe Request events.</p>
539         <h4>Possible errors</h4>
540         <dl>
541           <dt>fi.w1.wpa_supplicant1.NoSubscription</dt>
542           <dd>No subscription in place.</dd>
543           <dt>fi.w1.wpa_supplicant1.SubscriptionNotYou</dt>
544           <dd>Subscription in place, but for another process.</dd>
545         </dl>
546       </li>
547     </ul>
548
549 \subsection dbus_interface_properties Properties
550
551 <ul>
552       <li>
553         <h3>Capabilities - a{sv} - (read)</h3>
554         <p>Capabilities of the interface. Dictionary contains following entries:</p>
555         <table>
556           <tr><th>Key</th><th>Value type</th><th>Description</th>
557           <tr><td>Pairwise</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "none"</td>
558           <tr><td>Group</td><td>as</td><td>Possible array elements: "ccmp", "tkip", "wep104", "wep40"</td>
559           <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>
560           <tr><td>Protocol</td><td>as</td><td>Possible array elements: "rsn", "wpa"</td>
561           <tr><td>AuthAlg</td><td>as</td><td>Possible array elements: "open", "shared", "leap"</td>
562           <tr><td>Scan</td><td>as</td><td>Possible array elements: "active", "passive", "ssid"</td>
563           <tr><td>Modes</td><td>as</td><td>Possible array elements: "infrastructure", "ad-hoc", "ap"</td>
564         </table>
565       </li>
566
567       <li>
568         <h3>State - s - (read)</h3>
569         <p>A state of the interface. Possible values are: return "disconnected", "inactive", "scanning", "authenticating", "associating", "associated", "4way_handshake", "group_handshake", "completed","unknown".</p>
570       </li>
571
572       <li>
573         <h3>Scanning - b - (read)</h3>
574         <p>Determines if the interface is already scanning or not</p>
575       </li>
576
577       <li>
578         <h3>ApScan - u - (read/write)</h3>
579         <p>Identical to ap_scan entry in wpa_supplicant configuration file. Possible values are 0, 1 or 2.</p>
580       </li>
581
582       <li>
583         <h3>BSSExpireAge - u - (read/write)</h3>
584         <p>Identical to bss_expiration_age entry in wpa_supplicant configuration file.</p>
585       </li>
586
587       <li>
588         <h3>BSSExpireCount - u - (read/write)</h3>
589         <p>Identical to bss_expiration_scan_count entry in wpa_supplicant configuration file.</p>
590       </li>
591
592       <li>
593         <h3>Country - s - (read/write)</h3>
594         <p>Identical to country entry in wpa_supplicant configuration file.</p>
595       </li>
596
597       <li>
598         <h3>Ifname - s - (read)</h3>
599         <p>Name of network interface controlled by the interface, e.g., wlan0.</p>
600       </li>
601
602       <li>
603         <h3>BridgeIfname - s - (read)</h3>
604         <p>Name of bridge network interface controlled by the interface, e.g., br0.</p>
605       </li>
606
607       <li>
608         <h3>Driver - s - (read)</h3>
609         <p>Name of driver used by the interface, e.g., nl80211.</p>
610       </li>
611
612       <li>
613         <h3>CurrentBSS - o - (read)</h3>
614         <p>Path to D-Bus object representing BSS which wpa_supplicant is associated with, or "/" if is not associated at all.</p>
615       </li>
616
617       <li>
618         <h3>CurrentNetwork - o - (read)</h3>
619         <p>Path to D-Bus object representing configured network which wpa_supplicant uses at the moment, or "/" if doesn't use any.</p>
620       </li>
621
622       <li>
623         <h3>CurrentAuthMode - s - (read)</h3>
624         <p>Current authentication type.</p>
625       </li>
626
627       <li>
628         <h3>Blobs - as - (read)</h3>
629         <p>List of blobs names added to the Interface.</p>
630       </li>
631
632       <li>
633         <h3>BSSs - ao - (read)</h3>
634         <p>List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.</p>
635       </li>
636
637       <li>
638         <h3>Networks - ao - (read)</h3>
639         <p>List of D-Bus objects paths representing configured networks.</p>
640       </li>
641
642       <li>
643         <h3>FastReauth - b - (read/write)</h3>
644         <p>Identical to fast_reauth entry in wpa_supplicant configuration file.</p>
645       </li>
646
647       <li>
648         <h3>ScanInterval - i - (read/write)</h3>
649         <p>Time (in seconds) between scans for a suitable AP. Must be >= 0.</p>
650       </li>
651
652       <li>
653         <h3>PKCS11EnginePath - s - (read)</h3>
654         <p>PKCS #11 engine path.</p>
655       </li>
656
657       <li>
658         <h3>PKCS11ModulePath - s - (read)</h3>
659         <p>PKCS #11 module path.</p>
660       </li>
661
662       <li>
663         <h3>DisconnectReason - i - (read)</h3>
664         <p>The most recent IEEE 802.11 reason code for disconnect. Negative value indicates locally generated disconnection.</p>
665       </li>
666     </ul>
667
668 \subsection dbus_interface_signals Signals
669
670 <ul>
671       <li>
672         <h3>ScanDone ( b : success )</h3>
673         <p>Scanning finished. </p>
674         <h4>Arguments</h4>
675         <dl>
676           <dt>s : success</dt>
677           <dd>Determines if scanning was successful. If so, results are available.</dd>
678         </dl>
679       </li>
680
681       <li>
682         <h3>BSSAdded ( o : BSS, a{sv} : properties )</h3>
683         <p>Interface became aware of a new BSS.</p>
684         <h4>Arguments</h4>
685         <dl>
686           <dt>o : BSS</dt>
687           <dd>A D-Bus path to an object representing the new BSS.</dd>
688         </dl>
689         <dl>
690           <dt>a{sv} : properties</dt>
691           <dd>A dictionary containing properties of added BSS.</dd>
692         </dl>
693       </li>
694
695       <li>
696         <h3>BSSRemoved ( o : BSS )</h3>
697         <p>BSS disappeared.</p>
698         <h4>Arguments</h4>
699         <dl>
700           <dt>o : BSS</dt>
701           <dd>A D-Bus path to an object representing the BSS.</dd>
702         </dl>
703       </li>
704
705       <li>
706         <h3>BlobAdded ( s : blobName )</h3>
707         <p>A new blob has been added to the interface.</p>
708         <h4>Arguments</h4>
709         <dl>
710           <dt>s : blobName</dt>
711           <dd>A name of the added blob.</dd>
712         </dl>
713       </li>
714
715       <li>
716         <h3>BlobRemoved ( s : blobName )</h3>
717         <p>A blob has been removed from the interface.</p>
718         <h4>Arguments</h4>
719         <dl>
720           <dt>s : blobName</dt>
721           <dd>A name of the removed blob.</dd>
722         </dl>
723       </li>
724
725       <li>
726         <h3>NetworkAdded ( o : network, a{sv} : properties )</h3>
727         <p>A new network has been added to the interface.</p>
728         <h4>Arguments</h4>
729         <dl>
730           <dt>o : network</dt>
731           <dd>A D-Bus path to an object representing the added network.</dd>
732         </dl>
733         <dl>
734           <dt>a{sv} : properties</dt>
735           <dd>A dictionary containing properties of added network.</dd>
736         </dl>
737       </li>
738
739       <li>
740         <h3>NetworkRemoved ( o : network )</h3>
741         <p>The network has been removed from the interface.</p>
742         <h4>Arguments</h4>
743         <dl>
744           <dt>o : network</dt>
745           <dd>A D-Bus path to an object representing the removed network.</dd>
746         </dl>
747       </li>
748
749       <li>
750         <h3>NetworkSelected ( o : network )</h3>
751         <p>The network has been selected.</p>
752         <h4>Arguments</h4>
753         <dl>
754           <dt>o : network</dt>
755           <dd>A D-Bus path to an object representing the selected network.</dd>
756         </dl>
757       </li>
758
759       <li>
760         <h3>StaAuthorized ( s : mac )</h3>
761         <p>A new station has been authorized to the interface.</p>
762         <h4>Arguments</h4>
763         <dl>
764           <dt>s : mac</dt>
765           <dd>A mac address which has been authorized.</dd>
766         </dl>
767       </li>
768
769       <li>
770         <h3>StaDeauthorized ( s : mac )</h3>
771         <p>A station has been deauthorized to the interface.</p>
772         <h4>Arguments</h4>
773         <dl>
774           <dt>s : mac</dt>
775           <dd>A mac address which has been deauthorized.</dd>
776         </dl>
777       </li>
778
779       <li>
780         <h3>PropertiesChanged ( a{sv} : properties )</h3>
781         <p>Some properties have changed.</p>
782         <h4>Arguments</h4>
783         <dl>
784           <dt>a{sv} : properties</dt>
785           <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>
786         </dl>
787       </li>
788
789       <li>
790         <h3>Certification ( a{sv} : parameters )</h3>
791         <p>Information about server TLS certificates.</p>
792         <h4>Arguments</h4>
793         <dl>
794           <dt>a{sv} : parameters</dt>
795           <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "depth", "subject", "altsubject", "cert_hash", "cert".</dd>
796         </dl>
797       </li>
798
799       <li>
800         <h3>EAP ( s : status, s : parameter )</h3>
801         <p>Information about EAP peer status.</p>
802         <h4>Arguments</h4>
803         <dl>
804           <dt>s : status</dt>
805           <dd>Operation, e.g., "started", "accept proposed method", "remote certificate verification", "eap parameter needed", "completion".</dd>
806           <dt>s : parameter</dt>
807           <dd>Information about the operation, e.g., EAP method name, "success".</dd>
808         </dl>
809       </li>
810
811       <li>
812         <h3>NetworkRequest ( o : network, s : field, s : txt )</h3>
813         <p>Request for network parameter. NetworkResponse() is used to provide the requested parameter.</p>
814         <h4>Arguments</h4>
815         <dl>
816           <dt>o : network</dt>
817           <dd>D-Bus path to an object representing the network.</dd>
818           <dt>s : field</dt>
819           <dd>Requested information, e.g., "PASSWORD".</dd>
820           <dt>txt : field</dt>
821           <dd>Human readable information about the requested information.</dd>
822         </dl>
823       </li>
824
825       <li>
826         <h3>ProbeRequest ( a{sv} : args )</h3>
827         <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>
828         <h4>Arguments</h4>
829         <dl>
830           <dt>a{sv} : args</dt>
831           <dd>A dictionary with pairs of field names and their values. Possible dictionary keys are: "addr", "dst", "bssid", "ies", "signal".</dd>
832         </dl>
833       </li>
834     </ul>
835
836
837 \section dbus_wps fi.w1.wpa_supplicant1.Interface.WPS
838
839 Interface for performing WPS (Wi-Fi Simple Config) operations.
840
841 \subsection dbus_wps_methods Methods
842
843 <ul>
844       <li>
845         <h3>Start ( a{sv} : args ) --> a{sv} : output</h3>
846         <p>Starts WPS configuration. Note: When used with P2P groups, this needs to be issued on the GO group interface.</p>
847         <h4>Arguments</h4>
848         <dl>
849           <dt>a{sv} : args</dt>
850           <dd>
851             A dictionary with arguments used to start WPS configuration. The dictionary may contain the following entries:
852             <table>
853               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
854               <tr><td>Role</td><td>s</td><td>The device's role. Possible values are "enrollee" and "registrar".</td><td>Yes</td>
855               <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>
856               <tr><td>Pin</td><td>s</td><td>WPS Pin.</td><td>Yes, for registrar role; otherwise optional</td>
857               <tr><td>Bssid</td><td>ay</td><td>Note: This is used to specify the peer MAC address when authorizing WPS connection in AP or P2P GO role.</td><td>No</td>
858               <tr><td>P2PDeviceAddress</td><td>ay</td><td>P2P Device Address of a peer to authorize for PBC connection. Used only in P2P GO role.</td><td>No</td>
859             </table>
860           </dd>
861         </dl>
862         <h4>Returns</h4>
863         <dl>
864           <dt>a{sv} : output</dt>
865           <dd>
866             <table>
867               <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th>
868               <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>
869             </table>
870           </dd>
871         </dl>
872         <h4>Possible errors</h4>
873         <dl>
874           <dt>fi.w1.wpa_supplicant1.UnknownError</dt>
875           <dd>Starting WPS configuration failed for an unknown reason.</dd>
876           <dt>fi.w1.wpa_supplicant1.InvalidArgs</dt>
877           <dd>Invalid entries were found in the passed argument.</dd>
878         </dl>
879       </li>
880       <li>
881         <h3>Cancel ( nothing ) --> nothing</h3>
882         <p>Cancel ongoing WPS operation.</p>
883       </li>
884     </ul>
885
886 \subsection dbus_wps_properties Properties
887
888 <ul>
889       <li>
890         <h3>ProcessCredentials - b - (read/write)</h3>
891         <p>Determines if the interface will process the credentials (credentials_processed configuration file parameter).</p>
892       </li>
893       <li>
894         <h3>ConfigMethods - s - (read/write)</h3>
895         <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>
896       </li>
897     </ul>
898
899 \subsection dbus_wps_signals Signals
900
901 <ul>
902       <li>
903         <h3>Event ( s : name, a{sv} : args )</h3>
904         <p>WPS event occurred.</p>
905         <h4>Arguments</h4>
906         <dl>
907           <dt>s : event</dt>
908           <dd>Event type. Possible values are: "success, "fail" and "m2d"</dd>
909           <dt>a{sv} : args</dt>
910           <dd>
911             Event arguments. Empty for success event, one entry ( "msg" : i ) for fail event and following entries for m2d event:
912             <table>
913               <tr><th>config_methods</th><th>Value type</th>
914               <tr><td>manufacturer</td><td>q</td>
915               <tr><td>model_name</td><td>ay</td>
916               <tr><td>model_number</td><td>ay</td>
917               <tr><td>serial_number</td><td>ay</td>
918               <tr><td>dev_name</td><td>ay</td>
919               <tr><td>primary_dev_type</td><td>ay</td>
920               <tr><td>config_error</td><td>q</td>
921               <tr><td>dev_password_id</td><td>q</td>
922             </table>
923           </dd>
924         </dl>
925       </li>
926
927       <li>
928         <h3>Credentials ( a{sv} : credentials )</h3>
929         <p>WPS credentials. Dictionary contains:</p>
930         <table>
931           <tr><th>Key</th><th>Value type</th><th>Description</th>
932           <tr><td>BSSID</td><td>ay</td><td></td>
933           <tr><td>SSID</td><td>s</td><td></td>
934           <tr><td>AuthType</td><td>as</td><td>Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk"</td>
935           <tr><td>EncrType</td><td>as</td><td>Possible array elements: "none", "wep", "tkip", "aes"</td>
936           <tr><td>Key</td><td>ay</td><td>Key data</td>
937           <tr><td>KeyIndex</td><td>u</td><td>Key index</td>
938         </table>
939       </li>
940
941       <li>
942         <h3>PropertiesChanged ( a{sv} : properties )</h3>
943         <p>Some properties have changed.</p>
944         <h4>Arguments</h4>
945         <dl>
946           <dt>a{sv} : properties</dt>
947           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "ProcessCredentials"</dd>
948         </dl>
949       </li>
950     </ul>
951
952
953 \section dbus_p2pdevice fi.w1.wpa_supplicant1.Interface.P2PDevice
954
955 Interface for performing P2P (Wi-Fi Peer-to-Peer) P2P Device operations.
956
957 \subsection dbus_p2pdevice_methods Methods
958
959 <ul>
960   <li>
961     <h3>Find ( a{sv} : args ) --> nothing</h3>
962     <p>Start P2P find operation (i.e., alternating P2P Search and Listen states to discover peers and be discoverable).</p>
963     <h4>Arguments</h4>
964     <dl>
965       <dt>a{sv} : args</dt>
966       <dd>
967         A dictionary with parameters for the P2P find operation:
968         <table>
969         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
970         <tr><td>Timeout</td><td>i</td><td>Timeout for operating in seconds</td><td>no</td></tr>
971         <tr><td>RequestedDevicesTypes</td><td>aay</td><td>WPS Device Types to search for</td><td>no</td></tr>
972         <tr><td>DiscoveryType</td><td>s</td><td>"start_with_full" (default, if not specified), "social", "progressive"</td><td>no</td></tr>
973         </table>
974       </dd>
975     </dl>
976   </li>
977
978   <li>
979     <h3>StopFind ( nothing ) --> nothing</h3>
980     <p>Stop P2P find operation.</p>
981   </li>
982
983   <li>
984     <h3>Listen ( i : timeout ) --> nothing</h3>
985     <p>Start P2P listen operation (i.e., be discoverable).</p>
986     <h4>Arguments</h4>
987     <dl>
988       <dt>i : timeout</dt>
989       <dd>Timeout in seconds for stopping the listen operation.</dd>
990     </dl>
991   </li>
992
993   <li>
994     <h3>ExtendedListen ( a{sv} : args ) --> nothing</h3>
995     <p>Configure Extended Listen Timing. If the parameters are omitted, this feature is disabled. If the parameters are included, Listen State will be entered every interval msec for at least period msec. Both values have acceptable range of 1-65535 (with interval obviously having to be larger than or equal to duration). If the P2P module is not idle at the time the Extended Listen Timing timeout occurs, the Listen State operation will be skipped.</p>
996     <h4>Arguments</h4>
997     <dl>
998       <dt>a{sv} : args</dt>
999       <dd>
1000         A dictionary with parameters for extended listen. Leave out all items to disable extended listen.
1001         <table>
1002         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1003         <tr><td>period</td><td>i</td><td>Extended listen period in milliseconds; 1-65535.</td><td>no</td></tr>
1004         <tr><td>interval</td><td>i</td><td>Extended listen interval in milliseconds; 1-65535.</td><td>no</td></tr>
1005         </table>
1006       </dd>
1007     </dl>
1008   </li>
1009
1010   <li>
1011     <h3>PresenceRequest ( a{sv} : args ) --> nothing</h3>
1012     <p>Request a specific GO presence in a P2P group where the local device is a P2P Client. Send a P2P Presence Request to the GO (this is only available when acting as a P2P client). If no duration/interval pairs are given, the request indicates that this client has no special needs for GO presence. The first parameter pair gives the preferred duration and interval values in microseconds. If the second pair is included, that indicates which value would be acceptable.
1013     \note This needs to be issued on a P2P group interface if separate group interfaces are used.
1014     \bug It would be cleaner to not require .P2PDevice methods to be issued on a group interface. In other words, args['group_object'] could be used to specify the group or this method could be moved to be a .Group PresenceRequest() method.</p>
1015     <h4>Arguments</h4>
1016     <dl>
1017       <dt>a{sv} : args</dt>
1018       <dd>
1019         A dictionary with parameters for the presence request.
1020         <table>
1021         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1022         <tr><td>duration1</td><td>i</td><td>Duration in microseconds.</td><td>no</td></tr>
1023         <tr><td>interval1</td><td>i</td><td>Interval in microseconds.</td><td>no</td></tr>
1024         <tr><td>duration2</td><td>i</td><td>Duration in microseconds.</td><td>no</td></tr>
1025         <tr><td>interval2</td><td>i</td><td>Interval in microseconds.</td><td>no</td></tr>
1026         </table>
1027       </dd>
1028     </dl>
1029   </li>
1030
1031   <li>
1032     <h3>ProvisionDiscoveryRequest ( o : peer, s : config_method ) --> nothing</h3>
1033   </li>
1034
1035   <li>
1036     <h3>Connect ( a{sv} : args ) --> s : generated_pin</h3>
1037     <p>Request a P2P group to be started through GO Negotiation or by joining an already operating group.</p>
1038     <h4>Arguments</h4>
1039     <dl>
1040       <dt>a{sv} : args</dt>
1041       <dd>
1042         A dictionary with parameters for the requested connection:
1043         <table>
1044         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1045         <tr><td>peer</td><td>o</td><td></td><td>yes</td></tr>
1046         <tr><td>persistent</td><td>b</td><td>Whether to form a persistent group.</td><td>no</td></tr>
1047         <tr><td>join</td><td>b</td><td>Whether to join an already operating group instead of forming a new group.</td><td>no</td></tr>
1048         <tr><td>authorize_only</td><td>b</td><td>Whether to authorize a peer to initiate GO Negotiation instead of initiating immediately.</td><td>no</td></tr>
1049         <tr><td>frequency</td><td>i</td><td>Operating frequency in MHz</td><td>no</td></tr>
1050         <tr><td>go_intent</td><td>i</td><td>GO intent 0-15</td><td>no</td></tr>
1051         <tr><td>wps_method</td><td>s</td><td>"pbc", "display", "keypad", "pin" (alias for "display")</td><td>yes</td></tr>
1052         <tr><td>pin</td><td>s</td><td></td><td>no</td></tr>
1053         </table>
1054       </dd>
1055     </dl>
1056   </li>
1057
1058   <li>
1059     <h3>GroupAdd ( a{sv} : args ) --> nothing</h3>
1060     <p>Request a P2P group to be started without GO Negotiation.</p>
1061     <h4>Arguments</h4>
1062     <dl>
1063       <dt>a{sv} : args</dt>
1064       <dd>
1065         A dictionary with parameters for the requested group:
1066         <table>
1067         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1068         <tr><td>persistent</td><td>b</td><td>Whether to form a persistent group.</td><td>no</td></tr>
1069         <tr><td>persistent_group_object</td><td>o</td><td></td><td>no</td></tr>
1070         <tr><td>frequency</td><td>i</td><td>Operating frequency in MHz</td><td>no</td></tr>
1071         </table>
1072       </dd>
1073     </dl>
1074   </li>
1075
1076   <li>
1077     <h3>Cancel ( nothing ) --> nothing</h3>
1078     <p>Stop ongoing P2P group formation operation.</p>
1079   </li>
1080
1081   <li>
1082     <h3>Invite ( a{sv} : args ) --> nothing</h3>
1083     <p>Invite a peer to join an already operating group or to re-invoke a persistent group.</p>
1084     <h4>Arguments</h4>
1085     <dl>
1086       <dt>a{sv} : args</dt>
1087       <dd>
1088         A dictionary with parameters for the invitation:
1089         <table>
1090         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1091         <tr><td>peer</td><td>o</td><td></td><td>yes</td></tr>
1092         <tr><td>persistent_group_object</td><td>o</td><td></td><td>no</td></tr>
1093         </table>
1094       </dd>
1095     </dl>
1096   </li>
1097
1098   <li>
1099     <h3>Disconnect ( nothing ) --> nothing</h3>
1100     <p>Terminate a P2P group.
1101     \note This needs to be issued on a P2P group interface if separate group interfaces are used.
1102     \bug It would be cleaner to not require .P2PDevice methods to be issued on a group interface. In other words, this would either need to be Disconnect(group_object) or moved to be a .Group Disconnect() method.</p>
1103   </li>
1104
1105   <li>
1106     <h3>RejectPeer ( o : peer ) --> nothing</h3>
1107     <p>Reject connection attempt from a peer (specified with a device address). This is a mechanism to reject a pending GO Negotiation with a peer and request to automatically block any further connection or discovery of the peer.</p>
1108   </li>
1109
1110   <li>
1111     <h3>Flush ( nothing ) --> nothing</h3>
1112     <p>Flush P2P peer table and state.</p>
1113   </li>
1114
1115   <li>
1116     <h3>AddService ( a{sv} : args ) --> nothing</h3>
1117     <p></p>
1118     <h4>Arguments</h4>
1119     <dl>
1120       <dt>a{sv} : args</dt>
1121       <dd>
1122         A dictionary with parameters for the service:
1123         <table>
1124         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1125         <tr><td>service_type</td><td>s</td><td>"upnp", "bonjour"</td><td>yes</td></tr>
1126         <tr><td>version</td><td>u</td><td>Required for UPnP services.</td><td>no</td></tr>
1127         <tr><td>service</td><td>s</td><td></td><td></td></tr>
1128         <tr><td>query</td><td>ay</td><td></td><td></td></tr>
1129         <tr><td>response</td><td>ay</td><td></td><td></td></tr>
1130         </table>
1131       </dd>
1132     </dl>
1133   </li>
1134
1135   <li>
1136     <h3>DeleteService ( a{sv} : args ) --> nothing</h3>
1137     <p></p>
1138     <h4>Arguments</h4>
1139     <dl>
1140       <dt>a{sv} : args</dt>
1141       <dd>
1142         A dictionary with parameters for the service:
1143         <table>
1144         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1145         <tr><td>service_type</td><td>s</td><td>"upnp", "bonjour"</td><td>yes</td></tr>
1146         <tr><td>version</td><td>u</td><td>Required for UPnP services.</td><td>no</td></tr>
1147         <tr><td>service</td><td>s</td><td></td><td></td></tr>
1148         <tr><td>query</td><td>ay</td><td></td><td></td></tr>
1149         </table>
1150       </dd>
1151     </dl>
1152   </li>
1153
1154   <li>
1155     <h3>FlushService ( nothing ) --> nothing</h3>
1156   </li>
1157
1158   <li>
1159     <h3>ServiceDiscoveryRequest ( a{sv} : args ) --> t : ref</h3>
1160     <p></p>
1161     <h4>Arguments</h4>
1162     <dl>
1163       <dt>a{sv} : args</dt>
1164       <dd>
1165         A dictionary with following parameters:
1166         <table>
1167         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1168         <tr><td>peer_object</td><td>o</td><td></td><td>no</td></tr>
1169         <tr><td>service_type</td><td>s</td><td>"upnp"</td><td>no</td></tr>
1170         <tr><td>version</td><td>u</td><td>Required for UPnP services.</td><td>no</td></tr>
1171         <tr><td>service</td><td>s</td><td></td><td></td></tr>
1172         <tr><td>tlv</td><td>ay</td><td></td><td></td></tr>
1173         </table>
1174       </dd>
1175     </dl>
1176   </li>
1177
1178   <li>
1179     <h3>ServiceDiscoveryResponse ( a{sv} : args ) --> nothing : ref</h3>
1180     <p></p>
1181     <h4>Arguments</h4>
1182     <dl>
1183       <dt>a{sv} : args</dt>
1184       <dd>
1185         A dictionary with following parameters:
1186         <table>
1187         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1188         <tr><td>peer_object</td><td>o</td><td></td><td>yes</td></tr>
1189         <tr><td>frequency</td><td>i</td><td></td><td>yes</td></tr>
1190         <tr><td>dialog_token</td><td>i</td><td></td><td>yes</td></tr>
1191         <tr><td>tlvs</td><td>ay</td><td></td><td>yes</td></tr>
1192         </table>
1193       </dd>
1194     </dl>
1195   </li>
1196
1197   <li>
1198     <h3>ServiceDiscoveryCancelRequest ( t : args ) --> nothing : ref</h3>
1199   </li>
1200
1201   <li>
1202     <h3>ServiceUpdate ( nothing ) --> nothing</h3>
1203   </li>
1204
1205   <li>
1206     <h3>ServiceDiscoveryExternal ( i : arg ) --> nothing</h3>
1207   </li>
1208
1209   <li>
1210     <h3>AddPersistentGroup ( a{sv} : args ) --> o : path</h3>
1211     <p></p>
1212     <h4>Arguments</h4>
1213     <dl>
1214       <dt>a{sv} : args</dt>
1215       <dd>
1216         A dictionary with following parameters:
1217         <table>
1218         <tr><th>Key</th><th>Value type</th><th>Description</th><th>Required</th></tr>
1219         <tr><td>bssid</td><td>s</td><td>P2P Device Address of the GO in the persistent group.</td><td>yes</td></tr>
1220         <tr><td>ssid</td><td>s</td><td>SSID of the group</td><td>yes</td></tr>
1221         <tr><td>psk</td><td>s</td><td>Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known)</td><td>yes</td></tr>
1222         <tr><td>mode</td><td>s</td><td>"3" on GO or "0" on P2P Client</td><td>yes</td></tr>
1223         </table>
1224       </dd>
1225     </dl>
1226   </li>
1227
1228   <li>
1229     <h3>RemovePersistentGroup ( o : path ) --> nothing</h3>
1230   </li>
1231
1232   <li>
1233     <h3>RemoveAllPersistentGroups ( nothing ) --> nothing</h3>
1234   </li>
1235 </ul>
1236
1237 \subsection dbus_p2pdevice_properties Properties
1238
1239 <ul>
1240   <li>
1241     <h3>P2PDeviceConfig - a{sv} - (read/write)</h3>
1242     <p>Dictionary with following entries. On write, only the included values are changed.</p>
1243     <table>
1244     <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1245     <tr><td>DeviceName</td><td>s</td><td></td></tr>
1246     <tr><td>PrimaryDeviceType</td><td>ay</td><td></td></tr>
1247     <tr><td>SecondaryDeviceTypes</td><td>aay</td><td></td></tr>
1248     <tr><td>VendorExtension</td><td>aay</td><td></td></tr>
1249     <tr><td>GOIntent</td><td>u</td><td></td></tr>
1250     <tr><td>PersistentReconnect</td><td>b</td><td></td></tr>
1251     <tr><td>ListenRegClass</td><td>u</td><td></td></tr>
1252     <tr><td>OperRegClass</td><td>u</td><td></td></tr>
1253     <tr><td>OperChannel</td><td>u</td><td></td></tr>
1254     <tr><td>SsidPostfix</td><td>s</td><td></td></tr>
1255     <tr><td>IntraBss</td><td>b</td><td></td></tr>
1256     <tr><td>GroupIdle</td><td>u</td><td></td></tr>
1257     <tr><td>disassoc_low_ack</td><td>u</td><td></td></tr>
1258     <tr><td>NoGroupIface</td><td>b</td><td></td></tr>
1259     <tr><td>p2p_search_delay</td><td>u</td><td></td></tr>
1260     </table>
1261   </li>
1262
1263   <li>
1264     <h3>Peers - ao - (read)</h3>
1265   </li>
1266
1267   <li>
1268     <h3>Role - s - (read)</h3>
1269     <p>\bug What is this trying to indicate? It does not make much sense to have a P2PDevice property role since there can be multiple concurrent groups and the P2P Device role is always active anyway.</p>
1270   </li>
1271
1272   <li>
1273     <h3>Group - o - (read)</h3>
1274     <p>\bug What is this trying to indicate? It does not make much sense to have a P2PDevice property Group since there can be multiple concurrent groups.</p>
1275   </li>
1276
1277   <li>
1278     <h3>PeerGO - o - (read)</h3>
1279     <p>\bug What is this trying to indicate? It does not make much sense to have a P2PDevice property PeerGO since there can be multiple concurrent groups.</p>
1280   </li>
1281
1282   <li>
1283     <h3>PersistentGroups - ao - (read)</h3>
1284   </li>
1285 </ul>
1286
1287 \subsection dbus_p2pdevice_signals Signals
1288
1289 <ul>
1290   <li>
1291     <h3>DeviceFound ( o : path )</h3>
1292   </li>
1293
1294   <li>
1295     <h3>DeviceLost ( o : path )</h3>
1296   </li>
1297
1298   <li>
1299     <h3>FindStopped ( )</h3>
1300   </li>
1301
1302   <li>
1303     <h3>ProvisionDiscoveryRequestDisplayPin ( o : peer_object, s : pin )</h3>
1304   </li>
1305
1306   <li>
1307     <h3>ProvisionDiscoveryResponseDisplayPin ( o : peer_object, s : pin )</h3>
1308   </li>
1309
1310   <li>
1311     <h3>ProvisionDiscoveryRequestEnterPin ( o : peer_object )</h3>
1312   </li>
1313
1314   <li>
1315     <h3>ProvisionDiscoveryResponseEnterPin ( o : peer_object )</h3>
1316   </li>
1317
1318   <li>
1319     <h3>ProvisionDiscoveryPBCRequest ( o : peer_object )</h3>
1320   </li>
1321
1322   <li>
1323     <h3>ProvisionDiscoveryPBCResponse ( o : peer_object )</h3>
1324   </li>
1325
1326   <li>
1327     <h3>ProvisionDiscoveryFailure ( o : peer_object, i : status )</h3>
1328   </li>
1329
1330   <li>
1331     <h3>GroupStarted ( a{sv} : properties )</h3>
1332     <p>A new P2P group was started or joined.</p>
1333     <h4>Arguments</h4>
1334     <dl>
1335       <dt>a{sv} : properties</dt>
1336       <dd>A dictionary with following information on the added group:
1337         <table>
1338           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1339           <tr><td>interface_object</td><td>o</td><td>D-Bus path of the interface on which this group is operating on. See \ref dbus_interface.</td></tr>
1340           <tr><td>role</td><td>s</td><td>The role of the local device in the group: "GO" or "client".</td></tr>
1341           <tr><td>group_object</td><td>o</td><td>D-Bus path of the group. See \ref dbus_group.</td></tr>
1342         </table>
1343       </dd>
1344     </dl>
1345   </li>
1346
1347   <li>
1348     <h3>GONegotiationSuccess ( a{sv} : properties )</h3>
1349     <p></p>
1350     <h4>Arguments</h4>
1351     <dl>
1352       <dt>a{sv} : properties</dt>
1353       <dd>A dictionary with following information:
1354         <table>
1355           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1356           <tr><td>peer_object</td><td>o</td><td>D-Bus path of the peer. See \ref dbus_peer.</td></tr>
1357           <tr><td>status</td><td>i</td><td></td></tr>
1358           <tr><td>passphrase</td><td>s</td><td>Passphrase for the group. Included only if this device becomes the GO of the group.</td></tr>
1359           <tr><td>role_go</td><td>s</td><td>The role of the local device in the group: "GO" or "client".</td></tr>
1360           <tr><td>ssid</td><td>ay</td><td></td></tr>
1361           <tr><td>peer_device_addr</td><td>ay</td><td></td></tr>
1362           <tr><td>peer_interface_addr</td><td>ay</td><td></td></tr>
1363           <tr><td>wps_method</td><td>s</td><td></td></tr>
1364           <tr><td>frequency_list</td><td>ai</td><td></td></tr>
1365           <tr><td>persistent_group</td><td>i</td><td></td></tr>
1366           <tr><td>peer_config_timeout</td><td>u</td><td></td></tr>
1367         </table>
1368       </dd>
1369     </dl>
1370   </li>
1371
1372   <li>
1373     <h3>GONegotiationFailure ( a{sv} : properties )</h3>
1374     <p></p>
1375     <h4>Arguments</h4>
1376     <dl>
1377       <dt>a{sv} : properties</dt>
1378       <dd>A dictionary with following information:
1379         <table>
1380           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1381           <tr><td>peer_object</td><td>o</td><td>D-Bus path of the peer. See \ref dbus_peer.</td></tr>
1382           <tr><td>status</td><td>i</td><td></td></tr>
1383         </table>
1384       </dd>
1385     </dl>
1386   </li>
1387
1388   <li>
1389     <h3>GONegotiationRequest ( o : path, i : dev_passwd_id )</h3>
1390   </li>
1391
1392   <li>
1393     <h3>InvitationResult ( a{sv} : invite_result )</h3>
1394     <p></p>
1395     <h4>Arguments</h4>
1396     <dl>
1397       <dt>a{sv} : invite_result</dt>
1398       <dd>A dictionary with following information:
1399         <table>
1400           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1401           <tr><td>status</td><td>i</td><td></td></tr>
1402           <tr><td>BSSID</td><td>ay</td><td>Optionally present</td></tr>
1403         </table>
1404       </dd>
1405     </dl>
1406   </li>
1407
1408   <li>
1409     <h3>GroupFinished ( a{sv} : properties )</h3>
1410     <p>A P2P group was removed.</p>
1411     <h4>Arguments</h4>
1412     <dl>
1413       <dt>a{sv} : properties</dt>
1414       <dd>A dictionary with following information of the removed group:
1415         <table>
1416           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1417           <tr><td>interface_object</td><td>o</td><td>D-Bus path of the interface on which this group is operating on. See \ref dbus_interface.</td></tr>
1418           <tr><td>role</td><td>s</td><td>The role of the local device in the group: "GO" or "client".</td></tr>
1419           <tr><td>group_object</td><td>o</td><td>D-Bus path of the group. See \ref dbus_group.</td></tr>
1420         </table>
1421       </dd>
1422     </dl>
1423   </li>
1424
1425   <li>
1426     <h3>ServiceDiscoveryRequest ( a{sv} : sd_request )</h3>
1427     <p></p>
1428     <h4>Arguments</h4>
1429     <dl>
1430       <dt>a{sv} : sd_request</dt>
1431       <dd>A dictionary with following information:
1432         <table>
1433           <tr><td>peer_object</td><td>o</td><td></td></tr>
1434           <tr><td>frequency</td><td>i</td><td></td></tr>
1435           <tr><td>dialog_token</td><td>i</td><td></td></tr>
1436           <tr><td>update_indicator</td><td>q</td><td></td></tr>
1437           <tr><td>tlvs</td><td>ay</td><td></td></tr>
1438         </table>
1439       </dd>
1440     </dl>
1441   </li>
1442
1443   <li>
1444     <h3>ServiceDiscoveryResponse ( a{sv} : sd_response )</h3>
1445     <p></p>
1446     <h4>Arguments</h4>
1447     <dl>
1448       <dt>a{sv} : sd_response</dt>
1449       <dd>A dictionary with following information:
1450         <table>
1451           <tr><td>peer_object</td><td>o</td><td></td></tr>
1452           <tr><td>update_indicator</td><td>q</td><td></td></tr>
1453           <tr><td>tlvs</td><td>ay</td><td></td></tr>
1454         </table>
1455       </dd>
1456     </dl>
1457   </li>
1458
1459   <li>
1460     <h3>PersistentGroupAdded ( o : path, a{sv} : properties )</h3>
1461     <p></p>
1462     <h4>Arguments</h4>
1463     <dl>
1464       <dt>o : path</dt>
1465       <dd>D-Bus object path for the persistent group. See \ref dbus_persistent_group.</dd>
1466       <dt>a{sv} : properties</dt>
1467       <dd>A dictionary with following information:
1468         <table>
1469         <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1470         <tr><td>bssid</td><td>s</td><td>P2P Device Address of the GO in the persistent group.</td></tr>
1471         <tr><td>ssid</td><td>s</td><td>SSID of the group</td></tr>
1472         <tr><td>psk</td><td>s</td><td>Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known)</td></tr>
1473         <tr><td>disabled</td><td>s</td><td>Set to "2" to indicate special network block use as a P2P persistent group information</td></tr>
1474         <tr><td>mode</td><td>s</td><td>"3" on GO or "0" on P2P Client</td></tr>
1475         </table>
1476       </dd>
1477     </dl>
1478   </li>
1479
1480   <li>
1481     <h3>PersistentGroupRemoved ( o : path )</h3>
1482     <p></p>
1483     <h4>Arguments</h4>
1484     <dl>
1485       <dt>o : path</dt>
1486       <dd>D-Bus object path for the persistent group. See \ref dbus_persistent_group.</dd>
1487     </dl>
1488   </li>
1489
1490   <li>
1491     <h3>WpsFailed ( s : name, a{sv} : args )</h3>
1492     <p></p>
1493     <h4>Arguments</h4>
1494     <dl>
1495       <dt>s : name</dt>
1496       <dd>"fail"</dd>
1497       <dt>a{sv} : args</dt>
1498       <dd>A dictionary with following information:
1499         <table>
1500           <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1501           <tr><td>msg</td><td>i</td><td></td></tr>
1502           <tr><td>config_error</td><td>n</td><td></td></tr>
1503         </table>
1504       </dd>
1505     </dl>
1506   </li>
1507 </ul>
1508
1509 \section dbus_bss fi.w1.wpa_supplicant1.BSS
1510
1511 Interface implemented by objects representing a scanned BSSs, i.e.,
1512 scan results.
1513
1514 \subsection dbus_bss_properties Properties
1515
1516 <ul>
1517       <li>
1518         <h3>BSSID - ay - (read)</h3>
1519         <p>BSSID of the BSS.</p>
1520       </li>
1521       <li>
1522         <h3>SSID - ay - (read)</h3>
1523         <p>SSID of the BSS.</p>
1524       </li>
1525       <li>
1526         <h3>WPA - a{sv} - (read)</h3>
1527         <p>WPA information of the BSS. Empty dictionary indicates no WPA support. Dictionary entries are:</p>
1528         <table>
1529           <tr><td>KeyMgmt</td><td>as</td><td>Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-none"</td>
1530           <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
1531           <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
1532         </table>
1533       </li>
1534       <li>
1535         <h3>RSN - a{sv} - (read)</h3>
1536         <p>RSN information of the BSS. Empty dictionary indicates no RSN support. Dictionary entries are:</p>
1537         <table>
1538           <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>
1539           <tr><td>Pairwise</td><td>as</td><td>Pairwise cipher suites. Possible array elements: "ccmp", "tkip"</td>
1540           <tr><td>Group</td><td>s</td><td>Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40"</td>
1541           <tr><td>MgmtGroup</td><td>s</td><td>Mangement frames cipher suite. Possible values are: "aes128cmac"</td>
1542         </table>
1543       </li>
1544       <li>
1545         <h3>WPS - a{sv} - (read)</h3>
1546         <p>WPS information of the BSS. Empty dictionary indicates no WPS support. Dictionary entries are:</p>
1547         <table>
1548           <tr><td>Type</td><td>s</td><td>"pbc", "pin", ""</td>
1549         </table>
1550       </li>
1551       <li>
1552         <h3>IEs - ay - (read)</h3>
1553         <p>All IEs of the BSS as a chain of TLVs</p>
1554       </li>
1555       <li>
1556         <h3>Privacy - b - (read)</h3>
1557         <p>Indicates if BSS supports privacy.</p>
1558       </li>
1559       <li>
1560         <h3>Mode - s - (read)</h3>
1561         <p>Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".</p>
1562       </li>
1563       <li>
1564         <h3>Frequency - q - (read)</h3>
1565         <p>Frequency of the BSS in MHz.</p>
1566       </li>
1567       <li>
1568         <h3>Rates - au - (read)</h3>
1569         <p>Descending ordered array of rates supported by the BSS in bits per second.</p>
1570       </li>
1571       <li>
1572         <h3>Signal - n - (read)</h3>
1573         <p>Signal strength of the BSS.</p>
1574       </li>
1575       <li>
1576         <h3>Age - u - (read)</h3>
1577         <p>Number of seconds since the BSS was last seen.</p>
1578       </li>
1579     </ul>
1580
1581 \subsection dbus_bss_signals Signals
1582
1583 <ul>
1584       <li>
1585         <h3>PropertiesChanged ( a{sv} : properties )</h3>
1586         <p>Some properties have changed.</p>
1587         <h4>Arguments</h4>
1588         <dl>
1589           <dt>a{sv} : properties</dt>
1590           <dd>A dictionary with pairs of properties names which have changed and theirs new values.</dd>
1591         </dl>
1592       </li>
1593     </ul>
1594
1595
1596 \section dbus_network fi.w1.wpa_supplicant1.Network
1597
1598 Interface implemented by objects representing configured networks,
1599 i.e., returned by fi.w1.wpa_supplicant1.Interface.AddNetwork.
1600
1601 \subsection dbus_network_properties Properties
1602
1603 <ul>
1604       <li>
1605         <h3>Enabled - b - (read/write)</h3>
1606         <p>Determines if the configured network is enabled or not.</p>
1607       </li>
1608
1609       <li>
1610         <h3>Properties - a{sv} - (read/write)</h3>
1611         <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.
1612       </li>
1613     </ul>
1614
1615 \subsection dbus_network_signals Signals
1616
1617 <ul>
1618       <li>
1619         <h3>PropertiesChanged ( a{sv} : properties )</h3>
1620         <p>Some properties have changed.</p>
1621         <h4>Arguments</h4>
1622         <dl>
1623           <dt>a{sv} : properties</dt>
1624           <dd>A dictionary with pairs of properties names which have changed and theirs new values. Possible dictionary keys are: "Enabled"</dd>
1625         </dl>
1626       </li>
1627     </ul>
1628
1629 \section dbus_peer fi.w1.wpa_supplicant1.Peer
1630
1631 Interface implemented by objects representing P2P peer devices.
1632
1633 \subsection dbus_peer_properties Properties
1634
1635 <ul>
1636   <li>
1637     <h3>DeviceName - s - (read)</h3>
1638   </li>
1639
1640   <li>
1641     <h3>PrimaryDeviceType - ay - (read)</h3>
1642   </li>
1643
1644   <li>
1645     <h3>config_method - q - (read)</h3>
1646   </li>
1647
1648   <li>
1649     <h3>level - i - (read)</h3>
1650   </li>
1651
1652   <li>
1653     <h3>devicecapability - y - (read)</h3>
1654   </li>
1655
1656   <li>
1657     <h3>groupcapability - y - (read)</h3>
1658     <p>Group Capability field from the last frame from which this peer information was updated.
1659     \note This field is only for debugging purposes and must not be used to determine whether the peer happens to be operating a group as a GO at the moment.
1660     </p>
1661   </li>
1662
1663   <li>
1664     <h3>SecondaryDeviceTypes - aay - (read)</h3>
1665   </li>
1666
1667   <li>
1668     <h3>VendorExtension - aay - (read)</h3>
1669   </li>
1670
1671   <li>
1672     <h3>IEs - ay - (read)</h3>
1673     <p>This is a confusingly named property that includes Wi-Fi Display subelements from the peer.
1674     \bug This should really be renamed since "IEs" means something completely different..
1675     </p>
1676   </li>
1677
1678   <li>
1679     <h3>DeviceAddress - ay - (read)</h3>
1680     <p>The P2P Device Address of the peer.</p>
1681   </li>
1682
1683   <li>
1684     <h3>Groups - ao - (read)</h3>
1685     <p>The current groups in which this peer is connected.</p>
1686   </li>
1687 </ul>
1688
1689 \subsection dbus_peer_signals Signals
1690
1691 <ul>
1692   <li>
1693     <h3>PropertiesChanged ( a{sv} : properties )</h3>
1694     <p>Some properties have changed.
1695     \deprecated Use org.freedesktop.DBus.Properties.PropertiesChanged instead.</p>
1696     \todo Explain how ProertiesChanged signals are supposed to be of any real use with Peer objects (i.e., one signal for multiple peers).
1697         <h4>Arguments</h4>
1698         <dl>
1699           <dt>a{sv} : properties</dt>
1700           <dd>A dictionary with pairs of properties names which have changed and their new values.</dd>
1701         </dl>
1702       </li>
1703     </ul>
1704
1705 \section dbus_group fi.w1.wpa_supplicant1.Group
1706
1707 Interface implemented by objects representing active P2P groups.
1708
1709 \subsection dbus_group_properties Properties
1710
1711 <ul>
1712   <li>
1713     <h3>Members - ao - (read)</h3>
1714     <p>Array of D-Bus object paths for the peer devices that are currently connected to the group. This is valid only on the GO device. An empty array is returned in P2P Client role.
1715   </li>
1716
1717   <li>
1718     <h3>Group - o - (read)</h3>
1719     <p>\todo Why is this here? This D-Bus object path is to this specific group and one needs to know it to fetching this information in the first place..
1720     </p>
1721   </li>
1722
1723   <li>
1724     <h3>Role - s - (read)</h3>
1725     <p>The role of this device in the group: "GO", "client".</p>
1726   </li>
1727
1728   <li>
1729     <h3>SSID - ay - (read)</h3>
1730     <p>P2P Group SSID.</p>
1731   </li>
1732
1733   <li>
1734     <h3>BSSID - ay - (read)</h3>
1735     <p>P2P Group BSSID (the P2P Interface Address of the GO).</p>
1736   </li>
1737
1738   <li>
1739     <h3>Frequency - q - (read)</h3>
1740     <p>The frequency (in MHz) of the group operating channel.</p>
1741   </li>
1742
1743   <li>
1744     <h3>Passphrase - s - (read)</h3>
1745     <p>Passphrase used in the group. This is always available on the GO. For P2P Client role, this may be available depending on whether the peer GO provided the passphrase during the WPS provisioning step. If not available, an empty string is returned.</p>
1746   </li>
1747
1748   <li>
1749     <h3>PSK - ay - (read)</h3>
1750     <p>PSK used in the group.</p>
1751   </li>
1752
1753   <li>
1754     <h3>WPSVendorExtensions - aay - (read/write)</h3>
1755     <p>WPS vendor extension attributes used on the GO. This is valid only the in the GO role. An empty array is returned in P2P Client role. At maximum, 10 separate vendor extension byte arrays can be configured. The GO device will include the configured attributes in WPS exchanges.</p>
1756   </li>
1757 </ul>
1758
1759 \subsection dbus_group_signals Signals
1760
1761 <ul>
1762   <li>
1763     <h3>PeerJoined ( o : peer )</h3>
1764     <p>A peer device has joined the group. This is indicated only on the GO device.</p>
1765     <h4>Arguments</h4>
1766     <dl>
1767       <dt>o : peer</dt>
1768       <dd>A D-Bus path to the object representing the peer. See \ref dbus_peer.</dd>
1769     </dl>
1770   </li>
1771
1772   <li>
1773     <h3>PeerDisconnected ( o : peer )</h3>
1774     <p>A peer device has left the group. This is indicated only on the GO device.</p>
1775     <h4>Arguments</h4>
1776     <dl>
1777       <dt>o : peer</dt>
1778       <dd>A D-Bus path to the object representing the peer. See \ref dbus_peer.</dd>
1779     </dl>
1780   </li>
1781 </ul>
1782
1783 \section dbus_persistent_group fi.w1.wpa_supplicant1.PersistentGroup
1784
1785 Interface implemented by objects representing persistent P2P groups.
1786
1787 \subsection dbus_persistent_group_properties Properties
1788
1789 <ul>
1790   <li>
1791     <h3>Properties - a{sv} - (read/write)</h3>
1792     <p>Properties of the persistent group. These are same properties as in the \ref dbus_network. When writing this, only the entries to be modified are included, i.e., any item that is not included will be left at its existing value. The following entries are used for persistent groups:</p>
1793     <table>
1794       <tr><th>Key</th><th>Value type</th><th>Description</th></tr>
1795       <tr><td>bssid</td><td>s</td><td>P2P Device Address of the GO in the persistent group.</td></tr>
1796       <tr><td>ssid</td><td>s</td><td>SSID of the group</td></tr>
1797       <tr><td>psk</td><td>s</td><td>Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known)</td></tr>
1798       <tr><td>disabled</td><td>s</td><td>Set to "2" to indicate special network block use as a P2P persistent group information</td></tr>
1799       <tr><td>mode</td><td>s</td><td>"3" on GO or "0" on P2P Client</td></tr>
1800     </table>
1801   </li>
1802 </ul>
1803
1804 */