From 795bb81596098d336bdbf8f4c7f45c33578573aa Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Wed, 1 Feb 2017 13:09:08 -0800 Subject: [PATCH] wifi: Add scanning mac oui setter Bug: 34886995 Test: Compiles Change-Id: I55d4cf55d1832f27de975f97c2e739012ddacc28 --- wifi/1.0/IWifiStaIface.hal | 13 +++++++++++++ wifi/1.0/default/wifi_legacy_hal.cpp | 6 ++++++ wifi/1.0/default/wifi_legacy_hal.h | 1 + wifi/1.0/default/wifi_sta_iface.cpp | 15 +++++++++++++++ wifi/1.0/default/wifi_sta_iface.h | 3 +++ 5 files changed, 38 insertions(+) diff --git a/wifi/1.0/IWifiStaIface.hal b/wifi/1.0/IWifiStaIface.hal index 2c72eadf..96dc54a5 100644 --- a/wifi/1.0/IWifiStaIface.hal +++ b/wifi/1.0/IWifiStaIface.hal @@ -438,6 +438,19 @@ interface IWifiStaIface extends IWifiIface { stopSendingKeepAlivePackets(CommandId cmdId) generates (WifiStatus status); /** + * Set the MAC OUI during scanning. + * An OUI {Organizationally Unique Identifier} is a 24-bit number that + * uniquely identifies a vendor or manufacturer. + * + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + setScanningMacOui(uint8_t[3] oui) generates (WifiStatus status); + + /** * API to start packet fate monitoring. * - Once started, monitoring must remain active until HAL is stopped or the * chip is reconfigured. diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp index e4eddcd1..b0b0f963 100644 --- a/wifi/1.0/default/wifi_legacy_hal.cpp +++ b/wifi/1.0/default/wifi_legacy_hal.cpp @@ -685,6 +685,12 @@ wifi_error WifiLegacyHal::stopSendingOffloadedPacket(uint32_t cmd_id) { cmd_id, wlan_interface_handle_); } +wifi_error WifiLegacyHal::setScanningMacOui(const std::array& oui) { + std::vector oui_internal(oui.data(), oui.data() + oui.size()); + return global_func_table_.wifi_set_scanning_mac_oui(wlan_interface_handle_, + oui_internal.data()); +} + std::pair WifiLegacyHal::getLoggerSupportedFeatureSet() { uint32_t supported_features; wifi_error status = global_func_table_.wifi_get_logger_supported_feature_set( diff --git a/wifi/1.0/default/wifi_legacy_hal.h b/wifi/1.0/default/wifi_legacy_hal.h index 1ab74b7a..dce4ed4b 100644 --- a/wifi/1.0/default/wifi_legacy_hal.h +++ b/wifi/1.0/default/wifi_legacy_hal.h @@ -192,6 +192,7 @@ class WifiLegacyHal { const std::array& dst_address, uint32_t period_in_ms); wifi_error stopSendingOffloadedPacket(uint32_t cmd_id); + wifi_error setScanningMacOui(const std::array& oui); // Logger/debug functions. std::pair getLoggerSupportedFeatureSet(); wifi_error startPktFateMonitoring(); diff --git a/wifi/1.0/default/wifi_sta_iface.cpp b/wifi/1.0/default/wifi_sta_iface.cpp index be2fe37f..6cc41db8 100644 --- a/wifi/1.0/default/wifi_sta_iface.cpp +++ b/wifi/1.0/default/wifi_sta_iface.cpp @@ -250,6 +250,15 @@ Return WifiStaIface::stopSendingKeepAlivePackets( cmd_id); } +Return WifiStaIface::setScanningMacOui( + const hidl_array& oui, setScanningMacOui_cb hidl_status_cb) { + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiStaIface::setScanningMacOuiInternal, + hidl_status_cb, + oui); +} + Return WifiStaIface::startDebugPacketFateMonitoring( startDebugPacketFateMonitoring_cb hidl_status_cb) { return validateAndCall(this, @@ -553,6 +562,12 @@ WifiStatus WifiStaIface::stopSendingKeepAlivePacketsInternal(uint32_t cmd_id) { return createWifiStatusFromLegacyError(legacy_status); } +WifiStatus WifiStaIface::setScanningMacOuiInternal(const std::array& oui) { + legacy_hal::wifi_error legacy_status = + legacy_hal_.lock()->setScanningMacOui(oui); + return createWifiStatusFromLegacyError(legacy_status); +} + WifiStatus WifiStaIface::startDebugPacketFateMonitoringInternal() { legacy_hal::wifi_error legacy_status = legacy_hal_.lock()->startPktFateMonitoring(); diff --git a/wifi/1.0/default/wifi_sta_iface.h b/wifi/1.0/default/wifi_sta_iface.h index ca79c5bd..bc2d75fe 100644 --- a/wifi/1.0/default/wifi_sta_iface.h +++ b/wifi/1.0/default/wifi_sta_iface.h @@ -95,6 +95,8 @@ class WifiStaIface : public IWifiStaIface { startSendingKeepAlivePackets_cb hidl_status_cb) override; Return stopSendingKeepAlivePackets( uint32_t cmd_id, stopSendingKeepAlivePackets_cb hidl_status_cb) override; + Return setScanningMacOui(const hidl_array& oui, + setScanningMacOui_cb hidl_status_cb) override; Return startDebugPacketFateMonitoring( startDebugPacketFateMonitoring_cb hidl_status_cb) override; Return getDebugTxPacketFates( @@ -140,6 +142,7 @@ class WifiStaIface : public IWifiStaIface { const std::array& dst_address, uint32_t period_in_ms); WifiStatus stopSendingKeepAlivePacketsInternal(uint32_t cmd_id); + WifiStatus setScanningMacOuiInternal(const std::array& oui); WifiStatus startDebugPacketFateMonitoringInternal(); std::pair> getDebugTxPacketFatesInternal(); -- 2.11.0