Deprecate gfe2_restart_flag_quic_allow_smaller_packets.

PiperOrigin-RevId: 516301763
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index 7a96366..09b3b4b 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -57,8 +57,6 @@
 QUIC_FLAG(quic_reloadable_flag_quic_remove_connection_migration_connection_option_v2, false)
 // If true, include stream information in idle timeout connection close detail.
 QUIC_FLAG(quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, true)
-// If true, lowers the minimum packet size to that in the spec.
-QUIC_FLAG(quic_restart_flag_quic_allow_smaller_packets, true)
 // If true, quic server will send ENABLE_CONNECT_PROTOCOL setting and and endpoint will validate required request/response headers and extended CONNECT mechanism and update code counts of valid/invalid headers.
 QUIC_FLAG(quic_reloadable_flag_quic_verify_request_headers_2, true)
 // If true, reject or send error response code upon receiving invalid request or response headers. This flag depends on --gfe2_reloadable_flag_quic_verify_request_headers_2.
diff --git a/quiche/quic/core/quic_packet_creator.cc b/quiche/quic/core/quic_packet_creator.cc
index 5599f8f..c04a418 100644
--- a/quiche/quic/core/quic_packet_creator.cc
+++ b/quiche/quic/core/quic_packet_creator.cc
@@ -630,16 +630,6 @@
       MinPlaintextPacketSize(framer_->version(), GetPacketNumberLength());
   if (plaintext_bytes_written < min_plaintext_size) {
     needs_padding = true;
-    if (!GetQuicRestartFlag(quic_allow_smaller_packets)) {
-      // Recalculate sizes with the stream frame not being marked as the last
-      // frame in the packet.
-      min_frame_size = QuicFramer::GetMinStreamFrameSize(
-          framer_->transport_version(), id, stream_offset,
-          /* last_frame_in_packet= */ false, remaining_data_size);
-      available_size = max_plaintext_size_ - writer.length() - min_frame_size;
-      bytes_consumed = std::min<size_t>(available_size, remaining_data_size);
-      plaintext_bytes_written = min_frame_size + bytes_consumed;
-    }
   }
 
   const bool set_fin = fin && (bytes_consumed == remaining_data_size);
@@ -653,8 +643,7 @@
 
   // TODO(ianswett): AppendTypeByte and AppendStreamFrame could be optimized
   // into one method that takes a QuicStreamFrame, if warranted.
-  if (needs_padding && GetQuicRestartFlag(quic_allow_smaller_packets)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_allow_smaller_packets, 2, 5);
+  if (needs_padding) {
     if (!writer.WritePaddingBytes(min_plaintext_size -
                                   plaintext_bytes_written)) {
       QUIC_BUG(quic_bug_10752_12) << ENDPOINT << "Unable to add padding bytes";
@@ -765,13 +754,6 @@
 
 size_t QuicPacketCreator::BytesFreeForPadding() const {
   size_t consumed = PacketSize();
-
-  if (!GetQuicRestartFlag(quic_allow_smaller_packets)) {
-    consumed += ExpansionOnNewFrame();
-  } else {
-    // The next frame (which is PADDING) will be prepended to the packet.
-    QUIC_RESTART_FLAG_COUNT_N(quic_allow_smaller_packets, 5, 5);
-  }
   return max_plaintext_size_ - std::min(max_plaintext_size_, consumed);
 }
 
@@ -1865,20 +1847,9 @@
       MinPlaintextPacketSize(framer_->version(), GetPacketNumberLength())) {
     return;
   }
-  QuicByteCount min_header_protection_padding;
-  if (GetQuicRestartFlag(quic_allow_smaller_packets)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_allow_smaller_packets, 4, 5);
-    min_header_protection_padding =
-        MinPlaintextPacketSize(framer_->version(), GetPacketNumberLength()) -
-        frame_bytes;
-  } else {
-    min_header_protection_padding =
-        std::max(1 + ExpansionOnNewFrame(),
-                 MinPlaintextPacketSize(framer_->version(),
-                                        GetPacketNumberLength()) -
-                     frame_bytes) -
-        ExpansionOnNewFrame();
-  }
+  QuicByteCount min_header_protection_padding =
+      MinPlaintextPacketSize(framer_->version(), GetPacketNumberLength()) -
+      frame_bytes;
   // Update pending_padding_bytes_.
   pending_padding_bytes_ =
       std::max(pending_padding_bytes_, min_header_protection_padding);
@@ -1966,11 +1937,9 @@
     pending_padding_bytes_ -= padding_bytes;
   }
 
-  if (!queued_frames_.empty() &&
-      GetQuicRestartFlag(quic_allow_smaller_packets)) {
+  if (!queued_frames_.empty()) {
     // Insert PADDING before the other frames to avoid adding a length field
     // to any trailing STREAM frame.
-    QUIC_RESTART_FLAG_COUNT_N(quic_allow_smaller_packets, 3, 5);
     if (needs_full_padding_) {
       padding_bytes = BytesFreeForPadding();
     }
@@ -2157,11 +2126,7 @@
   // 1.3 is used, unittests still use NullEncrypter/NullDecrypter (and other
   // test crypters) which also only use 12 byte tags.
   //
-  if (GetQuicRestartFlag(quic_allow_smaller_packets)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_allow_smaller_packets, 1, 5);
-    return (version.UsesTls() ? 4 : 8) - packet_number_length;
-  }
-  return 7;
+  return (version.UsesTls() ? 4 : 8) - packet_number_length;
 }
 
 QuicPacketNumber QuicPacketCreator::NextSendingPacketNumber() const {
diff --git a/quiche/quic/core/quic_packet_creator_test.cc b/quiche/quic/core/quic_packet_creator_test.cc
index 63a2dc1..f1aa297 100644
--- a/quiche/quic/core/quic_packet_creator_test.cc
+++ b/quiche/quic/core/quic_packet_creator_test.cc
@@ -307,10 +307,7 @@
     }
     frames_.clear();
     ASSERT_GT(payload_len, 0);  // Must have a frame!
-    size_t min_payload =
-        (version.UsesTls() && GetQuicRestartFlag(quic_allow_smaller_packets))
-            ? 3
-            : 7;
+    size_t min_payload = version.UsesTls() ? 3 : 7;
     bool need_padding =
         (version.HasHeaderProtection() && (payload_len < min_payload));
     {
@@ -320,7 +317,7 @@
       EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
       EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
       EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
-      if (need_padding && GetQuicRestartFlag(quic_allow_smaller_packets)) {
+      if (need_padding) {
         EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
       }
       if (has_ack) {
@@ -335,9 +332,6 @@
       if (has_stream) {
         EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
       }
-      if (need_padding && !GetQuicRestartFlag(quic_allow_smaller_packets)) {
-        EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
-      }
       EXPECT_CALL(framer_visitor_, OnPacketComplete());
     }
     ProcessPacket(serialized);
@@ -497,12 +491,9 @@
     overhead +=
         QuicFramer::GetMinCryptoFrameSize(kOffset, kMaxOutgoingPacketSize);
   } else {
-    overhead +=
-        GetQuicRestartFlag(quic_allow_smaller_packets)
-            ? QuicFramer::GetMinStreamFrameSize(
-                  client_framer_.transport_version(),
-                  GetNthClientInitiatedStreamId(1), kOffset, false, 0)
-            : GetStreamFrameOverhead(client_framer_.transport_version());
+    overhead += QuicFramer::GetMinStreamFrameSize(
+        client_framer_.transport_version(), GetNthClientInitiatedStreamId(1),
+        kOffset, false, 0);
   }
   ASSERT_GT(kMaxOutgoingPacketSize, overhead);
   size_t capacity = kDefaultMaxPacketSize - overhead;
@@ -540,9 +531,7 @@
     // (1 byte) and to expand the stream frame (another 2 bytes) the packet
     // will not be padded.
     // Padding is skipped when we try to send coalesced packets.
-    if ((!GetQuicRestartFlag(quic_allow_smaller_packets) && bytes_free < 3 &&
-         !QuicVersionUsesCryptoFrames(client_framer_.transport_version())) ||
-        client_framer_.version().CanSendCoalescedPackets()) {
+    if (client_framer_.version().CanSendCoalescedPackets()) {
       EXPECT_EQ(kDefaultMaxPacketSize - bytes_free,
                 serialized_packet_->encrypted_length);
     } else {
@@ -1556,13 +1545,8 @@
     EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
     EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
     if (client_framer_.version().HasHeaderProtection()) {
-      if (GetQuicRestartFlag(quic_allow_smaller_packets)) {
-        EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
-        EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
-      } else {
-        EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
-        EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
-      }
+      EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
+      EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
     } else {
       EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
     }
@@ -1685,14 +1669,13 @@
   // 1.
   QuicStreamId stream_id = QuicUtils::GetFirstBidirectionalStreamId(
       client_framer_.transport_version(), Perspective::IS_CLIENT);
-  size_t length = GetPacketHeaderOverhead(client_framer_.transport_version()) +
-                  GetEncryptionOverhead() +
-                  QuicFramer::GetMinStreamFrameSize(
-                      client_framer_.transport_version(), stream_id, 0,
-                      /*last_frame_in_packet=*/
-                      GetQuicRestartFlag(quic_allow_smaller_packets),
-                      kStreamFramePayloadSize + 1) +
-                  kStreamFramePayloadSize + 1;
+  size_t length =
+      GetPacketHeaderOverhead(client_framer_.transport_version()) +
+      GetEncryptionOverhead() +
+      QuicFramer::GetMinStreamFrameSize(
+          client_framer_.transport_version(), stream_id, 0,
+          /*last_frame_in_packet=*/true, kStreamFramePayloadSize + 1) +
+      kStreamFramePayloadSize + 1;
   creator_.SetMaxPacketLength(length);
   creator_.AddPendingPadding(kMaxNumRandomPaddingBytes);
   QuicByteCount pending_padding_bytes = creator_.pending_padding_bytes();
@@ -2145,15 +2128,10 @@
     EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
     EXPECT_CALL(framer_visitor_, OnPacketHeader(_))
         .WillOnce(DoAll(SaveArg<0>(&header), Return(true)));
-    if (client_framer_.version().HasHeaderProtection() &&
-        GetQuicRestartFlag(quic_allow_smaller_packets)) {
+    if (client_framer_.version().HasHeaderProtection()) {
       EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
     }
     EXPECT_CALL(framer_visitor_, OnPingFrame(_));
-    if (client_framer_.version().HasHeaderProtection() &&
-        !GetQuicRestartFlag(quic_allow_smaller_packets)) {
-      EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
-    }
     EXPECT_CALL(framer_visitor_, OnPacketComplete());
   }
   ProcessPacket(serialized);
@@ -2329,8 +2307,7 @@
     EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
     EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
     if (i != ENCRYPTION_ZERO_RTT) {
-      if (GetQuicRestartFlag(quic_allow_smaller_packets) &&
-          i != ENCRYPTION_INITIAL) {
+      if (i != ENCRYPTION_INITIAL) {
         EXPECT_CALL(framer_visitor_, OnPaddingFrame(_))
             .Times(testing::AtMost(1));
       }
@@ -2340,26 +2317,17 @@
                   OnAckRange(QuicPacketNumber(1), QuicPacketNumber(2)))
           .WillOnce(Return(true));
       EXPECT_CALL(framer_visitor_, OnAckFrameEnd(_)).WillOnce(Return(true));
-      if (!GetQuicRestartFlag(quic_allow_smaller_packets)) {
-        EXPECT_CALL(framer_visitor_, OnPaddingFrame(_))
-            .Times(testing::AtMost(1));
-      }
     }
     if (i == ENCRYPTION_INITIAL) {
       // Verify padding is added.
       EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
     }
-    if (GetQuicRestartFlag(quic_allow_smaller_packets) &&
-        i == ENCRYPTION_ZERO_RTT) {
+    if (i == ENCRYPTION_ZERO_RTT) {
       EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
     }
     if (i != ENCRYPTION_INITIAL && i != ENCRYPTION_HANDSHAKE) {
       EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
     }
-    if (!GetQuicRestartFlag(quic_allow_smaller_packets) &&
-        i == ENCRYPTION_ZERO_RTT) {
-      EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
-    }
     EXPECT_CALL(framer_visitor_, OnPacketComplete());
     server_framer_.ProcessPacket(*packets[i]);
   }
@@ -2472,8 +2440,6 @@
         PACKET_3BYTE_PACKET_NUMBER, PACKET_4BYTE_PACKET_NUMBER}) {
     if (!version.HasHeaderProtection()) {
       EXPECT_EQ(creator_.MinPlaintextPacketSize(version, pn_length), 0);
-    } else if (!GetQuicRestartFlag(quic_allow_smaller_packets)) {
-      EXPECT_EQ(creator_.MinPlaintextPacketSize(version, pn_length), 7);
     } else {
       EXPECT_EQ(creator_.MinPlaintextPacketSize(version, pn_length),
                 (version.UsesTls() ? 4 : 8) - pn_length);
@@ -2507,13 +2473,7 @@
     EXPECT_CALL(delegate_, OnSerializedPacket(_))
         .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
     creator_.FlushCurrentPacket();
-    /* Without the fix, the packet is not full-length. */
-    if (GetQuicRestartFlag(quic_allow_smaller_packets)) {
-      EXPECT_EQ(serialized_packet_->encrypted_length, kDefaultMaxPacketSize);
-    } else {
-      EXPECT_EQ(serialized_packet_->encrypted_length,
-                kDefaultMaxPacketSize - bytes_free);
-    }
+    EXPECT_EQ(serialized_packet_->encrypted_length, kDefaultMaxPacketSize);
     DeleteSerializedPacket();
   }
 }
@@ -3074,10 +3034,6 @@
     // frames, so the expected packet length differs slightly.
     expected_packet_length = 32;
   }
-  if (framer_.version().HasHeaderProtection() &&
-      !GetQuicRestartFlag(quic_allow_smaller_packets)) {
-    expected_packet_length = 33;
-  }
   EXPECT_EQ(expected_packet_length, packets_[0].encrypted_length);
 }
 
@@ -4035,8 +3991,7 @@
   ASSERT_FALSE(packets_[0].nonretransmittable_frames.empty());
   QuicFrame padding = packets_[0].nonretransmittable_frames[0];
   // Verify stream frame expansion is excluded.
-  EXPECT_EQ(padding.padding_frame.num_padding_bytes,
-            GetQuicRestartFlag(quic_allow_smaller_packets) ? 1 : 4);
+  EXPECT_EQ(padding.padding_frame.num_padding_bytes, 1);
 }
 
 TEST_F(QuicPacketCreatorMultiplePacketsTest,