Deprecate gfe2_restart_flag_quic_receive_ecn3.

PiperOrigin-RevId: 604725307
diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index 3eaddf2..e354a7f 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -7263,8 +7263,7 @@
   EXPECT_EQ(ecn->ce, 0);
   EXPECT_TRUE(client_connection->set_ecn_codepoint(ECN_ECT0));
   client_->SendSynchronousRequest("/foo");
-  if (!GetQuicRestartFlag(quic_receive_ecn3) ||
-      !VersionHasIetfQuicFrames(version_.transport_version)) {
+  if (!VersionHasIetfQuicFrames(version_.transport_version)) {
     EXPECT_EQ(ecn->ect0, 0);
   } else {
     EXPECT_GT(ecn->ect0, 0);
@@ -7288,8 +7287,7 @@
   EXPECT_EQ(ecn->ce, 0);
   EXPECT_TRUE(client_connection->set_ecn_codepoint(ECN_ECT1));
   client_->SendSynchronousRequest("/foo");
-  if (!GetQuicRestartFlag(quic_receive_ecn3) ||
-      !VersionHasIetfQuicFrames(version_.transport_version)) {
+  if (!VersionHasIetfQuicFrames(version_.transport_version)) {
     EXPECT_EQ(ecn->ect1, 0);
   } else {
     EXPECT_GT(ecn->ect1, 0);
@@ -7313,8 +7311,7 @@
   EXPECT_EQ(ecn->ce, 0);
   EXPECT_TRUE(client_connection->set_ecn_codepoint(ECN_CE));
   client_->SendSynchronousRequest("/foo");
-  if (!GetQuicRestartFlag(quic_receive_ecn3) ||
-      !VersionHasIetfQuicFrames(version_.transport_version)) {
+  if (!VersionHasIetfQuicFrames(version_.transport_version)) {
     EXPECT_EQ(ecn->ce, 0);
   } else {
     EXPECT_GT(ecn->ce, 0);
@@ -7342,8 +7339,7 @@
   server_thread_->Pause();
   EXPECT_EQ(ecn->ect0, 0);
   EXPECT_EQ(ecn->ce, 0);
-  if (!GetQuicRestartFlag(quic_receive_ecn3) ||
-      !VersionHasIetfQuicFrames(version_.transport_version)) {
+  if (!VersionHasIetfQuicFrames(version_.transport_version)) {
     EXPECT_EQ(ecn->ect1, 0);
   } else {
     EXPECT_GT(ecn->ect1, 0);
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index b767764..ac61c60 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -16929,23 +16929,17 @@
     QuicConnectionPeer::SendPing(&connection_);
   }
   QuicConnectionStats stats = connection_.GetStats();
-  if (GetQuicRestartFlag(quic_receive_ecn3)) {
-    ASSERT_TRUE(ack_frame.ecn_counters.has_value());
-    EXPECT_EQ(ack_frame.ecn_counters->ect0, 1);
-    EXPECT_EQ(stats.num_ack_frames_sent_with_ecn,
-              connection_.version().HasIetfQuicFrames() ? 1 : 0);
-  } else {
-    EXPECT_FALSE(ack_frame.ecn_counters.has_value());
-    EXPECT_EQ(stats.num_ack_frames_sent_with_ecn, 0);
-  }
+  ASSERT_TRUE(ack_frame.ecn_counters.has_value());
+  EXPECT_EQ(ack_frame.ecn_counters->ect0, 1);
+  EXPECT_EQ(stats.num_ack_frames_sent_with_ecn,
+            connection_.version().HasIetfQuicFrames() ? 1 : 0);
   EXPECT_EQ(stats.num_ecn_marks_received.ect0, 1);
   EXPECT_EQ(stats.num_ecn_marks_received.ect1, 0);
   EXPECT_EQ(stats.num_ecn_marks_received.ce, 0);
 }
 
 TEST_P(QuicConnectionTest, EcnMarksCoalescedPacket) {
-  if (!connection_.version().CanSendCoalescedPackets() ||
-      !GetQuicRestartFlag(quic_receive_ecn3)) {
+  if (!connection_.version().CanSendCoalescedPackets()) {
     return;
   }
   QuicCryptoFrame crypto_frame1{ENCRYPTION_HANDSHAKE, 0, "foo"};
@@ -16997,21 +16991,15 @@
     EXPECT_TRUE(ack_frame.ecn_counters.has_value());
     EXPECT_EQ(ack_frame.ecn_counters->ect0, 1);
   }
-  if (GetQuicRestartFlag(quic_receive_ecn3)) {
-    EXPECT_EQ(stats.num_ecn_marks_received.ect0, 2);
-    EXPECT_EQ(stats.num_ack_frames_sent_with_ecn,
-              connection_.version().HasIetfQuicFrames() ? 2 : 0);
-  } else {
-    EXPECT_EQ(stats.num_ecn_marks_received.ect0, 0);
-    EXPECT_EQ(stats.num_ack_frames_sent_with_ecn, 0);
-  }
+  EXPECT_EQ(stats.num_ecn_marks_received.ect0, 2);
+  EXPECT_EQ(stats.num_ack_frames_sent_with_ecn,
+            connection_.version().HasIetfQuicFrames() ? 2 : 0);
   EXPECT_EQ(stats.num_ecn_marks_received.ect1, 0);
   EXPECT_EQ(stats.num_ecn_marks_received.ce, 0);
 }
 
 TEST_P(QuicConnectionTest, EcnMarksUndecryptableCoalescedPacket) {
-  if (!connection_.version().CanSendCoalescedPackets() ||
-      !GetQuicRestartFlag(quic_receive_ecn3)) {
+  if (!connection_.version().CanSendCoalescedPackets()) {
     return;
   }
   // SetFromConfig is always called after construction from InitializeSession.
@@ -17126,11 +17114,9 @@
   EXPECT_EQ(ack_frame.ecn_counters->ect0,
             connection_.SupportsMultiplePacketNumberSpaces() ? 1 : 2);
   QuicConnectionStats stats = connection_.GetStats();
-  EXPECT_EQ(stats.num_ecn_marks_received.ect0,
-            GetQuicRestartFlag(quic_receive_ecn3) ? 2 : 0);
+  EXPECT_EQ(stats.num_ecn_marks_received.ect0, 2);
   EXPECT_EQ(stats.num_ecn_marks_received.ect1, 0);
-  EXPECT_EQ(stats.num_ecn_marks_received.ce,
-            GetQuicRestartFlag(quic_receive_ecn3) ? 1 : 0);
+  EXPECT_EQ(stats.num_ecn_marks_received.ce, 1);
 }
 
 TEST_P(QuicConnectionTest, ReceivedPacketInfoDefaults) {
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index f222234..299da03 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -107,8 +107,6 @@
 QUIC_FLAG(quic_reloadable_flag_quic_clone_ecn, true)
 // When true, defaults to BBR congestion control instead of Cubic.
 QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr, false)
-// When true, report received ECN markings to the peer. Replaces quic_receive_ecn2 to use correct codepoints.
-QUIC_FLAG(quic_restart_flag_quic_receive_ecn3, true)
 // When true, support RFC9369.
 QUIC_FLAG(quic_reloadable_flag_quic_enable_version_rfcv2, false)
 // When true, the BB2U copt causes BBR2 to wait two rounds with out draining the queue before exiting PROBE_UP and BB2S has the same effect in STARTUP.
diff --git a/quiche/quic/core/quic_packet_reader.cc b/quiche/quic/core/quic_packet_reader.cc
index 1436ab5..86062fd 100644
--- a/quiche/quic/core/quic_packet_reader.cc
+++ b/quiche/quic/core/quic_packet_reader.cc
@@ -53,11 +53,8 @@
       {QuicUdpPacketInfoBit::DROPPED_PACKETS,
        QuicUdpPacketInfoBit::PEER_ADDRESS, QuicUdpPacketInfoBit::V4_SELF_IP,
        QuicUdpPacketInfoBit::V6_SELF_IP, QuicUdpPacketInfoBit::RECV_TIMESTAMP,
-       QuicUdpPacketInfoBit::TTL, QuicUdpPacketInfoBit::GOOGLE_PACKET_HEADER});
-  if (GetQuicRestartFlag(quic_receive_ecn3)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_receive_ecn3, 2, 2);
-    info_bits.Set(QuicUdpPacketInfoBit::ECN);
-  }
+       QuicUdpPacketInfoBit::TTL, QuicUdpPacketInfoBit::GOOGLE_PACKET_HEADER,
+       QuicUdpPacketInfoBit::ECN});
   size_t packets_read =
       socket_api_.ReadMultiplePackets(fd, info_bits, &read_results_);
   for (size_t i = 0; i < packets_read; ++i) {
diff --git a/quiche/quic/core/quic_received_packet_manager.cc b/quiche/quic/core/quic_received_packet_manager.cc
index 46cc259..6cef3e4 100644
--- a/quiche/quic/core/quic_received_packet_manager.cc
+++ b/quiche/quic/core/quic_received_packet_manager.cc
@@ -124,8 +124,7 @@
     }
   }
 
-  if (GetQuicRestartFlag(quic_receive_ecn3) && ecn != ECN_NOT_ECT) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_receive_ecn3, 1, 2);
+  if (ecn != ECN_NOT_ECT) {
     if (!ack_frame_.ecn_counters.has_value()) {
       ack_frame_.ecn_counters = QuicEcnCounts();
     }
diff --git a/quiche/quic/core/quic_received_packet_manager_test.cc b/quiche/quic/core/quic_received_packet_manager_test.cc
index c09c219..f79323a 100644
--- a/quiche/quic/core/quic_received_packet_manager_test.cc
+++ b/quiche/quic/core/quic_received_packet_manager_test.cc
@@ -703,14 +703,10 @@
   RecordPacketReceipt(5, QuicTime::Zero(), ECN_ECT1);
   RecordPacketReceipt(6, QuicTime::Zero(), ECN_CE);
   QuicFrame ack = received_manager_.GetUpdatedAckFrame(QuicTime::Zero());
-  if (GetQuicRestartFlag(quic_receive_ecn3)) {
-    EXPECT_TRUE(ack.ack_frame->ecn_counters.has_value());
-    EXPECT_EQ(ack.ack_frame->ecn_counters->ect0, 1);
-    EXPECT_EQ(ack.ack_frame->ecn_counters->ect1, 1);
-    EXPECT_EQ(ack.ack_frame->ecn_counters->ce, 1);
-  } else {
-    EXPECT_FALSE(ack.ack_frame->ecn_counters.has_value());
-  }
+  EXPECT_TRUE(ack.ack_frame->ecn_counters.has_value());
+  EXPECT_EQ(ack.ack_frame->ecn_counters->ect0, 1);
+  EXPECT_EQ(ack.ack_frame->ecn_counters->ect1, 1);
+  EXPECT_EQ(ack.ack_frame->ecn_counters->ce, 1);
 }
 
 }  // namespace