gfe-relnote: In QUIC, enable IETF style loss detection. Protected by
gfe2_reloadable_flag_quic_enable_ietf_loss_detection.

PiperOrigin-RevId: 268674408
Change-Id: Idb598126b44838732b3b3a3f679b3aff80bc5beb
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 7a413d0..ee7bb34 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -249,6 +249,30 @@
   if (config.HasClientRequestedIndependentOption(kLFAK, perspective)) {
     uber_loss_algorithm_.SetLossDetectionType(kLazyFack);
   }
+  if (GetQuicReloadableFlag(quic_enable_ietf_loss_detection)) {
+    if (config.HasClientRequestedIndependentOption(kILD0, perspective)) {
+      QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_ietf_loss_detection, 1, 4);
+      uber_loss_algorithm_.SetLossDetectionType(kIetfLossDetection);
+    }
+    if (config.HasClientRequestedIndependentOption(kILD1, perspective)) {
+      QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_ietf_loss_detection, 2, 4);
+      uber_loss_algorithm_.SetLossDetectionType(kIetfLossDetection);
+      uber_loss_algorithm_.SetReorderingShift(kDefaultLossDelayShift);
+    }
+    if (GetQuicReloadableFlag(quic_detect_spurious_loss)) {
+      if (config.HasClientRequestedIndependentOption(kILD2, perspective)) {
+        QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_ietf_loss_detection, 3, 4);
+        uber_loss_algorithm_.SetLossDetectionType(kIetfLossDetection);
+        uber_loss_algorithm_.EnableAdaptiveReorderingThreshold();
+      }
+      if (config.HasClientRequestedIndependentOption(kILD3, perspective)) {
+        QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_ietf_loss_detection, 4, 4);
+        uber_loss_algorithm_.SetLossDetectionType(kIetfLossDetection);
+        uber_loss_algorithm_.SetReorderingShift(kDefaultLossDelayShift);
+        uber_loss_algorithm_.EnableAdaptiveReorderingThreshold();
+      }
+    }
+  }
   if (config.HasClientSentConnectionOption(kCONH, perspective)) {
     conservative_handshake_retransmits_ = true;
   }