deprecate gfe2_reloadable_flag_quic_deprecate_tlpr

PiperOrigin-RevId: 424178628
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 89fb70b..393bfd8 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -4543,179 +4543,6 @@
   EXPECT_EQ(QuicPacketNumber(1u), stop_waiting()->least_unacked);
 }
 
-TEST_P(QuicConnectionTest, TailLossProbeDelayForStreamDataInTLPR) {
-  if (connection_.PtoEnabled() || GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-
-  // Set TLPR from QuicConfig.
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  QuicConfig config;
-  QuicTagVector options;
-  options.push_back(kTLPR);
-  config.SetConnectionOptionsToSend(options);
-  connection_.SetFromConfig(config);
-  connection_.SetMaxTailLossProbes(1);
-
-  SendStreamDataToPeer(3, "foo", 0, NO_FIN, nullptr);
-  EXPECT_EQ(QuicPacketNumber(1u), stop_waiting()->least_unacked);
-
-  QuicTime retransmission_time =
-      connection_.GetRetransmissionAlarm()->deadline();
-  EXPECT_NE(QuicTime::Zero(), retransmission_time);
-  QuicTime::Delta expected_tlp_delay =
-      0.5 * manager_->GetRttStats()->SmoothedOrInitialRtt();
-  EXPECT_EQ(expected_tlp_delay, retransmission_time - clock_.Now());
-
-  EXPECT_EQ(QuicPacketNumber(1u), writer_->header().packet_number);
-  // Simulate firing of the retransmission alarm and retransmit the packet.
-  EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, QuicPacketNumber(2), _, _));
-  clock_.AdvanceTime(retransmission_time - clock_.Now());
-  connection_.GetRetransmissionAlarm()->Fire();
-  EXPECT_EQ(QuicPacketNumber(2u), writer_->header().packet_number);
-
-  // We do not raise the high water mark yet.
-  EXPECT_EQ(QuicPacketNumber(1u), stop_waiting()->least_unacked);
-}
-
-TEST_P(QuicConnectionTest, TailLossProbeDelayForNonStreamDataInTLPR) {
-  if (connection_.PtoEnabled() || GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-
-  // Set TLPR from QuicConfig.
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  QuicConfig config;
-  QuicTagVector options;
-  options.push_back(kTLPR);
-  config.SetConnectionOptionsToSend(options);
-  QuicConfigPeer::SetNegotiated(&config, true);
-  if (connection_.version().UsesTls()) {
-    QuicConfigPeer::SetReceivedOriginalConnectionId(
-        &config, connection_.connection_id());
-    QuicConfigPeer::SetReceivedInitialSourceConnectionId(
-        &config, connection_.connection_id());
-  }
-  connection_.SetFromConfig(config);
-  connection_.SetMaxTailLossProbes(1);
-
-  // Sets retransmittable on wire.
-  const QuicTime::Delta retransmittable_on_wire_timeout =
-      QuicTime::Delta::FromMilliseconds(50);
-  connection_.set_initial_retransmittable_on_wire_timeout(
-      retransmittable_on_wire_timeout);
-
-  EXPECT_TRUE(connection_.connected());
-  EXPECT_CALL(visitor_, ShouldKeepConnectionAlive())
-      .WillRepeatedly(Return(true));
-  EXPECT_FALSE(connection_.PathDegradingDetectionInProgress());
-  EXPECT_FALSE(connection_.IsPathDegrading());
-  EXPECT_FALSE(connection_.GetPingAlarm()->IsSet());
-
-  const char data[] = "data";
-  size_t data_size = strlen(data);
-  QuicStreamOffset offset = 0;
-
-  // Send a data packet.
-  connection_.SendStreamDataWithString(1, data, offset, NO_FIN);
-  offset += data_size;
-
-  // Path degrading alarm should be set when there is a retransmittable packet
-  // on the wire.
-  EXPECT_TRUE(connection_.PathDegradingDetectionInProgress());
-
-  // Verify the path degrading delay.
-  // First TLP with stream data.
-  QuicTime::Delta srtt = manager_->GetRttStats()->SmoothedOrInitialRtt();
-  QuicTime::Delta expected_delay = 0.5 * srtt;
-  // Add 1st RTO.
-  QuicTime::Delta retransmission_delay =
-      QuicTime::Delta::FromMilliseconds(kDefaultRetransmissionTimeMs);
-  expected_delay = expected_delay + retransmission_delay;
-  // Add 2nd RTO.
-  expected_delay = expected_delay + retransmission_delay * 2;
-  EXPECT_EQ(expected_delay,
-            QuicConnectionPeer::GetSentPacketManager(&connection_)
-                ->GetPathDegradingDelay());
-  ASSERT_TRUE(connection_.sent_packet_manager().HasInFlightPackets());
-
-  // The ping alarm is set for the ping timeout, not the shorter
-  // retransmittable_on_wire_timeout.
-  EXPECT_TRUE(connection_.GetPingAlarm()->IsSet());
-  EXPECT_EQ(connection_.ping_timeout(),
-            connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow());
-
-  // Receive an ACK for the data packet.
-  clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
-  EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
-  EXPECT_CALL(*send_algorithm_, OnCongestionEvent(true, _, _, _, _));
-  QuicAckFrame frame =
-      InitAckFrame({{QuicPacketNumber(1), QuicPacketNumber(2)}});
-  ProcessAckPacket(&frame);
-
-  // Path degrading alarm should be cancelled as there is no more
-  // reretransmittable packets on the wire.
-  EXPECT_FALSE(connection_.PathDegradingDetectionInProgress());
-  // The ping alarm should be set to the retransmittable_on_wire_timeout.
-  EXPECT_TRUE(connection_.GetPingAlarm()->IsSet());
-  EXPECT_EQ(retransmittable_on_wire_timeout,
-            connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow());
-
-  // Simulate firing of the retransmittable on wire and send a PING.
-  clock_.AdvanceTime(retransmittable_on_wire_timeout);
-  connection_.GetPingAlarm()->Fire();
-
-  // The retransmission alarm and the path degrading alarm should be set as
-  // there is a retransmittable packet (PING) on the wire,
-  EXPECT_TRUE(connection_.GetRetransmissionAlarm()->IsSet());
-  EXPECT_TRUE(connection_.PathDegradingDetectionInProgress());
-
-  // Verify the retransmission delay.
-  QuicTime::Delta min_rto_timeout =
-      QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs);
-  srtt = manager_->GetRttStats()->SmoothedOrInitialRtt();
-
-  // Arm RTO mode since there is only PING in flight.
-  expected_delay = manager_->GetPtoDelay();
-  EXPECT_EQ(expected_delay,
-            connection_.GetRetransmissionAlarm()->deadline() - clock_.Now());
-
-  // Verify the path degrading delay = TLP delay + 1st RTO + 2nd RTO.
-  // Add 1st RTO.
-  expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout);
-  retransmission_delay =
-      std::max(manager_->GetRttStats()->smoothed_rtt() +
-                   4 * manager_->GetRttStats()->mean_deviation(),
-               min_rto_timeout);
-  expected_delay = expected_delay + retransmission_delay;
-  // Add 2nd RTO.
-  expected_delay = expected_delay + retransmission_delay * 2;
-  EXPECT_EQ(expected_delay,
-            QuicConnectionPeer::GetSentPacketManager(&connection_)
-                ->GetPathDegradingDelay());
-
-  // The ping alarm is set for the ping timeout, not the shorter
-  // retransmittable_on_wire_timeout.
-  EXPECT_TRUE(connection_.GetPingAlarm()->IsSet());
-  EXPECT_EQ(connection_.ping_timeout(),
-            connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow());
-
-  // Advance a small period of time: 5ms. And receive a retransmitted ACK.
-  // This will update the retransmission alarm, verify the retransmission delay
-  // is correct.
-  clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
-  QuicAckFrame ack = InitAckFrame({{QuicPacketNumber(1), QuicPacketNumber(2)}});
-  ProcessAckPacket(&ack);
-
-  // Verify the retransmission delay.
-  // First TLP without unacked stream data will no longer use TLPR.
-  // Arm RTO mode since there is only PING in flight.
-  expected_delay = manager_->GetPtoDelay();
-  expected_delay = expected_delay - QuicTime::Delta::FromMilliseconds(5);
-  EXPECT_EQ(expected_delay,
-            connection_.GetRetransmissionAlarm()->deadline() - clock_.Now());
-}
-
 TEST_P(QuicConnectionTest, RTO) {
   if (connection_.PtoEnabled()) {
     return;
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index df9fdfa..ddbe47b 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -25,8 +25,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_add_cached_network_parameters_to_address_token2, false)
 // If true, QUIC will default enable MTU discovery at server, with a target of 1450 bytes.
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false)
-// If true, QUIC won\'t honor the connection option TLPR
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_deprecate_tlpr, true)
 // If true, QuicGsoBatchWriter will support release time if it is available and the process has the permission to do so.
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_support_release_time_for_gso, false)
 // If true, TlsServerHandshaker will be able to 1) request client cert, and 2) verify the client cert in the virtual method TlsServerHandshaker::VerifyCertChain.
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index eae919c..e8f1aa8 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -87,7 +87,6 @@
       pending_timer_transmission_count_(0),
       max_tail_loss_probes_(kDefaultMaxTailLossProbes),
       max_rto_packets_(kMaxRetransmissionsOnTimeout),
-      enable_half_rtt_tail_loss_probe_(false),
       using_pacing_(false),
       use_new_rto_(false),
       conservative_handshake_retransmits_(false),
@@ -209,12 +208,7 @@
       QUIC_CODE_COUNT(two_aggressive_ptos);
       num_tlp_timeout_ptos_ = 2;
     }
-    if (GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_deprecate_tlpr, 2, 2);
-    }
-    if (config.HasClientSentConnectionOption(kPLE1, perspective) ||
-        (config.HasClientSentConnectionOption(kTLPR, perspective) &&
-         !GetQuicReloadableFlag(quic_deprecate_tlpr))) {
+    if (config.HasClientSentConnectionOption(kPLE1, perspective)) {
       first_pto_srtt_multiplier_ = 0.5;
     } else if (config.HasClientSentConnectionOption(kPLE2, perspective)) {
       first_pto_srtt_multiplier_ = 1.5;
@@ -304,17 +298,6 @@
   if (config.HasClientSentConnectionOption(k1RTO, perspective)) {
     max_rto_packets_ = 1;
   }
-  if (GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(quic_deprecate_tlpr, 1, 2);
-  }
-  if (config.HasClientSentConnectionOption(kTLPR, perspective) &&
-      !GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    enable_half_rtt_tail_loss_probe_ = true;
-  }
-  if (config.HasClientRequestedIndependentOption(kTLPR, perspective) &&
-      !GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    enable_half_rtt_tail_loss_probe_ = true;
-  }
   if (config.HasClientSentConnectionOption(kNRTO, perspective)) {
     use_new_rto_ = true;
   }
@@ -1405,12 +1388,6 @@
 
 const QuicTime::Delta QuicSentPacketManager::GetTailLossProbeDelay() const {
   QuicTime::Delta srtt = rtt_stats_.SmoothedOrInitialRtt();
-  if (enable_half_rtt_tail_loss_probe_ && consecutive_tlp_count_ == 0u) {
-    if (unacked_packets().HasUnackedStreamData()) {
-      // Enable TLPR if there are pending data packets.
-      return std::max(min_tlp_timeout_, srtt * 0.5);
-    }
-  }
   if (!unacked_packets_.HasMultipleInFlightPackets()) {
     // This expression really should be using the delayed ack time, but in TCP
     // MinRTO was traditionally set to 2x the delayed ack timer and this
@@ -1456,10 +1433,6 @@
                QuicTime::Delta::FromMilliseconds(kMinHandshakeTimeoutMs)) *
            (1 << consecutive_pto_count_);
   }
-  if (enable_half_rtt_tail_loss_probe_ && consecutive_pto_count_ == 0 &&
-      handshake_finished_) {
-    return std::max(min_tlp_timeout_, rtt_stats_.smoothed_rtt() * 0.5);
-  }
   const QuicTime::Delta rtt_var = use_standard_deviation_for_pto_
                                       ? rtt_stats_.GetStandardOrMeanDeviation()
                                       : rtt_stats_.mean_deviation();
@@ -1781,18 +1754,11 @@
       std::min(num_timeouts, static_cast<int>(max_tail_loss_probes_));
   num_timeouts -= num_tlps;
   if (num_tlps > 0) {
-    if (enable_half_rtt_tail_loss_probe_ &&
-        unacked_packets().HasUnackedStreamData()) {
-      total_delay = total_delay + std::max(min_tlp_timeout_, srtt * 0.5);
-      --num_tlps;
-    }
-    if (num_tlps > 0) {
-      const QuicTime::Delta tlp_delay =
-          std::max(2 * srtt, unacked_packets_.HasMultipleInFlightPackets()
-                                 ? min_tlp_timeout_
-                                 : (1.5 * srtt + (min_rto_timeout_ * 0.5)));
-      total_delay = total_delay + num_tlps * tlp_delay;
-    }
+    const QuicTime::Delta tlp_delay =
+        std::max(2 * srtt, unacked_packets_.HasMultipleInFlightPackets()
+                               ? min_tlp_timeout_
+                               : (1.5 * srtt + (min_rto_timeout_ * 0.5)));
+    total_delay = total_delay + num_tlps * tlp_delay;
   }
   if (num_timeouts == 0) {
     return total_delay;
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h
index b1efb81..069ff0f 100644
--- a/quic/core/quic_sent_packet_manager.h
+++ b/quic/core/quic_sent_packet_manager.h
@@ -625,8 +625,6 @@
   // Maximum number of packets to send upon RTO.
   QuicPacketCount max_rto_packets_;
   // If true, send the TLP at 0.5 RTT.
-  // TODO(renjietang): remove it once quic_deprecate_tlpr flag is deprecated.
-  bool enable_half_rtt_tail_loss_probe_;
   bool using_pacing_;
   // If true, use the new RTO with loss based CWND reduction instead of the send
   // algorithms's OnRetransmissionTimeout to reduce the congestion window.
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index a09afc6..1ce3da8 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -1463,112 +1463,6 @@
   EXPECT_EQ(expected_time, manager_.GetRetransmissionTime());
 }
 
-TEST_F(QuicSentPacketManagerTest, TLPRWithPendingStreamData) {
-  if (GetQuicReloadableFlag(quic_default_on_pto) ||
-      GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  EXPECT_CALL(*send_algorithm_, PacingRate(_))
-      .WillRepeatedly(Return(QuicBandwidth::Zero()));
-  EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
-      .WillOnce(Return(10 * kDefaultTCPMSS));
-  manager_.SetFromConfig(config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-
-  QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
-
-  SendDataPacket(1);
-  SendDataPacket(2);
-
-  // Test with a standard smoothed RTT.
-  RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats());
-  rtt_stats->set_initial_rtt(QuicTime::Delta::FromMilliseconds(100));
-  QuicTime::Delta srtt = rtt_stats->initial_rtt();
-  // With pending stream data, TLPR is used.
-  QuicTime::Delta expected_tlp_delay = 0.5 * srtt;
-  EXPECT_CALL(notifier_, HasUnackedStreamData()).WillRepeatedly(Return(true));
-
-  EXPECT_EQ(expected_tlp_delay,
-            manager_.GetRetransmissionTime() - clock_.Now());
-
-  // Retransmit the packet by invoking the retransmission timeout.
-  clock_.AdvanceTime(expected_tlp_delay);
-  manager_.OnRetransmissionTimeout();
-  EXPECT_EQ(QuicTime::Delta::Zero(), manager_.TimeUntilSend(clock_.Now()));
-  EXPECT_CALL(notifier_, RetransmitFrames(_, _))
-      .WillOnce(WithArgs<1>(Invoke(
-          [this](TransmissionType type) { RetransmitDataPacket(3, type); })));
-  EXPECT_TRUE(manager_.MaybeRetransmitTailLossProbe());
-
-  EXPECT_CALL(*send_algorithm_, CanSend(_)).WillOnce(Return(false));
-  EXPECT_EQ(QuicTime::Delta::Infinite(), manager_.TimeUntilSend(clock_.Now()));
-
-  // 2nd TLP.
-  expected_tlp_delay = 2 * srtt;
-  EXPECT_EQ(expected_tlp_delay,
-            manager_.GetRetransmissionTime() - clock_.Now());
-}
-
-TEST_F(QuicSentPacketManagerTest, TLPRWithoutPendingStreamData) {
-  if (GetQuicReloadableFlag(quic_default_on_pto) ||
-      GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  EXPECT_CALL(*send_algorithm_, PacingRate(_))
-      .WillRepeatedly(Return(QuicBandwidth::Zero()));
-  EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
-      .WillOnce(Return(10 * kDefaultTCPMSS));
-  manager_.SetFromConfig(config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-  QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
-
-  SendPingPacket(1, ENCRYPTION_INITIAL);
-  SendPingPacket(2, ENCRYPTION_INITIAL);
-
-  // Test with a standard smoothed RTT.
-  RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats());
-  rtt_stats->set_initial_rtt(QuicTime::Delta::FromMilliseconds(100));
-  QuicTime::Delta srtt = rtt_stats->initial_rtt();
-  QuicTime::Delta expected_tlp_delay = 0.5 * srtt;
-  // With no pending stream data, TLPR is ignored.
-  expected_tlp_delay = 2 * srtt;
-  EXPECT_CALL(notifier_, HasUnackedStreamData()).WillRepeatedly(Return(false));
-  EXPECT_EQ(expected_tlp_delay,
-            manager_.GetRetransmissionTime() - clock_.Now());
-
-  // Retransmit the packet by invoking the retransmission timeout.
-  clock_.AdvanceTime(expected_tlp_delay);
-  manager_.OnRetransmissionTimeout();
-  EXPECT_EQ(QuicTime::Delta::Zero(), manager_.TimeUntilSend(clock_.Now()));
-  EXPECT_CALL(notifier_, RetransmitFrames(_, _))
-      .WillOnce(WithArgs<1>(Invoke(
-          [this](TransmissionType type) { RetransmitDataPacket(3, type); })));
-  EXPECT_TRUE(manager_.MaybeRetransmitTailLossProbe());
-  EXPECT_CALL(*send_algorithm_, CanSend(_)).WillOnce(Return(false));
-  EXPECT_EQ(QuicTime::Delta::Infinite(), manager_.TimeUntilSend(clock_.Now()));
-
-  // 2nd TLP.
-  expected_tlp_delay = 2 * srtt;
-  EXPECT_EQ(expected_tlp_delay,
-            manager_.GetRetransmissionTime() - clock_.Now());
-}
-
 TEST_F(QuicSentPacketManagerTest, GetTransmissionTimeSpuriousRTO) {
   if (GetQuicReloadableFlag(quic_default_on_pto)) {
     return;
@@ -2125,41 +2019,6 @@
   EXPECT_EQ(1u, QuicSentPacketManagerPeer::GetMaxTailLossProbes(&manager_));
 }
 
-TEST_F(QuicSentPacketManagerTest, NegotiateTLPRttFromOptionsAtServer) {
-  if (GetQuicReloadableFlag(quic_default_on_pto) ||
-      GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  manager_.SetFromConfig(config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-}
-
-TEST_F(QuicSentPacketManagerTest, NegotiateTLPRttFromOptionsAtClient) {
-  if (GetQuicReloadableFlag(quic_default_on_pto) ||
-      GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig client_config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
-  client_config.SetConnectionOptionsToSend(options);
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  manager_.SetFromConfig(client_config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-}
-
 TEST_F(QuicSentPacketManagerTest, NegotiateNewRTOFromOptionsAtServer) {
   if (GetQuicReloadableFlag(quic_default_on_pto)) {
     return;
@@ -4371,90 +4230,6 @@
             manager_.GetRetransmissionTime());
 }
 
-TEST_F(QuicSentPacketManagerTest, ClientOnlyTLPRServer) {
-  if (GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  config.SetClientConnectionOptions(options);
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  manager_.SetFromConfig(config);
-  // No change if the server receives client options.
-  EXPECT_FALSE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-}
-
-TEST_F(QuicSentPacketManagerTest, ClientOnlyTLPR) {
-  if (GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  config.SetClientConnectionOptions(options);
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  manager_.SetFromConfig(config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-}
-
-TEST_F(QuicSentPacketManagerTest, PtoWithTlpr) {
-  if (GetQuicReloadableFlag(quic_deprecate_tlpr)) {
-    return;
-  }
-  QuicConfig config;
-  QuicTagVector options;
-
-  options.push_back(kTLPR);
-  options.push_back(k1PTO);
-  options.push_back(kPTOS);
-  QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
-  EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
-  EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
-  EXPECT_CALL(*send_algorithm_, PacingRate(_))
-      .WillRepeatedly(Return(QuicBandwidth::Zero()));
-  EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
-      .WillOnce(Return(10 * kDefaultTCPMSS));
-  manager_.SetFromConfig(config);
-  EXPECT_TRUE(
-      QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(&manager_));
-  RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats());
-  rtt_stats->UpdateRtt(QuicTime::Delta::FromMilliseconds(100),
-                       QuicTime::Delta::Zero(), QuicTime::Zero());
-  QuicTime::Delta srtt = rtt_stats->smoothed_rtt();
-  manager_.SetHandshakeConfirmed();
-
-  SendDataPacket(1, ENCRYPTION_FORWARD_SECURE);
-  // Verify PTO is correctly set.
-  QuicTime::Delta expected_pto_delay = 0.5 * srtt;
-  QuicTime deadline = clock_.Now() + expected_pto_delay;
-  EXPECT_EQ(deadline, manager_.GetRetransmissionTime());
-
-  // Invoke PTO.
-  clock_.AdvanceTime(deadline - clock_.Now());
-  manager_.OnRetransmissionTimeout();
-  EXPECT_CALL(notifier_, RetransmitFrames(_, _))
-      .WillOnce(WithArgs<1>(Invoke([this](TransmissionType type) {
-        RetransmitDataPacket(3, type, ENCRYPTION_FORWARD_SECURE);
-      })));
-  manager_.MaybeSendProbePackets();
-
-  // Verify PTO period gets set correctly.
-  expected_pto_delay =
-      srtt + GetPtoRttvarMultiplier() * rtt_stats->mean_deviation() +
-      QuicTime::Delta::FromMilliseconds(kDefaultDelayedAckTimeMs);
-  QuicTime sent_time = clock_.Now();
-  EXPECT_EQ(sent_time + expected_pto_delay * 2,
-            manager_.GetRetransmissionTime());
-}
-
 TEST_F(QuicSentPacketManagerTest, SendPathChallengeAndGetAck) {
   QuicPacketNumber packet_number(1);
   EXPECT_CALL(*send_algorithm_,
diff --git a/quic/test_tools/quic_sent_packet_manager_peer.cc b/quic/test_tools/quic_sent_packet_manager_peer.cc
index 3223516..8689535 100644
--- a/quic/test_tools/quic_sent_packet_manager_peer.cc
+++ b/quic/test_tools/quic_sent_packet_manager_peer.cc
@@ -27,12 +27,6 @@
 }
 
 // static
-bool QuicSentPacketManagerPeer::GetEnableHalfRttTailLossProbe(
-    QuicSentPacketManager* sent_packet_manager) {
-  return sent_packet_manager->enable_half_rtt_tail_loss_probe_;
-}
-
-// static
 bool QuicSentPacketManagerPeer::GetUseNewRto(
     QuicSentPacketManager* sent_packet_manager) {
   return sent_packet_manager->use_new_rto_;
diff --git a/quic/test_tools/quic_sent_packet_manager_peer.h b/quic/test_tools/quic_sent_packet_manager_peer.h
index 35c5897..ef0af1e 100644
--- a/quic/test_tools/quic_sent_packet_manager_peer.h
+++ b/quic/test_tools/quic_sent_packet_manager_peer.h
@@ -24,9 +24,6 @@
   static void SetMaxTailLossProbes(QuicSentPacketManager* sent_packet_manager,
                                    size_t max_tail_loss_probes);
 
-  static bool GetEnableHalfRttTailLossProbe(
-      QuicSentPacketManager* sent_packet_manager);
-
   static bool GetUseNewRto(QuicSentPacketManager* sent_packet_manager);
 
   static void SetPerspective(QuicSentPacketManager* sent_packet_manager,