gfe-relnote: deprecate gfe2_reloadable_flag_quic_writevdata_at_level

PiperOrigin-RevId: 305040543
Change-Id: I1fa92bc74403ffd1f06e352fb107c37284950669
diff --git a/quic/core/quic_crypto_stream.cc b/quic/core/quic_crypto_stream.cc
index 094613c..73584b5 100644
--- a/quic/core/quic_crypto_stream.cc
+++ b/quic/core/quic_crypto_stream.cc
@@ -38,8 +38,7 @@
       substreams_{{{this, ENCRYPTION_INITIAL},
                    {this, ENCRYPTION_HANDSHAKE},
                    {this, ENCRYPTION_ZERO_RTT},
-                   {this, ENCRYPTION_FORWARD_SECURE}}},
-      writevdata_at_level_(GetQuicReloadableFlag(quic_writevdata_at_level)) {
+                   {this, ENCRYPTION_FORWARD_SECURE}}} {
   // The crypto stream is exempt from connection level flow control.
   DisableConnectionFlowControlForThisStream();
 }
@@ -283,33 +282,9 @@
     pending.offset = retransmission.begin()->min();
     pending.length =
         retransmission.begin()->max() - retransmission.begin()->min();
-    QuicConsumedData consumed(0, false);
-    if (!writevdata_at_level_) {
-      EncryptionLevel current_encryption_level =
-          session()->connection()->encryption_level();
-      // Set appropriate encryption level.
-      session()->connection()->SetDefaultEncryptionLevel(
-          retransmission_encryption_level);
-      consumed = stream_delegate()->WritevData(
-          id(), pending.length, pending.offset, NO_FIN,
-          HANDSHAKE_RETRANSMISSION, QuicheNullOpt);
-      QUIC_DVLOG(1) << ENDPOINT << "stream " << id()
-                    << " tries to retransmit stream data [" << pending.offset
-                    << ", " << pending.offset + pending.length
-                    << ") with encryption level: "
-                    << retransmission_encryption_level
-                    << ", consumed: " << consumed;
-      OnStreamFrameRetransmitted(pending.offset, consumed.bytes_consumed,
-                                 consumed.fin_consumed);
-      // Restore encryption level.
-      session()->connection()->SetDefaultEncryptionLevel(
-          current_encryption_level);
-    } else {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_writevdata_at_level, 1, 2);
-      consumed = RetransmitStreamDataAtLevel(pending.offset, pending.length,
-                                             retransmission_encryption_level,
-                                             HANDSHAKE_RETRANSMISSION);
-    }
+    QuicConsumedData consumed = RetransmitStreamDataAtLevel(
+        pending.offset, pending.length, retransmission_encryption_level,
+        HANDSHAKE_RETRANSMISSION);
     if (consumed.bytes_consumed < pending.length) {
       // The connection is write blocked.
       break;
@@ -334,35 +309,12 @@
     }
   }
   retransmission.Difference(bytes_acked());
-  EncryptionLevel current_encryption_level =
-      session()->connection()->encryption_level();
   for (const auto& interval : retransmission) {
     QuicStreamOffset retransmission_offset = interval.min();
     QuicByteCount retransmission_length = interval.max() - interval.min();
-    QuicConsumedData consumed(0, false);
-    if (!writevdata_at_level_) {
-      // Set appropriate encryption level.
-      session()->connection()->SetDefaultEncryptionLevel(send_encryption_level);
-      consumed = stream_delegate()->WritevData(id(), retransmission_length,
-                                               retransmission_offset, NO_FIN,
-                                               type, QuicheNullOpt);
-      QUIC_DVLOG(1) << ENDPOINT << "stream " << id()
-                    << " is forced to retransmit stream data ["
-                    << retransmission_offset << ", "
-                    << retransmission_offset + retransmission_length
-                    << "), with encryption level: " << send_encryption_level
-                    << ", consumed: " << consumed;
-      OnStreamFrameRetransmitted(retransmission_offset, consumed.bytes_consumed,
-                                 consumed.fin_consumed);
-      // Restore encryption level.
-      session()->connection()->SetDefaultEncryptionLevel(
-          current_encryption_level);
-    } else {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_writevdata_at_level, 2, 2);
-      consumed = RetransmitStreamDataAtLevel(retransmission_offset,
-                                             retransmission_length,
-                                             send_encryption_level, type);
-    }
+    QuicConsumedData consumed = RetransmitStreamDataAtLevel(
+        retransmission_offset, retransmission_length, send_encryption_level,
+        type);
     if (consumed.bytes_consumed < retransmission_length) {
       // The connection is write blocked.
       return false;
@@ -378,7 +330,6 @@
     EncryptionLevel encryption_level,
     TransmissionType type) {
   DCHECK_EQ(HANDSHAKE_RETRANSMISSION, type);
-  DCHECK(writevdata_at_level_);
   const auto consumed = stream_delegate()->WritevData(
       id(), retransmission_length, retransmission_offset, NO_FIN, type,
       encryption_level);
diff --git a/quic/core/quic_crypto_stream.h b/quic/core/quic_crypto_stream.h
index 82f81fe..23f7dfc 100644
--- a/quic/core/quic_crypto_stream.h
+++ b/quic/core/quic_crypto_stream.h
@@ -197,9 +197,6 @@
   // Keeps state for data sent/received in CRYPTO frames at each encryption
   // level.
   std::array<CryptoSubstream, NUM_ENCRYPTION_LEVELS> substreams_;
-
-  // Latched value of gfe2_reloadable_flag_quic_writevdata_at_level.
-  const bool writevdata_at_level_;
 };
 
 }  // namespace quic