summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2015-03-11 14:41:31 -0700
committerVinit Deshpande <vinitd@google.com>2015-03-27 11:41:58 -0700
commit28e08ed5cf06ac99ccd4e0213664e5c33bdaf099 (patch)
tree0be1b1e1dcb83e9fa42f0e1d4295eeecceea411f
parent3e778d3b8acf9ec3ce76d32255ae2b1aec3ac7d1 (diff)
downloadplatform_hardware_libhardware_legacy-28e08ed5cf06ac99ccd4e0213664e5c33bdaf099.tar.gz
platform_hardware_libhardware_legacy-28e08ed5cf06ac99ccd4e0213664e5c33bdaf099.tar.bz2
platform_hardware_libhardware_legacy-28e08ed5cf06ac99ccd4e0213664e5c33bdaf099.zip
HAL API to offload passpoint match to wifi chipset
This change introduces wifi_set_passpoint_list and wifi_reset_passpoint_list which implement the functionality of offloading passpoint match to the chipset firmware. Change-Id: I8a3730d4e23891b1dce47b8cf877e9b3c04ac279
-rw-r--r--include/hardware_legacy/gscan.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/hardware_legacy/gscan.h b/include/hardware_legacy/gscan.h
index 463c4c1..3d7d5da 100644
--- a/include/hardware_legacy/gscan.h
+++ b/include/hardware_legacy/gscan.h
@@ -422,5 +422,31 @@ typedef struct {
wifi_error wifi_set_bssid_preference(wifi_request_id id, wifi_interface_handle iface,
int num_bssid, wifi_bssid_preference *prefs);
+typedef struct {
+ int id; // identifier of this network block, report this in event
+ char realm[256]; // null terminated UTF8 encoded realm, 0 if unspecified
+ int64_t roamingConsortiumIds[16]; // roaming consortium ids to match, 0s if unspecified
+ byte plmn[3]; // mcc/mnc combination as per rules, 0s if unspecified
+} wifi_passpoint_network;
+
+typedef struct {
+ void (*on_passpoint_network_found)(
+ wifi_request_id id,
+ int net_id, // network block identifier for the matched network
+ wifi_scan_result *result, // scan result, with channel and beacon information
+ int anqp_len, // length of ANQP blob
+ byte *anqp // ANQP data, in the information_element format
+ );
+} wifi_passpoint_event_handler;
+
+/* Sets a list for passpoint networks for PNO purposes; it should be matched
+ * against any passpoint networks (designated by Interworking element) found
+ * during regular PNO scan. */
+wifi_error wifi_set_passpoint_list(wifi_request_id id, wifi_interface_handle iface, int num,
+ wifi_passpoint_network *networks, wifi_passpoint_event_handler handler);
+
+/* Reset passpoint network list - no Passpoint networks should be matched after this */
+wifi_error wifi_reset_passpoint_list(wifi_request_id id, wifi_interface_handle iface);
+
#endif