gfe-relnote: Use IETF loss detection for T099. Not used in prod, not protected.
PiperOrigin-RevId: 269891154
Change-Id: Ic65bba9709fde1dfa6c310ae65c1d31af6401b4b
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 6f1b4d5..b9f56ee 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -3610,7 +3610,7 @@
sent_packet_manager_.SetSessionDecideWhatToWrite(
enable_session_decides_what_to_write);
if (version().SupportsAntiAmplificationLimit()) {
- sent_packet_manager_.DisableHandshakeMode();
+ sent_packet_manager_.EnableIetfPtoAndLossDetection();
}
packet_generator_.SetCanSetTransmissionType(
enable_session_decides_what_to_write);
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 8731306..132eb0a 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -970,11 +970,12 @@
pending_timer_transmission_count_ = 1;
}
-void QuicSentPacketManager::DisableHandshakeMode() {
+void QuicSentPacketManager::EnableIetfPtoAndLossDetection() {
DCHECK(session_decides_what_to_write());
fix_rto_retransmission_ = true;
pto_enabled_ = true;
handshake_mode_disabled_ = true;
+ uber_loss_algorithm_.SetLossDetectionType(kIetfLossDetection);
}
QuicSentPacketManager::RetransmissionTimeoutMode
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h
index 0199648..352ca31 100644
--- a/quic/core/quic_sent_packet_manager.h
+++ b/quic/core/quic_sent_packet_manager.h
@@ -419,7 +419,8 @@
void AdjustPendingTimerTransmissions();
// Called to disable HANDSHAKE_MODE, and only PTO and LOSS modes are used.
- void DisableHandshakeMode();
+ // Also enable IETF loss detection.
+ void EnableIetfPtoAndLossDetection();
bool supports_multiple_packet_number_spaces() const {
return unacked_packets_.supports_multiple_packet_number_spaces();
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index e787715..4f6412a 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -3179,7 +3179,7 @@
TEST_P(QuicSentPacketManagerTest, DisableHandshakeModeClient) {
QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
manager_.SetSessionDecideWhatToWrite(true);
- manager_.DisableHandshakeMode();
+ manager_.EnableIetfPtoAndLossDetection();
// Send CHLO.
SendCryptoPacket(1);
EXPECT_NE(QuicTime::Zero(), manager_.GetRetransmissionTime());
@@ -3202,7 +3202,7 @@
TEST_P(QuicSentPacketManagerTest, DisableHandshakeModeServer) {
manager_.SetSessionDecideWhatToWrite(true);
- manager_.DisableHandshakeMode();
+ manager_.EnableIetfPtoAndLossDetection();
// Send SHLO.
SendCryptoPacket(1);
EXPECT_NE(QuicTime::Zero(), manager_.GetRetransmissionTime());