gfe-relnote: Deprecate gfe2_reloadable_flag_quic_deprecate_queued_control_frames.
Remove queued_control_frames_ from QuicPacketGenerator.
PiperOrigin-RevId: 257595927
Change-Id: I1081154891b70d1235a6cc08e77bbb00fd8b4c72
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 38656b3..7f3f01e 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -708,7 +708,7 @@
GetServerConnectionIdAsRecipient(header, perspective_)) ||
PacketCanReplaceConnectionId(header, perspective_));
- if (!packet_generator_.IsPendingPacketEmpty()) {
+ if (packet_generator_.HasPendingFrames()) {
// Incoming packets may change a queued ACK frame.
const std::string error_details =
"Pending frames must be serialized before incoming packets are "
@@ -1517,16 +1517,10 @@
}
bool QuicConnection::SendControlFrame(const QuicFrame& frame) {
- if (!packet_generator_.deprecate_queued_control_frames() &&
- !CanWrite(HAS_RETRANSMITTABLE_DATA) && frame.type != PING_FRAME) {
- QUIC_DVLOG(1) << ENDPOINT << "Failed to send control frame: " << frame;
- // Do not check congestion window for ping.
- return false;
- }
ScopedPacketFlusher flusher(this);
const bool consumed =
packet_generator_.ConsumeRetransmittableControlFrame(frame);
- if (packet_generator_.deprecate_queued_control_frames() && !consumed) {
+ if (!consumed) {
QUIC_DVLOG(1) << ENDPOINT << "Failed to send control frame: " << frame;
return false;
}
@@ -1921,7 +1915,7 @@
ScopedPacketFlusher flusher(this);
packet_generator_.FlushAllQueuedFrames();
}
- DCHECK(!packet_generator_.HasQueuedFrames());
+ DCHECK(!packet_generator_.HasPendingFrames());
char buffer[kMaxOutgoingPacketSize];
packet_generator_.ReserializeAllFrames(pending, buffer,
kMaxOutgoingPacketSize);
@@ -2474,7 +2468,7 @@
}
void QuicConnection::SetDefaultEncryptionLevel(EncryptionLevel level) {
- if (level != encryption_level_ && packet_generator_.HasQueuedFrames()) {
+ if (level != encryption_level_ && packet_generator_.HasPendingFrames()) {
// Flush all queued frames when encryption level changes.
ScopedPacketFlusher flusher(this);
packet_generator_.FlushAllQueuedFrames();
@@ -2715,7 +2709,7 @@
bool QuicConnection::HasQueuedData() const {
return pending_version_negotiation_packet_ || !queued_packets_.empty() ||
- packet_generator_.HasQueuedFrames();
+ packet_generator_.HasPendingFrames();
}
bool QuicConnection::CanWriteStreamData() {
diff --git a/quic/core/quic_packet_generator.cc b/quic/core/quic_packet_generator.cc
index 210e24d..fe17069 100644
--- a/quic/core/quic_packet_generator.cc
+++ b/quic/core/quic_packet_generator.cc
@@ -27,13 +27,9 @@
next_transmission_type_(NOT_RETRANSMISSION),
flusher_attached_(false),
random_generator_(random_generator),
- fully_pad_crypto_handshake_packets_(true),
- deprecate_queued_control_frames_(
- GetQuicReloadableFlag(quic_deprecate_queued_control_frames)) {}
+ fully_pad_crypto_handshake_packets_(true) {}
-QuicPacketGenerator::~QuicPacketGenerator() {
- DeleteFrames(&queued_control_frames_);
-}
+QuicPacketGenerator::~QuicPacketGenerator() {}
bool QuicPacketGenerator::ConsumeRetransmittableControlFrame(
const QuicFrame& frame) {
@@ -41,29 +37,23 @@
<< "Adding a control frame with no control frame id: " << frame;
DCHECK(QuicUtils::IsRetransmittableFrame(frame.type)) << frame;
MaybeBundleAckOpportunistically();
- if (deprecate_queued_control_frames_) {
- QUIC_RELOADABLE_FLAG_COUNT(quic_deprecate_queued_control_frames);
- if (packet_creator_.HasPendingFrames()) {
- if (packet_creator_.AddSavedFrame(frame, next_transmission_type_)) {
- // There is pending frames and current frame fits.
- return true;
- }
+ if (packet_creator_.HasPendingFrames()) {
+ if (packet_creator_.AddSavedFrame(frame, next_transmission_type_)) {
+ // There is pending frames and current frame fits.
+ return true;
}
- DCHECK(!packet_creator_.HasPendingFrames());
- if (frame.type != PING_FRAME && frame.type != CONNECTION_CLOSE_FRAME &&
- !delegate_->ShouldGeneratePacket(HAS_RETRANSMITTABLE_DATA,
- NOT_HANDSHAKE)) {
- // Do not check congestion window for ping or connection close frames.
- return false;
- }
- const bool success =
- packet_creator_.AddSavedFrame(frame, next_transmission_type_);
- DCHECK(success);
- return success;
}
- queued_control_frames_.push_back(frame);
- SendQueuedFrames(/*flush=*/false);
- return true;
+ DCHECK(!packet_creator_.HasPendingFrames());
+ if (frame.type != PING_FRAME && frame.type != CONNECTION_CLOSE_FRAME &&
+ !delegate_->ShouldGeneratePacket(HAS_RETRANSMITTABLE_DATA,
+ NOT_HANDSHAKE)) {
+ // Do not check congestion window for ping or connection close frames.
+ return false;
+ }
+ const bool success =
+ packet_creator_.AddSavedFrame(frame, next_transmission_type_);
+ DCHECK(success);
+ return success;
}
size_t QuicPacketGenerator::ConsumeCryptoData(EncryptionLevel level,
@@ -77,8 +67,9 @@
// TODO(nharper): Once we have separate packet number spaces, everything
// should be driven by encryption level, and we should stop flushing in this
// spot.
- const bool flush = packet_creator_.HasPendingRetransmittableFrames();
- SendQueuedFrames(flush);
+ if (packet_creator_.HasPendingRetransmittableFrames()) {
+ packet_creator_.Flush();
+ }
size_t total_bytes_consumed = 0;
@@ -101,7 +92,7 @@
}
// Don't allow the handshake to be bundled with other retransmittable frames.
- SendQueuedFrames(/*flush=*/true);
+ packet_creator_.Flush();
return total_bytes_consumed;
}
@@ -120,9 +111,9 @@
<< "Handshake packets should never send a fin";
// To make reasoning about crypto frames easier, we don't combine them with
// other retransmittable frames in a single packet.
- const bool flush =
- has_handshake && packet_creator_.HasPendingRetransmittableFrames();
- SendQueuedFrames(flush);
+ if (has_handshake && packet_creator_.HasPendingRetransmittableFrames()) {
+ packet_creator_.Flush();
+ }
size_t total_bytes_consumed = 0;
bool fin_consumed = false;
@@ -138,7 +129,7 @@
// We determine if we can enter the fast path before executing
// the slow path loop.
bool run_fast_path =
- !has_handshake && state != FIN_AND_PADDING && !HasQueuedFrames() &&
+ !has_handshake && state != FIN_AND_PADDING && !HasPendingFrames() &&
write_length - total_bytes_consumed > kMaxOutgoingPacketSize;
while (!run_fast_path && delegate_->ShouldGeneratePacket(
@@ -178,7 +169,7 @@
packet_creator_.Flush();
run_fast_path =
- !has_handshake && state != FIN_AND_PADDING && !HasQueuedFrames() &&
+ !has_handshake && state != FIN_AND_PADDING && !HasPendingFrames() &&
write_length - total_bytes_consumed > kMaxOutgoingPacketSize;
}
@@ -189,7 +180,7 @@
// Don't allow the handshake to be bundled with other retransmittable frames.
if (has_handshake) {
- SendQueuedFrames(/*flush=*/true);
+ packet_creator_.Flush();
}
return QuicConsumedData(total_bytes_consumed, fin_consumed);
@@ -245,40 +236,6 @@
SetMaxPacketLength(current_mtu);
}
-bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const {
- DCHECK(HasPendingFrames() || packet_creator_.pending_padding_bytes() > 0);
- HasRetransmittableData retransmittable =
- packet_creator_.pending_padding_bytes() > 0 ? NO_RETRANSMITTABLE_DATA
- : HAS_RETRANSMITTABLE_DATA;
- if (retransmittable == HAS_RETRANSMITTABLE_DATA) {
- DCHECK(!queued_control_frames_.empty()); // These are retransmittable.
- }
- return delegate_->ShouldGeneratePacket(retransmittable, NOT_HANDSHAKE);
-}
-
-void QuicPacketGenerator::SendQueuedFrames(bool flush) {
- // Only add pending frames if we are SURE we can then send the whole packet.
- while (HasPendingFrames() &&
- (flush || CanSendWithNextPendingFrameAddition())) {
- bool first_frame = packet_creator_.CanSetMaxPacketLength();
- if (!AddNextPendingFrame() && first_frame) {
- // A single frame cannot fit into the packet, tear down the connection.
- QUIC_BUG << "A single frame cannot fit into packet."
- << " number of queued_control_frames: "
- << queued_control_frames_.size();
- if (!queued_control_frames_.empty()) {
- QUIC_LOG(INFO) << queued_control_frames_[0];
- }
- delegate_->OnUnrecoverableError(QUIC_FAILED_TO_SERIALIZE_PACKET,
- "Single frame cannot fit into a packet");
- return;
- }
- }
- if (flush) {
- packet_creator_.Flush();
- }
-}
-
bool QuicPacketGenerator::PacketFlusherAttached() const {
return flusher_attached_;
}
@@ -291,7 +248,6 @@
}
void QuicPacketGenerator::Flush() {
- SendQueuedFrames(/*flush=*/false);
packet_creator_.Flush();
SendRemainingPendingPadding();
flusher_attached_ = false;
@@ -309,34 +265,11 @@
}
void QuicPacketGenerator::FlushAllQueuedFrames() {
- SendQueuedFrames(/*flush=*/true);
-}
-
-bool QuicPacketGenerator::HasQueuedFrames() const {
- return packet_creator_.HasPendingFrames() || HasPendingFrames();
-}
-
-bool QuicPacketGenerator::IsPendingPacketEmpty() const {
- return !packet_creator_.HasPendingFrames();
+ packet_creator_.Flush();
}
bool QuicPacketGenerator::HasPendingFrames() const {
- return !queued_control_frames_.empty();
-}
-
-bool QuicPacketGenerator::AddNextPendingFrame() {
- QUIC_BUG_IF(!flusher_attached_) << "Packet flusher is not attached when "
- "generator tries to write control frames.";
- QUIC_BUG_IF(queued_control_frames_.empty())
- << "AddNextPendingFrame called with no queued control frames.";
-
- if (!packet_creator_.AddSavedFrame(queued_control_frames_.back(),
- next_transmission_type_)) {
- // Packet was full.
- return false;
- }
- queued_control_frames_.pop_back();
- return true;
+ return packet_creator_.HasPendingFrames();
}
void QuicPacketGenerator::StopSendingVersion() {
@@ -427,15 +360,15 @@
}
void QuicPacketGenerator::SendRemainingPendingPadding() {
- while (packet_creator_.pending_padding_bytes() > 0 && !HasQueuedFrames() &&
- CanSendWithNextPendingFrameAddition()) {
+ while (
+ packet_creator_.pending_padding_bytes() > 0 && !HasPendingFrames() &&
+ delegate_->ShouldGeneratePacket(NO_RETRANSMITTABLE_DATA, NOT_HANDSHAKE)) {
packet_creator_.Flush();
}
}
bool QuicPacketGenerator::HasRetransmittableFrames() const {
- return !queued_control_frames_.empty() ||
- packet_creator_.HasPendingRetransmittableFrames();
+ return packet_creator_.HasPendingRetransmittableFrames();
}
bool QuicPacketGenerator::HasPendingStreamFramesOfStream(
@@ -468,7 +401,6 @@
if (message_length > GetCurrentLargestMessagePayload()) {
return MESSAGE_STATUS_TOO_LARGE;
}
- SendQueuedFrames(/*flush=*/false);
if (!packet_creator_.HasRoomForMessageFrame(message_length)) {
packet_creator_.Flush();
}
diff --git a/quic/core/quic_packet_generator.h b/quic/core/quic_packet_generator.h
index 2f82654..ea7da5d 100644
--- a/quic/core/quic_packet_generator.h
+++ b/quic/core/quic_packet_generator.h
@@ -3,7 +3,7 @@
// found in the LICENSE file.
// Responsible for generating packets on behalf of a QuicConnection.
-// Packets are serialized just-in-time. Control frames are queued.
+// Packets are serialized just-in-time.
// Ack and Feedback frames will be requested from the Connection
// just-in-time. When a packet needs to be sent, the Generator
// will serialize a packet and pass it to QuicConnection::SendOrQueuePacket()
@@ -121,16 +121,14 @@
bool PacketFlusherAttached() const;
// Attaches packet flusher.
void AttachPacketFlusher();
- // Flushes everything, including all queued frames and pending padding.
+ // Flushes everything, including current open packet and pending padding.
void Flush();
- // Flushes all queued frames, even frames which are not sendable.
+ // Flushes current open packet.
void FlushAllQueuedFrames();
- bool HasQueuedFrames() const;
-
- // Whether the pending packet has no frames in it at the moment.
- bool IsPendingPacketEmpty() const;
+ // Returns true if there are frames pending to be serialized.
+ bool HasPendingFrames() const;
// Makes the framer not serialize the protocol version in sent packets.
void StopSendingVersion();
@@ -241,26 +239,9 @@
return fully_pad_crypto_handshake_packets_;
}
- bool deprecate_queued_control_frames() const {
- return deprecate_queued_control_frames_;
- }
-
private:
friend class test::QuicPacketGeneratorPeer;
- void SendQueuedFrames(bool flush);
-
- // Test to see if we have pending ack, or control frames.
- bool HasPendingFrames() const;
- // Returns true if addition of a pending frame (which might be
- // retransmittable) would still allow the resulting packet to be sent now.
- bool CanSendWithNextPendingFrameAddition() const;
- // Add exactly one pending frame, preferring ack frames over control frames.
- // Returns true if a pending frame is successfully added.
- // Returns false and flushes current open packet if the pending frame cannot
- // fit into current open packet.
- bool AddNextPendingFrame();
-
// Adds a random amount of padding (between 1 to 256 bytes).
void AddRandomPadding();
@@ -275,9 +256,6 @@
DelegateInterface* delegate_;
QuicPacketCreator packet_creator_;
- // TODO(fayang): remove this when deprecating
- // quic_deprecate_queued_control_frames.
- QuicFrames queued_control_frames_;
// Transmission type of the next serialized packet.
TransmissionType next_transmission_type_;
@@ -294,9 +272,6 @@
// when the out-most flusher attaches and gets cleared when the out-most
// flusher detaches.
QuicPacketNumber write_start_packet_number_;
-
- // Latched value of quic_deprecate_queued_control_frames.
- const bool deprecate_queued_control_frames_;
};
} // namespace quic
diff --git a/quic/core/quic_packet_generator_test.cc b/quic/core/quic_packet_generator_test.cc
index e996c4e..cdb19b3 100644
--- a/quic/core/quic_packet_generator_test.cc
+++ b/quic/core/quic_packet_generator_test.cc
@@ -346,15 +346,10 @@
const bool consumed =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/false);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- delete rst_frame;
- } else {
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- }
+ EXPECT_FALSE(consumed);
+ EXPECT_FALSE(generator_.HasPendingFrames());
+ EXPECT_FALSE(generator_.HasRetransmittableFrames());
+ delete rst_frame;
}
TEST_F(QuicPacketGeneratorTest, AddControlFrame_OnlyAckWritable) {
@@ -364,15 +359,10 @@
const bool consumed =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/false);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- delete rst_frame;
- } else {
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- }
+ EXPECT_FALSE(consumed);
+ EXPECT_FALSE(generator_.HasPendingFrames());
+ EXPECT_FALSE(generator_.HasRetransmittableFrames());
+ delete rst_frame;
}
TEST_F(QuicPacketGeneratorTest, AddControlFrame_WritableAndShouldNotFlush) {
@@ -381,7 +371,7 @@
generator_.ConsumeRetransmittableControlFrame(
QuicFrame(CreateRstStreamFrame()),
/*bundle_ack=*/false);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
}
@@ -392,29 +382,10 @@
const bool consumed =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/false);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- delete rst_frame;
- return;
- }
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- generator_.Flush();
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
-
- EXPECT_CALL(delegate_, OnSerializedPacket(_))
- .WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
- generator_.AttachPacketFlusher();
- generator_.FlushAllQueuedFrames();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(consumed);
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
-
- PacketContents contents;
- contents.num_rst_stream_frames = 1;
- CheckPacketContains(contents, 0);
+ delete rst_frame;
}
TEST_F(QuicPacketGeneratorTest, AddControlFrame_WritableAndShouldFlush) {
@@ -427,7 +398,7 @@
QuicFrame(CreateRstStreamFrame()),
/*bundle_ack=*/false);
generator_.Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -445,7 +416,7 @@
generator_.ConsumeCryptoData(ENCRYPTION_INITIAL, data, 0);
generator_.Flush();
EXPECT_EQ(data.length(), consumed_bytes);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -463,7 +434,7 @@
iov_.iov_len, 0, FIN);
EXPECT_EQ(0u, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
}
@@ -476,7 +447,7 @@
iov_.iov_len, 0, FIN);
EXPECT_EQ(3u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
}
@@ -492,7 +463,7 @@
generator_.Flush();
EXPECT_EQ(3u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -522,7 +493,7 @@
.bytes_consumed;
}
EXPECT_EQ(7u, consumed_bytes);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -562,7 +533,7 @@
.bytes_consumed;
}
EXPECT_EQ(3u, bytes_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -612,7 +583,7 @@
generator_.ConsumeData(3, &iov_, 1u, iov_.iov_len, 3, NO_FIN);
EXPECT_EQ(4u, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
}
@@ -629,14 +600,14 @@
iov_.iov_len, 3, NO_FIN);
EXPECT_EQ(4u, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
// Now both frames will be flushed out.
EXPECT_CALL(delegate_, OnSerializedPacket(_))
.WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
generator_.Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -683,7 +654,7 @@
iov_.iov_len, 0, NO_FIN);
EXPECT_EQ(3u, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
// This frame will not fit with the existing frame, causing the queued frame
@@ -694,11 +665,11 @@
iov_.iov_len, 3, FIN);
EXPECT_EQ(3u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
creator_->Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -721,7 +692,7 @@
iov_.iov_len, 0, true);
EXPECT_EQ(10000u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -749,7 +720,7 @@
iov_.iov_len, 0, FIN);
EXPECT_EQ(10000u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
PacketContents contents;
@@ -771,31 +742,22 @@
const bool success =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/true);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(success);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- } else {
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- }
+ EXPECT_FALSE(success);
+ EXPECT_FALSE(generator_.HasPendingFrames());
+ EXPECT_FALSE(generator_.HasRetransmittableFrames());
delegate_.SetCanWriteAnything();
- if (generator_.deprecate_queued_control_frames()) {
- generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
- /*bundle_ack=*/false);
- }
+ generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
+ /*bundle_ack=*/false);
// Create a 10000 byte IOVector.
CreateData(10000);
EXPECT_CALL(delegate_, OnSerializedPacket(_))
.WillRepeatedly(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
- if (generator_.deprecate_queued_control_frames()) {
- generator_.ConsumeRetransmittableControlFrame(
- QuicFrame(CreateRstStreamFrame()),
- /*bundle_ack=*/true);
- }
+ generator_.ConsumeRetransmittableControlFrame(
+ QuicFrame(CreateRstStreamFrame()),
+ /*bundle_ack=*/true);
QuicConsumedData consumed = generator_.ConsumeData(
QuicUtils::GetHeadersStreamId(framer_.transport_version()), &iov_, 1u,
iov_.iov_len, 0, FIN);
@@ -803,7 +765,7 @@
EXPECT_EQ(10000u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_FALSE(packets_.empty());
@@ -833,7 +795,7 @@
EXPECT_EQ(10000u, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_FALSE(packets_.empty());
@@ -852,23 +814,16 @@
const bool consumed =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/true);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- } else {
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- }
+ EXPECT_FALSE(consumed);
+ EXPECT_FALSE(generator_.HasPendingFrames());
+ EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_FALSE(generator_.HasPendingStreamFramesOfStream(3));
delegate_.SetCanWriteAnything();
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_TRUE(
- generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
- /*bundle_ack=*/false));
- }
+ EXPECT_TRUE(
+ generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
+ /*bundle_ack=*/false));
// Send some data and a control frame
MakeIOVector("quux", &iov_);
generator_.ConsumeData(3, &iov_, 1u, iov_.iov_len, 0, NO_FIN);
@@ -883,7 +838,7 @@
EXPECT_CALL(delegate_, OnSerializedPacket(_))
.WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
generator_.Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_FALSE(generator_.HasPendingStreamFramesOfStream(3));
@@ -907,14 +862,9 @@
const bool success =
generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
/*bundle_ack=*/true);
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_FALSE(success);
- EXPECT_FALSE(generator_.HasQueuedFrames());
- EXPECT_FALSE(generator_.HasRetransmittableFrames());
- } else {
- EXPECT_TRUE(generator_.HasQueuedFrames());
- EXPECT_TRUE(generator_.HasRetransmittableFrames());
- }
+ EXPECT_FALSE(success);
+ EXPECT_FALSE(generator_.HasPendingFrames());
+ EXPECT_FALSE(generator_.HasRetransmittableFrames());
delegate_.SetCanWriteAnything();
@@ -926,11 +876,9 @@
EXPECT_CALL(delegate_, OnSerializedPacket(_))
.WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
}
- if (generator_.deprecate_queued_control_frames()) {
- EXPECT_TRUE(
- generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
- /*bundle_ack=*/false));
- }
+ EXPECT_TRUE(
+ generator_.ConsumeRetransmittableControlFrame(QuicFrame(rst_frame),
+ /*bundle_ack=*/false));
// Send enough data to exceed one packet
size_t data_len = kDefaultMaxPacketSize + 100;
CreateData(data_len);
@@ -945,7 +893,7 @@
}
generator_.Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// The first packet should have the queued data and part of the stream data.
@@ -1050,7 +998,7 @@
/*offset=*/0, FIN);
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// We expect three packets, and first two of them have to be of packet_len
@@ -1088,7 +1036,7 @@
generator_.Flush();
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// Make sure we already have two packets.
@@ -1107,7 +1055,7 @@
generator_.Flush();
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// We expect first data chunk to get fragmented, but the second one to fit
@@ -1137,7 +1085,7 @@
/*offset=*/0, NO_FIN);
EXPECT_EQ(first_write_len, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
// Make sure we have no packets so far.
@@ -1152,7 +1100,7 @@
generator_.FlushAllQueuedFrames();
generator_.SetMaxPacketLength(packet_len);
EXPECT_EQ(packet_len, generator_.GetCurrentMaxPacketLength());
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// We expect to see exactly one packet serialized after that, because we send
@@ -1170,7 +1118,7 @@
/*offset=*/first_write_len, FIN);
EXPECT_EQ(second_write_len, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
// We expect the first packet to be underfilled, and the second packet be up
@@ -1221,7 +1169,7 @@
generator_.GenerateMtuDiscoveryPacket(target_mtu);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
ASSERT_EQ(1u, packets_.size());
EXPECT_EQ(target_mtu, packets_[0].encrypted_length);
@@ -1259,12 +1207,12 @@
generator_.Flush();
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_FALSE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// Send the MTU probe.
generator_.GenerateMtuDiscoveryPacket(target_mtu);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
// Send data after the MTU probe.
@@ -1277,7 +1225,7 @@
generator_.Flush();
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
ASSERT_EQ(5u, packets_.size());
@@ -1329,7 +1277,7 @@
}
generator_.ConsumeRetransmittableControlFrame(QuicFrame(frame),
/*bundle_ack=*/false);
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
}
@@ -1364,7 +1312,7 @@
kDataStreamId, &iov_, 1u, iov_.iov_len, 0, FIN_AND_PADDING);
generator_.Flush();
EXPECT_EQ(kStreamFramePayloadSize, consumed.bytes_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_EQ(1u, packets_.size());
@@ -1406,7 +1354,7 @@
kDataStreamId, &iov_, 1u, iov_.iov_len, 0, FIN_AND_PADDING);
generator_.Flush();
EXPECT_EQ(kStreamFramePayloadSize, consumed.bytes_consumed);
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_LE(1u, packets_.size());
@@ -1464,7 +1412,7 @@
FIN_AND_PADDING);
EXPECT_EQ(kStreamFramePayloadSize, consumed.bytes_consumed);
generator_.Flush();
- EXPECT_FALSE(generator_.HasQueuedFrames());
+ EXPECT_FALSE(generator_.HasPendingFrames());
EXPECT_FALSE(generator_.HasRetransmittableFrames());
EXPECT_LE(2u, packets_.size());
@@ -1502,7 +1450,7 @@
EXPECT_EQ(MESSAGE_STATUS_SUCCESS,
generator_.AddMessageFrame(
1, MakeSpan(&allocator_, "message", &storage)));
- EXPECT_TRUE(generator_.HasQueuedFrames());
+ EXPECT_TRUE(generator_.HasPendingFrames());
EXPECT_TRUE(generator_.HasRetransmittableFrames());
// Add a message which causes the flush of current packet.