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

Commit 04bf5bd3 authored by Gabriel Biren's avatar Gabriel Biren Committed by Android (Google) Code Review
Browse files

Merge changes from topic "rename-get-chip-caps" into udc-dev

* changes:
  Rename getCapabilities to getFeatureSet in the Vendor HAL implementation.
  Rename getCapabilities to getFeatureSet in IWifiChip and IWifiStaIface.
parents 0b5511b7 2f86249f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ interface IWifiChip {
  @PropagateAllowBlocking android.hardware.wifi.IWifiApIface getApIface(in String ifname);
  String[] getApIfaceNames();
  android.hardware.wifi.IWifiChip.ChipMode[] getAvailableModes();
  int getCapabilities();
  int getFeatureSet();
  android.hardware.wifi.WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats();
  android.hardware.wifi.WifiDebugRingBufferStatus[] getDebugRingBuffersStatus();
  int getId();
@@ -85,7 +85,7 @@ interface IWifiChip {
  void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode);
  const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF;
  @Backing(type="int") @VintfStability
  enum ChipCapabilityMask {
  enum FeatureSetMask {
    SET_TX_POWER_LIMIT = (1 << 0) /* 1 */,
    D2D_RTT = (1 << 1) /* 2 */,
    D2AP_RTT = (1 << 2) /* 4 */,
+2 −2
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ interface IWifiStaIface {
  void enableNdOffload(in boolean enable);
  android.hardware.wifi.StaApfPacketFilterCapabilities getApfPacketFilterCapabilities();
  android.hardware.wifi.StaBackgroundScanCapabilities getBackgroundScanCapabilities();
  int getCapabilities();
  int getFeatureSet();
  android.hardware.wifi.WifiDebugRxPacketFateReport[] getDebugRxPacketFates();
  android.hardware.wifi.WifiDebugTxPacketFateReport[] getDebugTxPacketFates();
  byte[6] getFactoryMacAddress();
@@ -63,7 +63,7 @@ interface IWifiStaIface {
  void stopSendingKeepAlivePackets(in int cmdId);
  void setDtimMultiplier(in int multiplier);
  @Backing(type="int") @VintfStability
  enum StaIfaceCapabilityMask {
  enum FeatureSetMask {
    APF = (1 << 0) /* 1 */,
    BACKGROUND_SCAN = (1 << 1) /* 2 */,
    LINK_LAYER_STATS = (1 << 2) /* 4 */,
+4 −4
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ interface IWifiChip {
     */
    @VintfStability
    @Backing(type="int")
    enum ChipCapabilityMask {
    enum FeatureSetMask {
        /**
         * Set/Reset Tx Power limits.
         */
@@ -582,15 +582,15 @@ interface IWifiChip {
    ChipMode[] getAvailableModes();

    /**
     * Get the capabilities supported by this chip.
     * Get the features supported by this chip.
     *
     * @return Bitset of |ChipCapabilityMask| values.
     * @return Bitset of |FeatureSetMask| values.
     * @throws ServiceSpecificException with one of the following values:
     *         |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
     *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
     *         |WifiStatusCode.ERROR_UNKNOWN|
     */
    int getCapabilities();
    int getFeatureSet();

    /**
     * API to retrieve the wifi wake up reason stats for debugging.
+4 −4
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ interface IWifiStaIface {
     */
    @VintfStability
    @Backing(type="int")
    enum StaIfaceCapabilityMask {
    enum FeatureSetMask {
        /**
         * Support for APF APIs. APF (Android Packet Filter) is a
         * BPF-like packet filtering bytecode executed by the firmware.
@@ -190,15 +190,15 @@ interface IWifiStaIface {
    StaBackgroundScanCapabilities getBackgroundScanCapabilities();

    /**
     * Get the capabilities supported by this STA iface.
     * Get the features supported by this STA iface.
     *
     * @return Bitset of |StaIfaceCapabilityMask| values.
     * @return Bitset of |FeatureSetMask| values.
     * @throws ServiceSpecificException with one of the following values:
     *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
     *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
     *         |WifiStatusCode.ERROR_UNKNOWN|
     */
    int getCapabilities();
    int getFeatureSet();

    /**
     * API to retrieve the fates of inbound packets.
+32 −34
Original line number Diff line number Diff line
@@ -41,68 +41,67 @@ inline std::vector<int32_t> uintToIntVec(const std::vector<uint32_t>& in) {
    return std::vector<int32_t>(in.begin(), in.end());
}

IWifiChip::ChipCapabilityMask convertLegacyFeatureToAidlChipCapability(uint64_t feature) {
IWifiChip::FeatureSetMask convertLegacyChipFeatureToAidl(uint64_t feature) {
    switch (feature) {
        case WIFI_FEATURE_SET_TX_POWER_LIMIT:
            return IWifiChip::ChipCapabilityMask::SET_TX_POWER_LIMIT;
            return IWifiChip::FeatureSetMask::SET_TX_POWER_LIMIT;
        case WIFI_FEATURE_USE_BODY_HEAD_SAR:
            return IWifiChip::ChipCapabilityMask::USE_BODY_HEAD_SAR;
            return IWifiChip::FeatureSetMask::USE_BODY_HEAD_SAR;
        case WIFI_FEATURE_D2D_RTT:
            return IWifiChip::ChipCapabilityMask::D2D_RTT;
            return IWifiChip::FeatureSetMask::D2D_RTT;
        case WIFI_FEATURE_D2AP_RTT:
            return IWifiChip::ChipCapabilityMask::D2AP_RTT;
            return IWifiChip::FeatureSetMask::D2AP_RTT;
        case WIFI_FEATURE_INFRA_60G:
            return IWifiChip::ChipCapabilityMask::WIGIG;
            return IWifiChip::FeatureSetMask::WIGIG;
        case WIFI_FEATURE_SET_LATENCY_MODE:
            return IWifiChip::ChipCapabilityMask::SET_LATENCY_MODE;
            return IWifiChip::FeatureSetMask::SET_LATENCY_MODE;
        case WIFI_FEATURE_P2P_RAND_MAC:
            return IWifiChip::ChipCapabilityMask::P2P_RAND_MAC;
            return IWifiChip::FeatureSetMask::P2P_RAND_MAC;
        case WIFI_FEATURE_AFC_CHANNEL:
            return IWifiChip::ChipCapabilityMask::SET_AFC_CHANNEL_ALLOWANCE;
            return IWifiChip::FeatureSetMask::SET_AFC_CHANNEL_ALLOWANCE;
    };
    CHECK(false) << "Unknown legacy feature: " << feature;
    return {};
}

IWifiStaIface::StaIfaceCapabilityMask convertLegacyFeatureToAidlStaIfaceCapability(
        uint64_t feature) {
IWifiStaIface::FeatureSetMask convertLegacyStaIfaceFeatureToAidl(uint64_t feature) {
    switch (feature) {
        case WIFI_FEATURE_GSCAN:
            return IWifiStaIface::StaIfaceCapabilityMask::BACKGROUND_SCAN;
            return IWifiStaIface::FeatureSetMask::BACKGROUND_SCAN;
        case WIFI_FEATURE_LINK_LAYER_STATS:
            return IWifiStaIface::StaIfaceCapabilityMask::LINK_LAYER_STATS;
            return IWifiStaIface::FeatureSetMask::LINK_LAYER_STATS;
        case WIFI_FEATURE_RSSI_MONITOR:
            return IWifiStaIface::StaIfaceCapabilityMask::RSSI_MONITOR;
            return IWifiStaIface::FeatureSetMask::RSSI_MONITOR;
        case WIFI_FEATURE_CONTROL_ROAMING:
            return IWifiStaIface::StaIfaceCapabilityMask::CONTROL_ROAMING;
            return IWifiStaIface::FeatureSetMask::CONTROL_ROAMING;
        case WIFI_FEATURE_IE_WHITELIST:
            return IWifiStaIface::StaIfaceCapabilityMask::PROBE_IE_ALLOWLIST;
            return IWifiStaIface::FeatureSetMask::PROBE_IE_ALLOWLIST;
        case WIFI_FEATURE_SCAN_RAND:
            return IWifiStaIface::StaIfaceCapabilityMask::SCAN_RAND;
            return IWifiStaIface::FeatureSetMask::SCAN_RAND;
        case WIFI_FEATURE_INFRA_5G:
            return IWifiStaIface::StaIfaceCapabilityMask::STA_5G;
            return IWifiStaIface::FeatureSetMask::STA_5G;
        case WIFI_FEATURE_HOTSPOT:
            return IWifiStaIface::StaIfaceCapabilityMask::HOTSPOT;
            return IWifiStaIface::FeatureSetMask::HOTSPOT;
        case WIFI_FEATURE_PNO:
            return IWifiStaIface::StaIfaceCapabilityMask::PNO;
            return IWifiStaIface::FeatureSetMask::PNO;
        case WIFI_FEATURE_TDLS:
            return IWifiStaIface::StaIfaceCapabilityMask::TDLS;
            return IWifiStaIface::FeatureSetMask::TDLS;
        case WIFI_FEATURE_TDLS_OFFCHANNEL:
            return IWifiStaIface::StaIfaceCapabilityMask::TDLS_OFFCHANNEL;
            return IWifiStaIface::FeatureSetMask::TDLS_OFFCHANNEL;
        case WIFI_FEATURE_CONFIG_NDO:
            return IWifiStaIface::StaIfaceCapabilityMask::ND_OFFLOAD;
            return IWifiStaIface::FeatureSetMask::ND_OFFLOAD;
        case WIFI_FEATURE_MKEEP_ALIVE:
            return IWifiStaIface::StaIfaceCapabilityMask::KEEP_ALIVE;
            return IWifiStaIface::FeatureSetMask::KEEP_ALIVE;
    };
    CHECK(false) << "Unknown legacy feature: " << feature;
    return {};
}

bool convertLegacyFeaturesToAidlChipCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps) {
    if (!aidl_caps) {
bool convertLegacyChipFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set) {
    if (!aidl_feature_set) {
        return false;
    }
    *aidl_caps = {};
    *aidl_feature_set = 0;
    std::vector<uint64_t> features = {WIFI_FEATURE_SET_TX_POWER_LIMIT,
                                      WIFI_FEATURE_USE_BODY_HEAD_SAR,
                                      WIFI_FEATURE_D2D_RTT,
@@ -113,7 +112,7 @@ bool convertLegacyFeaturesToAidlChipCapabilities(uint64_t legacy_feature_set, ui
                                      WIFI_FEATURE_AFC_CHANNEL};
    for (const auto feature : features) {
        if (feature & legacy_feature_set) {
            *aidl_caps |= static_cast<uint32_t>(convertLegacyFeatureToAidlChipCapability(feature));
            *aidl_feature_set |= static_cast<uint32_t>(convertLegacyChipFeatureToAidl(feature));
        }
    }

@@ -449,24 +448,23 @@ bool convertLegacyWifiMacInfosToAidl(
    return true;
}

bool convertLegacyFeaturesToAidlStaCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps) {
    if (!aidl_caps) {
bool convertLegacyStaIfaceFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set) {
    if (!aidl_feature_set) {
        return false;
    }
    *aidl_caps = {};
    *aidl_feature_set = 0;
    for (const auto feature :
         {WIFI_FEATURE_GSCAN, WIFI_FEATURE_LINK_LAYER_STATS, WIFI_FEATURE_RSSI_MONITOR,
          WIFI_FEATURE_CONTROL_ROAMING, WIFI_FEATURE_IE_WHITELIST, WIFI_FEATURE_SCAN_RAND,
          WIFI_FEATURE_INFRA_5G, WIFI_FEATURE_HOTSPOT, WIFI_FEATURE_PNO, WIFI_FEATURE_TDLS,
          WIFI_FEATURE_TDLS_OFFCHANNEL, WIFI_FEATURE_CONFIG_NDO, WIFI_FEATURE_MKEEP_ALIVE}) {
        if (feature & legacy_feature_set) {
            *aidl_caps |=
                    static_cast<uint32_t>(convertLegacyFeatureToAidlStaIfaceCapability(feature));
            *aidl_feature_set |= static_cast<uint32_t>(convertLegacyStaIfaceFeatureToAidl(feature));
        }
    }
    // There is no flag for this one in the legacy feature set. Adding it to the
    // set because all the current devices support it.
    *aidl_caps |= static_cast<uint32_t>(IWifiStaIface::StaIfaceCapabilityMask::APF);
    *aidl_feature_set |= static_cast<uint32_t>(IWifiStaIface::FeatureSetMask::APF);
    return true;
}

Loading