Package: android.hardware.wifi.supplicant@1.0

ISupplicantStaIfaceCallback

interface ISupplicantStaIfaceCallback

Callback Interface exposed by the supplicant service for each station mode interface(ISupplicantStaIface).

Clients need to host an instance of this HIDL interface object and pass a reference of the object to the supplicant via the corresponding |ISupplicantStaIface.registerCallback| method.

Properties

State

enum State: uint32_t

Various states of the interface reported by |onStateChanged|.

Details
Members
DISCONNECTED = 0
This state indicates that client is not associated, but is likely to start looking for an access point.This state is entered when a connection is lost.
IFACE_DISABLED = 1
This state is entered if the network interface is disabled, e.g ., due to rfkill.the supplicant refuses any new operations that would use the radio until the interface has been enabled.
INACTIVE = 2
This state is entered if there are no enabled networks in the configuration.the supplicant is not trying to associate with a new network and external interaction(e.g ., ctrl_iface call to add or enable a network)is needed to start association.
SCANNING = 3
This state is entered when the supplicant starts scanning for a network.
AUTHENTICATING = 4
This state is entered when the supplicant has found a suitable BSS to authenticate with and the driver is configured to try to authenticate with this BSS.This state is used only with drivers that use the supplicant as the SME.
ASSOCIATING = 5
This state is entered when the supplicant has found a suitable BSS to associate with and the driver is configured to try to associate with this BSS in ap_scan=1 mode.When using ap_scan=2 mode, this state is entered when the driver is configured to try to associate with a network using the configured SSID and security policy.
ASSOCIATED = 6
This state is entered when the driver reports that association has been successfully completed with an AP.If IEEE 802.1X is used(with or without WPA/WPA2), the supplicant remains in this state until the IEEE 802.1X/EAPOL authentication has been completed.
FOURWAY_HANDSHAKE = 7
This state is entered when WPA/WPA2 4-Way Handshake is started.In case of WPA-PSK, this happens when receiving the first EAPOL-Key frame after association.In case of WPA-EAP, this state is entered when the IEEE 802.1X/EAPOL authentication has been completed.
GROUP_HANDSHAKE = 8
This state is entered when 4-Way Key Handshake has been completed(i.e ., when the supplicant sends out message 4/4)and when Group Key rekeying is started by the AP(i.e ., when supplicant receives message 1/2).
COMPLETED = 9
This state is entered when the full authentication process is completed.In case of WPA2, this happens when the 4-Way Handshake is successfully completed.With WPA, this state is entered after the Group Key Handshake;with IEEE 802.1X(non-WPA)connection is completed after dynamic keys are received(or if not used, after the EAP authentication has been completed). With static WEP keys and plaintext connections, this state is entered when an association has been completed.
This state indicates that the supplicant has completed its processing for the association phase and that data connection is fully configured.

OsuMethod

enum OsuMethod: uint8_t

OSU Method.Refer to section 4.8.1.3 of the Hotspot 2.0 spec.

Details
Members
OMA_DM = 0
SOAP_XML_SPP = 1

WpsConfigError

enum WpsConfigError: uint16_t

WPS Configuration Error.

Details
Members
NO_ERROR = 0
OOB_IFACE_READ_ERROR = 1
DECRYPTION_CRC_FAILURE = 2
CHAN_24_NOT_SUPPORTED = 3
CHAN_50_NOT_SUPPORTED = 4
SIGNAL_TOO_WEAK = 5
NETWORK_AUTH_FAILURE = 6
NETWORK_ASSOC_FAILURE = 7
NO_DHCP_RESPONSE = 8
FAILED_DHCP_CONFIG = 9
IP_ADDR_CONFLICT = 10
NO_CONN_TO_REGISTRAR = 11
MULTIPLE_PBC_DETECTED = 12
ROGUE_SUSPECTED = 13
DEVICE_BUSY = 14
SETUP_LOCKED = 15
MSG_TIMEOUT = 16
REG_SESS_TIMEOUT = 17
DEV_PASSWORD_AUTH_FAILURE = 18
CHAN_60G_NOT_SUPPORTED = 19
PUBLIC_KEY_HASH_MISMATCH = 20

WpsErrorIndication

enum WpsErrorIndication: uint16_t

Vendor specific Error Indication for WPS event messages.

Details
Members
NO_ERROR = 0
SECURITY_TKIP_ONLY_PROHIBITED = 1
SECURITY_WEP_PROHIBITED = 2
AUTH_FAILURE = 3

StatusCode

enum StatusCode: uint32_t

Status codes(IEEE Std 802.11-2016, 9.4.1.9, Table 9-46).

Details
Members
SUCCESS = 0
UNSPECIFIED_FAILURE = 1
TDLS_WAKEUP_ALTERNATE = 2
TDLS_WAKEUP_REJECT = 3
SECURITY_DISABLED = 5
UNACCEPTABLE_LIFETIME = 6
NOT_IN_SAME_BSS = 7
CAPS_UNSUPPORTED = 10
REASSOC_NO_ASSOC = 11
ASSOC_DENIED_UNSPEC = 12
NOT_SUPPORTED_AUTH_ALG = 13
UNKNOWN_AUTH_TRANSACTION = 14
CHALLENGE_FAIL = 15
AUTH_TIMEOUT = 16
AP_UNABLE_TO_HANDLE_NEW_STA = 17
ASSOC_DENIED_RATES = 18
ASSOC_DENIED_NOSHORT = 19
SPEC_MGMT_REQUIRED = 22
PWR_CAPABILITY_NOT_VALID = 23
SUPPORTED_CHANNEL_NOT_VALID = 24
ASSOC_DENIED_NO_SHORT_SLOT_TIME = 25
ASSOC_DENIED_NO_HT = 27
R0KH_UNREACHABLE = 28
ASSOC_DENIED_NO_PCO = 29
ASSOC_REJECTED_TEMPORARILY = 30
ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31
UNSPECIFIED_QOS_FAILURE = 32
DENIED_INSUFFICIENT_BANDWIDTH = 33
DENIED_POOR_CHANNEL_CONDITIONS = 34
DENIED_QOS_NOT_SUPPORTED = 35
REQUEST_DECLINED = 37
INVALID_PARAMETERS = 38
REJECTED_WITH_SUGGESTED_CHANGES = 39
INVALID_IE = 40
GROUP_CIPHER_NOT_VALID = 41
PAIRWISE_CIPHER_NOT_VALID = 42
AKMP_NOT_VALID = 43
UNSUPPORTED_RSN_IE_VERSION = 44
INVALID_RSN_IE_CAPAB = 45
CIPHER_REJECTED_PER_POLICY = 46
TS_NOT_CREATED = 47
DIRECT_LINK_NOT_ALLOWED = 48
DEST_STA_NOT_PRESENT = 49
DEST_STA_NOT_QOS_STA = 50
ASSOC_DENIED_LISTEN_INT_TOO_LARGE = 51
INVALID_FT_ACTION_FRAME_COUNT = 52
INVALID_PMKID = 53
INVALID_MDIE = 54
INVALID_FTIE = 55
REQUESTED_TCLAS_NOT_SUPPORTED = 56
INSUFFICIENT_TCLAS_PROCESSING_RESOURCES = 57
TRY_ANOTHER_BSS = 58
GAS_ADV_PROTO_NOT_SUPPORTED = 59
NO_OUTSTANDING_GAS_REQ = 60
GAS_RESP_NOT_RECEIVED = 61
STA_TIMED_OUT_WAITING_FOR_GAS_RESP = 62
GAS_RESP_LARGER_THAN_LIMIT = 63
REQ_REFUSED_HOME = 64
ADV_SRV_UNREACHABLE = 65
REQ_REFUSED_SSPN = 67
REQ_REFUSED_UNAUTH_ACCESS = 68
INVALID_RSNIE = 72
U_APSD_COEX_NOT_SUPPORTED = 73
U_APSD_COEX_MODE_NOT_SUPPORTED = 74
BAD_INTERVAL_WITH_U_APSD_COEX = 75
ANTI_CLOGGING_TOKEN_REQ = 76
FINITE_CYCLIC_GROUP_NOT_SUPPORTED = 77
CANNOT_FIND_ALT_TBTT = 78
TRANSMISSION_FAILURE = 79
REQ_TCLAS_NOT_SUPPORTED = 80
TCLAS_RESOURCES_EXCHAUSTED = 81
REJECTED_WITH_SUGGESTED_BSS_TRANSITION = 82
REJECT_WITH_SCHEDULE = 83
REJECT_NO_WAKEUP_SPECIFIED = 84
SUCCESS_POWER_SAVE_MODE = 85
PENDING_ADMITTING_FST_SESSION = 86
PERFORMING_FST_NOW = 87
PENDING_GAP_IN_BA_WINDOW = 88
REJECT_U_PID_SETTING = 89
REFUSED_EXTERNAL_REASON = 92
REFUSED_AP_OUT_OF_MEMORY = 93
REJECTED_EMERGENCY_SERVICE_NOT_SUPPORTED = 94
QUERY_RESP_OUTSTANDING = 95
REJECT_DSE_BAND = 96
TCLAS_PROCESSING_TERMINATED = 97
TS_SCHEDULE_CONFLICT = 98
DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99
MCCAOP_RESERVATION_CONFLICT = 100
MAF_LIMIT_EXCEEDED = 101
MCCA_TRACK_LIMIT_EXCEEDED = 102
DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103
ASSOC_DENIED_NO_VHT = 104
ENABLEMENT_DENIED = 105
RESTRICTION_FROM_AUTHORIZED_GDB = 106
AUTHORIZATION_DEENABLED = 107
FILS_AUTHENTICATION_FAILURE = 112
UNKNOWN_AUTHENTICATION_SERVER = 113

ReasonCode

enum ReasonCode: uint32_t

Reason codes(IEEE Std 802.11-2016, 9.4.1.7, Table 9-45).

Details
Members
UNSPECIFIED = 1
PREV_AUTH_NOT_VALID = 2
DEAUTH_LEAVING = 3
DISASSOC_DUE_TO_INACTIVITY = 4
DISASSOC_AP_BUSY = 5
CLASS2_FRAME_FROM_NONAUTH_STA = 6
CLASS3_FRAME_FROM_NONASSOC_STA = 7
DISASSOC_STA_HAS_LEFT = 8
STA_REQ_ASSOC_WITHOUT_AUTH = 9
PWR_CAPABILITY_NOT_VALID = 10
SUPPORTED_CHANNEL_NOT_VALID = 11
BSS_TRANSITION_DISASSOC = 12
INVALID_IE = 13
MICHAEL_MIC_FAILURE = 14
FOURWAY_HANDSHAKE_TIMEOUT = 15
GROUP_KEY_UPDATE_TIMEOUT = 16
IE_IN_4WAY_DIFFERS = 17
GROUP_CIPHER_NOT_VALID = 18
PAIRWISE_CIPHER_NOT_VALID = 19
AKMP_NOT_VALID = 20
UNSUPPORTED_RSN_IE_VERSION = 21
INVALID_RSN_IE_CAPAB = 22
IEEE_802_1X_AUTH_FAILED = 23
CIPHER_SUITE_REJECTED = 24
TDLS_TEARDOWN_UNREACHABLE = 25
TDLS_TEARDOWN_UNSPECIFIED = 26
SSP_REQUESTED_DISASSOC = 27
NO_SSP_ROAMING_AGREEMENT = 28
BAD_CIPHER_OR_AKM = 29
NOT_AUTHORIZED_THIS_LOCATION = 30
SERVICE_CHANGE_PRECLUDES_TS = 31
UNSPECIFIED_QOS_REASON = 32
NOT_ENOUGH_BANDWIDTH = 33
DISASSOC_LOW_ACK = 34
EXCEEDED_TXOP = 35
STA_LEAVING = 36
END_TS_BA_DLS = 37
UNKNOWN_TS_BA = 38
TIMEOUT = 39
PEERKEY_MISMATCH = 45
AUTHORIZED_ACCESS_LIMIT_REACHED = 46
EXTERNAL_SERVICE_REQUIREMENTS = 47
INVALID_FT_ACTION_FRAME_COUNT = 48
INVALID_PMKID = 49
INVALID_MDE = 50
INVALID_FTE = 51
MESH_PEERING_CANCELLED = 52
MESH_MAX_PEERS = 53
MESH_CONFIG_POLICY_VIOLATION = 54
MESH_CLOSE_RCVD = 55
MESH_MAX_RETRIES = 56
MESH_CONFIRM_TIMEOUT = 57
MESH_INVALID_GTK = 58
MESH_INCONSISTENT_PARAMS = 59
MESH_INVALID_SECURITY_CAP = 60
MESH_PATH_ERROR_NO_PROXY_INFO = 61
MESH_PATH_ERROR_NO_FORWARDING_INFO = 62
MESH_PATH_ERROR_DEST_UNREACHABLE = 63
MAC_ADDRESS_ALREADY_EXISTS_IN_MBSS = 64
MESH_CHANNEL_SWITCH_REGULATORY_REQ = 65
MESH_CHANNEL_SWITCH_UNSPECIFIED = 66

BssidChangeReason

enum BssidChangeReason: uint8_t

BSSID change Reasons.

Details
Members
ASSOC_START = 0
Started association with new bssid.
ASSOC_COMPLETE = 1
Completed association with new bssid.
DISASSOC = 2
Dis-association with current bssid.

AnqpData

struct AnqpData {vec venueName; vec roamingConsortium; vec ipAddrTypeAvailability; vec naiRealm; vec anqp3gppCellularNetwork; vec domainName}

ANQP data for IEEE Std 802.11u-2011.The format of the data within these elements follows the IEEE Std 802.11u-2011 standard.

Details
Members
venueName
roamingConsortium
ipAddrTypeAvailability
naiRealm
anqp3gppCellularNetwork
domainName

Hs20AnqpData

struct Hs20AnqpData {vec operatorFriendlyName; vec wanMetrics; vec connectionCapability; vec osuProvidersList}

ANQP data for Hotspot 2.0.The format of the data within these elements follows the Hotspot 2.0 standard.

Details
Members
operatorFriendlyName
wanMetrics
connectionCapability
osuProvidersList

Methods

onNetworkAdded

oneway onNetworkAdded (SupplicantNetworkId id)

Used to indicate that a new network has been added.

Details
RPC mode
oneway
Parameters
id
Network ID allocated to the corresponding network.

onNetworkRemoved

oneway onNetworkRemoved (SupplicantNetworkId id)

Used to indicate that a network has been removed.

Details
RPC mode
oneway
Parameters
id
Network ID allocated to the corresponding network.

onStateChanged

oneway onStateChanged (State newState, Bssid bssid, SupplicantNetworkId id, Ssid ssid)

Used to indicate a state change event on this particular iface.If this event is triggered by a particular network, the |SupplicantNetworkId|, |ssid|, |bssid| parameters must indicate the parameters of the network/AP which cased this state transition.

Details
RPC mode
oneway
Parameters
newState
New State of the interface.This must be one of the |State| values above.
bssid
BSSID of the corresponding AP which caused this state change event.This must be zero'ed if this event is not specific to a particular network.
id
ID of the corresponding network which caused this state change event.This must be invalid(UINT32_MAX)if this event is not specific to a particular network.
ssid
SSID of the corresponding network which caused this state change event.This must be empty if this event is not specific to a particular network.

onAnqpQueryDone

oneway onAnqpQueryDone (Bssid bssid, AnqpData data, Hs20AnqpData hs20Data)

Used to indicate the result of ANQP(either for IEEE 802.11u Interworking or Hotspot 2.0)query.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the access point.
data
ANQP data fetched from the access point.All the fields in this struct must be empty if the query failed.
hs20Data
ANQP data fetched from the Hotspot 2.0 access point.All the fields in this struct must be empty if the query failed.

onHs20IconQueryDone

oneway onHs20IconQueryDone (Bssid bssid, string fileName, vec<uint8_t> data)

Used to indicate the result of Hotspot 2.0 Icon query.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the access point.
fileName
Name of the file that was requested.
data
Icon data fetched from the access point.Must be empty if the query failed.

onHs20SubscriptionRemediation

oneway onHs20SubscriptionRemediation (Bssid bssid, OsuMethod osuMethod, string url)

Used to indicate a Hotspot 2.0 subscription remediation event.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the access point.
osuMethod
OSU method.
url
URL of the server.

onHs20DeauthImminentNotice

oneway onHs20DeauthImminentNotice (Bssid bssid, uint32_t reasonCode, uint32_t reAuthDelayInSec, string url)

Used to indicate a Hotspot 2.0 imminent deauth notice.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the access point.
reasonCode
Code to indicate the deauth reason.Refer to section 3.2.1.2 of the Hotspot 2.0 spec.
reAuthDelayInSec
Delay before reauthenticating.
url
URL of the server.

onDisconnected

oneway onDisconnected (Bssid bssid, bool locallyGenerated, ReasonCode reasonCode)

Used to indicate the disconnection from the currently connected network on this iface.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the AP from which we disconnected.
locallyGenerated
If the disconnect was triggered by wpa_supplicant.
reasonCode
802.11 code to indicate the disconnect reason from access point.Refer to section 8.4.1.7 of IEEE802.11 spec.

onAssociationRejected

oneway onAssociationRejected (Bssid bssid, StatusCode statusCode, bool timedOut)

Used to indicate an association rejection recieved from the AP to which the connection is being attempted.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the corresponding AP which sent this reject.
statusCode
802.11 code to indicate the reject reason.Refer to section 8.4.1.9 of IEEE 802.11 spec.
timedOut
Whether failure is due to timeout rather than explicit rejection response from the AP.

onAuthenticationTimeout

oneway onAuthenticationTimeout (Bssid bssid)

Used to indicate the timeout of authentication to an AP.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the corresponding AP.

onEapFailure

oneway onEapFailure ()

Used to indicate an EAP authentication failure.

Details
RPC mode
oneway

onBssidChanged

oneway onBssidChanged (BssidChangeReason reason, Bssid bssid)

Used to indicate the change of active bssid.This is useful to figure out when the driver/firmware roams to a bssid on its own.

Details
RPC mode
oneway
Parameters
reason
Reason why the bssid changed.
bssid
BSSID of the corresponding AP.

onWpsEventSuccess

oneway onWpsEventSuccess ()

Used to indicate the success of a WPS connection attempt.

Details
RPC mode
oneway

onWpsEventFail

oneway onWpsEventFail (Bssid bssid, WpsConfigError configError, WpsErrorIndication errorInd)

Used to indicate the failure of a WPS connection attempt.

Details
RPC mode
oneway
Parameters
bssid
BSSID of the AP to which we initiated WPS connection.
configError
Configuration error code.
errorInd
Error indication code.

onWpsEventPbcOverlap

oneway onWpsEventPbcOverlap ()

Used to indicate the overlap of a WPS PBC connection attempt.

Details
RPC mode
oneway

onExtRadioWorkStart

oneway onExtRadioWorkStart (uint32_t id)

Used to indicate that the external radio work can start now.

Details
RPC mode
oneway
Parameters
id
Identifier generated for the radio work request.

onExtRadioWorkTimeout

oneway onExtRadioWorkTimeout (uint32_t id)

Used to indicate that the external radio work request has timed out.

Details
RPC mode
oneway
Parameters
id
Identifier generated for the radio work request.