gfe-relnote: deprecate quic_ignore_tlpr_if_no_pending_stream_data.
PiperOrigin-RevId: 268284975
Change-Id: I9e22888285453fa081e9ed44493c0e6aebe71de9
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index cc4899b..85489bc 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -4081,14 +4081,9 @@
QuicTime::Delta min_rto_timeout =
QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs);
srtt = manager_->GetRttStats()->SmoothedOrInitialRtt();
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- // First TLP without unacked stream data will no longer use TLPR.
- expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout);
- } else {
- expected_delay =
- std::max(QuicTime::Delta::FromMilliseconds(kMinTailLossProbeTimeoutMs),
- srtt * 0.5);
- }
+
+ // First TLP without unacked stream data will no longer use TLPR.
+ expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout);
EXPECT_EQ(expected_delay,
connection_.GetRetransmissionAlarm()->deadline() - clock_.Now());
@@ -4119,14 +4114,8 @@
ProcessAckPacket(&ack);
// Verify the retransmission delay.
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- // First TLP without unacked stream data will no longer use TLPR.
- expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout);
- } else {
- expected_delay =
- std::max(QuicTime::Delta::FromMilliseconds(kMinTailLossProbeTimeoutMs),
- srtt * 0.5);
- }
+ // First TLP without unacked stream data will no longer use TLPR.
+ expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout);
expected_delay = expected_delay - QuicTime::Delta::FromMilliseconds(5);
EXPECT_EQ(expected_delay,
connection_.GetRetransmissionAlarm()->deadline() - clock_.Now());
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 54e6444..e167c09 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -108,8 +108,6 @@
pto_enabled_(false),
max_probe_packets_per_pto_(2),
consecutive_pto_count_(0),
- ignore_tlpr_if_no_pending_stream_data_(
- GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)),
fix_rto_retransmission_(false),
handshake_mode_disabled_(false) {
SetSendAlgorithm(congestion_control_type);
@@ -1090,12 +1088,9 @@
size_t consecutive_tlp_count) const {
QuicTime::Delta srtt = rtt_stats_.SmoothedOrInitialRtt();
if (enable_half_rtt_tail_loss_probe_ && consecutive_tlp_count == 0u) {
- if (!ignore_tlpr_if_no_pending_stream_data_ ||
- !session_decides_what_to_write()) {
+ if (!session_decides_what_to_write()) {
return std::max(min_tlp_timeout_, srtt * 0.5);
}
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 1,
- 5);
if (unacked_packets().HasUnackedStreamData()) {
// Enable TLPR if there are pending data packets.
return std::max(min_tlp_timeout_, srtt * 0.5);
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h
index f201eb8..e50a181 100644
--- a/quic/core/quic_sent_packet_manager.h
+++ b/quic/core/quic_sent_packet_manager.h
@@ -408,10 +408,6 @@
return unacked_packets_.supports_multiple_packet_number_spaces();
}
- bool ignore_tlpr_if_no_pending_stream_data() const {
- return ignore_tlpr_if_no_pending_stream_data_;
- }
-
bool fix_rto_retransmission() const { return fix_rto_retransmission_; }
bool pto_enabled() const { return pto_enabled_; }
@@ -654,9 +650,6 @@
// Number of times the PTO timer has fired in a row without receiving an ack.
size_t consecutive_pto_count_;
- // Latched value of quic_ignore_tlpr_if_no_pending_stream_data.
- const bool ignore_tlpr_if_no_pending_stream_data_;
-
// Latched value of quic_fix_rto_retransmission3 and
// session_decides_what_to_write.
bool fix_rto_retransmission_;
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index 8fe02a7..be22dee 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -1912,10 +1912,8 @@
rtt_stats->set_initial_rtt(QuicTime::Delta::FromMilliseconds(100));
QuicTime::Delta srtt = rtt_stats->initial_rtt();
QuicTime::Delta expected_tlp_delay = 0.5 * srtt;
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- // With no pending stream data, TLPR is ignored.
- expected_tlp_delay = 2 * srtt;
- }
+ // With no pending stream data, TLPR is ignored.
+ expected_tlp_delay = 2 * srtt;
EXPECT_CALL(notifier_, HasUnackedStreamData()).WillRepeatedly(Return(false));
EXPECT_EQ(expected_tlp_delay,
manager_.GetRetransmissionTime() - clock_.Now());
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index f4e3f8a..68cfd6d 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -827,10 +827,7 @@
zombie_streams_[stream->id()] = std::move(it->second);
} else {
// Clean up the stream since it is no longer waiting for acks.
- if (ignore_tlpr_if_no_pending_stream_data() &&
- session_decides_what_to_write()) {
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data,
- 2, 5);
+ if (session_decides_what_to_write()) {
streams_waiting_for_acks_.erase(stream->id());
}
closed_streams_.push_back(std::move(it->second));
@@ -1486,10 +1483,7 @@
}
void QuicSession::OnStreamDoneWaitingForAcks(QuicStreamId id) {
- if (ignore_tlpr_if_no_pending_stream_data() &&
- session_decides_what_to_write()) {
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 3,
- 5);
+ if (session_decides_what_to_write()) {
streams_waiting_for_acks_.erase(id);
}
@@ -1508,8 +1502,7 @@
}
void QuicSession::OnStreamWaitingForAcks(QuicStreamId id) {
- if (!ignore_tlpr_if_no_pending_stream_data() ||
- !session_decides_what_to_write())
+ if (!session_decides_what_to_write())
return;
// Exclude crypto stream's status since it is counted in HasUnackedCryptoData.
@@ -1517,8 +1510,6 @@
return;
}
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 4,
- 5);
streams_waiting_for_acks_.insert(id);
// The number of the streams waiting for acks should not be larger than the
@@ -1675,14 +1666,7 @@
}
bool QuicSession::HasUnackedStreamData() const {
- DCHECK(ignore_tlpr_if_no_pending_stream_data());
- if (ignore_tlpr_if_no_pending_stream_data()) {
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 5,
- 5);
- return !streams_waiting_for_acks_.empty();
- }
-
- return true;
+ return !streams_waiting_for_acks_.empty();
}
WriteStreamDataResult QuicSession::WriteStreamData(QuicStreamId id,
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index 11db24d..1475532 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -651,11 +651,6 @@
// stream.
void PendingStreamOnRstStream(const QuicRstStreamFrame& frame);
- bool ignore_tlpr_if_no_pending_stream_data() const {
- return connection_->sent_packet_manager()
- .ignore_tlpr_if_no_pending_stream_data();
- }
-
// Keep track of highest received byte offset of locally closed streams, while
// waiting for a definitive final highest offset from the peer.
std::map<QuicStreamId, QuicStreamOffset>
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc
index 56b4da2..3b0becc 100644
--- a/quic/core/quic_stream_test.cc
+++ b/quic/core/quic_stream_test.cc
@@ -309,9 +309,7 @@
NO_FIN);
}));
stream_->WriteOrBufferData(QuicStringPiece(kData1, 2), false, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
EXPECT_EQ(1u, stream_->BufferedDataBytes());
}
@@ -329,9 +327,7 @@
NO_FIN);
}));
stream_->WriteOrBufferData(QuicStringPiece(kData1, 2), true, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
}
@@ -377,10 +373,8 @@
kDataLen - 1, 0u, NO_FIN);
}));
stream_->WriteOrBufferData(kData1, false, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, stream_->BufferedDataBytes());
EXPECT_TRUE(HasWriteBlockedStreams());
@@ -395,9 +389,7 @@
kDataLen - 1, kDataLen - 1, NO_FIN);
}));
stream_->OnCanWrite();
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
// And finally the end of the bytes_consumed.
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
@@ -406,9 +398,7 @@
2 * kDataLen - 2, NO_FIN);
}));
stream_->OnCanWrite();
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, WriteOrBufferDataReachStreamLimit) {
@@ -419,9 +409,7 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillOnce(Invoke(&(MockQuicSession::ConsumeData)));
stream_->WriteOrBufferData(data, false, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_CALL(*connection_, CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _));
EXPECT_QUIC_BUG(stream_->WriteOrBufferData("a", false, nullptr),
"Write too many data via stream");
@@ -456,18 +444,14 @@
NO_FIN);
}));
stream_->WriteOrBufferData(QuicStringPiece(kData1, 1), false, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_FALSE(fin_sent());
EXPECT_FALSE(rst_sent());
// Now close the stream, and expect that we send a RST.
EXPECT_CALL(*session_, SendRstStream(_, _, _));
stream_->OnClose();
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_FALSE(fin_sent());
EXPECT_TRUE(rst_sent());
}
@@ -838,15 +822,11 @@
// Stream is not waiting for acks initially.
EXPECT_FALSE(stream_->IsWaitingForAcks());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
// Send kData1.
stream_->WriteOrBufferData(kData1, false, nullptr);
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->IsWaitingForAcks());
QuicByteCount newly_acked_length = 0;
@@ -855,17 +835,13 @@
EXPECT_EQ(9u, newly_acked_length);
// Stream is not waiting for acks as all sent data is acked.
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
// Send kData2.
stream_->WriteOrBufferData(kData2, false, nullptr);
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
// Send FIN.
stream_->WriteOrBufferData("", true, nullptr);
@@ -881,9 +857,7 @@
EXPECT_EQ(9u, newly_acked_length);
// Stream is waiting for acks as FIN is not acked.
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
// FIN is acked.
@@ -891,9 +865,7 @@
&newly_acked_length));
EXPECT_EQ(0u, newly_acked_length);
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
}
@@ -908,43 +880,31 @@
stream_->WriteOrBufferData("", true, nullptr);
EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
QuicByteCount newly_acked_length = 0;
EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(),
&newly_acked_length));
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(9u, newly_acked_length);
EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 9, false, QuicTime::Delta::Zero(),
&newly_acked_length));
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(9u, newly_acked_length);
EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(),
&newly_acked_length));
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(9u, newly_acked_length);
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
// FIN is not acked yet.
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(),
&newly_acked_length));
EXPECT_EQ(0u, newly_acked_length);
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, CancelStream) {
@@ -952,25 +912,19 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
stream_->WriteOrBufferData(kData1, false, nullptr);
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
// Cancel stream.
stream_->Reset(QUIC_STREAM_NO_ERROR);
// stream still waits for acks as the error code is QUIC_STREAM_NO_ERROR, and
// data is going to be retransmitted.
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_CALL(*connection_,
OnStreamReset(stream_->id(), QUIC_STREAM_CANCELLED));
EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
@@ -986,9 +940,7 @@
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
// Stream stops waiting for acks as data is not going to be retransmitted.
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, RstFrameReceivedStreamNotFinishSending) {
@@ -996,16 +948,12 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
stream_->WriteOrBufferData(kData1, false, nullptr);
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
// RST_STREAM received.
@@ -1018,9 +966,7 @@
// Stream stops waiting for acks as it does not finish sending and rst is
// sent.
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, RstFrameReceivedStreamFinishSending) {
@@ -1028,16 +974,12 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
stream_->WriteOrBufferData(kData1, true, nullptr);
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
// RST_STREAM received.
EXPECT_CALL(*session_, SendRstStream(_, _, _)).Times(0);
@@ -1046,9 +988,7 @@
stream_->OnStreamReset(rst_frame);
// Stream still waits for acks as it finishes sending and has unacked data.
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
}
@@ -1057,16 +997,12 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
stream_->WriteOrBufferData(kData1, false, nullptr);
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
EXPECT_CALL(*session_,
SendRstStream(stream_->id(), QUIC_RST_ACKNOWLEDGEMENT, 9));
stream_->OnConnectionClosed(QUIC_INTERNAL_ERROR,
@@ -1074,9 +1010,7 @@
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
// Stream stops waiting for acks as connection is going to close.
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, CanWriteNewDataAfterData) {
@@ -1320,9 +1254,7 @@
EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
.WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
// Send [0, 27) and fin.
stream_->WriteOrBufferData(kData1, false, nullptr);
@@ -1330,9 +1262,7 @@
stream_->WriteOrBufferData(kData1, true, nullptr);
EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
// Ack [0, 9), [5, 22) and [18, 26)
// Verify [0, 9) 9 bytes are acked.
@@ -1352,9 +1282,7 @@
EXPECT_EQ(4u, newly_acked_length);
EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
// Ack [0, 27). Verify [26, 27) 1 byte is acked.
EXPECT_TRUE(stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero(),
@@ -1362,9 +1290,7 @@
EXPECT_EQ(1u, newly_acked_length);
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_TRUE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_TRUE(session_->HasUnackedStreamData());
- }
+ EXPECT_TRUE(session_->HasUnackedStreamData());
// Ack Fin.
EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(),
@@ -1372,9 +1298,7 @@
EXPECT_EQ(0u, newly_acked_length);
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
// Ack [10, 27) and fin. No new data is acked.
EXPECT_FALSE(stream_->OnStreamFrameAcked(
@@ -1382,9 +1306,7 @@
EXPECT_EQ(0u, newly_acked_length);
EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
EXPECT_FALSE(stream_->IsWaitingForAcks());
- if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) {
- EXPECT_FALSE(session_->HasUnackedStreamData());
- }
+ EXPECT_FALSE(session_->HasUnackedStreamData());
}
TEST_P(QuicStreamTest, OnStreamFrameLost) {