/** \page dbus wpa_supplicant D-Bus API This section documents the wpa_supplicant D-Bus API. Every D-Bus interface implemented by wpa_supplicant is described here including their methods, signals, and properties with arguments, returned values, and possible errors. Interfaces: - \ref dbus_main - \ref dbus_interface - \ref dbus_wps - \ref dbus_p2pdevice - \ref dbus_bss - \ref dbus_network - \ref dbus_peer - \ref dbus_group - \ref dbus_persistent_group \section dbus_main fi.w1.wpa_supplicant1 Interface implemented by the main wpa_supplicant D-Bus object registered in the bus with fi.w1.wpa_supplicant1 name. \subsection dbus_main_methods Methods
Registers a wireless interface in wpa_supplicant.
Key | Value type | Description | Required |
---|---|---|---|
Ifname | s | Name of the network interface to control, e.g., wlan0 | Yes |
BridgeIfname | s | Name of the bridge interface to control, e.g., br0 | No |
Driver | s | Driver name which the interface uses, e.g., nl80211 | No |
ConfigFile | s | Configuration file path | No |
Deregisters a wireless interface from wpa_supplicant.
Returns a D-Bus path to an object related to an interface which wpa_supplicant already controls.
Global wpa_supplicant debugging level. Possible values are "msgdump" (verbose debugging), "debug" (debugging), "info" (informative), "warning" (warnings), and "error" (errors).
Global wpa_supplicant debugging parameter. Determines if timestamps are shown in debug logs.
Global wpa_supplicant debugging parameter. Determines if secrets are shown in debug logs.
An array with paths to D-Bus objects representing controlled interfaces each.
An array with supported EAP methods names.
An array with supported capabilities (e.g., "ap", "ibss-rsn", "p2p", "interworking").
Wi-Fi Display subelements.
A new interface was added to wpa_supplicant.
An interface was removed from wpa_supplicant.
Some properties have changed.
Triggers a scan.
Key | Value type | Description | Required |
---|---|---|---|
Type | s | Type of the scan. Possible values: "active", "passive" | Yes |
SSIDs | aay | Array of SSIDs to scan for (applies only if scan type is active) | No |
IEs | aay | Information elements to used in active scan (applies only if scan type is active) | No |
Channels | a(uu) | Array of frequencies to scan in form of (center, width) in MHz. | No |
AllowRoam | b | TRUE (or absent) to allow a roaming decision based on the results of this scan, FALSE to prevent a roaming decision. | No |
Disassociates the interface from current network.
Adds a new network to the interface.
Removes a configured network from the interface.
Remove all configured networks from the interface.
Attempt association with a configured network.
Attempt reassociation.
Attempt reassociation back to the current BSS.
Adds a blob to the interface.
Removes the blob from the interface.
Returns the blob data of a previously added blob.
Set autoscan parameters for the interface.
Initiate a TDLS discovery for a peer.
Setup a TDLS session for a peer.
Return TDLS status with respect to a peer.
Tear down a TDLS session with a peer.
IEEE 802.1X EAPOL state machine logoff.
IEEE 802.1X EAPOL state machine logon.
Provide parameter requested by NetworkRequest().
Set PKCS #11 engine and module path.
Fetch signal properties for the current connection.
Key | Value type | Description | Required |
---|---|---|---|
linkspeed | i | Link speed (Mbps) | No |
noise | i | Noise (dBm) | No |
width | s | Channel width | No |
frequency | u | Frequency (MHz) | No |
rssi | i | RSSI (dBm) | No |
avg-rssi | i | Average RSSI (dBm) | No |
center-frq1 | i | VHT segment 1 frequency (MHz) | No |
center-frq2 | i | VHT segment 2 frequency (MHz) | No |
Flush BSS entries from the cache.
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.
Unsubscribe from receiving Probe Request events.
Capabilities of the interface. Dictionary contains following entries:
Key | Value type | Description |
---|---|---|
Pairwise | as | Possible array elements: "ccmp", "tkip", "none" |
Group | as | Possible array elements: "ccmp", "tkip", "wep104", "wep40" |
KeyMgmt | as | Possible array elements: "wpa-psk", "wpa-ft-psk", "wpa-psk-sha256", "wpa-eap", "wpa-ft-eap", "wpa-eap-sha256", "ieee8021x", "wpa-none", "wps", "none" |
Protocol | as | Possible array elements: "rsn", "wpa" |
AuthAlg | as | Possible array elements: "open", "shared", "leap" |
Scan | as | Possible array elements: "active", "passive", "ssid" |
Modes | as | Possible array elements: "infrastructure", "ad-hoc", "ap" |
A state of the interface. Possible values are: return "disconnected", "inactive", "scanning", "authenticating", "associating", "associated", "4way_handshake", "group_handshake", "completed","unknown".
Determines if the interface is already scanning or not
Identical to ap_scan entry in wpa_supplicant configuration file. Possible values are 0, 1 or 2.
Identical to bss_expiration_age entry in wpa_supplicant configuration file.
Identical to bss_expiration_scan_count entry in wpa_supplicant configuration file.
Identical to country entry in wpa_supplicant configuration file.
Name of network interface controlled by the interface, e.g., wlan0.
Name of bridge network interface controlled by the interface, e.g., br0.
Name of driver used by the interface, e.g., nl80211.
Path to D-Bus object representing BSS which wpa_supplicant is associated with, or "/" if is not associated at all.
Path to D-Bus object representing configured network which wpa_supplicant uses at the moment, or "/" if doesn't use any.
Current authentication type.
List of blobs names added to the Interface.
List of D-Bus objects paths representing BSSs known to the interface, i.e., scan results.
List of D-Bus objects paths representing configured networks.
Identical to fast_reauth entry in wpa_supplicant configuration file.
Time (in seconds) between scans for a suitable AP. Must be >= 0.
PKCS #11 engine path.
PKCS #11 module path.
The most recent IEEE 802.11 reason code for disconnect. Negative value indicates locally generated disconnection.
Scanning finished.
Interface became aware of a new BSS.
BSS disappeared.
A new blob has been added to the interface.
A blob has been removed from the interface.
A new network has been added to the interface.
The network has been removed from the interface.
The network has been selected.
A new station has been authorized to the interface.
A station has been deauthorized to the interface.
Some properties have changed.
Information about server TLS certificates.
Information about EAP peer status.
Request for network parameter. NetworkResponse() is used to provide the requested parameter.
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().
Starts WPS configuration. Note: When used with P2P groups, this needs to be issued on the GO group interface.
Key | Value type | Description | Required |
---|---|---|---|
Role | s | The device's role. Possible values are "enrollee" and "registrar". | Yes |
Type | s | WPS authentication type. Applies only for enrollee role. Possible values are "pin" and "pbc". | Yes, for enrollee role; otherwise no |
Pin | s | WPS Pin. | Yes, for registrar role; otherwise optional |
Bssid | ay | Note: This is used to specify the peer MAC address when authorizing WPS connection in AP or P2P GO role. | No |
P2PDeviceAddress | ay | P2P Device Address of a peer to authorize for PBC connection. Used only in P2P GO role. | No |
Key | Value type | Description | Required |
---|---|---|---|
Pin | s | Newly generated PIN, if not specified for enrollee role and pin authentication type. | No |
Cancel ongoing WPS operation.
Determines if the interface will process the credentials (credentials_processed configuration file parameter).
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.
WPS event occurred.
config_methods | Value type |
---|---|
manufacturer | q |
model_name | ay |
model_number | ay |
serial_number | ay |
dev_name | ay |
primary_dev_type | ay |
config_error | q |
dev_password_id | q |
WPS credentials. Dictionary contains:
Key | Value type | Description |
---|---|---|
BSSID | ay | |
SSID | s | |
AuthType | as | Possible array elements: "open", "shared", "wpa-psk", "wpa-eap", "wpa2-eap", "wpa2-psk" |
EncrType | as | Possible array elements: "none", "wep", "tkip", "aes" |
Key | ay | Key data |
KeyIndex | u | Key index |
Some properties have changed.
Start P2P find operation (i.e., alternating P2P Search and Listen states to discover peers and be discoverable).
Key | Value type | Description | Required |
---|---|---|---|
Timeout | i | Timeout for operating in seconds | no |
RequestedDeviceTypes | aay | WPS Device Types to search for | no |
DiscoveryType | s | "start_with_full" (default, if not specified), "social", "progressive" | no |
Stop P2P find operation.
Start P2P listen operation (i.e., be discoverable).
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.
Key | Value type | Description | Required |
---|---|---|---|
period | i | Extended listen period in milliseconds; 1-65535. | no |
interval | i | Extended listen interval in milliseconds; 1-65535. | no |
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. \note This needs to be issued on a P2P group interface if separate group interfaces are used. \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.
Key | Value type | Description | Required |
---|---|---|---|
duration1 | i | Duration in microseconds. | no |
interval1 | i | Interval in microseconds. | no |
duration2 | i | Duration in microseconds. | no |
interval2 | i | Interval in microseconds. | no |
Request a P2P group to be started through GO Negotiation or by joining an already operating group.
Key | Value type | Description | Required |
---|---|---|---|
peer | o | yes | |
persistent | b | Whether to form a persistent group. | no |
join | b | Whether to join an already operating group instead of forming a new group. | no |
authorize_only | b | Whether to authorize a peer to initiate GO Negotiation instead of initiating immediately. | no |
frequency | i | Operating frequency in MHz | no |
go_intent | i | GO intent 0-15 | no |
wps_method | s | "pbc", "display", "keypad", "pin" (alias for "display") | yes |
pin | s | no |
Request a P2P group to be started without GO Negotiation.
Key | Value type | Description | Required |
---|---|---|---|
persistent | b | Whether to form a persistent group. | no |
persistent_group_object | o | no | |
frequency | i | Operating frequency in MHz | no |
Stop ongoing P2P group formation operation.
Invite a peer to join an already operating group or to re-invoke a persistent group.
Key | Value type | Description | Required |
---|---|---|---|
peer | o | yes | |
persistent_group_object | o | no |
Terminate a P2P group. \note This needs to be issued on a P2P group interface if separate group interfaces are used. \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.
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.
Flush P2P peer table and state.
Key | Value type | Description | Required |
---|---|---|---|
service_type | s | "upnp", "bonjour" | yes |
version | u | Required for UPnP services. | no |
service | s | ||
query | ay | ||
response | ay |
Key | Value type | Description | Required |
---|---|---|---|
service_type | s | "upnp", "bonjour" | yes |
version | u | Required for UPnP services. | no |
service | s | ||
query | ay |
Key | Value type | Description | Required |
---|---|---|---|
peer_object | o | no | |
service_type | s | "upnp" | no |
version | u | Required for UPnP services. | no |
service | s | ||
tlv | ay |
Key | Value type | Description | Required |
---|---|---|---|
peer_object | o | yes | |
frequency | i | yes | |
dialog_token | i | yes | |
tlvs | ay | yes |
Key | Value type | Description | Required |
---|---|---|---|
bssid | s | P2P Device Address of the GO in the persistent group. | yes |
ssid | s | SSID of the group | yes |
psk | s | Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known) | yes |
mode | s | "3" on GO or "0" on P2P Client | yes |
Dictionary with following entries. On write, only the included values are changed.
Key | Value type | Description |
---|---|---|
DeviceName | s | |
PrimaryDeviceType | ay | |
SecondaryDeviceTypes | aay | |
VendorExtension | aay | |
GOIntent | u | |
PersistentReconnect | b | |
ListenRegClass | u | |
ListenChannel | u | |
OperRegClass | u | |
OperChannel | u | |
SsidPostfix | s | |
IntraBss | b | |
GroupIdle | u | |
disassoc_low_ack | u | |
NoGroupIface | b | |
p2p_search_delay | u |
\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.
\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.
\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.
A new P2P group was started or joined.
Key | Value type | Description |
---|---|---|
interface_object | o | D-Bus path of the interface on which this group is operating on. See \ref dbus_interface. |
role | s | The role of the local device in the group: "GO" or "client". |
group_object | o | D-Bus path of the group. See \ref dbus_group. |
Key | Value type | Description |
---|---|---|
peer_object | o | D-Bus path of the peer. See \ref dbus_peer. |
status | i | |
passphrase | s | Passphrase for the group. Included only if this device becomes the GO of the group. |
role_go | s | The role of the local device in the group: "GO" or "client". |
ssid | ay | |
peer_device_addr | ay | |
peer_interface_addr | ay | |
wps_method | s | |
frequency_list | ai | |
persistent_group | i | |
peer_config_timeout | u |
Key | Value type | Description |
---|---|---|
peer_object | o | D-Bus path of the peer. See \ref dbus_peer. |
status | i |
Key | Value type | Description |
---|---|---|
status | i | |
BSSID | ay | Optionally present |
A P2P group was removed.
Key | Value type | Description |
---|---|---|
interface_object | o | D-Bus path of the interface on which this group is operating on. See \ref dbus_interface. |
role | s | The role of the local device in the group: "GO" or "client". |
group_object | o | D-Bus path of the group. See \ref dbus_group. |
peer_object | o | |
frequency | i | |
dialog_token | i | |
update_indicator | q | |
tlvs | ay |
peer_object | o | |
update_indicator | q | |
tlvs | ay |
Key | Value type | Description |
---|---|---|
bssid | s | P2P Device Address of the GO in the persistent group. |
ssid | s | SSID of the group |
psk | s | Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known) |
disabled | s | Set to "2" to indicate special network block use as a P2P persistent group information |
mode | s | "3" on GO or "0" on P2P Client |
Key | Value type | Description |
---|---|---|
msg | i | |
config_error | n |
BSSID of the BSS.
SSID of the BSS.
WPA information of the BSS. Empty dictionary indicates no WPA support. Dictionary entries are:
KeyMgmt | as | Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-none" |
Pairwise | as | Pairwise cipher suites. Possible array elements: "ccmp", "tkip" |
Group | s | Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40" |
RSN information of the BSS. Empty dictionary indicates no RSN support. Dictionary entries are:
KeyMgmt | as | Key management suite. Possible array elements: "wpa-psk", "wpa-eap", "wpa-ft-psk", "wpa-ft-eap", "wpa-psk-sha256", "wpa-eap-sha256", |
Pairwise | as | Pairwise cipher suites. Possible array elements: "ccmp", "tkip" |
Group | s | Group cipher suite. Possible values are: "ccmp", "tkip", "wep104", "wep40" |
MgmtGroup | s | Mangement frames cipher suite. Possible values are: "aes128cmac" |
WPS information of the BSS. Empty dictionary indicates no WPS support. Dictionary entries are:
Type | s | "pbc", "pin", "" |
All IEs of the BSS as a chain of TLVs
Indicates if BSS supports privacy.
Describes mode of the BSS. Possible values are: "ad-hoc" and "infrastructure".
Frequency of the BSS in MHz.
Descending ordered array of rates supported by the BSS in bits per second.
Signal strength of the BSS.
Number of seconds since the BSS was last seen.
Some properties have changed.
Determines if the configured network is enabled or not.
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.
Some properties have changed.
Group Capability field from the last frame from which this peer information was updated. \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.
This is a confusingly named property that includes Wi-Fi Display subelements from the peer. \bug This should really be renamed since "IEs" means something completely different..
The P2P Device Address of the peer.
The current groups in which this peer is connected.
Some properties have changed. \deprecated Use org.freedesktop.DBus.Properties.PropertiesChanged instead.
\todo Explain how ProertiesChanged signals are supposed to be of any real use with Peer objects (i.e., one signal for multiple peers).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.
\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..
The role of this device in the group: "GO", "client".
P2P Group SSID.
P2P Group BSSID (the P2P Interface Address of the GO).
The frequency (in MHz) of the group operating channel.
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.
PSK used in the group.
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.
A peer device has joined the group. This is indicated only on the GO device.
A peer device has left the group. This is indicated only on the GO device.
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:
Key | Value type | Description |
---|---|---|
bssid | s | P2P Device Address of the GO in the persistent group. |
ssid | s | SSID of the group |
psk | s | Passphrase (on the GO and optionally on P2P Client) or PSK (on P2P Client if passphrase ise not known) |
disabled | s | Set to "2" to indicate special network block use as a P2P persistent group information |
mode | s | "3" on GO or "0" on P2P Client |