Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af727c0c authored by Roshan Pius's avatar Roshan Pius
Browse files

wifi: Add nd offload functionality

Bug: 34224734
Test: Compiles
Change-Id: I86980cd27ea97216c9431878bb9a922c8942b361
parent 818ffb15
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -378,6 +378,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.
+9 −4
Original line number Diff line number Diff line
@@ -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<wifi_error, uint32_t> WifiLegacyHal::getLoggerSupportedFeatureSet() {
+2 −1
Original line number Diff line number Diff line
@@ -182,8 +182,9 @@ class WifiLegacyHal {
                                     on_threshold_breached_callback);
  wifi_error stopRssiMonitoring(wifi_request_id id);
  std::pair<wifi_error, wifi_roaming_capabilities> 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<wifi_error, uint32_t> getLoggerSupportedFeatureSet();
  wifi_error startPktFateMonitoring();
+15 −0
Original line number Diff line number Diff line
@@ -212,6 +212,15 @@ Return<void> WifiStaIface::setRoamingState(StaRoamingState state,
                         state);
}

Return<void> WifiStaIface::enableNdOffload(bool enable,
                                           enableNdOffload_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
                         &WifiStaIface::enableNdOffloadInternal,
                         hidl_status_cb,
                         enable);
}

Return<void> 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();
+3 −0
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ class WifiStaIface : public IWifiStaIface {
                                configureRoaming_cb hidl_status_cb) override;
  Return<void> setRoamingState(StaRoamingState state,
                               setRoamingState_cb hidl_status_cb) override;
  Return<void> enableNdOffload(bool enable,
                               enableNdOffload_cb hidl_status_cb) override;
  Return<void> startDebugPacketFateMonitoring(
      startDebugPacketFateMonitoring_cb hidl_status_cb) override;
  Return<void> 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<WifiStatus, std::vector<WifiDebugTxPacketFateReport>>