Remove AutoReconnection code

PiperOrigin-RevId: 884691071
This commit is contained in:
hai007
2026-06-13 17:11:12 +05:30
committed by Lasan Mahaliyana
parent d20b819602
commit f459e95a58
10 changed files with 10 additions and 105 deletions
+4 -15
View File
@@ -119,14 +119,11 @@ ClientProxy::ClientProxy(::nearby::analytics::EventLogger* event_logger)
supports_safe_to_disconnect_ = NearbyFlags::GetInstance().GetBoolFlag(
config_package_nearby::nearby_connections_feature::
kEnableSafeToDisconnect);
support_auto_reconnect_ = NearbyFlags::GetInstance().GetBoolFlag(
config_package_nearby::nearby_connections_feature::kEnableAutoReconnect);
local_safe_to_disconnect_version_ = NearbyFlags::GetInstance().GetInt64Flag(
config_package_nearby::nearby_connections_feature::
kSafeToDisconnectVersion);
LOG(INFO) << "[safe-to-disconnect]: Local enabled: "
<< supports_safe_to_disconnect_
<< "; Version: " << local_safe_to_disconnect_version_;
<< supports_safe_to_disconnect_ << "; Version: "
<< NearbyFlags::GetInstance().GetInt64Flag(
config_package_nearby::nearby_connections_feature::
kSafeToDisconnectVersion);
// Generate a 7 bits dedup value.
absl::BitGen bitgen;
dct_dedup_ = absl::Uniform(bitgen, 0, 1 << 7);
@@ -1008,14 +1005,6 @@ bool ClientProxy::IsSafeToDisconnectEnabled(absl::string_view endpoint_id) {
.min_nc_version_supports_safe_to_disconnect);
}
bool ClientProxy::IsAutoReconnectEnabled(absl::string_view endpoint_id) {
return IsSupportAutoReconnect() &&
GetRemoteSafeToDisconnectVersion(endpoint_id).has_value() &&
(GetRemoteSafeToDisconnectVersion(endpoint_id) >=
FeatureFlags::GetInstance()
.GetFlags()
.min_nc_version_supports_auto_reconnect);
}
bool ClientProxy::IsPayloadReceivedAckEnabled(absl::string_view endpoint_id) {
return IsSupportSafeToDisconnect() &&
@@ -303,18 +303,12 @@ class ClientProxy final {
return supports_safe_to_disconnect_;
}
bool IsSupportAutoReconnect() const { return support_auto_reconnect_; }
const std::int32_t& GetLocalSafeToDisconnectVersion() const {
return local_safe_to_disconnect_version_;
}
std::optional<std::int32_t> GetRemoteSafeToDisconnectVersion(
absl::string_view endpoint_id) const;
void SetRemoteSafeToDisconnectVersion(
absl::string_view endpoint_id,
const std::int32_t& safe_to_disconnect_version);
bool IsSafeToDisconnectEnabled(absl::string_view endpoint_id);
bool IsAutoReconnectEnabled(absl::string_view endpoint_id);
bool IsPayloadReceivedAckEnabled(absl::string_view endpoint_id);
// Returns the multiplex socket supports status for local device.
@@ -549,8 +543,6 @@ class ClientProxy final {
// For Nearby Connections' own device provider.
std::unique_ptr<v3::ConnectionsDeviceProvider> connections_device_provider_;
bool supports_safe_to_disconnect_;
bool support_auto_reconnect_;
std::int32_t local_safe_to_disconnect_version_;
// Allowed to use WebRTC over non-cellular networks.
bool webrtc_non_cellular_ = false;
// Whether DCT is enabled.
@@ -782,10 +782,6 @@ void EndpointManager::RemoveEndpoint(ClientProxy* client,
<< (safe_disconnect_result ? "true" : "false");
}
}
if (safe_disconnect_result ==
ConnectionsLog::EstablishedConnection::UNSAFE_DISCONNECTION) {
// TODO(b/297259496): Autoreconnect
}
// Unregistering from channel_manager_ will also serve to terminate
// the dedicated handler and KeepAlive threads we started when we registered
@@ -136,16 +136,13 @@ class MockFrameProcessor : public EndpointManager::FrameProcessor {
class SetSafeToDisconnect {
public:
SetSafeToDisconnect(bool safe_to_disconnect, bool auto_reconnect,
SetSafeToDisconnect(bool safe_to_disconnect,
bool payload_received_ack,
std::int32_t safe_to_disconnect_version) {
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::
kEnableSafeToDisconnect,
safe_to_disconnect);
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::kEnableAutoReconnect,
auto_reconnect);
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::
kEnablePayloadReceivedAck,
@@ -187,7 +184,7 @@ class EndpointManagerTest : public ::testing::Test {
EXPECT_TRUE(done.Await(absl::Milliseconds(1000)).result());
}
}
SetSafeToDisconnect set_safe_to_disconnect_{true, false, true, 5};
SetSafeToDisconnect set_safe_to_disconnect_{true, true, 5};
std::unique_ptr<ClientProxy> client_ = std::make_unique<ClientProxy>();
ConnectionOptions connection_options_{
.keep_alive_interval_millis = 5000,
@@ -37,9 +37,6 @@ constexpr auto kDisableInstantOnLostOnBleWithoutExtended =
// When true, enable advertising for instant on lost feature.
constexpr auto kEnableAdvertisingForInstantOnLost =
flags::Flag<bool>(kConfigPackage, "45708614", true);
// Enable/Disable auto_reconnect feature.
constexpr auto kEnableAutoReconnect =
flags::Flag<bool>(kConfigPackage, "45427690", false);
// Enable/Disable AWDL in Nearby connections SDK.
constexpr auto kEnableAwdl =
flags::Flag<bool>(kConfigPackage, "45690762", false);
@@ -109,7 +106,8 @@ constexpr auto kRefactorBleL2cap =
constexpr auto kEnableSharedPeripheralManager =
flags::Flag<bool>(kConfigPackage, "45770787", false);
// Set the safe-to-disconnect version.
// 0. Disabled all. 1. safe-to-disconnect 2. reserved 3. auto-reconnect
// 0. Disabled all. 1. safe-to-disconnect 2. reserved 3.
// auto-reconnect(deprecated)
// 4. auto-resume 5. non-distance-constraint-recovery 6. payload_ack
constexpr auto kSafeToDisconnectVersion =
flags::Flag<int64_t>(kConfigPackage, "45425841", 0);
@@ -38,7 +38,6 @@ namespace {
using ExceptionOrOfflineFrame =
ExceptionOr<::location::nearby::connections::OfflineFrame>;
using ::location::nearby::connections::AutoReconnectFrame;
using ::location::nearby::connections::BandwidthUpgradeNegotiationFrame;
using ::location::nearby::connections::ConnectionRequestFrame;
using ::location::nearby::connections::ConnectionResponseFrame;
@@ -574,30 +573,6 @@ ByteArray ForDisconnection(bool request_safe_to_disconnect,
return ToBytes(std::move(frame));
}
ByteArray ForAutoReconnectIntroduction(const std::string& endpoint_id) {
OfflineFrame frame;
frame.set_version(OfflineFrame::V1);
auto* v1_frame = frame.mutable_v1();
v1_frame->set_type(V1Frame::AUTO_RECONNECT);
auto* auto_reconnect = v1_frame->mutable_auto_reconnect();
auto_reconnect->set_endpoint_id(endpoint_id);
auto_reconnect->set_event_type(AutoReconnectFrame::CLIENT_INTRODUCTION);
return ToBytes(std::move(frame));
}
ByteArray ForAutoReconnectIntroductionAck() {
OfflineFrame frame;
frame.set_version(OfflineFrame::V1);
auto* v1_frame = frame.mutable_v1();
v1_frame->set_type(V1Frame::AUTO_RECONNECT);
auto* auto_reconnect = v1_frame->mutable_auto_reconnect();
auto_reconnect->set_event_type(AutoReconnectFrame::CLIENT_INTRODUCTION_ACK);
return ToBytes(std::move(frame));
}
UpgradePathInfo::Medium MediumToUpgradePathInfoMedium(Medium medium) {
switch (medium) {
@@ -117,8 +117,6 @@ ByteArray ForKeepAlive();
ByteArray ForKeepAlive(bool ack, uint32_t seq_num);
ByteArray ForDisconnection(bool request_safe_to_disconnect,
bool ack_safe_to_disconnect);
ByteArray ForAutoReconnectIntroduction(const std::string& endpoint_id);
ByteArray ForAutoReconnectIntroductionAck();
UpgradePathInfo::Medium MediumToUpgradePathInfoMedium(Medium medium);
Medium UpgradePathInfoMediumToMedium(UpgradePathInfo::Medium medium);
@@ -737,35 +737,6 @@ TEST(OfflineFramesTest, CanGenerateDisconnection) {
EXPECT_THAT(message, EqualsProto(kExpected));
}
TEST(OfflineFramesTest, CanGenerateAutoReconnectIntroduction) {
constexpr absl::string_view kExpected =
R"pb(
version: V1
v1: <
type: AUTO_RECONNECT
auto_reconnect: < event_type: CLIENT_INTRODUCTION endpoint_id: "ABC" >
>)pb";
ByteArray bytes = ForAutoReconnectIntroduction(std::string(kEndpointId));
auto response = FromBytes(bytes);
ASSERT_TRUE(response.ok());
OfflineFrame message = response.result();
EXPECT_THAT(message, EqualsProto(kExpected));
}
TEST(OfflineFramesTest, CanGenerateAutoReconnectIntroductionAck) {
constexpr absl::string_view kExpected =
R"pb(
version: V1
v1: <
type: AUTO_RECONNECT
auto_reconnect: < event_type: CLIENT_INTRODUCTION_ACK >
>)pb";
ByteArray bytes = ForAutoReconnectIntroductionAck();
auto response = FromBytes(bytes);
ASSERT_TRUE(response.ok());
OfflineFrame message = response.result();
EXPECT_THAT(message, EqualsProto(kExpected));
}
TEST(OfflineFramesTest, CanGenerateBwuPathRequest) {
constexpr absl::string_view kExpected =
+2 -5
View File
@@ -46,16 +46,13 @@ namespace connections {
class SetSafeToDisconnect {
public:
explicit SetSafeToDisconnect(bool safe_to_disconnect, bool auto_reconnect,
explicit SetSafeToDisconnect(bool safe_to_disconnect,
bool payload_received_ack,
std::int32_t safe_to_disconnect_version) {
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::
kEnableSafeToDisconnect,
safe_to_disconnect);
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::kEnableAutoReconnect,
auto_reconnect);
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::
kEnablePayloadReceivedAck,
@@ -81,7 +78,7 @@ class SimulationUser {
SimulationUser(const std::string& device_name,
BooleanMediumSelector allowed = BooleanMediumSelector(),
SetSafeToDisconnect set_safe_to_disconnect =
SetSafeToDisconnect(true, false, true, 5))
SetSafeToDisconnect(true, true, 5))
: info_{ByteArray{device_name}},
advertising_options_{
{
-8
View File
@@ -75,14 +75,6 @@ class FeatureFlags {
// auto-resume 5. non-distance-constraint-recovery 6. payload_ack
std::int32_t min_nc_version_supports_safe_to_disconnect = 1;
std::int32_t min_nc_version_supports_auto_reconnect = 3;
absl::Duration safe_to_disconnect_reconnect_retry_delay_millis =
absl::Milliseconds(4000);
absl::Duration safe_to_disconnect_reconnect_timeout_millis =
absl::Milliseconds(15000);
std::int32_t safe_to_disconnect_reconnect_retry_attempts = 3;
absl::Duration
safe_to_disconnect_reconnect_skip_duplicated_endpoint_duration =
absl::Milliseconds(2000);
// Android code won't be able to launch "payload_received_ack" feature for
// in near future, so change "payload_received_ack" version from "2" to "5"
// after auto-reconnect and auto-resume.