Deprecate gfe2_reloadable_flag_quic_send_timestamps.

PiperOrigin-RevId: 401730932
diff --git a/quic/core/crypto/crypto_protocol.h b/quic/core/crypto/crypto_protocol.h
index f0bcd7f..f50061e 100644
--- a/quic/core/crypto/crypto_protocol.h
+++ b/quic/core/crypto/crypto_protocol.h
@@ -209,7 +209,7 @@
                                                  // Retransmissions.
 const QuicTag kLFAK = TAG('L', 'F', 'A', 'K');   // Don't invoke FACK on the
                                                  // first ack.
-const QuicTag kSTMP = TAG('S', 'T', 'M', 'P');   // Send and process timestamps
+const QuicTag kSTMP = TAG('S', 'T', 'M', 'P');   // DEPRECATED
 const QuicTag kEACK = TAG('E', 'A', 'C', 'K');   // Bundle ack-eliciting frame
                                                  // with an ACK after PTO/RTO
 
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index f152e6e..7588a96 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -625,12 +625,6 @@
   if (config.HasReceivedAckDelayExponent()) {
     framer_.set_peer_ack_delay_exponent(config.ReceivedAckDelayExponent());
   }
-  if (GetQuicReloadableFlag(quic_send_timestamps) &&
-      config.HasClientSentConnectionOption(kSTMP, perspective_)) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_send_timestamps);
-    framer_.set_process_timestamps(true);
-    uber_received_packet_manager_.set_save_timestamps(true);
-  }
   if (config.HasClientSentConnectionOption(kEACK, perspective_)) {
     bundle_retransmittable_with_pto_ack_ = true;
   }
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 4399efa..4331652 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -117,8 +117,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_server_reverse_validate_new_path3, true)
 // When receiving STOP_SENDING, send a RESET_STREAM with a matching error code.
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_match_ietf_reset_code, false)
-// When the STMP connection option is sent by the client, timestamps in the QUIC ACK frame are sent and processed.
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_timestamps, false)
 // When the flag is true, exit STARTUP after the same number of loss events as PROBE_UP.
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_startup_probe_up_loss_events, true)
 // When true, QuicDispatcher will silently drop incoming packets whose UDP source port is on the blocklist.
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index a6820ea..b1fe416 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -309,7 +309,9 @@
   QuicErrorCode error() const { return error_; }
 
   // Allows enabling or disabling of timestamp processing and serialization.
-  void set_process_timestamps(bool process_timestamps) {
+  // TODO(ianswett): Remove the const once timestamps are negotiated via
+  // transport params.
+  void set_process_timestamps(bool process_timestamps) const {
     process_timestamps_ = process_timestamps;
   }
 
@@ -1124,7 +1126,8 @@
   // The diversification nonce from the last received packet.
   DiversificationNonce last_nonce_;
   // If true, send and process timestamps in the ACK frame.
-  bool process_timestamps_;
+  // TODO(ianswett): Remove the mutable once set_process_timestamps isn't const.
+  mutable bool process_timestamps_;
   // The exponent to use when writing/reading ACK receive timestamps.
   uint32_t receive_timestamps_exponent_;
   // The creation time of the connection, used to calculate timestamps.