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

Commit 62c64956 authored by Jimmy Chen's avatar Jimmy Chen Committed by Android (Google) Code Review
Browse files

Merge "p2p: add HAL method to enable P2P random MAC address feature"

parents a4ec958d d87a0ee2
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -31,7 +31,12 @@ interface IWifiChip extends @1.2::IWifiChip {
        /**
         * Set Latency Mode.
         */
         SET_LATENCY_MODE = 1 << 12
        SET_LATENCY_MODE = 1 << 12,

        /**
         * Support P2P MAC randomization
         */
        P2P_RAND_MAC = 1 << 13
    };

    /**
+10 −4
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ V1_3::IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability(
            return HidlChipCaps::D2AP_RTT;
        case WIFI_FEATURE_SET_LATENCY_MODE:
            return HidlChipCaps::SET_LATENCY_MODE;
        case WIFI_FEATURE_P2P_RAND_MAC:
            return HidlChipCaps::P2P_RAND_MAC;
    };
    CHECK(false) << "Unknown legacy feature: " << feature;
    return {};
@@ -141,14 +143,18 @@ bool convertLegacyFeaturesToHidlChipCapabilities(
                convertLegacyLoggerFeatureToHidlChipCapability(feature);
        }
    }
    for (const auto feature :
         {WIFI_FEATURE_SET_TX_POWER_LIMIT, WIFI_FEATURE_USE_BODY_HEAD_SAR,
          WIFI_FEATURE_D2D_RTT, WIFI_FEATURE_D2AP_RTT,
          WIFI_FEATURE_SET_LATENCY_MODE}) {
    std::vector<uint32_t> features = {WIFI_FEATURE_SET_TX_POWER_LIMIT,
                                      WIFI_FEATURE_USE_BODY_HEAD_SAR,
                                      WIFI_FEATURE_D2D_RTT,
                                      WIFI_FEATURE_D2AP_RTT,
                                      WIFI_FEATURE_SET_LATENCY_MODE,
                                      WIFI_FEATURE_P2P_RAND_MAC};
    for (const auto feature : features) {
        if (feature & legacy_feature_set) {
            *hidl_caps |= convertLegacyFeatureToHidlChipCapability(feature);
        }
    }

    // There are no flags for these 3 in the legacy feature set. Adding them to
    // the set because all the current devices support it.
    *hidl_caps |= HidlChipCaps::DEBUG_RING_BUFFER_VENDOR_DATA;
+12 −0
Original line number Diff line number Diff line
@@ -68,4 +68,16 @@ interface ISupplicantP2pIface extends @1.0::ISupplicantP2pIface {
    addGroup_1_2(Ssid ssid, string pskPassphrase, bool persistent,
                 uint32_t freq, MacAddress peerAddress, bool joinExistingGroup)
        generates (SupplicantStatus status);

    /**
     * Set MAC randomization enabled/disabled.
     *
     * @param enable true to enable, false to disable.
     * @return status Status of the operation.
     *         Possible status codes:
     *         |SupplicantStatusCode.SUCCESS|,
     *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
     *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
     */
    setMacRandomization(bool enable) generates (SupplicantStatus status);
};
+23 −0
Original line number Diff line number Diff line
@@ -126,3 +126,26 @@ TEST_F(SupplicantP2pIfaceHidlTest, AddGroup_1_2_FailureInvalidFrequency) {
            EXPECT_EQ(SupplicantStatusCode::FAILURE_UNKNOWN, status.code);
        });
}

/*
 * Verify that setMacRandomization successes.
 */
TEST_F(SupplicantP2pIfaceHidlTest, EnableMacRandomization) {
    p2p_iface_->setMacRandomization(true, [](const SupplicantStatus& status) {
        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
    });

    // enable twice
    p2p_iface_->setMacRandomization(true, [](const SupplicantStatus& status) {
        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
    });

    p2p_iface_->setMacRandomization(false, [](const SupplicantStatus& status) {
        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
    });

    // disable twice
    p2p_iface_->setMacRandomization(false, [](const SupplicantStatus& status) {
        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
    });
}