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

Commit 0f13397e authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes Idde2f3b7,I5b25d334,I69db530e

* changes:
  wifi: Disallow iface creation based on mode
  supplicant(interface): Correct ANQP enum value/type
  supplicant(interface): Minor fixes in P2P iface
parents 13b5d803 073d5b9f
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -465,7 +465,9 @@ WifiChip::requestFirmwareDebugDumpInternal() {
}

std::pair<WifiStatus, sp<IWifiApIface>> WifiChip::createApIfaceInternal() {
  // TODO(b/31997422): Disallow this based on the chip combination.
  if (current_mode_id_ != kApChipModeId || ap_iface_.get()) {
    return {createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE), {}};
  }
  std::string ifname = legacy_hal_.lock()->getApIfaceName();
  ap_iface_ = new WifiApIface(ifname, legacy_hal_);
  return {createWifiStatus(WifiStatusCode::SUCCESS), ap_iface_};
@@ -490,7 +492,11 @@ std::pair<WifiStatus, sp<IWifiApIface>> WifiChip::getApIfaceInternal(
}

std::pair<WifiStatus, sp<IWifiNanIface>> WifiChip::createNanIfaceInternal() {
  // TODO(b/31997422): Disallow this based on the chip combination.
  // Only 1 of NAN or P2P iface can be active at a time.
  if (current_mode_id_ != kStaChipModeId || nan_iface_.get() ||
      p2p_iface_.get()) {
    return {createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE), {}};
  }
  std::string ifname = legacy_hal_.lock()->getNanIfaceName();
  nan_iface_ = new WifiNanIface(ifname, legacy_hal_);
  return {createWifiStatus(WifiStatusCode::SUCCESS), nan_iface_};
@@ -515,7 +521,11 @@ std::pair<WifiStatus, sp<IWifiNanIface>> WifiChip::getNanIfaceInternal(
}

std::pair<WifiStatus, sp<IWifiP2pIface>> WifiChip::createP2pIfaceInternal() {
  // TODO(b/31997422): Disallow this based on the chip combination.
  // Only 1 of NAN or P2P iface can be active at a time.
  if (current_mode_id_ != kStaChipModeId || p2p_iface_.get() ||
      nan_iface_.get()) {
    return {createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE), {}};
  }
  std::string ifname = legacy_hal_.lock()->getP2pIfaceName();
  p2p_iface_ = new WifiP2pIface(ifname, legacy_hal_);
  return {createWifiStatus(WifiStatusCode::SUCCESS), p2p_iface_};
@@ -540,7 +550,9 @@ std::pair<WifiStatus, sp<IWifiP2pIface>> WifiChip::getP2pIfaceInternal(
}

std::pair<WifiStatus, sp<IWifiStaIface>> WifiChip::createStaIfaceInternal() {
  // TODO(b/31997422): Disallow this based on the chip combination.
  if (current_mode_id_ != kStaChipModeId || sta_iface_.get()) {
    return {createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE), {}};
  }
  std::string ifname = legacy_hal_.lock()->getStaIfaceName();
  sta_iface_ = new WifiStaIface(ifname, legacy_hal_);
  return {createWifiStatus(WifiStatusCode::SUCCESS), sta_iface_};
+34 −10
Original line number Diff line number Diff line
@@ -37,11 +37,7 @@ interface ISupplicantP2pIface extends ISupplicantIface {
    /**
     * Keypad pin method configuration - pin is entered on device.
     */
    KEYPAD,
    /**
     * Label pin method configuration - pin is labelled on device.
     */
    LABEL
    KEYPAD
  };

  enum GroupCapabilityMask : uint32_t {
@@ -54,6 +50,15 @@ interface ISupplicantP2pIface extends ISupplicantIface {
    GROUP_FORMATION = 1 << 6
  };

  /**
   * Use to specify a range of frequencies.
   * For example: 2412-2432,2462,5000-6000, etc.
   */
  struct FreqRange {
      uint32_t min;
      uint32_t max;
  };

  /**
   * Register for callbacks from this interface.
   *
@@ -97,7 +102,7 @@ interface ISupplicantP2pIface extends ISupplicantIface {
   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
   */
  setSsidPostfix(string postfix) generates (SupplicantStatus status);
  setSsidPostfix(vec<uint8_t> postfix) generates (SupplicantStatus status);

  /**
   * Set the Maximum idle time in seconds for P2P groups.
@@ -106,6 +111,7 @@ interface ISupplicantP2pIface extends ISupplicantIface {
   * associated stations in the group. As a P2P client, this means no
   * group owner seen in scan results.
   *
   * @param groupIfName Group interface name to use.
   * @param timeoutInSec Timeout value in seconds.
   * @return status Status of the operation.
   *         Possible status codes:
@@ -113,11 +119,13 @@ interface ISupplicantP2pIface extends ISupplicantIface {
   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
   */
  setGroupIdle(uint32_t timeoutInSec) generates (SupplicantStatus status);
  setGroupIdle(string groupIfName, uint32_t timeoutInSec)
      generates (SupplicantStatus status);

  /**
   * Turn on/off power save mode for the interface.
   *
   * @param groupIfName Group interface name to use.
   * @param enable Indicate if power save is to be turned on/off.
   * @return status Status of the operation.
   *         Possible status codes:
@@ -126,7 +134,8 @@ interface ISupplicantP2pIface extends ISupplicantIface {
   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
   */
  setPowerSave(bool enable) generates (SupplicantStatus status);
  setPowerSave(string groupIfName, bool enable)
      generates (SupplicantStatus status);

  /**
   * Initiate a P2P service discovery with an optional timeout.
@@ -192,11 +201,11 @@ interface ISupplicantP2pIface extends ISupplicantIface {
   */
  connect(MacAddress peerAddress,
          WpsProvisionMethod provisionMethod,
          vec<uint8_t> preSelectedPin,
          string preSelectedPin,
          bool joinExistingGroup,
          bool persistent,
          uint32_t goIntent)
      generates (SupplicantStatus status, vec<uint8_t> generatedPin);
      generates (SupplicantStatus status, string generatedPin);

  /**
   * Cancel an ongoing P2P group formation and joining-a-group related
@@ -357,6 +366,21 @@ interface ISupplicantP2pIface extends ISupplicantIface {
  setListenChannel(uint32_t channel, uint32_t operatingClass)
      generates (SupplicantStatus status);

  /**
   * Set P2P disallowed frequency ranges.
   *
   * Specify ranges of frequencies that are disallowed for any p2p operations.

   * @param ranges List of ranges which needs to be disallowed.
   * @return status Status of the operation.
   *         Possible status codes:
   *         |SupplicantStatusCode.SUCCESS|,
   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
   */
  setDisallowedFrequencies(vec<FreqRange> ranges)
      generates (SupplicantStatus status);

  /**
   * Gets the operational SSID of the device.
   *
+2 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ interface ISupplicantStaIface extends ISupplicantIface {
   * Access Network Query Protocol info ID elements
   * for IEEE Std 802.11u-2011.
   */
  enum AnqpInfoId : uint32_t {
  enum AnqpInfoId : uint16_t {
    VENUE_NAME = 258,
    ROAMING_CONSORTIUM = 261,
    IP_ADDR_TYPE_AVAILABILITY = 262,
@@ -42,7 +42,7 @@ interface ISupplicantStaIface extends ISupplicantIface {
   * for Hotspot 2.0.
   */
  enum Hs20AnqpSubtypes : uint32_t {
    OPERATOR_FRIENDLY_NAME = 2,
    OPERATOR_FRIENDLY_NAME = 3,
    WAN_METRICS = 4,
    CONNECTION_CAPABILITY = 5,
    OSU_PROVIDERS_LIST = 8,