From f459e95a58c4a284f5d55ae2fa371ece663c52f0 Mon Sep 17 00:00:00 2001 From: hai007 Date: Mon, 16 Mar 2026 16:29:37 -0700 Subject: [PATCH] Remove AutoReconnection code PiperOrigin-RevId: 884691071 --- connections/implementation/client_proxy.cc | 19 +++--------- connections/implementation/client_proxy.h | 8 ----- .../implementation/endpoint_manager.cc | 4 --- .../implementation/endpoint_manager_test.cc | 7 ++--- .../flags/nearby_connections_feature_flags.h | 6 ++-- connections/implementation/offline_frames.cc | 25 ---------------- connections/implementation/offline_frames.h | 2 -- .../implementation/offline_frames_test.cc | 29 ------------------- connections/implementation/simulation_user.h | 7 ++--- internal/platform/feature_flags.h | 8 ----- 10 files changed, 10 insertions(+), 105 deletions(-) diff --git a/connections/implementation/client_proxy.cc b/connections/implementation/client_proxy.cc index d53e1a18..df7ec898 100644 --- a/connections/implementation/client_proxy.cc +++ b/connections/implementation/client_proxy.cc @@ -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() && diff --git a/connections/implementation/client_proxy.h b/connections/implementation/client_proxy.h index 05406a27..685765a8 100644 --- a/connections/implementation/client_proxy.h +++ b/connections/implementation/client_proxy.h @@ -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 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 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. diff --git a/connections/implementation/endpoint_manager.cc b/connections/implementation/endpoint_manager.cc index ecde9b08..15fdd726 100644 --- a/connections/implementation/endpoint_manager.cc +++ b/connections/implementation/endpoint_manager.cc @@ -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 diff --git a/connections/implementation/endpoint_manager_test.cc b/connections/implementation/endpoint_manager_test.cc index 0f906e3c..d9a01b9a 100644 --- a/connections/implementation/endpoint_manager_test.cc +++ b/connections/implementation/endpoint_manager_test.cc @@ -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 client_ = std::make_unique(); ConnectionOptions connection_options_{ .keep_alive_interval_millis = 5000, diff --git a/connections/implementation/flags/nearby_connections_feature_flags.h b/connections/implementation/flags/nearby_connections_feature_flags.h index f241106d..e26b11e1 100644 --- a/connections/implementation/flags/nearby_connections_feature_flags.h +++ b/connections/implementation/flags/nearby_connections_feature_flags.h @@ -37,9 +37,6 @@ constexpr auto kDisableInstantOnLostOnBleWithoutExtended = // When true, enable advertising for instant on lost feature. constexpr auto kEnableAdvertisingForInstantOnLost = flags::Flag(kConfigPackage, "45708614", true); -// Enable/Disable auto_reconnect feature. -constexpr auto kEnableAutoReconnect = - flags::Flag(kConfigPackage, "45427690", false); // Enable/Disable AWDL in Nearby connections SDK. constexpr auto kEnableAwdl = flags::Flag(kConfigPackage, "45690762", false); @@ -109,7 +106,8 @@ constexpr auto kRefactorBleL2cap = constexpr auto kEnableSharedPeripheralManager = flags::Flag(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(kConfigPackage, "45425841", 0); diff --git a/connections/implementation/offline_frames.cc b/connections/implementation/offline_frames.cc index ce7ff30e..45b91311 100644 --- a/connections/implementation/offline_frames.cc +++ b/connections/implementation/offline_frames.cc @@ -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) { diff --git a/connections/implementation/offline_frames.h b/connections/implementation/offline_frames.h index 36567eba..e8e4b7d9 100644 --- a/connections/implementation/offline_frames.h +++ b/connections/implementation/offline_frames.h @@ -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); diff --git a/connections/implementation/offline_frames_test.cc b/connections/implementation/offline_frames_test.cc index 2f3f7965..e52099ef 100644 --- a/connections/implementation/offline_frames_test.cc +++ b/connections/implementation/offline_frames_test.cc @@ -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 = diff --git a/connections/implementation/simulation_user.h b/connections/implementation/simulation_user.h index 417ab2f8..b257dc0b 100644 --- a/connections/implementation/simulation_user.h +++ b/connections/implementation/simulation_user.h @@ -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_{ { diff --git a/internal/platform/feature_flags.h b/internal/platform/feature_flags.h index cad1ba6a..a4483839 100644 --- a/internal/platform/feature_flags.h +++ b/internal/platform/feature_flags.h @@ -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.