Cap client suggested initial RTT to 1s instead of 15s. Protected by FLAGS_quic_reloadable_flag_quic_cap_large_client_initial_rtt. PiperOrigin-RevId: 332034739 Change-Id: I5453ca54000591a6a0081431c87976a546fbcb0d
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc index 637edcf..a36017c 100644 --- a/quic/core/http/end_to_end_test.cc +++ b/quic/core/http/end_to_end_test.cc
@@ -2166,10 +2166,17 @@ client_sent_packet_manager->GetRttStats()->smoothed_rtt().IsInfinite()); const RttStats* server_rtt_stats = server_sent_packet_manager->GetRttStats(); - EXPECT_EQ(static_cast<int64_t>(kMaxInitialRoundTripTimeUs), - server_rtt_stats->initial_rtt().ToMicroseconds()); - EXPECT_GE(static_cast<int64_t>(kMaxInitialRoundTripTimeUs), - server_rtt_stats->smoothed_rtt().ToMicroseconds()); + if (GetQuicReloadableFlag(quic_cap_large_client_initial_rtt)) { + EXPECT_EQ(static_cast<int64_t>(1 * kNumMicrosPerSecond), + server_rtt_stats->initial_rtt().ToMicroseconds()); + EXPECT_GE(static_cast<int64_t>(1 * kNumMicrosPerSecond), + server_rtt_stats->smoothed_rtt().ToMicroseconds()); + } else { + EXPECT_EQ(static_cast<int64_t>(kMaxInitialRoundTripTimeUs), + server_rtt_stats->initial_rtt().ToMicroseconds()); + EXPECT_GE(static_cast<int64_t>(kMaxInitialRoundTripTimeUs), + server_rtt_stats->smoothed_rtt().ToMicroseconds()); + } } else { ADD_FAILURE() << "Missing sent packet manager"; }
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc index 930b4ed..74a91ea 100644 --- a/quic/core/quic_sent_packet_manager.cc +++ b/quic/core/quic_sent_packet_manager.cc
@@ -1494,8 +1494,13 @@ void QuicSentPacketManager::SetInitialRtt(QuicTime::Delta rtt) { const QuicTime::Delta min_rtt = QuicTime::Delta::FromMicroseconds(kMinInitialRoundTripTimeUs); - const QuicTime::Delta max_rtt = + QuicTime::Delta max_rtt = QuicTime::Delta::FromMicroseconds(kMaxInitialRoundTripTimeUs); + if (GetQuicReloadableFlag(quic_cap_large_client_initial_rtt)) { + // TODO(fayang): change the value of kMaxInitialRoundTripTimeUs when + // deprecating quic_cap_large_client_initial_rtt. + max_rtt = QuicTime::Delta::FromSeconds(1); + } rtt_stats_.set_initial_rtt(std::max(min_rtt, std::min(max_rtt, rtt))); }
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc index 29ea106..7448ee5 100644 --- a/quic/core/quic_sent_packet_manager_test.cc +++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -2195,7 +2195,7 @@ TEST_F(QuicSentPacketManagerTest, ResumeConnectionState) { // The sent packet manager should use the RTT from CachedNetworkParameters if // it is provided. - const QuicTime::Delta kRtt = QuicTime::Delta::FromMilliseconds(1234); + const QuicTime::Delta kRtt = QuicTime::Delta::FromMilliseconds(123); CachedNetworkParameters cached_network_params; cached_network_params.set_min_rtt_ms(kRtt.ToMilliseconds());