wifi(interface): Add gscan/apf related API's
Changes in the CL:
1. Add gscan/APF related API's to |IWifiStaIface|.
2. Add a new callback HIDL interface (|IWifiStaIfaceEventCallback)
for all callbacks received from |IWifiStaIface|.
Bug: 31991459
Test: Compiles
Change-Id: Id9f2ded9e20bee393ab53d84efa814d52704cd2c
diff --git a/wifi/1.0/IWifiStaIfaceEventCallback.hal b/wifi/1.0/IWifiStaIfaceEventCallback.hal
new file mode 100644
index 0000000..1ee2d4e
--- /dev/null
+++ b/wifi/1.0/IWifiStaIfaceEventCallback.hal
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi@1.0;
+
+interface IWifiStaIfaceEventCallback {
+ /**
+ * Callback indicating that the requested packet filter was successfully
+ * installed.
+ */
+ oneway onInstallPacketFilterSuccess();
+
+ /**
+ * Callback indicating that installing a packet filter failed.
+ */
+ oneway onInstallPacketFilterFailure(FailureReason reason);
+
+ /**
+ * Callback indicating that a requested background scan was started.
+ */
+ oneway onBackgroundScanStarted();
+
+ /**
+ * Callback indicating that a requested background scan failed to start.
+ */
+ oneway onBackgroundScanStartFailure(FailureReason reason);
+
+ /**
+ * Callback indicating that a scan was stopped
+ */
+ oneway onBackgroundScanStopped();
+
+ /**
+ * Information elements contained within the |ScanResult| structure.
+ * These elements correspond to the IEEE_802.11 standard.
+ */
+ struct InformationElement {
+ uint8_t id;
+ vec<uint8_t> data;
+ };
+
+ /**
+ * BSSID type. 6 octets representing the physical address of an AP.
+ */
+ typedef uint8_t[6] Bssid;
+
+ /**
+ * Structure describing all the information about a single access point seen
+ * during the scan.
+ */
+ struct ScanResult {
+ int64_t timeStampInUs;
+ vec<uint8_t> ssid;
+ Bssid bssid;
+ uint32_t frequencyInMhz;
+ int8_t rssi;
+ uint16_t beaconPeriodInMs;
+ uint16_t capability;
+ vec<InformationElement> informationElements;
+ };
+
+ /**
+ * Mask of flags set in the |ScanData| instance.
+ */
+ enum ScanDataFlagMask {
+ /**
+ * Indicates that a scan was interrupted/did not occur so results may be
+ * incomplete.
+ */
+ WIFI_SCAN_FLAG_INTERRUPTED = 1 << 0,
+ };
+
+ /**
+ * Structure describing all the information about all the access points seen during
+ * the scan.
+ */
+ struct ScanData {
+ /**
+ * Bitset containing |ScanDataFlagMask| values.
+ */
+ uint32_t flags;
+ /**
+ * Bitset where each bit indicates if the bucket with that index was
+ * scanned.
+ */
+ uint32_t bucketsScanned;
+ /**
+ * List of scan results.
+ */
+ vec<ScanResult> results;
+ };
+
+ /**
+ * Called for each received beacon/probe response for a scan with the
+ * |REPORT_EVENTS_FULL_RESULTS| flag set in
+ * |BackgroundScanBucketParameters.eventReportScheme|.
+ *
+ * @param cmdId command Id corresponding to the request.
+ * @parm result Full scan result for an AP.
+ */
+ oneway onBackgroundFullScanResult(CommandId cmdId, ScanResult result);
+
+ /**
+ * Called when the |BackgroundScanBucketParameters.eventReportScheme| flags
+ * for at least one bucket that was just scanned was
+ * |REPORT_EVENTS_EACH_SCAN| or one of the configured thresholds was
+ * breached.
+ *
+ * @param cmdId command Id corresponding to the request.
+ * @parm scanDatas List of scan result for all AP's seen since last callback.
+ */
+ oneway onBackgroundScanResults(CommandId cmdId, vec<ScanData> scanDatas);
+};