wifi_offload: Remove offload HAL server code
This is unused currently & there are no concrete plans to use it
in the future.
Bug: 130080335
Test: Device boots up & connects to networks.
Test: Will send for regression tests
Change-Id: Iaec2427603992e70a4ca1cef2f7cb96504d1374d
diff --git a/sepolicy/vendor/hal_wifi_offload_default.te b/sepolicy/vendor/hal_wifi_offload_default.te
deleted file mode 100644
index 00df6a7..0000000
--- a/sepolicy/vendor/hal_wifi_offload_default.te
+++ /dev/null
@@ -1,3 +0,0 @@
-# Allow Wifi Offload HAL to communicate with daemon via socket
-allow hal_wifi_offload_default chre:unix_stream_socket connectto;
-allow hal_wifi_offload_default chre_socket:sock_file write;
diff --git a/wifi_offload/Android.bp b/wifi_offload/Android.bp
deleted file mode 100644
index 289ae26..0000000
--- a/wifi_offload/Android.bp
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// Copyright (C) 2017 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.
-
-cc_library_static {
- name: "android.hardware.wifi.offload@1.0-lib",
- vendor: true,
- srcs: ["Offload.cpp",
- "chre_constants.cpp",
- "chre_interface.cpp",
- "offload_server.cpp",
- "chre_interface_factory.cpp",
- "offload_status_util.cpp",
- "offload_utils.cpp",
- ],
- cflags: ["-Wall", "-Wextra", "-Werror"],
- shared_libs: [
- "libbase",
- "libhidlbase",
- "libhidltransport",
- "liblog",
- "libutils",
- "android.hardware.wifi.offload@1.0",
- ],
- whole_static_libs: [
- "chre_client",
- "wifi_offload_types",
- ]
-}
-
-cc_binary {
- name: "android.hardware.wifi.offload@1.0-service",
- relative_install_path: "hw",
- init_rc: ["android.hardware.wifi.offload@1.0-service.rc"],
- srcs: ["service.cpp"],
- cflags: ["-Wall", "-Wextra"],
- shared_libs: [
- "libbase",
- "libcutils",
- "libhidlbase",
- "libhidltransport",
- "liblog",
- "libutils",
- "android.hardware.wifi.offload@1.0",
- ],
- static_libs: [
- "android.hardware.wifi.offload@1.0-lib",
- ],
- vendor: true,
-}
-
-cc_test {
- name: "wifi-offload-service-unit-tests",
- vendor: true,
- srcs: [
- "test/main.cpp",
- "test/mock_chre_interface_callbacks.cpp",
- "test/mock_chre_interface_factory.cpp",
- "test/mock_chre_interface.cpp",
- "test/offload_server_test.cpp",
- "test/chre_interface_test.cpp",
- "test/offload_utils_test.cpp",
- "test/offload_hal_test_constants.cpp",
- "test/offload_hal_test_utils.cpp",
- ],
- local_include_dirs: [
- "test",
- ".",
- ],
- shared_libs: [
- "libbase",
- "libcutils",
- "libhidlbase",
- "libhidltransport",
- "libutils",
- "liblog",
- "android.hardware.wifi.offload@1.0",
- ],
- static_libs: [
- "libgmock",
- "libgtest",
- "android.hardware.wifi.offload@1.0-lib",
- ],
- whole_static_libs: [
- "wifi_offload_types",
- ],
-}
-
diff --git a/wifi_offload/AndroidTest.xml b/wifi_offload/AndroidTest.xml
deleted file mode 100644
index 107e31c..0000000
--- a/wifi_offload/AndroidTest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="Config for wifi-offload-service-unit-tests">
- <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
- <option name="cleanup" value="true" />
- <option name="push" value="wifi-offload-service-unit-tests->/data/local/tmp/wifi-offload-service-unit-tests" />
- </target_preparer>
- <option name="test-suite-tag" value="apct" />
- <test class="com.android.tradefed.testtype.GTest" >
- <option name="native-test-device-path" value="/data/local/tmp" />
- <option name="module-name" value="wifi-offload-service-unit-tests" />
- </test>
-</configuration>
diff --git a/wifi_offload/Offload.cpp b/wifi_offload/Offload.cpp
deleted file mode 100644
index 78009e4..0000000
--- a/wifi_offload/Offload.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#include "Offload.h"
-
-#include <android-base/logging.h>
-
-#include "chre_interface_factory.h"
-#include "hidl_return_util.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-using hidl_return_util::validateAndCall;
-
-Offload::Offload()
- : mOffloadServer(new OffloadServer(new ChreInterfaceFactory())), cookie_(0),
- death_handler_(new HidlDeathHandler<IOffloadCallback>(
- std::bind(&Offload::onObjectDeath, this, std::placeholders::_1))) {
- LOG(android::base::INFO) << "Wifi Offload HAL impl";
-}
-
-// Methods from ::android::hardware::wifi::offload::V1_0::IOffload follow.
-Return<void> Offload::configureScans(const ScanParam ¶m, const ScanFilter &filter,
- configureScans_cb _hidl_cb) {
- return validateAndCall(this, &Offload::configureScansInternal, _hidl_cb, param, filter);
-}
-
-Return<void> Offload::getScanStats(getScanStats_cb _hidl_cb) {
- return validateAndCall(this, &Offload::getScanStatsInternal, _hidl_cb);
-}
-
-Return<void> Offload::subscribeScanResults(uint32_t delayMs, subscribeScanResults_cb _hidl_cb) {
- return validateAndCall(this, &Offload::subscribeScanResultsInternal, _hidl_cb, delayMs);
-}
-
-Return<void> Offload::unsubscribeScanResults() {
- if (!mOffloadServer->unsubscribeScanResults()) {
- LOG(ERROR) << "Unable to unsubscribe";
- }
- return Void();
-}
-
-Return<void> Offload::setEventCallback(const sp<IOffloadCallback>& cb) {
- if (!mOffloadServer->setEventCallback(cb)) {
- LOG(ERROR) << "No callback set";
- return Void();
- }
- cookie_ = reinterpret_cast<uint64_t>(cb.get());
- death_handler_->setCallback(cb);
- cb->linkToDeath(death_handler_, cookie_);
- return Void();
-}
-
-OffloadStatus Offload::configureScansInternal(const ScanParam ¶m, const ScanFilter &filter) {
- return mOffloadServer->configureScans(param, filter);
-}
-
-std::pair<OffloadStatus, ScanStats> Offload::getScanStatsInternal() {
- return mOffloadServer->getScanStats();
-}
-
-OffloadStatus Offload::subscribeScanResultsInternal(uint32_t delayMs) {
- return mOffloadServer->subscribeScanResults(delayMs);
-}
-
-void Offload::onObjectDeath(uint64_t cookie) {
- if (cookie == cookie_) {
- LOG(DEBUG) << "OffloadCallback death notification received";
- mOffloadServer->clearEventCallback();
- cookie_ = 0;
- }
-}
-// Methods from ::android::hidl::base::V1_0::IBase follow.
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/Offload.h b/wifi_offload/Offload.h
deleted file mode 100644
index d5e9e6d..0000000
--- a/wifi_offload/Offload.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef ANDROID_HARDWARE_WIFI_OFFLOAD_V1_0_OFFLOAD_H
-#define ANDROID_HARDWARE_WIFI_OFFLOAD_V1_0_OFFLOAD_H
-
-#include <android/hardware/wifi/offload/1.0/IOffload.h>
-
-#include <android-base/macros.h>
-#include <hidl/MQDescriptor.h>
-#include <hidl/Status.h>
-
-#include "offload_server.h"
-
-namespace {
-// Type of callback invoked by the death handler.
-using on_death_cb_function = std::function<void(uint64_t)>;
-
-// Private class used to keep track of death of callbacks
-template<typename CallbackType>
-class HidlDeathHandler : public android::hardware::hidl_death_recipient {
- public:
- HidlDeathHandler(const on_death_cb_function &user_cb_function)
- : cb_function_(user_cb_function) {
- }
- ~HidlDeathHandler() = default;
-
- // Death notification for callbacks.
- void serviceDied(uint64_t cookie,
- const android::wp<android::hidl::base::V1_0::IBase>& /* who */) override {
- cb_.clear();
- cb_function_(cookie);
- }
-
- void setCallback(android::wp<CallbackType> cb) {
- cb_ = cb;
- }
-
- private:
- android::wp<CallbackType> cb_;
- on_death_cb_function cb_function_;
-
- DISALLOW_COPY_AND_ASSIGN(HidlDeathHandler);
-};
-} // namespace
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-/**
- * Interface object to communicate with Offload HAL
- */
-class Offload : public IOffload {
- public:
- Offload();
-
- // Methods from ::android::hardware::wifi::offload::V1_0::IOffload follow.
- Return<void> configureScans(const ScanParam ¶m, const ScanFilter &filter,
- configureScans_cb _hidl_cb) override;
- Return<void> getScanStats(getScanStats_cb _hidl_cb) override;
- Return<void> subscribeScanResults(uint32_t delayMs, subscribeScanResults_cb _hidl_cb) override;
- Return<void> unsubscribeScanResults() override;
- Return<void> setEventCallback(const sp<IOffloadCallback>& cb) override;
- // Methods from ::android::hidl::base::V1_0::IBase follow.
-
- private:
- OffloadStatus configureScansInternal(const ScanParam ¶m, const ScanFilter &filter);
- std::pair<OffloadStatus, ScanStats> getScanStatsInternal();
- OffloadStatus subscribeScanResultsInternal(uint32_t delayMs);
- void onObjectDeath(uint64_t cookie);
-
- std::unique_ptr<OffloadServer> mOffloadServer;
- uint64_t cookie_;
- sp<HidlDeathHandler<IOffloadCallback>> death_handler_;
-
- DISALLOW_COPY_AND_ASSIGN(Offload);
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // ANDROID_HARDWARE_WIFI_OFFLOAD_V1_0_OFFLOAD_H
diff --git a/wifi_offload/android.hardware.wifi.offload@1.0-service.rc b/wifi_offload/android.hardware.wifi.offload@1.0-service.rc
deleted file mode 100644
index 58b4560..0000000
--- a/wifi_offload/android.hardware.wifi.offload@1.0-service.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service vendor.offload-hal-1-0 /vendor/bin/hw/android.hardware.wifi.offload@1.0-service
- class hal
- user wifi
- group wifi system
diff --git a/wifi_offload/chre_constants.cpp b/wifi_offload/chre_constants.cpp
deleted file mode 100644
index e82a555..0000000
--- a/wifi_offload/chre_constants.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "chre_constants.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace chre_constants {
-
-const char kSocketName[] = "chre";
-const uint64_t kWifiOffloadNanoAppId = 5147455389092024332;
-const uint32_t kMaxMessageLen = 2048;
-const uint32_t kHubInfoRequestBufLen = 64;
-const uint32_t kNanoAppListRequestBufLen = 64;
-const uint32_t kSubscriptionDelayMsBufLen = 4;
-const uint32_t kNanosecondsPerMillisecond = 1e6;
-const size_t kBssidLen = 6;
-const size_t kHistogramChannels = 256;
-
-} // namespace chre_constants
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/chre_constants.h b/wifi_offload/chre_constants.h
deleted file mode 100644
index da8e6f6..0000000
--- a/wifi_offload/chre_constants.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef WIFI_OFFLOAD_CHRE_CONSTANTS_H_
-#define WIFI_OFFLOAD_CHRE_CONSTANTS_H_
-
-#include <cstdint>
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace chre_constants {
-
-extern const char kSocketName[];
-extern const uint64_t kWifiOffloadNanoAppId;
-extern const uint32_t kMaxMessageLen;
-extern const uint32_t kHubInfoRequestBufLen;
-extern const uint32_t kNanoAppListRequestBufLen;
-extern const uint32_t kSubscriptionDelayMsBufLen;
-extern const uint32_t kNanosecondsPerMillisecond;
-extern const size_t kHistogramChannels;
-extern const size_t kBssidLen;
-
-} // namespace chre_constants
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_CHRE_CONSTANTS_H_
diff --git a/wifi_offload/chre_interface.cpp b/wifi_offload/chre_interface.cpp
deleted file mode 100644
index 35c1d7d..0000000
--- a/wifi_offload/chre_interface.cpp
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "chre_interface.h"
-
-#include <android-base/logging.h>
-
-#include <chrono>
-
-#include "chre_host/host_protocol_host.h"
-
-using android::chre::getStringFromByteVector;
-using android::chre::HostProtocolHost;
-using flatbuffers::FlatBufferBuilder;
-
-namespace chre_constants = android::hardware::wifi::offload::V1_0::implementation::chre_constants;
-
-namespace fbs = ::chre::fbs;
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-SocketCallbacks::SocketCallbacks(ChreInterface* parent) : mParent(parent) {
-}
-
-void SocketCallbacks::onMessageReceived(const void* data, size_t length) {
- LOG(VERBOSE) << "Message received from CHRE socket";
- if (!HostProtocolHost::decodeMessageFromChre(data, length, *this)) {
- LOG(WARNING) << "Failed to decode message";
- }
-}
-
-void SocketCallbacks::onConnected() {
- LOG(INFO) << "Connected to CHRE socket";
- mParent->reportConnectionEvent(ChreInterfaceCallbacks::CONNECTED);
-}
-
-void SocketCallbacks::onConnectionAborted() {
- LOG(WARNING) << "Connection to CHRE socket Aborted";
- mParent->reportConnectionEvent(ChreInterfaceCallbacks::CONNECTION_ABORT);
-}
-
-void SocketCallbacks::onDisconnected() {
- LOG(WARNING) << "Disconnected from CHRE socket";
- mParent->reportConnectionEvent(ChreInterfaceCallbacks::DISCONNECTED);
-}
-
-void SocketCallbacks::handleNanoappMessage(const fbs::NanoappMessageT& message) {
- LOG(VERBOSE) << "handleNanoappMessage from appId: " << message.app_id;
- LOG(VERBOSE) << "HostEndPoint: " << message.host_endpoint;
- if (message.app_id == chre_constants::kWifiOffloadNanoAppId) {
- mParent->handleMessage(message.message_type, message.message.data(), message.message.size());
- }
-}
-
-void SocketCallbacks::handleHubInfoResponse(const fbs::HubInfoResponseT& response) {
- LOG(VERBOSE) << "Hub Info response";
- LOG(VERBOSE) << "Hub Info name: " << getStringFromByteVector(response.name);
- LOG(VERBOSE) << "Version : " << response.chre_platform_version;
- LOG(VERBOSE) << "Legacy Platform Version: " << response.platform_version;
- LOG(VERBOSE) << "Legacy Toolchain Version: " << response.toolchain_version;
- LOG(VERBOSE) << "Peak Mips: " << response.peak_mips;
- LOG(VERBOSE) << "Stopped Power: " << response.stopped_power;
- LOG(VERBOSE) << "Sleep Power: " << response.sleep_power;
- LOG(VERBOSE) << "Peak Power: " << response.peak_power;
- LOG(VERBOSE) << "Platform ID: " << response.platform_id;
- LOG(VERBOSE) << "Vendor : " << getStringFromByteVector(response.vendor);
- LOG(VERBOSE) << "Toolchain : " << getStringFromByteVector(response.toolchain);
- LOG(VERBOSE) << "maxMessageLen : " << response.max_msg_len;
- if (response.max_msg_len < chre_constants::kMaxMessageLen) {
- LOG(WARNING) << "Incorrect max message length";
- }
-}
-
-void SocketCallbacks::handleNanoappListResponse(const fbs::NanoappListResponseT& response) {
- LOG(VERBOSE) << "handleNanoAppListResponse";
- for (const std::unique_ptr<fbs::NanoappListEntryT>& nanoapp : response.nanoapps) {
- if (nanoapp == nullptr) {
- continue;
- }
- if (nanoapp->app_id == chre_constants::kWifiOffloadNanoAppId && nanoapp->enabled) {
- LOG(INFO) << "Wifi Offload Nano app found";
- LOG(INFO) << "Version: " << nanoapp->version;
- break;
- }
- }
-}
-
-void SocketCallbacks::handleLoadNanoappResponse(const fbs::LoadNanoappResponseT& response) {
- LOG(VERBOSE) << "Load Nano app response";
- LOG(VERBOSE) << "Transaction ID: " << response.transaction_id;
- LOG(VERBOSE) << "Status: " << response.success;
-}
-
-void SocketCallbacks::handleUnloadNanoappResponse(const fbs::UnloadNanoappResponseT& response) {
- LOG(VERBOSE) << "Unload Nano app response";
- LOG(VERBOSE) << "Transaction ID: " << response.transaction_id;
- LOG(VERBOSE) << "Status: " << response.success;
-}
-
-ChreInterface::ChreInterface(ChreInterfaceCallbacks* callback)
- : mSocketCallbacks(new SocketCallbacks(this)), mServerCallbacks(callback),
- mSocketConnected(false) {
- if (!mClient.connectInBackground(chre_constants::kSocketName, mSocketCallbacks)) {
- LOG(ERROR) << "Offload HAL is not connected to Chre";
- }
-}
-
-ChreInterface::~ChreInterface() {
- mClient.disconnect();
-}
-
-bool ChreInterface::isConnected() {
- std::lock_guard<std::mutex> lock(mChreInterfaceLock);
- return mSocketConnected;
-}
-
-void ChreInterface::reportConnectionEvent(ChreInterfaceCallbacks::ConnectionEvent event) {
- bool connectionStatus = false;
- switch (event) {
- case ChreInterfaceCallbacks::ConnectionEvent::CONNECTED:
- connectionStatus = true;
- if (!getHubInfo() || !getNanoAppList()) {
- LOG(WARNING) << "Unable to get platform and nano app info";
- }
- break;
- case ChreInterfaceCallbacks::ConnectionEvent::DISCONNECTED:
- case ChreInterfaceCallbacks::ConnectionEvent::CONNECTION_ABORT:
- break;
- default:
- LOG(WARNING) << "Invalid connection event recieved";
- return;
- }
- {
- std::lock_guard<std::mutex> lock(mChreInterfaceLock);
- mSocketConnected = connectionStatus;
- }
- mServerCallbacks->handleConnectionEvents(event);
-}
-
-bool ChreInterface::sendCommandToApp(uint32_t messageType, const std::vector<uint8_t>& message) {
- FlatBufferBuilder builder(chre_constants::kMaxMessageLen);
- void* messageData = nullptr;
- size_t messageDataLen = message.size();
- if (messageDataLen > 0) {
- messageData = (void*)message.data();
- }
- HostProtocolHost::encodeNanoappMessage(builder, chre_constants::kWifiOffloadNanoAppId,
- messageType, 0, messageData, messageDataLen);
- if (!mClient.sendMessage(builder.GetBufferPointer(), builder.GetSize())) {
- LOG(WARNING) << "Failed to send message to Nano app";
- return false;
- }
- LOG(VERBOSE) << "Command sent " << messageType;
- return true;
-}
-
-void ChreInterface::handleMessage(uint32_t messageType, const void* messageData,
- size_t messageDataLen) {
- const uint8_t* messageBuf = reinterpret_cast<const uint8_t*>(messageData);
- std::vector<uint8_t> message(messageBuf, messageBuf + messageDataLen);
- mServerCallbacks->handleMessage(messageType, message);
-}
-
-bool ChreInterface::getHubInfo() {
- LOG(VERBOSE) << "getHubInfo";
-
- FlatBufferBuilder builder(chre_constants::kHubInfoRequestBufLen);
- HostProtocolHost::encodeHubInfoRequest(builder);
- if (!mClient.sendMessage(builder.GetBufferPointer(), builder.GetSize())) {
- LOG(WARNING) << "Failed to send Hub Info request";
- return false;
- }
- return true;
-}
-
-bool ChreInterface::getNanoAppList() {
- LOG(VERBOSE) << "getNanoAppList";
- FlatBufferBuilder builder(chre_constants::kNanoAppListRequestBufLen);
- HostProtocolHost::encodeNanoappListRequest(builder);
-
- if (!mClient.sendMessage(builder.GetBufferPointer(), builder.GetSize())) {
- LOG(WARNING) << "Unable to send Nano app List request";
- return false;
- }
- return true;
-}
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/chre_interface.h b/wifi_offload/chre_interface.h
deleted file mode 100644
index b4afef2..0000000
--- a/wifi_offload/chre_interface.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#ifndef WIFI_OFFLOAD_CHRE_INTERFACE_H_
-#define WIFI_OFFLOAD_CHRE_INTERFACE_H_
-
-#include "chre_constants.h"
-#include "chre_host/host_protocol_host.h"
-#include "chre_host/socket_client.h"
-#include "chre_interface_callbacks.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class ChreInterface;
-
-class SocketCallbacks
- : public ::android::chre::SocketClient::ICallbacks,
- public ::android::chre::IChreMessageHandlers {
- public:
- SocketCallbacks(ChreInterface* parent);
- void onMessageReceived(const void* data, size_t length) override;
- void onConnected() override;
- void onConnectionAborted() override;
- void onDisconnected() override;
- void handleNanoappMessage(const ::chre::fbs::NanoappMessageT& message) override;
- void handleHubInfoResponse(const ::chre::fbs::HubInfoResponseT& response) override;
- void handleNanoappListResponse(const ::chre::fbs::NanoappListResponseT& response) override;
- void handleLoadNanoappResponse(const ::chre::fbs::LoadNanoappResponseT& response) override;
- void handleUnloadNanoappResponse(const ::chre::fbs::UnloadNanoappResponseT& response) override;
-
- private:
- /* Requests Hub Information, returns true if Hub Info request was sent */
- bool getHubInfo();
- /* Request list of Nano apps, returns true if Nano app List request was sent */
- bool getNanoAppList();
- ChreInterface* mParent;
-};
-
-class ChreInterface {
- public:
- ChreInterface(ChreInterfaceCallbacks* callback);
- ~ChreInterface();
- /* Return the status of socket connection */
- bool isConnected();
- /* Send a message to the Nano app, returns true if send successful */
- bool sendCommandToApp(uint32_t messageType, const std::vector<uint8_t>& message);
- /* Connected or connection restart handling method */
- void reportConnectionEvent(ChreInterfaceCallbacks::ConnectionEvent /* event */);
- /* Requests Hub Information, returns true if Hub Info request was sent */
- bool getHubInfo();
- /* Request list of Nano apps, returns true if Nano app List request was sent */
- bool getNanoAppList();
- /* Invoked by the socket callbacks when a message is recieved from Nano app */
- void handleMessage(uint32_t messageType, const void* messageData, size_t messageDataLen);
-
- private:
- ::android::chre::SocketClient mClient;
- sp<SocketCallbacks> mSocketCallbacks;
- ChreInterfaceCallbacks* mServerCallbacks;
- std::mutex mChreInterfaceLock;
- bool mSocketConnected;
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-#endif // WIFI_OFFLOAD_CHRE_INTERFACE_H_
diff --git a/wifi_offload/chre_interface_callbacks.h b/wifi_offload/chre_interface_callbacks.h
deleted file mode 100644
index 7528214..0000000
--- a/wifi_offload/chre_interface_callbacks.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#ifndef WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H
-#define WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H
-
-#include <cstdint>
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class ChreInterfaceCallbacks {
- public:
- enum ConnectionEvent { CONNECTED, DISCONNECTED, CONNECTION_ABORT };
- virtual ~ChreInterfaceCallbacks() {}
-
- /* Invoked by the Chre interface when connection events are received */
- virtual void handleConnectionEvents(ConnectionEvent event) = 0;
- /* Invoked by the Chre interface when a message is recieved from Nano app */
- virtual void handleMessage(uint32_t messageType, const std::vector<uint8_t>& message) = 0;
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-#endif // WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H
diff --git a/wifi_offload/chre_interface_factory.cpp b/wifi_offload/chre_interface_factory.cpp
deleted file mode 100644
index 40ba47c..0000000
--- a/wifi_offload/chre_interface_factory.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "chre_interface_factory.h"
-
-#include <cstdint>
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-ChreInterface* ChreInterfaceFactory::getChreInterface(ChreInterfaceCallbacks* serverCallbacks) {
- return new ChreInterface(serverCallbacks);
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/chre_interface_factory.h b/wifi_offload/chre_interface_factory.h
deleted file mode 100644
index 69247b2..0000000
--- a/wifi_offload/chre_interface_factory.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#ifndef WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_
-#define WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_
-
-#include "chre_interface.h"
-#include "chre_interface_callbacks.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class ChreInterfaceFactory {
- public:
- ChreInterfaceFactory() = default;
- virtual ~ChreInterfaceFactory() = default;
- virtual ChreInterface* getChreInterface(ChreInterfaceCallbacks* server);
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_
diff --git a/wifi_offload/hidl_return_util.h b/wifi_offload/hidl_return_util.h
deleted file mode 100644
index b96fb01..0000000
--- a/wifi_offload/hidl_return_util.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * hidl interface for wpa_supplicant daemon
- * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
- * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com>
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
-
-#ifndef HIDL_RETURN_UTIL_H_
-#define HIDL_RETURN_UTIL_H_
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace hidl_return_util {
-
-/**
- * These utility functions are used to invoke a method on the provided
- * HIDL interface object.
- * It then invokes the HIDL continuation callback with the status and
- * any returned values.
- */
-// Use for HIDL methods which return only an instance of OffloadStatus.
-template<typename ObjT, typename WorkFuncT, typename... Args>
-Return<void> validateAndCall(ObjT* obj, WorkFuncT&& work,
- const std::function<void(const OffloadStatus&)>& hidl_cb,
- Args&&... args) {
- hidl_cb((obj->*work)(std::forward<Args>(args)...));
- return Void();
-}
-
-// Use for HIDL methods which return instance of OffloadStatus and a single
-// return value.
-template<typename ObjT, typename WorkFuncT, typename ReturnT, typename... Args>
-Return<void> validateAndCall(ObjT* obj, WorkFuncT&& work,
- const std::function<void(const OffloadStatus&, ReturnT)>& hidl_cb,
- Args&&... args) {
- const auto& ret_pair = (obj->*work)(std::forward<Args>(args)...);
- const OffloadStatus& status = std::get<0>(ret_pair);
- const auto& ret_value = std::get<1>(ret_pair);
- hidl_cb(status, ret_value);
- return Void();
-}
-
-// Use for HIDL methods which return instance of OffloadStatus and 2 return
-// values.
-template<typename ObjT, typename WorkFuncT, typename ReturnT1, typename ReturnT2, typename... Args>
-Return<void>
-validateAndCall(ObjT* obj, WorkFuncT&& work,
- const std::function<void(const OffloadStatus&, ReturnT1, ReturnT2)>& hidl_cb,
- Args&&... args) {
- const auto& ret_tuple = (obj->*work)(std::forward<Args>(args)...);
- const OffloadStatus& status = std::get<0>(ret_tuple);
- const auto& ret_value1 = std::get<1>(ret_tuple);
- const auto& ret_value2 = std::get<2>(ret_tuple);
- hidl_cb(status, ret_value1, ret_value2);
- return Void();
-}
-
-} // namespace hidl_return_util
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-#endif // HIDL_RETURN_UTIL_H_
diff --git a/wifi_offload/offload_server.cpp b/wifi_offload/offload_server.cpp
deleted file mode 100644
index 850b9b0..0000000
--- a/wifi_offload/offload_server.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "offload_server.h"
-
-#include <android-base/logging.h>
-#include <chre/apps/wifi_offload/flatbuffers_serialization.h>
-#include <chre/apps/wifi_offload/host_message_types.h>
-
-#include "offload_status_util.h"
-#include "offload_utils.h"
-
-using namespace android::hardware::wifi::offload::V1_0::implementation::chre_constants;
-using android::hardware::wifi::offload::V1_0::OffloadStatus;
-
-namespace {
-constexpr auto kScanStatsTimeout = std::chrono::milliseconds(500);
-}
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class OffloadServer;
-
-OffloadServer::OffloadServer(ChreInterfaceFactory* factory)
- : mChreInterfaceCallbacks(new ChreInterfaceCallbacksImpl(this)),
- mChreInterface(factory->getChreInterface(mChreInterfaceCallbacks.get())) {
- LOG(VERBOSE) << "Wifi Offload HAL impl";
-}
-
-OffloadStatus OffloadServer::configureScans(const ScanParam& param, const ScanFilter& filter) {
- LOG(INFO) << "configureScans";
- if (!mChreInterface->isConnected()) {
- return createOffloadStatus(OffloadStatusCode::NO_CONNECTION,
- "Not connected to hardware implementation");
- }
- wifi_offload::ScanConfig scanConfig;
- if (!offload_utils::ToChreScanConfig(param, filter, &scanConfig)) {
- return createOffloadStatus(OffloadStatusCode::ERROR,
- "Unable to convert scan configuration");
- }
- uint8_t buffer[kMaxMessageLen];
- size_t result_size = wifi_offload::fbs::Serialize(scanConfig, buffer, kMaxMessageLen);
- if (result_size <= 0) {
- return createOffloadStatus(OffloadStatusCode::ERROR, "Scan config serialization failed");
- }
- std::vector<uint8_t> message(buffer, buffer + result_size);
- if (!mChreInterface->sendCommandToApp(wifi_offload::HostMessageType::HOST_CMD_CONFIG_SCANS,
- message)) {
- return createOffloadStatus(OffloadStatusCode::ERROR, "Unable to send config message");
- }
- return createOffloadStatus(OffloadStatusCode::OK);
-}
-
-std::pair<OffloadStatus, ScanStats> OffloadServer::getScanStats() {
- LOG(INFO) << "getScanStats";
- mScanStatsStatus = createOffloadStatus(OffloadStatusCode::OK);
- if (!mChreInterface->isConnected()) {
- return {createOffloadStatus(OffloadStatusCode::NO_CONNECTION, "Unable to send scan stats"),
- {}};
- }
- if (!mChreInterface->sendCommandToApp(wifi_offload::HostMessageType::HOST_CMD_GET_SCAN_STATS,
- {})) {
- return {createOffloadStatus(OffloadStatusCode::ERROR, "Unable to send scan stats command"),
- {}};
- }
- LOG(VERBOSE) << "Sent getScanStats command";
- {
- std::unique_lock<std::mutex> lock(mScanStatsLock);
- auto timeout_status = mScanStatsCond.wait_for(lock, kScanStatsTimeout);
- if (timeout_status == std::cv_status::timeout) {
- std::lock_guard<std::mutex> lock(mOffloadLock);
- LOG(WARNING) << "Timeout waiting for scan stats";
- return {createOffloadStatus(OffloadStatusCode::TIMEOUT, "Scan stats not received"), {}};
- }
- }
- return std::make_pair(mScanStatsStatus, mScanStats);
-}
-
-OffloadStatus OffloadServer::subscribeScanResults(uint32_t delayMs) {
- LOG(INFO) << "subscribeScanResults with delay:" << delayMs;
- if (!mChreInterface->isConnected()) {
- return createOffloadStatus(OffloadStatusCode::NO_CONNECTION, "Not connected to hardware");
- }
- uint32_t* buffer = &delayMs;
- std::vector<uint8_t> message(reinterpret_cast<uint8_t*>(buffer),
- reinterpret_cast<uint8_t*>(buffer) + kSubscriptionDelayMsBufLen);
- if (!mChreInterface->sendCommandToApp(
- wifi_offload::HostMessageType::HOST_CMD_SUBSCRIBE_SCAN_RESULTS, message)) {
- return createOffloadStatus(OffloadStatusCode::ERROR, "Unable to request scans");
- }
- return createOffloadStatus(OffloadStatusCode::OK);
-}
-
-void OffloadServer::resetNanoApp() {
- LOG(INFO) << "resetting Nano app";
- if (!mChreInterface->isConnected()) {
- LOG(WARNING) << "Unable to reset nano app, not connected";
- return;
- }
- if (!mChreInterface->sendCommandToApp(wifi_offload::HostMessageType::HOST_CMD_RESET, {})) {
- LOG(ERROR) << "Unable to send Reset command to Nano app";
- }
-}
-
-bool OffloadServer::unsubscribeScanResults() {
- LOG(INFO) << "unsubscribeScanResults";
- if (!mChreInterface->isConnected()) {
- LOG(WARNING) << "Failed to send unsubscribe scan results message";
- return false;
- }
- if (!mChreInterface->sendCommandToApp(
- wifi_offload::HostMessageType::HOST_CMD_UNSUBSCRIBE_SCAN_RESULTS, {})) {
- LOG(WARNING) << "Failed to send unsubscribe scan results message";
- return false;
- }
- return true;
-}
-
-bool OffloadServer::setEventCallback(const sp<IOffloadCallback>& cb) {
- LOG(INFO) << "Set Event callback";
- if (cb == nullptr) {
- return false;
- }
- std::lock_guard<std::mutex> lock(mOffloadLock);
- mEventCallback = cb;
- return true;
-}
-
-void OffloadServer::clearEventCallback() {
- std::lock_guard<std::mutex> lock(mOffloadLock);
- if (mEventCallback != nullptr) {
- mEventCallback.clear();
- }
- LOG(INFO) << "Event callback cleared";
-}
-
-void OffloadServer::invokeErrorCallbackAndResetIfNeeded(const OffloadStatus& status) {
- if (status.code != OffloadStatusCode::OK) {
- resetNanoApp();
- }
- std::lock_guard<std::mutex> lock(mOffloadLock);
- if (mEventCallback != nullptr) {
- mEventCallback->onError(status);
- }
-}
-
-ChreInterfaceCallbacksImpl::ChreInterfaceCallbacksImpl(OffloadServer* server) : mServer(server) {
-}
-
-ChreInterfaceCallbacksImpl::~ChreInterfaceCallbacksImpl() {
-}
-
-void ChreInterfaceCallbacksImpl::handleConnectionEvents(
- ChreInterfaceCallbacks::ConnectionEvent event) {
- switch (event) {
- case ChreInterfaceCallbacks::ConnectionEvent::DISCONNECTED:
- case ChreInterfaceCallbacks::ConnectionEvent::CONNECTION_ABORT: {
- LOG(ERROR) << "Connection to socket lost";
- mServer->invokeErrorCallbackAndResetIfNeeded(
- createOffloadStatus(OffloadStatusCode::NO_CONNECTION, "Connection to socket lost"));
- } break;
- case ChreInterfaceCallbacks::ConnectionEvent::CONNECTED: {
- LOG(INFO) << "Connected to socket";
- mServer->invokeErrorCallbackAndResetIfNeeded(
- createOffloadStatus(OffloadStatusCode::OK));
- } break;
- default:
- LOG(WARNING) << "Invalid connection event received " << (int)event;
- break;
- }
-}
-
-void OffloadServer::handleScanResult(const std::vector<uint8_t>& message) {
- std::vector<wifi_offload::ScanResult> scanResults;
- std::vector<ScanResult> hidlScanResults;
- std::string errorMessage;
- if (!wifi_offload::fbs::Deserialize((uint8_t*)message.data(), message.size(), &scanResults)) {
- invokeErrorCallbackAndResetIfNeeded(
- createOffloadStatus(OffloadStatusCode::ERROR, "Cannot deserialize scan results"));
- return;
- }
- if (!offload_utils::ToHidlScanResults(scanResults, &hidlScanResults)) {
- invokeErrorCallbackAndResetIfNeeded(createOffloadStatus(
- OffloadStatusCode::ERROR, "Cannot convert scan results to HIDL format"));
- return;
- }
- {
- std::lock_guard<std::mutex> lock(mOffloadLock);
- if (mEventCallback != nullptr) {
- mEventCallback->onScanResult(hidlScanResults);
- }
- }
-}
-
-void OffloadServer::handleScanStats(const std::vector<uint8_t>& message) {
- std::lock_guard<std::mutex> lock(mScanStatsLock);
- wifi_offload::ScanStats stats;
- OffloadStatus status;
- // Deserialize scan stats
- status = createOffloadStatus(OffloadStatusCode::OK);
- LOG(VERBOSE) << "Received scan stats";
- if (!wifi_offload::fbs::Deserialize((uint8_t*)message.data(), message.size(), &stats)) {
- status = createOffloadStatus(OffloadStatusCode::ERROR, "Cannot deserailize scan stats");
- } else if (!offload_utils::ToHidlScanStats(stats, &mScanStats)) {
- status = createOffloadStatus(OffloadStatusCode::ERROR,
- "Cannot convert Scan stats to HIDL format");
- }
- mScanStatsStatus = status;
- mScanStatsCond.notify_all();
-}
-
-void ChreInterfaceCallbacksImpl::handleMessage(uint32_t messageType,
- const std::vector<uint8_t>& message) {
- LOG(VERBOSE) << "Message from Nano app " << messageType;
- switch (messageType) {
- case wifi_offload::HostMessageType::HOST_MSG_SCAN_RESULTS: {
- LOG(INFO) << "Received scan results";
- mServer->handleScanResult(message);
- } break;
- case wifi_offload::HostMessageType::HOST_MSG_SCAN_STATS:
- LOG(VERBOSE) << "Received scan stats from Nano app";
- mServer->handleScanStats(message);
- break;
- case wifi_offload::HostMessageType::HOST_MSG_ERROR:
- LOG(VERBOSE) << "Received error message from Nano app";
- {
- std::string errorMessage;
- if (offload_utils::ToHidlErrorMessage(message[0], &errorMessage)) {
- mServer->invokeErrorCallbackAndResetIfNeeded(
- createOffloadStatus(OffloadStatusCode::ERROR, errorMessage));
- }
- }
- break;
- default:
- LOG(WARNING) << "Unknown message received" << messageType;
- break;
- }
-}
-
-// Methods from ::android::hidl::base::V1_0::IBase follow.
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/offload_server.h b/wifi_offload/offload_server.h
deleted file mode 100644
index ac7b346..0000000
--- a/wifi_offload/offload_server.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef WIFI_OFFLOAD_SERVER_H_
-#define WIFI_OFFLOAD_SERVER_H_
-
-#include <android/hardware/wifi/offload/1.0/IOffload.h>
-
-#include "chre_interface_factory.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class OffloadServer;
-
-class ChreInterfaceCallbacksImpl : public ChreInterfaceCallbacks {
- public:
- ChreInterfaceCallbacksImpl(OffloadServer* server);
- ~ChreInterfaceCallbacksImpl() override;
-
- void handleConnectionEvents(ChreInterfaceCallbacks::ConnectionEvent event);
- void handleMessage(uint32_t messageType, const std::vector<uint8_t>& message);
-
- private:
- OffloadServer* mServer;
-};
-
-/**
- * Interface object to communicate with Offload HAL
- */
-class OffloadServer {
- public:
- OffloadServer(ChreInterfaceFactory* factory);
-
- OffloadStatus configureScans(const ScanParam& param, const ScanFilter& filter);
- std::pair<OffloadStatus, ScanStats> getScanStats();
- OffloadStatus subscribeScanResults(uint32_t delayMs);
- bool unsubscribeScanResults();
- bool setEventCallback(const sp<IOffloadCallback>& cb);
- void clearEventCallback();
-
- private:
- void invokeErrorCallbackAndResetIfNeeded(
- const android::hardware::wifi::offload::V1_0::OffloadStatus& status);
- void handleScanResult(const std::vector<uint8_t>& message);
- void handleScanStats(const std::vector<uint8_t>& message);
- void resetNanoApp();
-
- ScanStats mScanStats;
- std::mutex mScanStatsLock;
- std::condition_variable mScanStatsCond;
- std::mutex mOffloadLock;
- OffloadStatus mScanStatsStatus;
-
- std::unique_ptr<ChreInterfaceCallbacksImpl> mChreInterfaceCallbacks;
- std::unique_ptr<ChreInterface> mChreInterface;
- sp<IOffloadCallback> mEventCallback;
-
- friend class ChreInterfaceCallbacksImpl;
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_SERVER_H_
diff --git a/wifi_offload/offload_status_util.cpp b/wifi_offload/offload_status_util.cpp
deleted file mode 100644
index d6335e8..0000000
--- a/wifi_offload/offload_status_util.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#include "offload_status_util.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-OffloadStatus createOffloadStatus(OffloadStatusCode code, const std::string &description) {
- return {code, description};
-}
-
-OffloadStatus createOffloadStatus(OffloadStatusCode code) {
- return createOffloadStatus(code, "");
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/offload_status_util.h b/wifi_offload/offload_status_util.h
deleted file mode 100644
index 8e2cb9b..0000000
--- a/wifi_offload/offload_status_util.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef OFFLOAD_STATUS_UTIL_H_
-#define OFFLOAD_STATUS_UTIL_H_
-
-#include <android/hardware/wifi/offload/1.0/IOffload.h>
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-OffloadStatus createOffloadStatus(OffloadStatusCode code, const std::string &description);
-OffloadStatus createOffloadStatus(OffloadStatusCode code);
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // OFFLOAD_STATUS_UTIL_H_
diff --git a/wifi_offload/offload_utils.cpp b/wifi_offload/offload_utils.cpp
deleted file mode 100644
index 90d4b9a..0000000
--- a/wifi_offload/offload_utils.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#include "offload_utils.h"
-
-#include <android-base/logging.h>
-#include <chre/apps/wifi_offload/error_codes.h>
-
-namespace {
-
-bool ToHidlRecordName(const wifi_offload::RpcLogRecord::RpcLogRecordType& chreRecordType,
- android::hardware::wifi::offload::V1_0::RecordName* hidlRecordName) {
- bool result = true;
- switch (chreRecordType) {
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_INIT:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::CMD_INT;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_CONFIG_SCANS:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::CMD_CONFIG_SCANS;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_SUBSCRIBE_SCAN_RESULTS:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::CMD_SUBSCRIBE_SCAN_RESULTS;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_UNSUBSCRIBE_SCAN_RESULTS:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::CMD_UNSUBSCRIBE_SCAN_RESULTS;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_GET_SCAN_STATS:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::CMD_GET_SCAN_STATS;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_RESET:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::CMD_RESET;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_RECVD_SCAN_RESULT_ASYNC:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::EVENT_RECVD_SCAN_RESULT_ASYNC;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_RECVD_SCAN_RESULT:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::EVENT_RECVD_SCAN_RESULT;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_SENT_SCAN_RESULT:
- *hidlRecordName =
- android::hardware::wifi::offload::V1_0::RecordName::EVENT_SENT_SCAN_RESULT;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_SENT_ABORT:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::EVENT_SENT_ABORT;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_SENT_ERROR:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::EVENT_SENT_ERROR;
- break;
- case wifi_offload::RpcLogRecord::RpcLogRecordType::REQ_SCAN:
- *hidlRecordName = android::hardware::wifi::offload::V1_0::RecordName::REQ_SCAN;
- break;
- default:
- result = false;
- break;
- }
- return result;
-}
-
-uint8_t ToChreSecurityMode(uint8_t hidlSecurityMode) {
- uint8_t chreSecurityMode = 0;
- if (hidlSecurityMode & android::hardware::wifi::offload::V1_0::SecurityMode::OPEN) {
- chreSecurityMode |= wifi_offload::SecurityMode::OPEN;
- }
- if (hidlSecurityMode & android::hardware::wifi::offload::V1_0::SecurityMode::WEP) {
- chreSecurityMode |= wifi_offload::SecurityMode::WEP;
- }
- if (hidlSecurityMode & android::hardware::wifi::offload::V1_0::SecurityMode::PSK) {
- chreSecurityMode |= wifi_offload::SecurityMode::PSK;
- }
- if (hidlSecurityMode & android::hardware::wifi::offload::V1_0::SecurityMode::EAP) {
- chreSecurityMode |= wifi_offload::SecurityMode::EAP;
- }
- return chreSecurityMode;
-}
-
-uint8_t ToHidlSecurityMode(uint8_t chreSecurityMode) {
- uint8_t hidlSecurityMode = 0;
- if (chreSecurityMode & wifi_offload::SecurityMode::OPEN) {
- hidlSecurityMode |= android::hardware::wifi::offload::V1_0::SecurityMode::OPEN;
- }
- if (chreSecurityMode & wifi_offload::SecurityMode::WEP) {
- hidlSecurityMode |= android::hardware::wifi::offload::V1_0::SecurityMode::WEP;
- }
- if (chreSecurityMode & wifi_offload::SecurityMode::PSK) {
- hidlSecurityMode |= android::hardware::wifi::offload::V1_0::SecurityMode::PSK;
- }
- if (chreSecurityMode & wifi_offload::SecurityMode::EAP) {
- hidlSecurityMode |= android::hardware::wifi::offload::V1_0::SecurityMode::EAP;
- }
- return hidlSecurityMode;
-}
-
-} // namespace
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_utils {
-
-bool ToHidlScanResult(const wifi_offload::ScanResult& chreScanResult, ScanResult* hidlScanResult) {
- if (hidlScanResult == nullptr) {
- return false;
- }
- hidlScanResult->tsf = chreScanResult.tsf_;
- hidlScanResult->capability = chreScanResult.capability_;
- hidlScanResult->rssi = chreScanResult.rssi_dbm_;
- hidlScanResult->frequency = chreScanResult.frequency_scanned_mhz_;
- memcpy(&hidlScanResult->bssid[0], &chreScanResult.bssid_[0],
- wifi_offload::ScanResult::kBssidSize);
- chreWifiSsidListItem chreWifiSsid;
- chreScanResult.ssid_.ToChreWifiSsidListItem(&chreWifiSsid);
- std::vector<uint8_t> ssid;
- for (size_t i = 0; i < chreWifiSsid.ssidLen; i++) {
- ssid.push_back(chreWifiSsid.ssid[i]);
- }
- hidlScanResult->networkInfo.ssid = ssid;
- hidlScanResult->networkInfo.flags = ToHidlSecurityMode(chreScanResult.security_modes_);
- return true;
-}
-
-bool ToHidlScanResults(const std::vector<wifi_offload::ScanResult>& chreScanResults,
- std::vector<ScanResult>* hidlScanResults) {
- LOG(VERBOSE) << "ScanResults from CHRE, size=" << chreScanResults.size();
- for (const auto& scan_result_from_nano_app : chreScanResults) {
- ScanResult hidl_scan_result;
- if (!ToHidlScanResult(scan_result_from_nano_app, &hidl_scan_result)) {
- return false;
- }
- hidlScanResults->push_back(hidl_scan_result);
- }
- return true;
-}
-
-bool ToHidlScanStats(const wifi_offload::ScanStats& chreScanStats, ScanStats* hidlScanStats) {
- hidlScanStats->subscriptionDurationMs = chreScanStats.last_subscription_duration_ms_;
- hidlScanStats->numScansRequestedByWifi = chreScanStats.num_scans_requested_by_nanoapp_;
- hidlScanStats->numScansServicedByWifi = chreScanStats.num_scans_serviced_by_hardware_;
- hidlScanStats->numScansServicedbyCache = chreScanStats.num_scans_serviced_by_cache_;
- std::vector<ScanRecord> hidlScanRecords;
- for (const auto& chreScanRecord : chreScanStats.scan_records_) {
- ScanRecord hidlScanRecord;
- hidlScanRecord.durationMs = chreScanRecord.time_spent_scanning_ms_;
- hidlScanRecord.numChannelsScanned = chreScanRecord.num_channels_scanned_;
- hidlScanRecord.numEntriesAggregated = chreScanRecord.num_entries_aggregated_;
- hidlScanRecords.push_back(hidlScanRecord);
- }
- hidlScanStats->scanRecord = hidlScanRecords;
- std::vector<LogRecord> logRecords;
- for (const auto& chreLogRecord : chreScanStats.rpc_log_records_) {
- LogRecord logRecord;
- if (!ToHidlRecordName(chreLogRecord.record_type_, &logRecord.recordName)) {
- return false;
- }
- logRecord.logTimeMs = chreLogRecord.timestamp_chre_ms_;
- logRecords.push_back(logRecord);
- }
- hidlScanStats->logRecord = logRecords;
- for (size_t i = 0; i < hidlScanStats->histogramChannelsScanned.elementCount(); i++) {
- hidlScanStats->histogramChannelsScanned[i] =
- chreScanStats.channel_histogram_.GetChannelScanCount(i);
- }
- return true;
-}
-
-bool ToChreScanConfig(const ScanParam& param, const ScanFilter& filter,
- wifi_offload::ScanConfig* scanConfig) {
- scanConfig->scan_params_.disconnected_mode_scan_interval_ms_ =
- param.disconnectedModeScanIntervalMs;
- for (const auto& ssid : param.ssidList) {
- wifi_offload::Ssid chreSsid;
- chreSsid.SetData(ssid.data(), ssid.size());
- scanConfig->scan_params_.ssids_to_scan_.push_back(chreSsid);
- }
- for (const auto& freq : param.frequencyList) {
- scanConfig->scan_params_.frequencies_to_scan_mhz_.push_back(freq);
- }
- scanConfig->scan_filter_.min_rssi_threshold_dbm_ = filter.rssiThreshold;
- for (const auto& nwInfo : filter.preferredNetworkInfoList) {
- wifi_offload::PreferredNetwork chreNwInfo;
- chreNwInfo.security_modes_ = ToChreSecurityMode(nwInfo.flags);
- chreNwInfo.ssid_.SetData(nwInfo.ssid.data(), nwInfo.ssid.size());
- scanConfig->scan_filter_.networks_to_match_.push_back(std::move(chreNwInfo));
- }
- return true;
-}
-
-bool ToHidlErrorMessage(uint32_t errorCode, std::string* errorMessage) {
- bool reportError = true;
- switch (errorCode) {
- case wifi_offload::ErrorCode::FAILED_TO_ALLOCATE_MESSAGE_BUFFER:
- *errorMessage = "Failed to allocate message buffer";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SERIALIZE_MESSAGE:
- *errorMessage = "Failed to serialize message";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SEND_MESSAGE:
- *errorMessage = "Failed to send message";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_DESERIALIZE_SCAN_CONFIG:
- *errorMessage = "Failed to deserialize scan config";
- break;
- case wifi_offload::ErrorCode::INVALID_SUBSCRIBE_MESSAGE_SIZE:
- *errorMessage = "Invalid subscribe message size";
- break;
- case wifi_offload::ErrorCode::SCAN_CONFIG_NOT_INITIALIZED:
- *errorMessage = "Scan config not initialized";
- break;
- case wifi_offload::ErrorCode::UNSPECIFIED_HOST_ENDPOINT:
- *errorMessage = "Unspecified host end point";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SEND_SCAN_RESULTS:
- *errorMessage = "Failed to send scan results";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SEND_SCAN_STATS:
- *errorMessage = "Failed to send scan stats";
- break;
- case wifi_offload::ErrorCode::ONDEMAND_SCAN_NOT_SUPPORTED:
- *errorMessage = "On demand scans not supported";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SEND_ONDEMAND_SCAN_REQUEST:
- *errorMessage = "Failed to send on demand scan request";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SEND_ONDEMAND_SCAN_REQUEST_ASYNC:
- *errorMessage = "Failed to send on demand scan request async";
- break;
- case wifi_offload::ErrorCode::OUT_OF_ORDER_SCAN_RESULTS:
- *errorMessage = "Out of order scan results";
- break;
- case wifi_offload::ErrorCode::INCOMPLETE_SCAN_RESULTS_BEFORE_SCAN_REQUEST:
- *errorMessage = "Incomplete scan results before scan request";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_SET_SCAN_TIMER:
- *errorMessage = "Failed to set scan timer";
- break;
- case wifi_offload::ErrorCode::SCAN_MONITORING_NOT_SUPPORTED:
- *errorMessage = "Scan Monitoring not supported";
- break;
- case wifi_offload::ErrorCode::FAILED_TO_START_SCAN_MONITORING:
- *errorMessage = "Failed to start scan monitoring";
- reportError = false;
- break;
- case wifi_offload::ErrorCode::FAILED_TO_STOP_SCAN_MONITORING:
- *errorMessage = "Failed to stop scan monitoring";
- reportError = false;
- break;
- case wifi_offload::ErrorCode::FAILED_TO_CONFIGURE_SCAN_MONITORING_ASYNC:
- *errorMessage = "Failed to configure scan monitoring async";
- reportError = false;
- break;
- default:
- *errorMessage = "Invalid error code";
- reportError = false;
- break;
- }
- return reportError;
-}
-
-} // namespace offload_utils
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/offload_utils.h b/wifi_offload/offload_utils.h
deleted file mode 100644
index ef087c9..0000000
--- a/wifi_offload/offload_utils.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WIFI_OFFLOAD_SERVER_UTILS_H_
-#define WIFI_OFFLOAD_SERVER_UTILS_H_
-
-#include <android/hardware/wifi/offload/1.0/IOffload.h>
-#include <chre/apps/wifi_offload/flatbuffers_serialization.h>
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_utils {
-
-bool ToHidlScanResults(const std::vector<wifi_offload::ScanResult>& chreScanResults,
- std::vector<ScanResult>* hidlScanResults);
-bool ToHidlScanStats(const wifi_offload::ScanStats& chreScanStats, ScanStats* hildScanStats);
-bool ToChreScanConfig(const ScanParam& param, const ScanFilter& filter,
- wifi_offload::ScanConfig* scanConfig);
-bool ToHidlErrorMessage(uint32_t errorCode, std::string* errorMessage);
-
-} // namespace offload_utils
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_SERVER_UTILS_H_
diff --git a/wifi_offload/service.cpp b/wifi_offload/service.cpp
deleted file mode 100644
index acec078..0000000
--- a/wifi_offload/service.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#include <hidl/HidlTransportSupport.h>
-#include <hwbinder/IPCThreadState.h>
-
-#include <android-base/logging.h>
-#include <utils/StrongPointer.h>
-
-#include "Offload.h"
-
-// libhwbinder
-using android::hardware::configureRpcThreadpool;
-using android::hardware::joinRpcThreadpool;
-
-using android::hardware::wifi::offload::V1_0::IOffload;
-using android::hardware::wifi::offload::V1_0::implementation::Offload;
-
-int main(int /*argc*/, char **argv) {
- android::base::InitLogging(
- argv, android::base::LogdLogger(android::base::SYSTEM));
- LOG(android::base::INFO) << "Wifi Offload HAL service start ";
-
- // Setup hwbinder
- configureRpcThreadpool(1, true /* callerWillJoin */);
-
- // Register service
- android::sp<IOffload> service = new Offload();
- CHECK_EQ(service->registerAsService(), android::NO_ERROR)
- << "Failed to register Wifi Offload HAL";
-
- joinRpcThreadpool();
-
- LOG(android::base::INFO) << "Wifi Offload HAL service exit";
- return 0;
-}
diff --git a/wifi_offload/test/chre_interface_test.cpp b/wifi_offload/test/chre_interface_test.cpp
deleted file mode 100644
index fe2fab5..0000000
--- a/wifi_offload/test/chre_interface_test.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-#include <gtest/gtest.h>
-
-#include <android-base/logging.h>
-
-#include "mock_chre_interface_callbacks.h"
-
-#include "chre_interface.h"
-
-namespace {
-
-const size_t kBufSize = 256;
-const uint8_t kDefaultValue = 0xaa;
-const uint32_t kDefaultMessageType = 0;
-
-} // namespace
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class ChreInterfaceTest : public ::testing::Test {
- protected:
- virtual void SetUp() {
- chre_interface_.reset(new ChreInterface(chre_interface_callback_.get()));
- }
-
- void TearDown() override {
- }
-
- std::unique_ptr<testing::NiceMock<MockChreInterfaceCallbacks>> chre_interface_callback_{
- new testing::NiceMock<MockChreInterfaceCallbacks>()};
- std::unique_ptr<ChreInterface> chre_interface_;
-};
-
-TEST_F(ChreInterfaceTest, ChreInterfaceConnectionEventTest) {
- EXPECT_CALL(*chre_interface_callback_, handleConnectionEvents(testing::_));
- chre_interface_->reportConnectionEvent(ChreInterfaceCallbacks::CONNECTED);
- EXPECT_TRUE(chre_interface_->isConnected());
-}
-
-TEST_F(ChreInterfaceTest, ChreInterfaceHandleMessageTest) {
- EXPECT_CALL(*chre_interface_callback_, handleMessage(testing::_, testing::_));
- uint32_t messageType;
- std::vector<uint8_t> buffer_recvd;
- ON_CALL(*chre_interface_callback_, handleMessage(testing::_, testing::_))
- .WillByDefault(
- DoAll(testing::SaveArg<0>(&messageType), testing::SaveArg<1>(&buffer_recvd)));
- uint8_t buffer_sent[kBufSize];
- for (size_t j = 0; j < kBufSize; j++) {
- buffer_sent[j] = kDefaultValue;
- }
- chre_interface_->handleMessage(kDefaultMessageType, (void*)&buffer_sent[0], kBufSize);
- EXPECT_EQ(messageType, kDefaultMessageType);
- EXPECT_EQ(buffer_recvd.size(), kBufSize);
- for (size_t i = 0; i < buffer_recvd.size(); i++) {
- EXPECT_EQ(buffer_recvd[i], buffer_sent[i]);
- }
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/main.cpp b/wifi_offload/test/main.cpp
deleted file mode 100644
index 9aac837..0000000
--- a/wifi_offload/test/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include <android-base/logging.h>
-
-int main(int argc, char** argv) {
- ::testing::InitGoogleTest(&argc, argv);
- ::testing::InitGoogleMock(&argc, argv);
- // Force ourselves to always log to stderr
- android::base::InitLogging(argv, android::base::StderrLogger);
- return RUN_ALL_TESTS();
-}
diff --git a/wifi_offload/test/mock_chre_interface.cpp b/wifi_offload/test/mock_chre_interface.cpp
deleted file mode 100644
index 9cb7fc9..0000000
--- a/wifi_offload/test/mock_chre_interface.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#include "mock_chre_interface.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-MockChreInterface::MockChreInterface(ChreInterfaceCallbacks* callback) : ChreInterface(callback) {
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/mock_chre_interface.h b/wifi_offload/test/mock_chre_interface.h
deleted file mode 100644
index e74444e..0000000
--- a/wifi_offload/test/mock_chre_interface.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_H_
-#define WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_H_
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include "chre_interface.h"
-#include "chre_interface_callbacks.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class MockChreInterface : public ChreInterface {
- public:
- MockChreInterface(ChreInterfaceCallbacks* callback);
- ~MockChreInterface() = default;
-
- MOCK_METHOD0(isConnected, bool());
- MOCK_METHOD2(sendCommandToApp, bool(uint32_t messageType, const std::vector<uint8_t>& message));
- MOCK_METHOD1(reportConnectionEvent, void(ChreInterfaceCallbacks::ConnectionEvent event));
- MOCK_METHOD0(getHubInfo, bool());
- MOCK_METHOD0(getNanoAppList, bool());
- MOCK_METHOD3(handleMessage,
- void(uint32_t messageType, const void* messageData, size_t messageDataLen));
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_H_
diff --git a/wifi_offload/test/mock_chre_interface_callbacks.cpp b/wifi_offload/test/mock_chre_interface_callbacks.cpp
deleted file mode 100644
index 953ab8f..0000000
--- a/wifi_offload/test/mock_chre_interface_callbacks.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "mock_chre_interface_callbacks.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-MockChreInterfaceCallbacks::MockChreInterfaceCallbacks() {
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/mock_chre_interface_callbacks.h b/wifi_offload/test/mock_chre_interface_callbacks.h
deleted file mode 100644
index e96bb61..0000000
--- a/wifi_offload/test/mock_chre_interface_callbacks.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#ifndef WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_
-#define WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include "chre_interface_callbacks.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class MockChreInterfaceCallbacks : public ChreInterfaceCallbacks {
- public:
- MockChreInterfaceCallbacks();
- ~MockChreInterfaceCallbacks() override = default;
-
- MOCK_METHOD1(handleConnectionEvents, void(ChreInterfaceCallbacks::ConnectionEvent event));
- MOCK_METHOD2(handleMessage, void(uint32_t messageType, const std::vector<uint8_t>& message));
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-#endif // WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_
diff --git a/wifi_offload/test/mock_chre_interface_factory.cpp b/wifi_offload/test/mock_chre_interface_factory.cpp
deleted file mode 100644
index 9c04ccf..0000000
--- a/wifi_offload/test/mock_chre_interface_factory.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#include "mock_chre_interface_factory.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-MockChreInterfaceFactory::MockChreInterfaceFactory() {
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/mock_chre_interface_factory.h b/wifi_offload/test/mock_chre_interface_factory.h
deleted file mode 100644
index 644e49c..0000000
--- a/wifi_offload/test/mock_chre_interface_factory.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_
-#define WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include "chre_interface_callbacks.h"
-#include "chre_interface_factory.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class MockChreInterfaceFactory : public ChreInterfaceFactory {
- public:
- MockChreInterfaceFactory();
- ~MockChreInterfaceFactory() override = default;
-
- MOCK_METHOD1(getChreInterface, ChreInterface*(ChreInterfaceCallbacks* handlers));
-};
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_
diff --git a/wifi_offload/test/offload_hal_test_constants.cpp b/wifi_offload/test/offload_hal_test_constants.cpp
deleted file mode 100644
index 805090d..0000000
--- a/wifi_offload/test/offload_hal_test_constants.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "offload_hal_test_constants.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_hal_test_constants {
-
-const uint8_t kSsid1[] = {'G', 'o', 'o', 'g', 'l', 'e'};
-const size_t kSsid1_size = sizeof(kSsid1);
-const uint8_t kSsid2[] = {'X', 'f', 'i', 'n', 'i', 't', 'y'};
-const size_t kSsid2_size = sizeof(kSsid2);
-const uint8_t kBssid[6] = {0x12, 0xef, 0xa1, 0x2c, 0x97, 0x8b};
-const int16_t kRssi = -60;
-const int16_t kRssiThreshold = -76;
-const uint32_t kFrequency1 = 2412;
-const uint32_t kFrequency2 = 2437;
-const uint8_t kBssidSize = 6;
-const uint64_t kTsf = 0;
-const uint16_t kCapability = 0;
-const uint8_t kNetworkFlags = 0;
-const uint32_t kDisconnectedModeScanIntervalMs = 5000;
-const uint64_t kSubscriptionDurationMs = 10000;
-const uint64_t kScanDurationMs[2] = {2000, 500};
-const uint32_t kNumChannelsScanned[] = {1, 2};
-const uint8_t kChannelNotScanned = 0;
-const uint32_t kDefaultNumScansRequestedByWifi = 2;
-const uint32_t kDefaultNumScansServicedByWifi = 2;
-const uint64_t kScanDurationTotalMs = 2000;
-const uint32_t kNumChannelsTotalScanned = 3;
-const uint32_t kNumChannelsInHistogram = 256;
-const uint8_t kTestChannels[] = {1, 6, 11};
-const uint32_t kNumTimesChannelScanned[] = {1, 1, 255};
-const uint32_t kSystemStartTime = 32164;
-const uint32_t kIncrementBetweenEvents = 10;
-const size_t kRecordLength = 8;
-const size_t kInvalidRecordLength = 4;
-
-const wifi_offload::RpcLogRecord::RpcLogRecordType kChreRecordTypeList[] = {
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_INIT,
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_CONFIG_SCANS,
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_SUBSCRIBE_SCAN_RESULTS,
- wifi_offload::RpcLogRecord::RpcLogRecordType::REQ_SCAN,
- wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_RECVD_SCAN_RESULT,
- wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_SENT_SCAN_RESULT,
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_UNSUBSCRIBE_SCAN_RESULTS,
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_GET_SCAN_STATS,
-};
-
-const wifi_offload::RpcLogRecord::RpcLogRecordType kInvalidChreRecordTypeLog[] = {
- wifi_offload::RpcLogRecord::RpcLogRecordType::CMD_LAST_ITEM,
- wifi_offload::RpcLogRecord::RpcLogRecordType::REQ_LAST_ITEM,
- wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_RECVD_LAST_ITEM,
- wifi_offload::RpcLogRecord::RpcLogRecordType::EVENT_SENT_LAST_ITEM,
-};
-
-const android::hardware::wifi::offload::V1_0::RecordName kHidlRecordNameList[] = {
- android::hardware::wifi::offload::V1_0::RecordName::CMD_INT,
- android::hardware::wifi::offload::V1_0::RecordName::CMD_CONFIG_SCANS,
- android::hardware::wifi::offload::V1_0::RecordName::CMD_SUBSCRIBE_SCAN_RESULTS,
- android::hardware::wifi::offload::V1_0::RecordName::REQ_SCAN,
- android::hardware::wifi::offload::V1_0::RecordName::EVENT_RECVD_SCAN_RESULT,
- android::hardware::wifi::offload::V1_0::RecordName::EVENT_SENT_SCAN_RESULT,
- android::hardware::wifi::offload::V1_0::RecordName::CMD_UNSUBSCRIBE_SCAN_RESULTS,
- android::hardware::wifi::offload::V1_0::RecordName::CMD_GET_SCAN_STATS,
-};
-
-} // namespace offload_hal_test_constants
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/offload_hal_test_constants.h b/wifi_offload/test/offload_hal_test_constants.h
deleted file mode 100644
index 195e0e8..0000000
--- a/wifi_offload/test/offload_hal_test_constants.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef OFFLOAD_HAL_TEST_CONSTANTS_
-#define OFFLOAD_HAL_TEST_CONSTANTS_
-
-#include <cstdint>
-
-#include "offload_utils.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_hal_test_constants {
-
-extern const uint8_t kSsid1[];
-extern const size_t kSsid1_size;
-extern const uint8_t kSsid2[];
-extern const size_t kSsid2_size;
-extern const uint8_t kBssid[6];
-extern const int16_t kRssi;
-extern const int16_t kRssiThreshold;
-extern const uint32_t kFrequency1;
-extern const uint32_t kFrequency2;
-extern const uint8_t kBssidSize;
-extern const uint64_t kTsf;
-extern const uint16_t kCapability;
-extern const uint8_t kNetworkFlags;
-extern const uint32_t kDisconnectedModeScanIntervalMs;
-extern const uint64_t kSubscriptionDurationMs;
-extern const uint64_t kScanDurationMs[2];
-extern const uint32_t kNumChannelsScanned[];
-extern const uint8_t kChannelNotScanned;
-extern const uint32_t kDefaultNumScansRequestedByWifi;
-extern const uint32_t kDefaultNumScansServicedByWifi;
-extern const uint64_t kScanDurationTotalMs;
-extern const uint32_t kNumChannelsTotalScanned;
-extern const uint32_t kNumChannelsInHistogram;
-extern const uint64_t kDeathCode;
-extern const uint8_t kTestChannels[];
-extern const uint32_t kNumTimesChannelScanned[];
-extern const uint32_t kSystemStartTime;
-extern const uint32_t kIncrementBetweenEvents;
-extern const size_t kRecordLength;
-extern const size_t kInvalidRecordLength;
-extern const wifi_offload::RpcLogRecord::RpcLogRecordType kChreRecordTypeList[];
-extern const wifi_offload::RpcLogRecord::RpcLogRecordType kInvalidChreRecordTypeLog[];
-extern const android::hardware::wifi::offload::V1_0::RecordName kHidlRecordNameList[];
-
-} // namespace offload_hal_test_constants
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // OFFLOAD_HAL_TEST_CONSTANTS_
diff --git a/wifi_offload/test/offload_hal_test_utils.cpp b/wifi_offload/test/offload_hal_test_utils.cpp
deleted file mode 100644
index b58ce40..0000000
--- a/wifi_offload/test/offload_hal_test_utils.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "offload_hal_test_utils.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_hal_test_utils {
-
-using namespace offload_hal_test_constants;
-
-void createChreScanResultsForTest(std::vector<wifi_offload::ScanResult>* chreScanResults) {
- wifi_offload::ScanResult chreScanResult;
- chreScanResult.security_modes_ = kNetworkFlags;
- chreScanResult.capability_ = kCapability;
- chreScanResult.frequency_scanned_mhz_ = kFrequency1;
- chreScanResult.rssi_dbm_ = kRssi;
- chreScanResult.tsf_ = kTsf;
- chreScanResult.ssid_.SetData(&kSsid1[0], kSsid1_size);
- memcpy(&chreScanResult.bssid_[0], &kBssid[0], kBssidSize);
- chreScanResults->push_back(chreScanResult);
-}
-
-void createChreScanStatsForTest(wifi_offload::ScanStats* chreScanStats) {
- chreScanStats->num_scans_requested_by_nanoapp_ = kDefaultNumScansRequestedByWifi;
- chreScanStats->num_scans_serviced_by_hardware_ = kDefaultNumScansServicedByWifi;
- chreScanStats->num_scans_serviced_by_cache_ =
- (kDefaultNumScansRequestedByWifi - kDefaultNumScansServicedByWifi);
- for (size_t j = 0; j < kNumChannelsScanned[0] + kNumChannelsScanned[1]; j++) {
- chreScanStats->channel_histogram_.IncrementScanCountForChannelForTest(
- kTestChannels[j], static_cast<uint32_t>(kNumTimesChannelScanned[j]));
- }
- chreScanStats->last_subscription_duration_ms_ = kSubscriptionDurationMs;
- wifi_offload::ScanRecord scanRecord1;
- scanRecord1.time_spent_scanning_ms_ = kScanDurationMs[0];
- scanRecord1.num_channels_scanned_ = kNumChannelsScanned[0];
- scanRecord1.num_entries_aggregated_ = 1;
- chreScanStats->scan_records_.push_back(scanRecord1);
- wifi_offload::ScanRecord scanRecord2;
- scanRecord2.time_spent_scanning_ms_ = kScanDurationMs[1];
- scanRecord2.num_channels_scanned_ = kNumChannelsScanned[1];
- scanRecord2.num_entries_aggregated_ = 1;
- chreScanStats->scan_records_.push_back(scanRecord2);
-
- for (size_t i = 0; i < kRecordLength; i++) {
- wifi_offload::RpcLogRecord logRecord;
- logRecord.record_type_ = kChreRecordTypeList[i];
- logRecord.timestamp_chre_ms_ = kSystemStartTime + i * kIncrementBetweenEvents;
- chreScanStats->rpc_log_records_.push_back(logRecord);
- }
-}
-
-void createHidlScanFilterForTest(ScanFilter* scanFilter) {
- std::vector<NetworkInfo> nw_info_list;
- NetworkInfo nwInfo1;
- std::vector<uint8_t> ssid1(kSsid1, kSsid1 + kSsid1_size);
- nwInfo1.ssid = ssid1;
- nwInfo1.flags = kNetworkFlags;
- NetworkInfo nwInfo2;
- std::vector<uint8_t> ssid2(kSsid2, kSsid2 + kSsid2_size);
- nwInfo2.ssid = ssid2;
- nwInfo2.flags = kNetworkFlags;
- nw_info_list.push_back(nwInfo1);
- nw_info_list.push_back(nwInfo2);
- scanFilter->preferredNetworkInfoList = nw_info_list;
- scanFilter->rssiThreshold = kRssiThreshold;
-}
-
-void createHidlScanParamForTest(ScanParam* scanParam) {
- scanParam->disconnectedModeScanIntervalMs = kDisconnectedModeScanIntervalMs;
- std::vector<uint32_t> frequencyList{kFrequency1, kFrequency2};
- scanParam->frequencyList = frequencyList;
- std::vector<hidl_vec<uint8_t>> ssidList;
- std::vector<uint8_t> ssid1(kSsid1, kSsid1 + kSsid1_size);
- std::vector<uint8_t> ssid2(kSsid2, kSsid2 + kSsid2_size);
- ssidList.push_back(ssid1);
- ssidList.push_back(ssid2);
- scanParam->ssidList = ssidList;
-}
-
-void createChreScanConfigForTest(wifi_offload::ScanConfig* scanConfig) {
- scanConfig->scan_params_.disconnected_mode_scan_interval_ms_ = kDisconnectedModeScanIntervalMs;
- wifi_offload::Ssid chreSsid1;
- chreSsid1.SetData(&kSsid1[0], kSsid1_size);
- wifi_offload::Ssid chreSsid2;
- chreSsid2.SetData(&kSsid2[0], kSsid2_size);
- scanConfig->scan_params_.ssids_to_scan_.push_back(chreSsid1);
- scanConfig->scan_params_.ssids_to_scan_.push_back(chreSsid2);
- scanConfig->scan_params_.frequencies_to_scan_mhz_.push_back(kFrequency1);
- scanConfig->scan_params_.frequencies_to_scan_mhz_.push_back(kFrequency2);
- scanConfig->scan_filter_.min_rssi_threshold_dbm_ = kRssiThreshold;
- wifi_offload::PreferredNetwork chreNwInfo1;
- chreNwInfo1.security_modes_ = kNetworkFlags;
- chreNwInfo1.ssid_.SetData(&kSsid1[0], kSsid1_size);
- scanConfig->scan_filter_.networks_to_match_.push_back(std::move(chreNwInfo1));
- wifi_offload::PreferredNetwork chreNwInfo2;
- chreNwInfo2.security_modes_ = kNetworkFlags;
- chreNwInfo2.ssid_.SetData(&kSsid2[0], kSsid2_size);
- scanConfig->scan_filter_.networks_to_match_.push_back(std::move(chreNwInfo2));
-}
-
-bool validateScanResult(const std::vector<ScanResult>& hidlScanResultsTest,
- const std::vector<wifi_offload::ScanResult> chreScanResults) {
- if (hidlScanResultsTest.size() != chreScanResults.size())
- return false;
- uint32_t i = 0;
- for (const auto& hidlScanResult : hidlScanResultsTest) {
- if (hidlScanResult.tsf != chreScanResults[i].tsf_)
- return false;
- if (hidlScanResult.rssi != chreScanResults[i].rssi_dbm_)
- return false;
- if (hidlScanResult.capability != chreScanResults[i].capability_)
- return false;
- if (hidlScanResult.frequency != chreScanResults[i].frequency_scanned_mhz_)
- return false;
- for (int j = 0; j < kBssidSize; j++) {
- if (hidlScanResult.bssid[j] != chreScanResults[i].bssid_[j])
- return false;
- }
- chreWifiSsidListItem chreWifiSsid;
- chreScanResults[i].ssid_.ToChreWifiSsidListItem(&chreWifiSsid);
- for (size_t k = 0; k < chreWifiSsid.ssidLen; k++) {
- if (hidlScanResult.networkInfo.ssid[k] != chreWifiSsid.ssid[k])
- return false;
- }
- if (hidlScanResult.networkInfo.flags != kNetworkFlags) {
- return false;
- }
- i++;
- }
- return true;
-}
-
-bool validateScanStats(const ScanStats& hidlScanStats,
- const wifi_offload::ScanStats& chreScanStats) {
- if (hidlScanStats.subscriptionDurationMs != chreScanStats.last_subscription_duration_ms_)
- return false;
- if (hidlScanStats.numScansRequestedByWifi != chreScanStats.num_scans_requested_by_nanoapp_)
- return false;
- if (hidlScanStats.numScansServicedByWifi != chreScanStats.num_scans_serviced_by_hardware_)
- return false;
- if (hidlScanStats.numScansServicedbyCache != chreScanStats.num_scans_serviced_by_cache_)
- return false;
- for (uint32_t i = 0; i < kNumChannelsInHistogram; i++) {
- if (hidlScanStats.histogramChannelsScanned[i] !=
- chreScanStats.channel_histogram_.GetChannelScanCount(i)) {
- return false;
- }
- }
- if (hidlScanStats.scanRecord.size() != chreScanStats.scan_records_.size())
- return false;
- uint32_t i = 0;
- for (const auto& scanRecord : hidlScanStats.scanRecord) {
- if (scanRecord.durationMs != chreScanStats.scan_records_[i].time_spent_scanning_ms_)
- return false;
- if (scanRecord.numChannelsScanned != chreScanStats.scan_records_[i].num_channels_scanned_)
- return false;
- if (scanRecord.numEntriesAggregated !=
- chreScanStats.scan_records_[i].num_entries_aggregated_)
- return false;
- i++;
- }
- if (hidlScanStats.logRecord.size() != chreScanStats.rpc_log_records_.size())
- return false;
- i = 0;
-
- for (const auto& logRecord : hidlScanStats.logRecord) {
- if (logRecord.recordName != kHidlRecordNameList[i]) {
- return false;
- }
- if (logRecord.logTimeMs != chreScanStats.rpc_log_records_[i].timestamp_chre_ms_)
- return false;
- i++;
- }
- return true;
-}
-
-} // namespace offload_hal_test_utils
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/offload_hal_test_utils.h b/wifi_offload/test/offload_hal_test_utils.h
deleted file mode 100644
index ba82a1c..0000000
--- a/wifi_offload/test/offload_hal_test_utils.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef OFFLOAD_HAL_TEST_UTILS_
-#define OFFLOAD_HAL_TEST_UTILS_
-
-#include "offload_hal_test_constants.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-namespace offload_hal_test_utils {
-
-void createChreScanResultsForTest(std::vector<wifi_offload::ScanResult>* chreScanResults);
-void createChreScanStatsForTest(wifi_offload::ScanStats* chreScanStats);
-void createHidlScanFilterForTest(ScanFilter* scanFilter);
-void createHidlScanParamForTest(ScanParam* scanParam);
-void createChreScanConfigForTest(wifi_offload::ScanConfig* scanConfig);
-bool validateScanResult(const std::vector<ScanResult>& hidlScanResultsTest,
- const std::vector<wifi_offload::ScanResult> chreScanResults);
-bool validateScanStats(const ScanStats& hidlScanStats,
- const wifi_offload::ScanStats& chreScanStats);
-} // namespace offload_hal_test_utils
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
-
-#endif // OFFLOAD_HAL_TEST_UTILS_
diff --git a/wifi_offload/test/offload_server_test.cpp b/wifi_offload/test/offload_server_test.cpp
deleted file mode 100644
index e43fd53..0000000
--- a/wifi_offload/test/offload_server_test.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-#include <gtest/gtest.h>
-
-#include <android-base/logging.h>
-
-#include "mock_chre_interface.h"
-#include "mock_chre_interface_factory.h"
-
-#include "chre_interface_callbacks.h"
-#include "offload_server.h"
-
-namespace {
-
-using android::hardware::wifi::offload::V1_0::implementation::ChreInterfaceCallbacks;
-using android::hardware::wifi::offload::V1_0::implementation::MockChreInterface;
-using android::hardware::wifi::offload::V1_0::implementation::ChreInterface;
-
-ChreInterface*
- CaptureCallback(ChreInterfaceCallbacks* callback,
- std::unique_ptr<ChreInterfaceCallbacks>* chre_interface_callback,
- std::unique_ptr<testing::NiceMock<MockChreInterface>>* chre_interface) {
- chre_interface->reset(new testing::NiceMock<MockChreInterface>(callback));
- chre_interface_callback->reset(callback);
- return chre_interface->get();
-}
-
-} // namespace
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-class OffloadServerTest : public ::testing::Test {
- protected:
- virtual void SetUp() {
- ON_CALL(*chre_interface_factory_, getChreInterface(testing::_))
- .WillByDefault(testing::Invoke(std::bind(CaptureCallback, std::placeholders::_1,
- &chre_interface_callback_, &chre_interface_)));
- }
-
- void TearDown() override {
- }
-
- std::unique_ptr<testing::NiceMock<MockChreInterfaceFactory>> chre_interface_factory_{
- new testing::NiceMock<MockChreInterfaceFactory>()};
- std::unique_ptr<testing::NiceMock<MockChreInterface>> chre_interface_;
- std::unique_ptr<ChreInterfaceCallbacks> chre_interface_callback_;
-};
-
-TEST_F(OffloadServerTest, createOffloadServerTest) {
- EXPECT_CALL(*chre_interface_factory_, getChreInterface(testing::_));
- OffloadServer* server = new OffloadServer(chre_interface_factory_.get());
- EXPECT_FALSE(chre_interface_callback_.get() == nullptr);
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/offload_utils_test.cpp b/wifi_offload/test/offload_utils_test.cpp
deleted file mode 100644
index 7c2e4d5..0000000
--- a/wifi_offload/test/offload_utils_test.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-#include <gtest/gtest.h>
-
-#include <android-base/logging.h>
-#include "offload_hal_test_utils.h"
-
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace offload {
-namespace V1_0 {
-namespace implementation {
-
-using namespace offload_hal_test_constants;
-
-class OffloadUtilsTest : public ::testing::Test {
- protected:
- virtual void SetUp() {
- }
-
- void TearDown() override {
- }
-};
-
-TEST_F(OffloadUtilsTest, ConvertScanResultToHidlTest) {
- std::vector<ScanResult> hidlScanResultsTest;
- std::vector<wifi_offload::ScanResult> chreScanResultsTest;
- offload_hal_test_utils::createChreScanResultsForTest(&chreScanResultsTest);
- EXPECT_TRUE(offload_utils::ToHidlScanResults(chreScanResultsTest, &hidlScanResultsTest));
- EXPECT_TRUE(
- offload_hal_test_utils::validateScanResult(hidlScanResultsTest, chreScanResultsTest));
-}
-
-TEST_F(OffloadUtilsTest, ConvertScanStatsToHidlTest) {
- ScanStats hidlScanStatsTest;
- wifi_offload::ScanStats chreScanStatsTest;
- offload_hal_test_utils::createChreScanStatsForTest(&chreScanStatsTest);
- EXPECT_TRUE(offload_utils::ToHidlScanStats(chreScanStatsTest, &hidlScanStatsTest));
- EXPECT_TRUE(offload_hal_test_utils::validateScanStats(hidlScanStatsTest, chreScanStatsTest));
-}
-
-TEST_F(OffloadUtilsTest, ConvertScanConfigToChreTest) {
- wifi_offload::ScanConfig scanConfigTest;
- wifi_offload::ScanConfig scanConfig;
- ScanParam scanParamTest;
- ScanFilter scanFilterTest;
- offload_hal_test_utils::createHidlScanParamForTest(&scanParamTest);
- offload_hal_test_utils::createHidlScanFilterForTest(&scanFilterTest);
- offload_hal_test_utils::createChreScanConfigForTest(&scanConfig);
- EXPECT_TRUE(offload_utils::ToChreScanConfig(scanParamTest, scanFilterTest, &scanConfigTest));
- EXPECT_TRUE(scanConfig == scanConfigTest);
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace offload
-} // namespace wifi
-} // namespace hardware
-} // namespace android
diff --git a/wifi_offload/test/runtest.sh b/wifi_offload/test/runtest.sh
deleted file mode 100755
index b2a2ce8..0000000
--- a/wifi_offload/test/runtest.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (C) 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.
-
-if [ -z $ANDROID_BUILD_TOP ]; then
- echo "You need to source and lunch before you can use this script"
- exit 1
-fi
-
-echo "Running tests"
-set -e # fail early
-
-# NOTE We can't actually run these commands, since they rely on functions added by
-# build/envsetup.sh to the bash shell environment.
-echo "+ mmma -j32 $ANDROID_BUILD_TOP/device/google/wahoo"
-make -j32 -C $ANDROID_BUILD_TOP -f build/core/main.mk \
- MODULES-IN-device-google-wahoo-wifi_offload
-
-set -x # print commands
-
-adb root
-adb wait-for-device
-adb remount
-adb sync
-
-adb shell /data/nativetest/vendor/wifi-offload-service-unit-tests/wifi-offload-service-unit-tests
-adb shell /data/nativetest64/vendor/wifi-offload-service-unit-tests/wifi-offload-service-unit-tests