diff --git a/wifi/1.4/Android.bp b/wifi/1.4/Android.bp index 5750e426ad..e19785967a 100644 --- a/wifi/1.4/Android.bp +++ b/wifi/1.4/Android.bp @@ -13,7 +13,6 @@ hidl_interface { "IWifiChip.hal", "IWifiRttController.hal", "IWifiRttControllerEventCallback.hal", - "IWifiStaIface.hal", ], interfaces: [ "android.hardware.wifi@1.0", diff --git a/wifi/1.4/IWifiStaIface.hal b/wifi/1.4/IWifiStaIface.hal deleted file mode 100644 index fb658cd37c..0000000000 --- a/wifi/1.4/IWifiStaIface.hal +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.hardware.wifi@1.4; - -import @1.0::WifiStatus; -import @1.0::MacAddress; -import @1.0::IWifiStaIface; -import @1.3::IWifiStaIface; - -/** - * Interface used to represent a single STA iface. - * - * IWifiChip.createStaIface() may return a @1.4::IWifiStaIface when supported. - */ -interface IWifiStaIface extends @1.3::IWifiStaIface { - - enum StaIfaceCapabilityMask : @1.0::IWifiStaIface.StaIfaceCapabilityMask { - STA_6G = 1 << 15 - }; - - /** - * Get the capabilities supported by this STA iface. - * - * @return status WifiStatus of the operation. - * Possible status codes: - * |WifiStatusCode.SUCCESS|, - * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, - * |WifiStatusCode.ERROR_NOT_AVAILABLE|, - * |WifiStatusCode.ERROR_NOT_SUPPORTED|, - * |WifiStatusCode.ERROR_UNKNOWN| - * @return capabilities Bitset of |StaIfaceCapabilityMask| values. - */ - getCapabilities_1_4() - generates (WifiStatus status, - bitfield capabilities); -}; diff --git a/wifi/1.4/default/hidl_struct_util.cpp b/wifi/1.4/default/hidl_struct_util.cpp index 13a09f3438..61f311ec24 100644 --- a/wifi/1.4/default/hidl_struct_util.cpp +++ b/wifi/1.4/default/hidl_struct_util.cpp @@ -91,7 +91,7 @@ V1_3::IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability( } IWifiStaIface::StaIfaceCapabilityMask -convertLegacyFeatureToHidlStaIfaceCapability(uint64_t feature) { +convertLegacyFeatureToHidlStaIfaceCapability(uint32_t feature) { using HidlStaIfaceCaps = IWifiStaIface::StaIfaceCapabilityMask; switch (feature) { case WIFI_FEATURE_GSCAN: @@ -120,8 +120,6 @@ convertLegacyFeatureToHidlStaIfaceCapability(uint64_t feature) { return HidlStaIfaceCaps::ND_OFFLOAD; case WIFI_FEATURE_MKEEP_ALIVE: return HidlStaIfaceCaps::KEEP_ALIVE; - case WIFI_FEATURE_INFRA_6G: - return HidlStaIfaceCaps::STA_6G; }; CHECK(false) << "Unknown legacy feature: " << feature; return {}; @@ -367,7 +365,7 @@ bool convertLegacyWifiMacInfosToHidl( } bool convertLegacyFeaturesToHidlStaCapabilities( - uint64_t legacy_feature_set, uint32_t legacy_logger_feature_set, + uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps) { if (!hidl_caps) { return false; @@ -386,8 +384,7 @@ bool convertLegacyFeaturesToHidlStaCapabilities( WIFI_FEATURE_IE_WHITELIST, WIFI_FEATURE_SCAN_RAND, WIFI_FEATURE_INFRA_5G, WIFI_FEATURE_HOTSPOT, WIFI_FEATURE_PNO, WIFI_FEATURE_TDLS, WIFI_FEATURE_TDLS_OFFCHANNEL, - WIFI_FEATURE_CONFIG_NDO, WIFI_FEATURE_MKEEP_ALIVE, - WIFI_FEATURE_INFRA_6G}) { + WIFI_FEATURE_CONFIG_NDO, WIFI_FEATURE_MKEEP_ALIVE}) { if (feature & legacy_feature_set) { *hidl_caps |= convertLegacyFeatureToHidlStaIfaceCapability(feature); } diff --git a/wifi/1.4/default/hidl_struct_util.h b/wifi/1.4/default/hidl_struct_util.h index cfaa4adccc..a99c1ac051 100644 --- a/wifi/1.4/default/hidl_struct_util.h +++ b/wifi/1.4/default/hidl_struct_util.h @@ -25,7 +25,6 @@ #include #include #include -#include #include #include "wifi_legacy_hal.h" @@ -70,7 +69,7 @@ bool convertLegacyWifiMacInfosToHidl( // STA iface conversion methods. bool convertLegacyFeaturesToHidlStaCapabilities( - uint64_t legacy_feature_set, uint32_t legacy_logger_feature_set, + uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps); bool convertLegacyApfCapabilitiesToHidl( const legacy_hal::PacketFilterCapabilities& legacy_caps, diff --git a/wifi/1.4/default/wifi_legacy_hal.cpp b/wifi/1.4/default/wifi_legacy_hal.cpp index ae3c447a01..8139253272 100644 --- a/wifi/1.4/default/wifi_legacy_hal.cpp +++ b/wifi/1.4/default/wifi_legacy_hal.cpp @@ -479,7 +479,7 @@ WifiLegacyHal::requestFirmwareMemoryDump(const std::string& iface_name) { std::pair WifiLegacyHal::getSupportedFeatureSet( const std::string& iface_name) { feature_set set; - static_assert(sizeof(set) == sizeof(uint64_t), + static_assert(sizeof(set) == sizeof(uint32_t), "Some feature_flags can not be represented in output"); wifi_error status = global_func_table_.wifi_get_supported_feature_set( getIfaceHandle(iface_name), &set); diff --git a/wifi/1.4/default/wifi_sta_iface.cpp b/wifi/1.4/default/wifi_sta_iface.cpp index 8e1ada1032..3e0127ed2a 100644 --- a/wifi/1.4/default/wifi_sta_iface.cpp +++ b/wifi/1.4/default/wifi_sta_iface.cpp @@ -266,13 +266,6 @@ Return WifiStaIface::getFactoryMacAddress( hidl_status_cb); } -Return WifiStaIface::getCapabilities_1_4( - getCapabilities_cb hidl_status_cb) { - return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID, - &WifiStaIface::getCapabilitiesInternal_1_4, - hidl_status_cb); -} - std::pair WifiStaIface::getNameInternal() { return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; } @@ -290,7 +283,26 @@ WifiStatus WifiStaIface::registerEventCallbackInternal( } std::pair WifiStaIface::getCapabilitiesInternal() { - return {createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED), 0}; + legacy_hal::wifi_error legacy_status; + uint32_t legacy_feature_set; + std::tie(legacy_status, legacy_feature_set) = + legacy_hal_.lock()->getSupportedFeatureSet(ifname_); + if (legacy_status != legacy_hal::WIFI_SUCCESS) { + return {createWifiStatusFromLegacyError(legacy_status), 0}; + } + uint32_t legacy_logger_feature_set; + std::tie(legacy_status, legacy_logger_feature_set) = + legacy_hal_.lock()->getLoggerSupportedFeatureSet(ifname_); + if (legacy_status != legacy_hal::WIFI_SUCCESS) { + // some devices don't support querying logger feature set + legacy_logger_feature_set = 0; + } + uint32_t hidl_caps; + if (!hidl_struct_util::convertLegacyFeaturesToHidlStaCapabilities( + legacy_feature_set, legacy_logger_feature_set, &hidl_caps)) { + return {createWifiStatus(WifiStatusCode::ERROR_UNKNOWN), 0}; + } + return {createWifiStatus(WifiStatusCode::SUCCESS), hidl_caps}; } std::pair @@ -628,29 +640,6 @@ WifiStaIface::getFactoryMacAddressInternal() { return {createWifiStatus(WifiStatusCode::SUCCESS), mac}; } -std::pair WifiStaIface::getCapabilitiesInternal_1_4() { - legacy_hal::wifi_error legacy_status; - uint64_t legacy_feature_set; - std::tie(legacy_status, legacy_feature_set) = - legacy_hal_.lock()->getSupportedFeatureSet(ifname_); - if (legacy_status != legacy_hal::WIFI_SUCCESS) { - return {createWifiStatusFromLegacyError(legacy_status), 0}; - } - uint32_t legacy_logger_feature_set; - std::tie(legacy_status, legacy_logger_feature_set) = - legacy_hal_.lock()->getLoggerSupportedFeatureSet(ifname_); - if (legacy_status != legacy_hal::WIFI_SUCCESS) { - // some devices don't support querying logger feature set - legacy_logger_feature_set = 0; - } - uint32_t hidl_caps; - if (!hidl_struct_util::convertLegacyFeaturesToHidlStaCapabilities( - legacy_feature_set, legacy_logger_feature_set, &hidl_caps)) { - return {createWifiStatus(WifiStatusCode::ERROR_UNKNOWN), 0}; - } - return {createWifiStatus(WifiStatusCode::SUCCESS), hidl_caps}; -} - } // namespace implementation } // namespace V1_4 } // namespace wifi diff --git a/wifi/1.4/default/wifi_sta_iface.h b/wifi/1.4/default/wifi_sta_iface.h index ccf234f98e..d8f7a01ade 100644 --- a/wifi/1.4/default/wifi_sta_iface.h +++ b/wifi/1.4/default/wifi_sta_iface.h @@ -19,7 +19,7 @@ #include #include -#include +#include #include "hidl_callback_util.h" #include "wifi_iface_util.h" @@ -35,7 +35,7 @@ using namespace android::hardware::wifi::V1_0; /** * HIDL interface object used to control a STA Iface instance. */ -class WifiStaIface : public V1_4::IWifiStaIface { +class WifiStaIface : public V1_3::IWifiStaIface { public: WifiStaIface(const std::string& ifname, const std::weak_ptr legacy_hal, @@ -111,8 +111,6 @@ class WifiStaIface : public V1_4::IWifiStaIface { setMacAddress_cb hidl_status_cb) override; Return getFactoryMacAddress( getFactoryMacAddress_cb hidl_status_cb) override; - Return getCapabilities_1_4( - getCapabilities_1_4_cb hidl_status_cb) override; private: // Corresponding worker functions for the HIDL methods. @@ -161,7 +159,6 @@ class WifiStaIface : public V1_4::IWifiStaIface { WifiStatus setMacAddressInternal(const std::array& mac); std::pair> getFactoryMacAddressInternal(); - std::pair getCapabilitiesInternal_1_4(); std::string ifname_; std::weak_ptr legacy_hal_; diff --git a/wifi/1.4/vts/functional/wifi_sta_iface_hidl_test.cpp b/wifi/1.4/vts/functional/wifi_sta_iface_hidl_test.cpp deleted file mode 100644 index ec4b2c949d..0000000000 --- a/wifi/1.4/vts/functional/wifi_sta_iface_hidl_test.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Staache 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 - -#include - -#include - -#include "wifi_hidl_call_util.h" -#include "wifi_hidl_test_utils.h" - -using ::android::sp; -using ::android::hardware::hidl_array; -using ::android::hardware::wifi::V1_0::WifiStatus; -using ::android::hardware::wifi::V1_0::WifiStatusCode; -using ::android::hardware::wifi::V1_4::IWifiStaIface; - -/** - * Fixture to use for all STA Iface HIDL interface tests. - */ -class WifiStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase { - public: - virtual void SetUp() override { - wifi_sta_iface_ = IWifiStaIface::castFrom(getWifiStaIface()); - ASSERT_NE(nullptr, wifi_sta_iface_.get()); - } - - virtual void TearDown() override { stopWifi(); } - - protected: - sp wifi_sta_iface_; -}; - -/* - * GetCapabilities_1_4 - */ -TEST_F(WifiStaIfaceHidlTest, GetCapabilities_1_4) { - configureChipForIfaceType(IfaceType::STA, true); - - const auto& status_and_caps = - HIDL_INVOKE(wifi_sta_iface_, getCapabilities_1_4); - if (status_and_caps.first.code != WifiStatusCode::SUCCESS) { - EXPECT_EQ(WifiStatusCode::ERROR_NOT_SUPPORTED, - status_and_caps.first.code); - return; - } - EXPECT_NE(0u, status_and_caps.second); -}