OSDN Git Service

wifi: Add scanning mac oui setter
authorRoshan Pius <rpius@google.com>
Wed, 1 Feb 2017 21:09:08 +0000 (13:09 -0800)
committerRoshan Pius <rpius@google.com>
Wed, 1 Feb 2017 21:57:40 +0000 (21:57 +0000)
Bug: 34886995
Test: Compiles
Change-Id: I55d4cf55d1832f27de975f97c2e739012ddacc28

wifi/1.0/IWifiStaIface.hal
wifi/1.0/default/wifi_legacy_hal.cpp
wifi/1.0/default/wifi_legacy_hal.h
wifi/1.0/default/wifi_sta_iface.cpp
wifi/1.0/default/wifi_sta_iface.h

index 2c72ead..96dc54a 100644 (file)
@@ -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.
index e4eddcd..b0b0f96 100644 (file)
@@ -685,6 +685,12 @@ wifi_error WifiLegacyHal::stopSendingOffloadedPacket(uint32_t cmd_id) {
       cmd_id, wlan_interface_handle_);
 }
 
+wifi_error WifiLegacyHal::setScanningMacOui(const std::array<uint8_t, 3>& oui) {
+  std::vector<uint8_t> 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<wifi_error, uint32_t> WifiLegacyHal::getLoggerSupportedFeatureSet() {
   uint32_t supported_features;
   wifi_error status = global_func_table_.wifi_get_logger_supported_feature_set(
index 1ab74b7..dce4ed4 100644 (file)
@@ -192,6 +192,7 @@ class WifiLegacyHal {
       const std::array<uint8_t, 6>& dst_address,
       uint32_t period_in_ms);
   wifi_error stopSendingOffloadedPacket(uint32_t cmd_id);
+  wifi_error setScanningMacOui(const std::array<uint8_t, 3>& oui);
   // Logger/debug functions.
   std::pair<wifi_error, uint32_t> getLoggerSupportedFeatureSet();
   wifi_error startPktFateMonitoring();
index be2fe37..6cc41db 100644 (file)
@@ -250,6 +250,15 @@ Return<void> WifiStaIface::stopSendingKeepAlivePackets(
                          cmd_id);
 }
 
+Return<void> WifiStaIface::setScanningMacOui(
+    const hidl_array<uint8_t, 3>& oui, setScanningMacOui_cb hidl_status_cb) {
+  return validateAndCall(this,
+                         WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+                         &WifiStaIface::setScanningMacOuiInternal,
+                         hidl_status_cb,
+                         oui);
+}
+
 Return<void> 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<uint8_t, 3>& 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();
index ca79c5b..bc2d75f 100644 (file)
@@ -95,6 +95,8 @@ class WifiStaIface : public IWifiStaIface {
       startSendingKeepAlivePackets_cb hidl_status_cb) override;
   Return<void> stopSendingKeepAlivePackets(
       uint32_t cmd_id, stopSendingKeepAlivePackets_cb hidl_status_cb) override;
+  Return<void> setScanningMacOui(const hidl_array<uint8_t, 3>& oui,
+                                 setScanningMacOui_cb hidl_status_cb) override;
   Return<void> startDebugPacketFateMonitoring(
       startDebugPacketFateMonitoring_cb hidl_status_cb) override;
   Return<void> getDebugTxPacketFates(
@@ -140,6 +142,7 @@ class WifiStaIface : public IWifiStaIface {
       const std::array<uint8_t, 6>& dst_address,
       uint32_t period_in_ms);
   WifiStatus stopSendingKeepAlivePacketsInternal(uint32_t cmd_id);
+  WifiStatus setScanningMacOuiInternal(const std::array<uint8_t, 3>& oui);
   WifiStatus startDebugPacketFateMonitoringInternal();
   std::pair<WifiStatus, std::vector<WifiDebugTxPacketFateReport>>
   getDebugTxPacketFatesInternal();