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());