Add kAFF1 enabling the usage of smoothed RTT in the computation of ack delay in AckFrequencyFrame.

Protected by FLAGS_quic_reloadable_flag_quic_can_send_ack_frequency.

PiperOrigin-RevId: 337381712
Change-Id: Icdc57863d57e54a516fe73139903e974097800e5
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index b98f65c..bdad0e4 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -150,6 +150,9 @@
       peer_min_ack_delay_ =
           QuicTime::Delta::FromMilliseconds(config.ReceivedMinAckDelayMs());
     }
+    if (config.HasClientSentConnectionOption(kAFF1, perspective)) {
+      use_smoothed_rtt_in_ack_delay_ = true;
+    }
   }
   if (config.HasClientSentConnectionOption(kMAD0, perspective)) {
     rtt_stats_.set_ignore_max_ack_delay(true);
@@ -725,7 +728,8 @@
 
   QUIC_RELOADABLE_FLAG_COUNT(quic_can_send_ack_frequency);
   frame.packet_tolerance = kMaxRetransmittablePacketsBeforeAck;
-  auto rtt = rtt_stats_.MinOrInitialRtt();
+  auto rtt = use_smoothed_rtt_in_ack_delay_ ? rtt_stats_.SmoothedOrInitialRtt()
+                                            : rtt_stats_.MinOrInitialRtt();
   frame.max_ack_delay = rtt * kAckDecimationDelay;
   frame.max_ack_delay = std::max(frame.max_ack_delay, peer_min_ack_delay_);