Loading wifi/1.3/IWifiChip.hal +6 −1 Original line number Diff line number Diff line Loading @@ -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 }; /** Loading wifi/1.3/default/hidl_struct_util.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -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 {}; Loading Loading @@ -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; Loading wifi/supplicant/1.2/ISupplicantP2pIface.hal +12 −0 Original line number Diff line number Diff line Loading @@ -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); }; wifi/supplicant/1.2/vts/functional/supplicant_p2p_iface_hidl_test.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -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); }); } Loading
wifi/1.3/IWifiChip.hal +6 −1 Original line number Diff line number Diff line Loading @@ -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 }; /** Loading
wifi/1.3/default/hidl_struct_util.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -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 {}; Loading Loading @@ -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; Loading
wifi/supplicant/1.2/ISupplicantP2pIface.hal +12 −0 Original line number Diff line number Diff line Loading @@ -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); };
wifi/supplicant/1.2/vts/functional/supplicant_p2p_iface_hidl_test.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -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); }); }