From: Roshan Pius Date: Wed, 11 Jan 2017 23:37:25 +0000 (-0800) Subject: wifi: Add nd offload functionality X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=af727c0cc8;p=android-x86%2Fhardware-interfaces.git wifi: Add nd offload functionality Bug: 34224734 Test: Compiles Change-Id: I86980cd27ea97216c9431878bb9a922c8942b361 --- diff --git a/wifi/1.0/IWifiStaIface.hal b/wifi/1.0/IWifiStaIface.hal index 98af043c..3812515b 100644 --- a/wifi/1.0/IWifiStaIface.hal +++ b/wifi/1.0/IWifiStaIface.hal @@ -379,6 +379,18 @@ interface IWifiStaIface extends IWifiIface { setRoamingState(StaRoamingState state) generates (WifiStatus status); /** + * Enable/Disable Neighbour discovery offload functionality in the firmware. + * + * @param enable true to enable, false to disable. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + enableNdOffload(bool enable) generates (WifiStatus status); + + /** * API to start packet fate monitoring. * - Once stared, monitoring must remain active until HAL is unloaded. * - When HAL is unloaded, all packet fate buffers must be cleared. diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp index 3b99e607..6f7eeded 100644 --- a/wifi/1.0/default/wifi_legacy_hal.cpp +++ b/wifi/1.0/default/wifi_legacy_hal.cpp @@ -633,15 +633,20 @@ WifiLegacyHal::getRoamingCapabilities() { return {status, caps}; } +wifi_error WifiLegacyHal::configureRoaming(const wifi_roaming_config& config) { + wifi_roaming_config config_internal = config; + return global_func_table_.wifi_configure_roaming(wlan_interface_handle_, + &config_internal); +} + wifi_error WifiLegacyHal::enableFirmwareRoaming(fw_roaming_state_t state) { return global_func_table_.wifi_enable_firmware_roaming(wlan_interface_handle_, state); } -wifi_error WifiLegacyHal::configureRoaming(const wifi_roaming_config& config) { - wifi_roaming_config config_internal = config; - return global_func_table_.wifi_configure_roaming(wlan_interface_handle_, - &config_internal); +wifi_error WifiLegacyHal::configureNdOffload(bool enable) { + return global_func_table_.wifi_configure_nd_offload(wlan_interface_handle_, + enable); } std::pair WifiLegacyHal::getLoggerSupportedFeatureSet() { diff --git a/wifi/1.0/default/wifi_legacy_hal.h b/wifi/1.0/default/wifi_legacy_hal.h index b5853147..367b8b6c 100644 --- a/wifi/1.0/default/wifi_legacy_hal.h +++ b/wifi/1.0/default/wifi_legacy_hal.h @@ -182,8 +182,9 @@ class WifiLegacyHal { on_threshold_breached_callback); wifi_error stopRssiMonitoring(wifi_request_id id); std::pair getRoamingCapabilities(); - wifi_error enableFirmwareRoaming(fw_roaming_state_t state); wifi_error configureRoaming(const wifi_roaming_config& config); + wifi_error enableFirmwareRoaming(fw_roaming_state_t state); + wifi_error configureNdOffload(bool enable); // 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 e48978ee..8440c041 100644 --- a/wifi/1.0/default/wifi_sta_iface.cpp +++ b/wifi/1.0/default/wifi_sta_iface.cpp @@ -212,6 +212,15 @@ Return WifiStaIface::setRoamingState(StaRoamingState state, state); } +Return WifiStaIface::enableNdOffload(bool enable, + enableNdOffload_cb hidl_status_cb) { + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiStaIface::enableNdOffloadInternal, + hidl_status_cb, + enable); +} + Return WifiStaIface::startDebugPacketFateMonitoring( startDebugPacketFateMonitoring_cb hidl_status_cb) { return validateAndCall(this, @@ -498,6 +507,12 @@ WifiStatus WifiStaIface::setRoamingStateInternal(StaRoamingState state) { return createWifiStatusFromLegacyError(legacy_status); } +WifiStatus WifiStaIface::enableNdOffloadInternal(bool enable) { + legacy_hal::wifi_error legacy_status = + legacy_hal_.lock()->configureNdOffload(enable); + 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 90126cd4..603cc0ca 100644 --- a/wifi/1.0/default/wifi_sta_iface.h +++ b/wifi/1.0/default/wifi_sta_iface.h @@ -83,6 +83,8 @@ class WifiStaIface : public IWifiStaIface { configureRoaming_cb hidl_status_cb) override; Return setRoamingState(StaRoamingState state, setRoamingState_cb hidl_status_cb) override; + Return enableNdOffload(bool enable, + enableNdOffload_cb hidl_status_cb) override; Return startDebugPacketFateMonitoring( startDebugPacketFateMonitoring_cb hidl_status_cb) override; Return stopDebugPacketFateMonitoring( @@ -121,6 +123,7 @@ class WifiStaIface : public IWifiStaIface { getRoamingCapabilitiesInternal(); WifiStatus configureRoamingInternal(const StaRoamingConfig& config); WifiStatus setRoamingStateInternal(StaRoamingState state); + WifiStatus enableNdOffloadInternal(bool enable); WifiStatus startDebugPacketFateMonitoringInternal(); WifiStatus stopDebugPacketFateMonitoringInternal(); std::pair>