dbus.doxygen 32 KB

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