mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-02 20:24:19 +00:00
Merge "supplicant(interface): Add support for Hotspot 2.0" am: 06a3daad19
am: 21e39f87e4
Change-Id: Ie1aa347d5e9cccd20d6f0666b81f2dbdf7619bf3
This commit is contained in:
@@ -24,6 +24,30 @@ import ISupplicantStaIfaceCallback;
|
||||
* interface (e.g wlan0) it controls.
|
||||
*/
|
||||
interface ISupplicantStaIface extends ISupplicantIface {
|
||||
/**
|
||||
* Access Network Query Protocol info ID elements
|
||||
* for IEEE Std 802.11u-2011.
|
||||
*/
|
||||
enum AnqpInfoId : uint32_t {
|
||||
VENUE_NAME = 258,
|
||||
ROAMING_CONSORTIUM = 261,
|
||||
IP_ADDR_TYPE_AVAILABILITY = 262,
|
||||
NAI_REALM = 263,
|
||||
ANQP_3GPP_CELLULAR_NETWORK = 264,
|
||||
DOMAIN_NAME = 268
|
||||
};
|
||||
|
||||
/**
|
||||
* Access Network Query Protocol subtype elements
|
||||
* for Hotspot 2.0.
|
||||
*/
|
||||
enum Hs20AnqpSubtypes : uint32_t {
|
||||
OPERATOR_FRIENDLY_NAME = 2,
|
||||
WAN_METRICS = 4,
|
||||
CONNECTION_CAPABILITY = 5,
|
||||
OSU_PROVIDERS_LIST = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
* Register for callbacks from this interface.
|
||||
*
|
||||
@@ -133,4 +157,40 @@ interface ISupplicantStaIface extends ISupplicantIface {
|
||||
*/
|
||||
initiateTdlsTeardown(MacAddress macAddress)
|
||||
generates (SupplicantStatus status);
|
||||
|
||||
/**
|
||||
* Initiate ANQP (for IEEE 802.11u Interworking/Hotspot 2.0) queries with the
|
||||
* specified access point.
|
||||
* The ANQP data fetched must be returned in the
|
||||
* |ISupplicantStaIfaceCallback.onAnqpQueryDone| callback.
|
||||
*
|
||||
* @param macAddress MAC address of the access point.
|
||||
* @param infoElements List of information elements to query for.
|
||||
* @param subtypes List of HS20 subtypes to query for.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |SupplicantStatusCode.SUCCESS|,
|
||||
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
|
||||
* |SupplicantStatusCode.FAILURE_IFACE_INVALID|
|
||||
*/
|
||||
initiateAnqpQuery(MacAddress macAddress,
|
||||
vec<AnqpInfoId> infoElements,
|
||||
vec<Hs20AnqpSubtypes> subTypes)
|
||||
generates (SupplicantStatus status);
|
||||
|
||||
/**
|
||||
* Initiate the Hotspot 2.0 icon query with the specified accesss point.
|
||||
* The icon data fetched must be returned in the
|
||||
* |ISupplicantStaIfaceCallback.onHs20IconQueryDone| callback.
|
||||
*
|
||||
* @param macAddress MAC address of the access point.
|
||||
* @param fileName Name of the file to request from the access point.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |SupplicantStatusCode.SUCCESS|,
|
||||
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
|
||||
* |SupplicantStatusCode.FAILURE_IFACE_INVALID|
|
||||
*/
|
||||
initiateHs20IconQuery(MacAddress macAddress, string fileName)
|
||||
generates (SupplicantStatus status);
|
||||
};
|
||||
|
||||
@@ -104,6 +104,40 @@ interface ISupplicantStaIfaceCallback {
|
||||
COMPLETED = 9
|
||||
};
|
||||
|
||||
/**
|
||||
* OSU Method. Refer to section 4.8.1.3 of the Hotspot 2.0 spec.
|
||||
*/
|
||||
enum OsuMethod : uint8_t {
|
||||
OMA_DM = 0,
|
||||
SOAP_XML_SPP = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* ANQP data for IEEE Std 802.11u-2011.
|
||||
* The format of the data within these elements follows the IEEE
|
||||
* Std 802.11u-2011 standard.
|
||||
*/
|
||||
struct AnqpData {
|
||||
vec<uint8_t> venueName;
|
||||
vec<uint8_t> roamingConsortium;
|
||||
vec<uint8_t> ipAddrTypeAvailability;
|
||||
vec<uint8_t> naiRealm;
|
||||
vec<uint8_t> anqp3gppCellularNetwork;
|
||||
vec<uint8_t> domainName;
|
||||
};
|
||||
|
||||
/**
|
||||
* ANQP data for Hotspot 2.0.
|
||||
* The format of the data within these elements follows the Hotspot 2.0
|
||||
* standard.
|
||||
*/
|
||||
struct Hs20AnqpData {
|
||||
vec<uint8_t> operatorFriendlyName;
|
||||
vec<uint8_t> wanMetrics;
|
||||
vec<uint8_t> connectionCapability;
|
||||
vec<uint8_t> osuProvidersList;
|
||||
};
|
||||
|
||||
/**
|
||||
* Used to indicate that a new network has been added.
|
||||
*
|
||||
@@ -138,4 +172,49 @@ interface ISupplicantStaIfaceCallback {
|
||||
*/
|
||||
oneway onStateChanged(
|
||||
State newState, Bssid bssid, SupplicantNetworkId id, Ssid ssid);
|
||||
|
||||
/**
|
||||
* Used to indicate the result of ANQP (either for IEEE 802.11u Interworking
|
||||
* or Hotspot 2.0) query.
|
||||
*
|
||||
* @param macAddress MAC address of the access point.
|
||||
* @param data ANQP data fetched from the access point.
|
||||
* All the fields in this struct must be empty if the query failed.
|
||||
* @param hs20Data ANQP data fetched from the Hotspot 2.0 access point.
|
||||
* All the fields in this struct must be empty if the query failed.
|
||||
*/
|
||||
oneway onAnqpQueryDone(MacAddress macAddress,
|
||||
AnqpData data,
|
||||
Hs20AnqpData hs20Data);
|
||||
|
||||
/**
|
||||
* Used to indicate the result of Hotspot 2.0 Icon query.
|
||||
*
|
||||
* @param macAddress MAC address of the access point.
|
||||
* @param fileName Name of the file that was requested.
|
||||
* @param data Icon data fetched from the access point.
|
||||
* Must be empty if the query failed.
|
||||
*/
|
||||
oneway onHs20IconQueryDone(MacAddress macAddress,
|
||||
string fileName,
|
||||
vec<uint8_t> data);
|
||||
|
||||
/**
|
||||
* Used to indicate a Hotspot 2.0 subscription remediation event.
|
||||
*
|
||||
* @param osuMethod OSU method.
|
||||
* @param url URL of the server.
|
||||
*/
|
||||
oneway onHs20SubscriptionRemediation(OsuMethod osuMethod, string url);
|
||||
|
||||
/**
|
||||
* Used to indicate a Hotspot 2.0 imminent deauth notice.
|
||||
* @param code Code to indicate the deauth reason.
|
||||
* Refer to section 3.2.1.2 of the Hotspot 2.0 spec.
|
||||
* @param reAuthDelayInSec Delay before reauthenticating.
|
||||
* @param url URL of the server.
|
||||
*/
|
||||
oneway onHs20DeauthImminentNotice(uint32_t code,
|
||||
uint32_t reAuthDelayInSec,
|
||||
string url);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user