Change IETF Frame/QUIC_VERSION_99 tests to be symbolic.
This CL replaces checks for QUIC_VERSION_99 that are controlling the IETF frames and their associated functionality with a function call . The function has a name that is indicative of the features for which the version is being checked -- VersionHasIetfQuicFrames().
gfe-relnote: N/A just changes the text by which we test if IETF QUIC has been negotiated.
PiperOrigin-RevId: 253767805
Change-Id: I08ae6738411ac151f90d5d085ea69af90d79fb80
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 01213d9..fa60c96 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -1473,8 +1473,9 @@
server_config_.SetMaxIncomingBidirectionalStreamsToSend(
kServerMaxIncomingDynamicStreams);
ASSERT_TRUE(Initialize());
- if (GetParam().negotiated_version.transport_version == QUIC_VERSION_99) {
- // Do not run this test for version 99/IETF QUIC. Note that the test needs
+ if (VersionHasIetfQuicFrames(
+ GetParam().negotiated_version.transport_version)) {
+ // Do not run this test for /IETF QUIC. Note that the test needs
// to be here, after calling Initialize(), because all tests end up calling
// EndToEndTest::TearDown(), which asserts that Initialize has been called
// and then proceeds to tear things down -- which fails if they are not
@@ -1532,7 +1533,8 @@
// returned by max_allowed... by 2 to remove the static streams from the
// count.
size_t client_max_open_outgoing_bidirectional_streams =
- client_session->connection()->transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(
+ client_session->connection()->transport_version())
? QuicSessionPeer::v99_streamid_manager(client_session)
->max_allowed_outgoing_bidirectional_streams() -
QuicSessionPeer::v99_bidirectional_stream_id_manager(
@@ -1541,7 +1543,8 @@
: QuicSessionPeer::GetStreamIdManager(client_session)
->max_open_outgoing_streams();
size_t client_max_open_outgoing_unidirectional_streams =
- client_session->connection()->transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(
+ client_session->connection()->transport_version())
? QuicSessionPeer::v99_streamid_manager(client_session)
->max_allowed_outgoing_unidirectional_streams() -
QuicSessionPeer::v99_unidirectional_stream_id_manager(
@@ -1556,13 +1559,15 @@
server_thread_->Pause();
QuicSession* server_session = GetServerSession();
size_t server_max_open_outgoing_bidirectional_streams =
- server_session->connection()->transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(
+ server_session->connection()->transport_version())
? QuicSessionPeer::v99_streamid_manager(server_session)
->max_allowed_outgoing_bidirectional_streams()
: QuicSessionPeer::GetStreamIdManager(server_session)
->max_open_outgoing_streams();
size_t server_max_open_outgoing_unidirectional_streams =
- server_session->connection()->transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(
+ server_session->connection()->transport_version())
? QuicSessionPeer::v99_streamid_manager(server_session)
->max_allowed_outgoing_unidirectional_streams() -
QuicSessionPeer::v99_unidirectional_stream_id_manager(
@@ -3765,7 +3770,7 @@
TEST_P(EndToEndTest, SimpleStopSendingTest) {
const uint16_t kStopSendingTestCode = 123;
ASSERT_TRUE(Initialize());
- if (negotiated_version_.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(negotiated_version_.transport_version)) {
return;
}
QuicSession* client_session = client_->client()->client_session();
@@ -3959,7 +3964,7 @@
TEST_P(EndToEndTest, TooBigStreamIdClosesConnection) {
// Has to be before version test, see EndToEndTest::TearDown()
ASSERT_TRUE(Initialize());
- if (negotiated_version_.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(negotiated_version_.transport_version)) {
// Only runs for IETF QUIC.
return;
}
diff --git a/quic/core/http/quic_server_session_base.cc b/quic/core/http/quic_server_session_base.cc
index 683793d..8670e29 100644
--- a/quic/core/http/quic_server_session_base.cc
+++ b/quic/core/http/quic_server_session_base.cc
@@ -224,7 +224,7 @@
}
if (!GetQuicReloadableFlag(quic_use_common_stream_check) &&
- connection()->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection()->transport_version())) {
if (GetNumOpenOutgoingStreams() >=
stream_id_manager().max_open_outgoing_streams()) {
QUIC_VLOG(1) << "No more streams should be created. "
@@ -248,7 +248,7 @@
}
if (!GetQuicReloadableFlag(quic_use_common_stream_check) &&
- connection()->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection()->transport_version())) {
if (GetNumOpenOutgoingStreams() >=
stream_id_manager().max_open_outgoing_streams()) {
QUIC_VLOG(1) << "No more streams should be created. "
diff --git a/quic/core/http/quic_server_session_base_test.cc b/quic/core/http/quic_server_session_base_test.cc
index a0ce23e..410161e 100644
--- a/quic/core/http/quic_server_session_base_test.cc
+++ b/quic/core/http/quic_server_session_base_test.cc
@@ -178,7 +178,7 @@
// expects needed to ensure that the STOP_SENDING worked as expected.
void InjectStopSendingFrame(QuicStreamId stream_id,
QuicRstStreamErrorCode rst_stream_code) {
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// Only needed for version 99/IETF QUIC. Noop otherwise.
return;
}
@@ -239,7 +239,7 @@
GetNthClientInitiatedBidirectionalId(0),
QUIC_ERROR_PROCESSING_STREAM, 0);
EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For non-version 99, the RESET_STREAM will do the full close.
// Set up expects accordingly.
EXPECT_CALL(*connection_, SendControlFrame(_));
@@ -270,7 +270,7 @@
GetNthClientInitiatedBidirectionalId(0),
QUIC_ERROR_PROCESSING_STREAM, 0);
EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For non-version 99, the RESET_STREAM will do the full close.
// Set up expects accordingly.
EXPECT_CALL(*connection_, SendControlFrame(_));
@@ -312,7 +312,7 @@
GetNthClientInitiatedBidirectionalId(0),
QUIC_ERROR_PROCESSING_STREAM, 0);
EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For non-version 99, the RESET_STREAM will do the full close.
// Set up expects accordingly.
EXPECT_CALL(*connection_, SendControlFrame(_));
@@ -348,7 +348,7 @@
// client FIN/RST is lost.
session_->OnConfigNegotiated();
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// The slightly increased stream limit is set during config negotiation. It
// is either an increase of 10 over negotiated limit, or a fixed percentage
// scaling, whichever is larger. Test both before continuing.
@@ -366,7 +366,7 @@
stream_id += QuicUtils::StreamIdDelta(connection_->transport_version());
}
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// Open more streams: server should accept slightly more than the limit.
// Excess streams are for non-version-99 only.
for (size_t i = 0; i < kMaxStreamsMinimumIncrement; ++i) {
@@ -378,7 +378,7 @@
// Now violate the server's internal stream limit.
stream_id += QuicUtils::StreamIdDelta(connection_->transport_version());
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For non-version 99, QUIC responds to an attempt to exceed the stream
// limit by resetting the stream.
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
@@ -412,7 +412,7 @@
QuicUtils::StreamIdDelta(connection_->transport_version());
const int kLimitingStreamId =
GetNthClientInitiatedBidirectionalId(kAvailableStreamLimit + 1);
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// This exceeds the stream limit. In versions other than 99
// this is allowed. Version 99 hews to the IETF spec and does
// not allow it.
diff --git a/quic/core/http/quic_spdy_client_session.cc b/quic/core/http/quic_spdy_client_session.cc
index 9be0936..ee81dcf 100644
--- a/quic/core/http/quic_spdy_client_session.cc
+++ b/quic/core/http/quic_spdy_client_session.cc
@@ -53,7 +53,7 @@
return false;
}
if (!GetQuicReloadableFlag(quic_use_common_stream_check) &&
- connection()->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection()->transport_version())) {
if (GetNumOpenOutgoingStreams() >=
stream_id_manager().max_open_outgoing_streams()) {
QUIC_DLOG(INFO) << "Failed to create a new outgoing stream. "
@@ -138,7 +138,7 @@
}
if (QuicUtils::IsClientInitiatedStreamId(connection()->transport_version(),
id) ||
- (connection()->transport_version() == QUIC_VERSION_99 &&
+ (VersionHasIetfQuicFrames(connection()->transport_version()) &&
QuicUtils::IsBidirectionalStreamId(id))) {
QUIC_LOG(WARNING) << "Received invalid push stream id " << id;
connection()->CloseConnection(
diff --git a/quic/core/http/quic_spdy_client_session_test.cc b/quic/core/http/quic_spdy_client_session_test.cc
index bfde618..02c4a14 100644
--- a/quic/core/http/quic_spdy_client_session_test.cc
+++ b/quic/core/http/quic_spdy_client_session_test.cc
@@ -142,7 +142,7 @@
}
void CompleteCryptoHandshake(uint32_t server_max_incoming_streams) {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(testing::AnyNumber())
.WillRepeatedly(Invoke(
@@ -152,7 +152,7 @@
QuicCryptoClientStream* stream = static_cast<QuicCryptoClientStream*>(
session_->GetMutableCryptoStream());
QuicConfig config = DefaultQuicConfig();
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
config.SetMaxIncomingUnidirectionalStreamsToSend(
server_max_incoming_streams);
config.SetMaxIncomingBidirectionalStreamsToSend(
@@ -259,7 +259,7 @@
stream = session_->CreateOutgoingBidirectionalStream();
EXPECT_FALSE(stream);
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
if (VersionLacksHeadersStream(GetParam().transport_version)) {
EXPECT_EQ(1u,
QuicSessionPeer::v99_bidirectional_stream_id_manager(&*session_)
@@ -305,7 +305,7 @@
QUIC_RST_ACKNOWLEDGEMENT, 0));
// Check that a new one can be created.
EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams());
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
// In V99 the stream limit increases only if we get a MAX_STREAMS
// frame; pretend we got one.
@@ -322,7 +322,7 @@
}
stream = session_->CreateOutgoingBidirectionalStream();
EXPECT_NE(nullptr, stream);
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
// Ensure that we have/have had three open streams: two test streams and the
// header stream.
QuicStreamCount expected_stream_count = 3;
@@ -355,7 +355,7 @@
QuicSpdyClientStream* stream = session_->CreateOutgoingBidirectionalStream();
ASSERT_NE(nullptr, stream);
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
// For v99, trying to open a stream and failing due to lack
// of stream ids will result in a STREAMS_BLOCKED. Make
// sure we get one. Also clear out the frame because if it's
@@ -394,7 +394,7 @@
// The stream is now complete from the client's perspective, and it should
// be able to create a new outgoing stream.
EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams());
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
// Note that this is to be the second stream created, hence
// the stream count is 3 (the two streams created as a part of
// the test plus the header stream, internally created).
@@ -409,7 +409,7 @@
}
stream = session_->CreateOutgoingBidirectionalStream();
EXPECT_NE(nullptr, stream);
- if (GetParam().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
// Ensure that we have/have had three open streams: two test streams and the
// header stream.
QuicStreamCount expected_stream_count = 3;
@@ -480,7 +480,7 @@
}
TEST_P(QuicSpdyClientSessionTest, GoAwayReceived) {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return;
}
CompleteCryptoHandshake();
@@ -874,7 +874,7 @@
TEST_P(QuicSpdyClientSessionTest,
TryToCreateServerInitiatedBidirectionalStream) {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, _, _));
} else {
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
diff --git a/quic/core/http/quic_spdy_server_stream_base_test.cc b/quic/core/http/quic_spdy_server_stream_base_test.cc
index 4e1aa1b..15638ca 100644
--- a/quic/core/http/quic_spdy_server_stream_base_test.cc
+++ b/quic/core/http/quic_spdy_server_stream_base_test.cc
@@ -59,7 +59,7 @@
EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0);
- if (session_.connection()->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(session_.connection()->transport_version())) {
EXPECT_CALL(session_, SendRstStream(_, QUIC_RST_ACKNOWLEDGEMENT, _))
.Times(1);
} else {
@@ -76,7 +76,7 @@
QuicRstStreamFrame rst_frame(kInvalidControlFrameId, stream_->id(),
QUIC_STREAM_CANCELLED, 1234);
stream_->OnStreamReset(rst_frame);
- if (session_.connection()->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(session_.connection()->transport_version())) {
// Create and inject a STOP SENDING frame to complete the close
// of the stream. This is only needed for version 99/IETF QUIC.
QuicStopSendingFrame stop_sending(
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index ce4d5a9..5b926db 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -176,7 +176,7 @@
// Enforce the limit on the number of open streams.
if (GetNumOpenIncomingStreams() + 1 >
max_open_incoming_bidirectional_streams() &&
- connection()->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection()->transport_version())) {
connection()->CloseConnection(
QUIC_TOO_MANY_OPEN_STREAMS, "Too many streams!",
ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
@@ -320,7 +320,7 @@
}
void CloseStream(QuicStreamId id) {
- if (!IsVersion99()) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_, SendControlFrame(_))
.WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
} else {
@@ -338,8 +338,6 @@
return connection_->transport_version();
}
- bool IsVersion99() const { return transport_version() == QUIC_VERSION_99; }
-
QuicStreamId GetNthClientInitiatedBidirectionalId(int n) {
return GetNthClientInitiatedBidirectionalStreamId(transport_version(), n);
}
@@ -368,7 +366,7 @@
// needs to do the stream count where #1 is 0/1/2/3, and not
// take into account that stream 0 is special.
QuicStreamId id =
- ((stream_count - 1) * QuicUtils::StreamIdDelta(QUIC_VERSION_99));
+ ((stream_count - 1) * QuicUtils::StreamIdDelta(transport_version()));
if (!bidirectional) {
id |= 0x2;
}
@@ -478,7 +476,7 @@
}
TEST_P(QuicSpdySessionTestServer, MaximumAvailableOpenedStreams) {
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// For IETF QUIC, we should be able to obtain the max allowed
// stream ID, the next ID should fail. Since the actual limit
// is not the number of open streams, we allocate the max and the max+2.
@@ -535,7 +533,7 @@
// A stream ID which is too large to create.
stream_id2 = GetNthClientInitiatedBidirectionalId(
2 * session_.MaxAvailableBidirectionalStreams() + 4);
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, _, _));
} else {
EXPECT_CALL(*connection_,
@@ -547,7 +545,7 @@
TEST_P(QuicSpdySessionTestServer, ManyAvailableStreams) {
// When max_open_streams_ is 200, should be able to create 200 streams
// out-of-order, that is, creating the one with the largest stream ID first.
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_, 200);
} else {
QuicSessionPeer::SetMaxOpenIncomingStreams(&session_, 200);
@@ -688,7 +686,7 @@
}
TEST_P(QuicSpdySessionTestServer, OnCanWriteBundlesStreams) {
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_, SendControlFrame(_))
.WillRepeatedly(Invoke(
this, &QuicSpdySessionTestServer::ClearMaxStreamsControlFrame));
@@ -957,7 +955,7 @@
}
TEST_P(QuicSpdySessionTestServer, SendGoAway) {
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// GoAway frames are not in version 99
return;
}
@@ -981,7 +979,7 @@
}
TEST_P(QuicSpdySessionTestServer, DoNotSendGoAwayTwice) {
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// TODO(b/118808809): Enable this test for version 99 when GOAWAY is
// supported.
return;
@@ -994,7 +992,7 @@
}
TEST_P(QuicSpdySessionTestServer, InvalidGoAway) {
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// TODO(b/118808809): Enable this test for version 99 when GOAWAY is
// supported.
return;
@@ -1016,7 +1014,7 @@
EXPECT_CALL(*connection_,
SendConnectivityProbingResponsePacket(new_peer_address));
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Need to explicitly do this to emulate the reception of a PathChallenge,
// which stores its payload for use in generating the response.
connection_->OnPathChallengeFrame(
@@ -1045,7 +1043,7 @@
EXPECT_EQ(1u, session_.GetNumOpenIncomingStreams());
EXPECT_CALL(*connection_, SendControlFrame(_));
- if (!IsVersion99()) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For version99, OnStreamReset gets called because of the STOP_SENDING,
// below. EXPECT the call there.
EXPECT_CALL(*connection_,
@@ -1059,7 +1057,7 @@
// Create and inject a STOP_SENDING frame. In GOOGLE QUIC, receiving a
// RST_STREAM frame causes a two-way close. For IETF QUIC, RST_STREAM causes a
// one-way close.
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Only needed for version 99/IETF QUIC.
QuicStopSendingFrame stop_sending(
kInvalidControlFrameId, GetNthClientInitiatedBidirectionalId(0),
@@ -1182,7 +1180,7 @@
EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_, SendControlFrame(_))
.WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
} else {
@@ -1311,7 +1309,7 @@
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(2)
.WillRepeatedly(Invoke(&session_, &TestSession::ClearControlFrame));
- if (!IsVersion99()) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// For version99 the call to OnStreamReset happens as a result of receiving
// the STOP_SENDING, so set up the EXPECT there.
EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
@@ -1322,7 +1320,7 @@
// Create and inject a STOP_SENDING frame. In GOOGLE QUIC, receiving a
// RST_STREAM frame causes a two-way close. For IETF QUIC, RST_STREAM causes a
// one-way close.
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Only needed for version 99/IETF QUIC.
QuicStopSendingFrame stop_sending(
kInvalidControlFrameId, stream->id(),
@@ -1539,7 +1537,7 @@
// with a FIN or RST then we send an RST to refuse streams for versions other
// than version 99. In version 99 the connection gets closed.
const QuicStreamId kMaxStreams = 5;
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_,
kMaxStreams);
} else {
@@ -1566,7 +1564,7 @@
QuicStreamFrame data1(i, false, 0, QuicStringPiece("HT"));
session_.OnStreamFrame(data1);
// EXPECT_EQ(1u, session_.GetNumOpenStreams());
- if (!IsVersion99()) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_, SendControlFrame(_))
.WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
} else {
@@ -1582,7 +1580,7 @@
session_.CloseStream(i);
}
// Try and open a stream that exceeds the limit.
- if (!IsVersion99()) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// On versions other than 99, opening such a stream results in a
// RST_STREAM.
EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
@@ -1607,7 +1605,7 @@
// Verify that a draining stream (which has received a FIN but not consumed
// it) does not count against the open quota (because it is closed from the
// protocol point of view).
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Version 99 will result in a MAX_STREAMS frame as streams are consumed
// (via the OnStreamFrame call) and then released (via
// StreamDraining). Eventually this node will believe that the peer is
@@ -1619,7 +1617,7 @@
}
EXPECT_CALL(*connection_, OnStreamReset(_, QUIC_REFUSED_STREAM)).Times(0);
const QuicStreamId kMaxStreams = 5;
- if (IsVersion99()) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_,
kMaxStreams);
} else {
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index 0914809..2423023 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -702,9 +702,9 @@
silent_close_.ToHandshakeMessage(out);
// Do not need a version check here, max...bi... will encode
// as "MIDS" -- the max initial dynamic streams tag -- if
- // doing some version other than IETF QUIC/V99.
+ // doing some version other than IETF QUIC.
max_incoming_bidirectional_streams_.ToHandshakeMessage(out);
- if (transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version)) {
max_incoming_unidirectional_streams_.ToHandshakeMessage(out);
}
bytes_for_connection_id_.ToHandshakeMessage(out);
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index a7733cb..e48480c 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1560,7 +1560,7 @@
// This node is not a client (is a server) AND the received packet was
// NOT connectivity-probing. If the packet had PATH CHALLENGES, send
// appropriate RESPONSE. Then deal with possible peer migration.
- if (transport_version() == QUIC_VERSION_99 &&
+ if (VersionHasIetfQuicFrames(transport_version()) &&
!received_path_challenge_payloads_.empty()) {
// If a PATH CHALLENGE was in a "Padded PING (or PATH CHALLENGE)"
// then it is taken care of above. This handles the case where a PATH
@@ -3117,7 +3117,7 @@
new QuicConnectionCloseFrame(error, details);
// If version99/IETF QUIC set the close type. Default close type is Google
// QUIC.
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
frame->close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
packet_generator_.ConsumeRetransmittableControlFrame(QuicFrame(frame));
@@ -3590,7 +3590,7 @@
<< server_connection_id_;
OwningSerializedPacketPointer probing_packet;
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// Non-IETF QUIC, generate a padded ping regardless of whether this is a
// request or a response.
probing_packet = packet_generator_.SerializeConnectivityProbingPacket();
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 601dad9..dc97b07 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -1497,7 +1497,7 @@
// provided in constructor.
const bool no_version_negotiation_;
- // Payload of most recently transmitted QUIC_VERSION_99 connectivity
+ // Payload of most recently transmitted IETF QUIC connectivity
// probe packet (the PATH_CHALLENGE payload). This implementation transmits
// only one PATH_CHALLENGE per connectivity probe, so only one
// QuicPathFrameBuffer is needed.
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 243c13a..4cc121b 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -1396,7 +1396,7 @@
}
OwningSerializedPacketPointer ConstructProbingPacket() {
- if (version().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version().transport_version)) {
QuicPathFrameBuffer payload = {
{0xde, 0xad, 0xbe, 0xef, 0xba, 0xdc, 0x0f, 0xfe}};
return QuicPacketCreatorPeer::
@@ -1428,8 +1428,8 @@
header.packet_number = QuicPacketNumber(number);
QuicConnectionCloseFrame qccf(QUIC_PEER_GOING_AWAY);
- if (peer_framer_.transport_version() == QUIC_VERSION_99) {
- // Default close-type is Google QUIC. If doing IETF/V99 then
+ if (VersionHasIetfQuicFrames(peer_framer_.transport_version())) {
+ // Default close-type is Google QUIC. If doing IETF QUIC then
// set close type to be IETF CC/T.
qccf.close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
@@ -1862,7 +1862,7 @@
// Process a padded PING or PATH CHALLENGE packet with no peer address change
// on server side will be ignored.
OwningSerializedPacketPointer probing_packet;
- if (version().transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version().transport_version)) {
QuicPathFrameBuffer payload = {
{0xde, 0xad, 0xbe, 0xef, 0xba, 0xdc, 0x0f, 0xfe}};
probing_packet =
@@ -6660,7 +6660,7 @@
}
TEST_P(QuicConnectionTest, GoAway) {
- if (GetParam().version.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
// GoAway is not available in version 99.
return;
}
@@ -6868,8 +6868,8 @@
header.version_flag = false;
QuicConnectionCloseFrame qccf(QUIC_PEER_GOING_AWAY);
- if (peer_framer_.transport_version() == QUIC_VERSION_99) {
- // Default close-type is Google QUIC. If doing IETF/V99 then
+ if (VersionHasIetfQuicFrames(peer_framer_.transport_version())) {
+ // Default close-type is Google QUIC. If doing IETF QUIC then
// set close type to be IETF CC/T.
qccf.close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
@@ -8054,7 +8054,7 @@
// Test to check that the path challenge/path response logic works
// correctly. This test is only for version-99
TEST_P(QuicConnectionTest, PathChallengeResponse) {
- if (connection_.version().transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(connection_.version().transport_version)) {
return;
}
// First check if we can probe from server to client and back
@@ -8195,7 +8195,7 @@
}
TEST_P(QuicConnectionTest, AcceptPacketNumberZero) {
- if (version().transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version().transport_version)) {
return;
}
// Set first_sending_packet_number to be 0 to allow successfully processing
@@ -8480,7 +8480,7 @@
EXPECT_EQ(Perspective::IS_CLIENT, connection_.perspective());
std::unique_ptr<QuicConnectionCloseFrame> connection_close_frame(
new QuicConnectionCloseFrame(QUIC_INTERNAL_ERROR));
- if (connection_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_.transport_version())) {
connection_close_frame->close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
// Received 2 packets.
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 1025ed1..9b59aa5 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -134,7 +134,7 @@
bool ietf_quic) {
QuicConnectionCloseFrame* frame =
new QuicConnectionCloseFrame(error_code, error_details);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
frame->close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 6446ef8..836b4bf 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -498,7 +498,7 @@
QuicStreamOffset offset,
bool last_frame_in_packet,
QuicPacketLength data_length) {
- if (version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version)) {
return kQuicFrameTypeSize + QuicDataWriter::GetVarInt62Len(stream_id) +
(last_frame_in_packet
? 0
@@ -532,7 +532,7 @@
size_t QuicFramer::GetMinAckFrameSize(
QuicTransportVersion version,
QuicPacketNumberLength largest_observed_length) {
- if (version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version)) {
// The minimal ack frame consists of the following four fields: Largest
// Acknowledged, ACK Delay, ACK Block Count, and First ACK Block. Minimum
// size of each is 1 byte.
@@ -554,7 +554,7 @@
// static
size_t QuicFramer::GetRstStreamFrameSize(QuicTransportVersion version,
const QuicRstStreamFrame& frame) {
- if (version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version)) {
return QuicDataWriter::GetVarInt62Len(frame.stream_id) +
QuicDataWriter::GetVarInt62Len(frame.byte_offset) +
kQuicFrameTypeSize + kQuicIetfQuicErrorCodeSize;
@@ -567,8 +567,8 @@
size_t QuicFramer::GetConnectionCloseFrameSize(
QuicTransportVersion version,
const QuicConnectionCloseFrame& frame) {
- if (version != QUIC_VERSION_99) {
- // Not version 99/IETF QUIC, return Google QUIC CONNECTION CLOSE frame size.
+ if (!VersionHasIetfQuicFrames(version)) {
+ // Not IETF QUIC, return Google QUIC CONNECTION CLOSE frame size.
return kQuicFrameTypeSize + kQuicErrorCodeSize +
kQuicErrorDetailsLengthSize +
TruncatedErrorStringSize(frame.error_details);
@@ -601,7 +601,7 @@
size_t QuicFramer::GetWindowUpdateFrameSize(
QuicTransportVersion version,
const QuicWindowUpdateFrame& frame) {
- if (version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version)) {
return kQuicFrameTypeSize + kQuicMaxStreamIdSize + kQuicMaxStreamOffsetSize;
}
if (frame.stream_id == QuicUtils::GetInvalidStreamId(version)) {
@@ -619,9 +619,10 @@
// static
size_t QuicFramer::GetMaxStreamsFrameSize(QuicTransportVersion version,
const QuicMaxStreamsFrame& frame) {
- if (version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version)) {
QUIC_BUG << "In version " << version
- << " - not 99 - and tried to serialize MaxStreams Frame.";
+ << ", which does not support IETF Frames, and tried to serialize "
+ "MaxStreams Frame.";
}
return kQuicFrameTypeSize +
QuicDataWriter::GetVarInt62Len(frame.stream_count);
@@ -631,9 +632,10 @@
size_t QuicFramer::GetStreamsBlockedFrameSize(
QuicTransportVersion version,
const QuicStreamsBlockedFrame& frame) {
- if (version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version)) {
QUIC_BUG << "In version " << version
- << " - not 99 - and tried to serialize StreamsBlocked Frame.";
+ << ", which does not support IETF frames, and tried to serialize "
+ "StreamsBlocked Frame.";
}
return kQuicFrameTypeSize +
@@ -643,7 +645,7 @@
// static
size_t QuicFramer::GetBlockedFrameSize(QuicTransportVersion version,
const QuicBlockedFrame& frame) {
- if (version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version)) {
return kQuicFrameTypeSize + kQuicMaxStreamIdSize;
}
if (frame.stream_id == QuicUtils::GetInvalidStreamId(version)) {
@@ -690,7 +692,7 @@
return GetMinGoAwayFrameSize() +
TruncatedErrorStringSize(frame.goaway_frame->reason_phrase);
case WINDOW_UPDATE_FRAME:
- // For version 99, this could be either a MAX DATA or MAX STREAM DATA.
+ // For IETF QUIC, this could be either a MAX DATA or MAX STREAM DATA.
// GetWindowUpdateFrameSize figures this out and returns the correct
// length.
return GetWindowUpdateFrameSize(version, *frame.window_update_frame);
@@ -909,7 +911,7 @@
return 0;
}
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
if (AppendIetfFrames(frames, &writer) == 0) {
return 0;
}
@@ -999,36 +1001,36 @@
break;
case NEW_CONNECTION_ID_FRAME:
set_detailed_error(
- "Attempt to append NEW_CONNECTION_ID frame and not in version 99.");
+ "Attempt to append NEW_CONNECTION_ID frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case RETIRE_CONNECTION_ID_FRAME:
set_detailed_error(
- "Attempt to append RETIRE_CONNECTION_ID frame and not in version "
- "99.");
+ "Attempt to append RETIRE_CONNECTION_ID frame and not in IETF "
+ "QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case NEW_TOKEN_FRAME:
set_detailed_error(
- "Attempt to append NEW_TOKEN_ID frame and not in version 99.");
+ "Attempt to append NEW_TOKEN_ID frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case MAX_STREAMS_FRAME:
set_detailed_error(
- "Attempt to append MAX_STREAMS frame and not in version 99.");
+ "Attempt to append MAX_STREAMS frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case STREAMS_BLOCKED_FRAME:
set_detailed_error(
- "Attempt to append STREAMS_BLOCKED frame and not in version 99.");
+ "Attempt to append STREAMS_BLOCKED frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case PATH_RESPONSE_FRAME:
set_detailed_error(
- "Attempt to append PATH_RESPONSE frame and not in version 99.");
+ "Attempt to append PATH_RESPONSE frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case PATH_CHALLENGE_FRAME:
set_detailed_error(
- "Attempt to append PATH_CHALLENGE frame and not in version 99.");
+ "Attempt to append PATH_CHALLENGE frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case STOP_SENDING_FRAME:
set_detailed_error(
- "Attempt to append STOP_SENDING frame and not in version 99.");
+ "Attempt to append STOP_SENDING frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case MESSAGE_FRAME:
if (!AppendMessageFrameAndTypeByte(*frame.message_frame,
@@ -1095,7 +1097,7 @@
break;
case STOP_WAITING_FRAME:
set_detailed_error(
- "Attempt to append STOP WAITING frame in version 99.");
+ "Attempt to append STOP WAITING frame in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case MTU_DISCOVERY_FRAME:
// MTU discovery frames are serialized as ping frames.
@@ -1118,7 +1120,7 @@
}
break;
case GOAWAY_FRAME:
- set_detailed_error("Attempt to append GOAWAY frame in version 99.");
+ set_detailed_error("Attempt to append GOAWAY frame in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case WINDOW_UPDATE_FRAME:
// Depending on whether there is a stream ID or not, will be either a
@@ -1243,7 +1245,7 @@
QuicPathFrameBuffer* payload,
QuicRandom* randomizer,
EncryptionLevel level) {
- if (version_.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version_.transport_version)) {
QUIC_BUG << "Attempt to build a PATH_CHALLENGE Connectivity Probing "
"packet and not doing IETF QUIC";
return 0;
@@ -1276,7 +1278,7 @@
<< "Attempt to generate connectivity response with no request payloads";
return 0;
}
- if (version_.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(version_.transport_version)) {
QUIC_BUG << "Attempt to build a PATH_RESPONSE Connectivity Probing "
"packet and not doing IETF QUIC";
return 0;
@@ -1897,7 +1899,7 @@
}
// Handle the payload.
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
if (!ProcessIetfFrameData(&reader, *header)) {
DCHECK_NE(QUIC_NO_ERROR, error_); // ProcessIetfFrameData sets the error.
DCHECK_NE("", detailed_error_);
@@ -2770,8 +2772,9 @@
bool QuicFramer::ProcessFrameData(QuicDataReader* reader,
const QuicPacketHeader& header) {
- DCHECK_NE(QUIC_VERSION_99, version_.transport_version)
- << "Version 99 negotiated, but not processing frames as version 99.";
+ DCHECK(!VersionHasIetfQuicFrames(version_.transport_version))
+ << "IETF QUIC Framing negotiated but attempting to process frames as "
+ "non-IETF QUIC.";
if (reader->IsDoneReading()) {
set_detailed_error("Packet has no frames.");
return RaiseError(QUIC_MISSING_PAYLOAD);
@@ -2995,9 +2998,10 @@
bool QuicFramer::ProcessIetfFrameData(QuicDataReader* reader,
const QuicPacketHeader& header) {
- DCHECK_EQ(QUIC_VERSION_99, version_.transport_version)
- << "Attempt to process frames as IETF frames but version is "
- << version_.transport_version << ", not 99.";
+ DCHECK(VersionHasIetfQuicFrames(version_.transport_version))
+ << "Attempt to process frames as IETF frames but version ("
+ << version_.transport_version << ") does not support IETF Framing.";
+
if (reader->IsDoneReading()) {
set_detailed_error("Packet has no frames.");
return RaiseError(QUIC_MISSING_PAYLOAD);
@@ -3984,8 +3988,8 @@
bool QuicFramer::ProcessBlockedFrame(QuicDataReader* reader,
QuicBlockedFrame* frame) {
- DCHECK_NE(QUIC_VERSION_99, version_.transport_version)
- << "Attempt to process non-IETF frames but version is 99";
+ DCHECK(!VersionHasIetfQuicFrames(version_.transport_version))
+ << "Attempt to process non-IETF QUIC frames in an IETF QUIC version.";
if (!reader->ReadUInt32(&frame->stream_id)) {
set_detailed_error("Unable to read stream_id.");
@@ -4621,7 +4625,7 @@
DCHECK(!ack.packets.Empty());
size_t ack_size = 0;
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return GetIetfAckFrameSize(ack);
}
AckFrameInfo ack_info = GetAckFrameInfo(ack);
@@ -4698,7 +4702,7 @@
bool QuicFramer::AppendTypeByte(const QuicFrame& frame,
bool last_frame_in_packet,
QuicDataWriter* writer) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return AppendIetfTypeByte(frame, last_frame_in_packet, writer);
}
uint8_t type_byte = 0;
@@ -4714,36 +4718,35 @@
break;
case NEW_CONNECTION_ID_FRAME:
set_detailed_error(
- "Attempt to append NEW_CONNECTION_ID frame and not in version 99.");
+ "Attempt to append NEW_CONNECTION_ID frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case RETIRE_CONNECTION_ID_FRAME:
set_detailed_error(
- "Attempt to append RETIRE_CONNECTION_ID frame and not in version "
- "99.");
+ "Attempt to append RETIRE_CONNECTION_ID frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case NEW_TOKEN_FRAME:
set_detailed_error(
- "Attempt to append NEW_TOKEN frame and not in version 99.");
+ "Attempt to append NEW_TOKEN frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case MAX_STREAMS_FRAME:
set_detailed_error(
- "Attempt to append MAX_STREAMS frame and not in version 99.");
+ "Attempt to append MAX_STREAMS frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case STREAMS_BLOCKED_FRAME:
set_detailed_error(
- "Attempt to append STREAMS_BLOCKED frame and not in version 99.");
+ "Attempt to append STREAMS_BLOCKED frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case PATH_RESPONSE_FRAME:
set_detailed_error(
- "Attempt to append PATH_RESPONSE frame and not in version 99.");
+ "Attempt to append PATH_RESPONSE frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case PATH_CHALLENGE_FRAME:
set_detailed_error(
- "Attempt to append PATH_CHALLENGE frame and not in version 99.");
+ "Attempt to append PATH_CHALLENGE frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case STOP_SENDING_FRAME:
set_detailed_error(
- "Attempt to append STOP_SENDING frame and not in version 99.");
+ "Attempt to append STOP_SENDING frame and not in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case MESSAGE_FRAME:
return true;
@@ -4782,7 +4785,7 @@
break;
case GOAWAY_FRAME:
set_detailed_error(
- "Attempt to create non-version-99 GOAWAY frame in version 99.");
+ "Attempt to create non-IETF QUIC GOAWAY frame in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case WINDOW_UPDATE_FRAME:
// Depending on whether there is a stream ID or not, will be either a
@@ -4804,7 +4807,7 @@
break;
case STOP_WAITING_FRAME:
set_detailed_error(
- "Attempt to append type byte of STOP WAITING frame in version 99.");
+ "Attempt to append type byte of STOP WAITING frame in IETF QUIC.");
return RaiseError(QUIC_INTERNAL_ERROR);
case PING_FRAME:
type_byte = IETF_PING;
@@ -4922,7 +4925,7 @@
bool QuicFramer::AppendStreamFrame(const QuicStreamFrame& frame,
bool no_stream_frame_length,
QuicDataWriter* writer) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return AppendIetfStreamFrame(frame, no_stream_frame_length, writer);
}
if (!AppendStreamId(GetStreamIdSize(frame.stream_id), frame.stream_id,
@@ -5083,7 +5086,7 @@
bool QuicFramer::AppendAckFrameAndTypeByte(const QuicAckFrame& frame,
QuicDataWriter* writer) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
return AppendIetfAckFrameAndTypeByte(frame, writer);
}
@@ -5499,7 +5502,7 @@
bool QuicFramer::AppendRstStreamFrame(const QuicRstStreamFrame& frame,
QuicDataWriter* writer) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return AppendIetfResetStreamFrame(frame, writer);
}
if (!writer->WriteUInt32(frame.stream_id)) {
@@ -5521,7 +5524,7 @@
bool QuicFramer::AppendConnectionCloseFrame(
const QuicConnectionCloseFrame& frame,
QuicDataWriter* writer) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return AppendIetfConnectionCloseFrame(frame, writer);
}
uint32_t error_code = static_cast<uint32_t>(frame.quic_error_code);
@@ -5564,7 +5567,7 @@
bool QuicFramer::AppendBlockedFrame(const QuicBlockedFrame& frame,
QuicDataWriter* writer) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
if (frame.stream_id == QuicUtils::GetInvalidStreamId(transport_version())) {
return AppendIetfBlockedFrame(frame, writer);
}
@@ -6063,7 +6066,7 @@
uint8_t QuicFramer::GetStreamFrameTypeByte(const QuicStreamFrame& frame,
bool last_frame_in_packet) const {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return GetIetfStreamFrameTypeByte(frame, last_frame_in_packet);
}
uint8_t type_byte = 0;
@@ -6093,7 +6096,7 @@
uint8_t QuicFramer::GetIetfStreamFrameTypeByte(
const QuicStreamFrame& frame,
bool last_frame_in_packet) const {
- DCHECK_EQ(QUIC_VERSION_99, version_.transport_version);
+ DCHECK(VersionHasIetfQuicFrames(version_.transport_version));
uint8_t type_byte = IETF_STREAM;
if (!last_frame_in_packet) {
type_byte |= IETF_STREAM_FRAME_LEN_BIT;
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index 9b9c48f..578cfcf 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -559,15 +559,6 @@
data_producer_ = data_producer;
}
- // Returns true if we are doing IETF-formatted packets.
- // In the future this could encompass a wide variety of
- // versions. Doing the test by name ("ietf format") rather
- // than version number localizes the version/ietf-ness binding
- // to this method.
- bool is_ietf_format() {
- return version_.transport_version == QUIC_VERSION_99;
- }
-
QuicTime creation_time() const { return creation_time_; }
QuicPacketNumber first_sending_packet_number() const {
diff --git a/quic/core/quic_framer_test.cc b/quic/core/quic_framer_test.cc
index 7bc054e..d1a2055 100644
--- a/quic/core/quic_framer_test.cc
+++ b/quic/core/quic_framer_test.cc
@@ -1906,7 +1906,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -2061,7 +2061,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -2091,7 +2091,7 @@
TEST_P(QuicFramerTest, EmptyStreamFrame) {
// Only the IETF QUIC spec explicitly says that empty
// stream frames are supported.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -2431,7 +2431,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -2583,7 +2583,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -2611,6 +2611,12 @@
}
TEST_P(QuicFramerTest, StreamFrameWithVersion) {
+ // If IETF frames are in use then we must also have the IETF
+ // header invariants.
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
+ DCHECK(VersionHasIetfInvariantHeader(framer_.transport_version()));
+ }
+
SetDecrypterLevel(ENCRYPTION_ZERO_RTT);
// clang-format off
PacketFragments packet = {
@@ -2769,7 +2775,7 @@
: VARIABLE_LENGTH_INTEGER_LENGTH_0;
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -3070,7 +3076,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -3214,7 +3220,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -3230,7 +3236,7 @@
// and handles the case where the third ack block's gap is larger than the
// available space in the ack range.
TEST_P(QuicFramerTest, ThirdAckBlockUnderflowGap) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// for now, only v99
return;
}
@@ -3288,7 +3294,7 @@
// and handles the case where the third ack block's length is larger than the
// available space in the ack range.
TEST_P(QuicFramerTest, ThirdAckBlockUnderflowAck) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// for now, only v99
return;
}
@@ -3344,7 +3350,7 @@
// around to 0x3fffffff ffffffff... Make sure we detect this
// condition.
TEST_P(QuicFramerTest, AckBlockUnderflowGapWrap) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// for now, only v99
return;
}
@@ -3394,7 +3400,7 @@
// As AckBlockUnderflowGapWrap, but in this test, it's the ack
// component of the ack-block that causes the wrap, not the gap.
TEST_P(QuicFramerTest, AckBlockUnderflowAckWrap) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// for now, only v99
return;
}
@@ -3443,7 +3449,7 @@
// An ack block that acks the entire range, 1...0x3fffffffffffffff
TEST_P(QuicFramerTest, AckBlockAcksEverything) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// for now, only v99
return;
}
@@ -3498,7 +3504,7 @@
// additional ack blocks.
//
TEST_P(QuicFramerTest, AckFrameFirstAckBlockLengthZero) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// Not applicable to version 99 -- first ack block contains the
// number of packets that preceed the largest_acked packet.
// A value of 0 means no packets preceed --- that the block's
@@ -3762,7 +3768,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -4054,7 +4060,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -4079,7 +4085,7 @@
EXPECT_EQ(kSmallLargestObserved, LargestAcked(frame));
ASSERT_EQ(4254u, frame.packets.NumPacketsSlow());
EXPECT_EQ(4u, frame.packets.NumIntervals());
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
EXPECT_EQ(0u, frame.received_packet_times.size());
} else {
EXPECT_EQ(2u, frame.received_packet_times.size());
@@ -4165,7 +4171,7 @@
0x10, 0x32, 0x54, 0x76,
};
// clang-format on
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
QuicEncryptedPacket encrypted(
@@ -4269,7 +4275,7 @@
0x10, 0x32,
};
// clang-format on
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
QuicEncryptedPacket encrypted(
@@ -4284,7 +4290,7 @@
}
TEST_P(QuicFramerTest, NewStopWaitingFrame) {
- if (version_.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version_.transport_version)) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -4377,7 +4383,7 @@
}
TEST_P(QuicFramerTest, InvalidNewStopWaitingFrame) {
- if (version_.transport_version == QUIC_VERSION_99 ||
+ if (VersionHasIetfQuicFrames(version_.transport_version) ||
(GetQuicReloadableFlag(quic_do_not_accept_stop_waiting) &&
version_.transport_version >= QUIC_VERSION_44)) {
return;
@@ -4542,7 +4548,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -4683,7 +4689,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -4703,7 +4709,7 @@
EXPECT_EQ(0x11u, static_cast<unsigned>(
visitor_.connection_close_frame_.quic_error_code));
EXPECT_EQ("because I can", visitor_.connection_close_frame_.error_details);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
EXPECT_EQ(0x1234u,
visitor_.connection_close_frame_.transport_close_frame_type);
}
@@ -4715,7 +4721,7 @@
// Test the CONNECTION_CLOSE/Application variant.
TEST_P(QuicFramerTest, ApplicationCloseFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame does not exist in versions other than 99.
return;
}
@@ -4775,7 +4781,7 @@
}
TEST_P(QuicFramerTest, GoAwayFrame) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is not supported in version 99.
return;
}
@@ -4900,7 +4906,7 @@
}
TEST_P(QuicFramerTest, WindowUpdateFrame) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is not in version 99, see MaxDataFrame and MaxStreamDataFrame
// for Version 99 equivalents.
return;
@@ -4996,7 +5002,7 @@
}
TEST_P(QuicFramerTest, MaxDataFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is available only in version 99.
return;
}
@@ -5040,7 +5046,7 @@
}
TEST_P(QuicFramerTest, MaxStreamDataFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame available only in version 99.
return;
}
@@ -5165,7 +5171,7 @@
// clang-format on
PacketFragments& fragments =
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
@@ -5181,14 +5187,14 @@
*encrypted, !kIncludeVersion, !kIncludeDiversificationNonce,
PACKET_8BYTE_CONNECTION_ID, PACKET_0BYTE_CONNECTION_ID));
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
EXPECT_EQ(kStreamOffset, visitor_.blocked_frame_.offset);
} else {
EXPECT_EQ(0u, visitor_.blocked_frame_.offset);
}
EXPECT_EQ(kStreamId, visitor_.blocked_frame_.stream_id);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
CheckFramingBoundaries(fragments, QUIC_INVALID_STREAM_BLOCKED_DATA);
} else {
CheckFramingBoundaries(fragments, QUIC_INVALID_BLOCKED_DATA);
@@ -5248,14 +5254,14 @@
// clang-format on
QuicEncryptedPacket encrypted(
- AsChars(framer_.transport_version() == QUIC_VERSION_99
+ AsChars(VersionHasIetfQuicFrames(framer_.transport_version())
? packet99
: (framer_.transport_version() > QUIC_VERSION_44
? packet46
: framer_.transport_version() > QUIC_VERSION_43
? packet44
: packet)),
- framer_.transport_version() == QUIC_VERSION_99
+ VersionHasIetfQuicFrames(framer_.transport_version())
? QUIC_ARRAYSIZE(packet99)
: (framer_.transport_version() > QUIC_VERSION_44
? QUIC_ARRAYSIZE(packet46)
@@ -5903,7 +5909,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -6055,7 +6061,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -6137,7 +6143,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -6227,7 +6233,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -6317,7 +6323,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -6448,7 +6454,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -6575,7 +6581,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -6882,7 +6888,7 @@
// clang-format on
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -6999,7 +7005,7 @@
// clang-format on
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -7189,7 +7195,7 @@
// clang-format on
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -7594,7 +7600,7 @@
// clang-format on
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -7663,7 +7669,7 @@
QuicRstStreamFrame rst_frame;
rst_frame.stream_id = kStreamId;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
rst_frame.ietf_error_code = 0x01;
} else {
rst_frame.error_code = static_cast<QuicRstStreamErrorCode>(0x05060708);
@@ -7754,7 +7760,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -7779,7 +7785,7 @@
header.packet_number = kPacketNumber;
QuicConnectionCloseFrame close_frame;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
close_frame.transport_error_code =
static_cast<QuicIetfTransportErrorCodes>(0x11);
close_frame.transport_close_frame_type = 0x05;
@@ -7881,7 +7887,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -7908,7 +7914,7 @@
header.packet_number = kPacketNumber;
QuicConnectionCloseFrame close_frame;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
close_frame.transport_error_code = PROTOCOL_VIOLATION; // value is 0x0a
EXPECT_EQ(0u, close_frame.transport_close_frame_type);
close_frame.close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
@@ -8120,7 +8126,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -8139,7 +8145,7 @@
}
TEST_P(QuicFramerTest, BuildApplicationCloseFramePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// Versions other than 99 do not have ApplicationClose
return;
}
@@ -8190,7 +8196,7 @@
}
TEST_P(QuicFramerTest, BuildTruncatedApplicationCloseFramePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// Versions other than 99 do not have this frame.
return;
}
@@ -8268,7 +8274,7 @@
}
TEST_P(QuicFramerTest, BuildGoAwayPacket) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame type is not supported in version 99.
return;
}
@@ -8376,7 +8382,7 @@
}
TEST_P(QuicFramerTest, BuildTruncatedGoAwayPacket) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame type is not supported in version 99.
return;
}
@@ -8655,7 +8661,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -8671,7 +8677,7 @@
}
TEST_P(QuicFramerTest, BuildMaxStreamDataPacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is available only in this version.
return;
}
@@ -8716,7 +8722,7 @@
}
TEST_P(QuicFramerTest, BuildMaxDataPacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is available only in this version.
return;
}
@@ -8768,8 +8774,8 @@
header.packet_number = kPacketNumber;
QuicBlockedFrame blocked_frame;
- if (framer_.transport_version() == QUIC_VERSION_99) {
- // For V99, the stream ID must be <invalid> for the frame
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
+ // For IETF QUIC, the stream ID must be <invalid> for the frame
// to be a BLOCKED frame. if it's valid, it will be a
// STREAM_BLOCKED frame.
blocked_frame.stream_id =
@@ -8844,7 +8850,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -8920,7 +8926,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -9016,7 +9022,7 @@
// clang-format on
unsigned char* p = packet45;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -9104,7 +9110,7 @@
unsigned char* p = packet;
size_t packet_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
packet_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -9131,7 +9137,7 @@
// Test that the path challenge connectivity probing packet is serialized
// correctly as a padded PATH CHALLENGE packet.
TEST_P(QuicFramerTest, BuildPaddedPathChallengePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -9186,7 +9192,7 @@
// packet. Also generates packets with 1 and 3 PATH_RESPONSES in them to
// exercised the single- and multiple- payload cases.
TEST_P(QuicFramerTest, BuildPathResponsePacket1ResponseUnpadded) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -9230,7 +9236,7 @@
}
TEST_P(QuicFramerTest, BuildPathResponsePacket1ResponsePadded) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -9276,7 +9282,7 @@
}
TEST_P(QuicFramerTest, BuildPathResponsePacket3ResponsesUnpadded) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -9327,7 +9333,7 @@
}
TEST_P(QuicFramerTest, BuildPathResponsePacket3ResponsesPadded) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -9444,7 +9450,7 @@
ASSERT_TRUE(data != nullptr);
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -9827,6 +9833,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
+ // TODO(ianswett): see todo in previous test.
if (framer_.transport_version() == QUIC_VERSION_99) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
@@ -9852,7 +9859,7 @@
}
TEST_P(QuicFramerTest, AckTruncationLargePacket) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This test is not applicable to this version; the range count is
// effectively unlimited
return;
@@ -9892,7 +9899,7 @@
}
TEST_P(QuicFramerTest, AckTruncationSmallPacket) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This test is not applicable to this version; the range count is
// effectively unlimited
return;
@@ -9933,7 +9940,7 @@
}
TEST_P(QuicFramerTest, CleanTruncation) {
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
// This test is not applicable to this version; the range count is
// effectively unlimited
return;
@@ -10143,7 +10150,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -10379,7 +10386,7 @@
// clang-format on
unsigned char* p = packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
} else if (framer_.transport_version() > QUIC_VERSION_44) {
p = packet46;
@@ -10395,7 +10402,7 @@
TEST_P(QuicFramerTest, IetfBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10437,7 +10444,7 @@
TEST_P(QuicFramerTest, BuildIetfBlockedPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -10478,7 +10485,7 @@
TEST_P(QuicFramerTest, IetfStreamBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10523,7 +10530,7 @@
TEST_P(QuicFramerTest, BuildIetfStreamBlockedPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -10566,7 +10573,7 @@
TEST_P(QuicFramerTest, BiDiMaxStreamsFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10608,7 +10615,7 @@
TEST_P(QuicFramerTest, UniDiMaxStreamsFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10649,7 +10656,7 @@
TEST_P(QuicFramerTest, ServerUniDiMaxStreamsFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10691,7 +10698,7 @@
TEST_P(QuicFramerTest, ClientUniDiMaxStreamsFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10738,7 +10745,7 @@
// client- initiated.
TEST_P(QuicFramerTest, BiDiMaxStreamsFrameTooBig) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10776,7 +10783,7 @@
TEST_P(QuicFramerTest, ClientBiDiMaxStreamsFrameTooBig) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10815,7 +10822,7 @@
TEST_P(QuicFramerTest, ServerUniDiMaxStreamsFrameTooBig) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10854,7 +10861,7 @@
TEST_P(QuicFramerTest, ClientUniDiMaxStreamsFrameTooBig) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10894,7 +10901,7 @@
// Specifically test that count==0 is accepted.
TEST_P(QuicFramerTest, MaxStreamsFrameZeroCount) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10921,7 +10928,7 @@
TEST_P(QuicFramerTest, ServerBiDiStreamsBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -10964,7 +10971,7 @@
TEST_P(QuicFramerTest, BiDiStreamsBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11007,7 +11014,7 @@
TEST_P(QuicFramerTest, UniDiStreamsBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11049,7 +11056,7 @@
TEST_P(QuicFramerTest, ClientUniDiStreamsBlockedFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11094,7 +11101,7 @@
// initiated; the logic does not take these into account.
TEST_P(QuicFramerTest, StreamsBlockedFrameTooBig) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11129,7 +11136,7 @@
// Specifically test that count==0 is accepted.
TEST_P(QuicFramerTest, StreamsBlockedFrameZeroCount) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11173,7 +11180,7 @@
TEST_P(QuicFramerTest, BuildBiDiStreamsBlockedPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11215,7 +11222,7 @@
TEST_P(QuicFramerTest, BuildUniStreamsBlockedPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11257,7 +11264,7 @@
TEST_P(QuicFramerTest, BuildBiDiMaxStreamsPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11299,7 +11306,7 @@
TEST_P(QuicFramerTest, BuildUniDiMaxStreamsPacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11343,7 +11350,7 @@
}
TEST_P(QuicFramerTest, NewConnectionIdFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -11399,7 +11406,7 @@
}
TEST_P(QuicFramerTest, NewConnectionIdFrameVariableLength) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -11457,7 +11464,7 @@
// Verifies that parsing a NEW_CONNECTION_ID frame with a length above the
// specified maximum fails.
TEST_P(QuicFramerTest, InvalidLongNewConnectionIdFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// The NEW_CONNECTION_ID frame is only for version 99.
return;
}
@@ -11499,7 +11506,7 @@
}
TEST_P(QuicFramerTest, BuildNewConnectionIdFramePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -11551,7 +11558,7 @@
}
TEST_P(QuicFramerTest, NewTokenFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -11600,7 +11607,7 @@
}
TEST_P(QuicFramerTest, BuildNewTokenFramePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -11646,7 +11653,7 @@
TEST_P(QuicFramerTest, IetfStopSendingFrame) {
// This test is only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11691,7 +11698,7 @@
TEST_P(QuicFramerTest, BuildIetfStopSendingPacket) {
// This test is only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11734,7 +11741,7 @@
TEST_P(QuicFramerTest, IetfPathChallengeFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11777,7 +11784,7 @@
TEST_P(QuicFramerTest, BuildIetfPathChallengePacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11817,7 +11824,7 @@
TEST_P(QuicFramerTest, IetfPathResponseFrame) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -11860,7 +11867,7 @@
TEST_P(QuicFramerTest, BuildIetfPathResponsePacket) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11908,7 +11915,7 @@
std::string error_detail(2048, 'e');
QuicConnectionCloseFrame connection_close(QUIC_NETWORK_IDLE_TIMEOUT,
error_detail);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
connection_close.close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
@@ -11934,7 +11941,7 @@
QuicFramer::GetRetransmittableControlFrameSize(
framer_.transport_version(), QuicFrame(&blocked)));
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
@@ -11982,7 +11989,7 @@
// This only for version 99.
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorUnknown1Byte) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12014,7 +12021,7 @@
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorUnknown2Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12047,7 +12054,7 @@
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorUnknown4Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12080,7 +12087,7 @@
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorUnknown8Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12116,7 +12123,7 @@
// Look at the frame-type encoded in 2, 4, and 8 bytes.
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorKnown2Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12149,7 +12156,7 @@
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorKnown4Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12182,7 +12189,7 @@
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorKnown8Bytes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12218,7 +12225,7 @@
// Just look at 2-byte encoding.
TEST_P(QuicFramerTest, IetfFrameTypeEncodingErrorKnown2BytesAllTypes) {
// This test only for version 99.
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
return;
}
SetDecrypterLevel(ENCRYPTION_FORWARD_SECURE);
@@ -12618,7 +12625,7 @@
}
TEST_P(QuicFramerTest, RetireConnectionIdFrame) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -12663,7 +12670,7 @@
}
TEST_P(QuicFramerTest, BuildRetireConnectionIdFramePacket) {
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
// This frame is only for version 99.
return;
}
@@ -12789,7 +12796,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -12890,7 +12897,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -13031,7 +13038,7 @@
unsigned char* p = packet;
size_t p_size = QUIC_ARRAYSIZE(packet);
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
p = packet99;
p_size = QUIC_ARRAYSIZE(packet99);
} else if (framer_.transport_version() > QUIC_VERSION_44) {
@@ -13044,7 +13051,7 @@
QuicEncryptedPacket encrypted(AsChars(p), p_size, false);
EXPECT_FALSE(framer_.ProcessPacket(encrypted));
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
EXPECT_EQ(framer_.detailed_error(),
"Underflow with ack block length 6 latest ack block end is 5.");
} else {
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index eb0596f..b29dacb 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -545,7 +545,7 @@
if (!has_trailing_stream_frame) {
return 0;
}
- if (framer_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_->transport_version())) {
return QuicDataWriter::GetVarInt62Len(
queued_frames_.back().stream_frame.data_length);
}
@@ -651,7 +651,7 @@
OwningSerializedPacketPointer
QuicPacketCreator::SerializeConnectivityProbingPacket() {
- QUIC_BUG_IF(framer_->transport_version() == QUIC_VERSION_99)
+ QUIC_BUG_IF(VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must not be version 99 to serialize padded ping connectivity probe";
QuicPacketHeader header;
// FillPacketHeader increments packet_number_.
@@ -684,7 +684,7 @@
OwningSerializedPacketPointer
QuicPacketCreator::SerializePathChallengeConnectivityProbingPacket(
QuicPathFrameBuffer* payload) {
- QUIC_BUG_IF(framer_->transport_version() != QUIC_VERSION_99)
+ QUIC_BUG_IF(!VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must be version 99 to serialize path challenge connectivity probe, "
"is version "
<< framer_->transport_version();
@@ -720,7 +720,7 @@
QuicPacketCreator::SerializePathResponseConnectivityProbingPacket(
const QuicDeque<QuicPathFrameBuffer>& payloads,
const bool is_padded) {
- QUIC_BUG_IF(framer_->transport_version() != QUIC_VERSION_99)
+ QUIC_BUG_IF(!VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must be version 99 to serialize path response connectivity probe, is "
"version "
<< framer_->transport_version();
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index bc30af9..3a4978c 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -576,7 +576,7 @@
TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) {
QuicConnectionCloseFrame frame(QUIC_NO_ERROR, "error");
- if (GetParam().version.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
frame.close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
@@ -832,7 +832,7 @@
creator_.set_encryption_level(level);
OwningSerializedPacketPointer encrypted;
- if (GetParam().version.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
QuicPathFrameBuffer payload = {
{0xde, 0xad, 0xbe, 0xef, 0xba, 0xdc, 0x0f, 0xfe}};
encrypted =
@@ -847,7 +847,7 @@
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
- if (GetParam().version.transport_version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
EXPECT_CALL(framer_visitor_, OnPathChallengeFrame(_));
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
} else {
@@ -863,7 +863,7 @@
}
TEST_P(QuicPacketCreatorTest, SerializePathChallengeProbePacket) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload = {
@@ -894,7 +894,7 @@
}
TEST_P(QuicPacketCreatorTest, SerializePathResponseProbePacket1PayloadPadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
@@ -928,7 +928,7 @@
TEST_P(QuicPacketCreatorTest,
SerializePathResponseProbePacket1PayloadUnPadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
@@ -960,7 +960,7 @@
}
TEST_P(QuicPacketCreatorTest, SerializePathResponseProbePacket2PayloadsPadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
@@ -997,7 +997,7 @@
TEST_P(QuicPacketCreatorTest,
SerializePathResponseProbePacket2PayloadsUnPadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
@@ -1032,7 +1032,7 @@
}
TEST_P(QuicPacketCreatorTest, SerializePathResponseProbePacket3PayloadsPadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
@@ -1072,7 +1072,7 @@
TEST_P(QuicPacketCreatorTest,
SerializePathResponseProbePacket3PayloadsUnpadded) {
- if (GetParam().version.transport_version != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(GetParam().version.transport_version)) {
return;
}
QuicPathFrameBuffer payload0 = {
diff --git a/quic/core/quic_packet_generator_test.cc b/quic/core/quic_packet_generator_test.cc
index 6f3f8f3..de2c927 100644
--- a/quic/core/quic_packet_generator_test.cc
+++ b/quic/core/quic_packet_generator_test.cc
@@ -980,7 +980,7 @@
// Send some data and a control frame
MakeIOVector("quux", &iov_);
generator_.ConsumeData(3, &iov_, 1u, iov_.iov_len, 0, NO_FIN);
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
generator_.ConsumeRetransmittableControlFrame(
QuicFrame(CreateGoAwayFrame()),
/*bundle_ack=*/false);
@@ -1002,7 +1002,7 @@
} else {
contents.num_ack_frames = 1;
}
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
contents.num_goaway_frames = 1;
} else {
contents.num_goaway_frames = 0;
@@ -1060,7 +1060,7 @@
generator_.ConsumeData(3, &iov_, 1u, iov_.iov_len, 0, FIN);
EXPECT_EQ(data_len, consumed.bytes_consumed);
EXPECT_TRUE(consumed.fin_consumed);
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
generator_.ConsumeRetransmittableControlFrame(
QuicFrame(CreateGoAwayFrame()),
/*bundle_ack=*/false);
@@ -1084,7 +1084,7 @@
// The second should have the remainder of the stream data.
PacketContents contents2;
- if (framer_.transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(framer_.transport_version())) {
contents2.num_goaway_frames = 1;
} else {
contents2.num_goaway_frames = 0;
@@ -1313,7 +1313,7 @@
delegate_.SetCanWriteAnything();
OwningSerializedPacketPointer probing_packet;
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
QuicPathFrameBuffer payload = {
{0xde, 0xad, 0xbe, 0xef, 0xba, 0xdc, 0x0f, 0xfe}};
probing_packet =
@@ -1326,7 +1326,7 @@
probing_packet->encrypted_buffer, probing_packet->encrypted_length)));
EXPECT_EQ(2u, simple_framer_.num_frames());
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
EXPECT_EQ(1u, simple_framer_.path_challenge_frames().size());
} else {
EXPECT_EQ(1u, simple_framer_.ping_frames().size());
@@ -1464,7 +1464,7 @@
QuicStringPiece error_details(buf, 2000);
QuicConnectionCloseFrame* frame = new QuicConnectionCloseFrame(
QUIC_PACKET_WRITE_ERROR, std::string(error_details));
- if (framer_.transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(framer_.transport_version())) {
frame->close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
}
generator_.ConsumeRetransmittableControlFrame(QuicFrame(frame),
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index be6a2b3..efa3144 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -119,7 +119,7 @@
QuicStreamId id =
QuicUtils::GetCryptoStreamId(connection_->transport_version());
largest_static_stream_id_ = std::max(id, largest_static_stream_id_);
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.RegisterStaticStream(id, false);
}
}
@@ -139,7 +139,7 @@
<< " vs: " << largest_static_stream_id_;
largest_static_stream_id_ = std::max(id, largest_static_stream_id_);
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.RegisterStaticStream(id, false);
}
}
@@ -149,7 +149,7 @@
DCHECK(eliminate_static_stream_map_);
QuicStreamId stream_id = stream->id();
dynamic_stream_map_[stream_id] = std::move(stream);
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.RegisterStaticStream(stream_id,
stream_already_counted);
}
@@ -242,7 +242,7 @@
// could not call OnStopSending... This is just a check that is good when
// both a new protocol and a new implementation of that protocol are both
// being developed.
- DCHECK_EQ(QUIC_VERSION_99, connection_->transport_version());
+ DCHECK(VersionHasIetfQuicFrames(connection_->transport_version()));
QuicStreamId stream_id = frame.stream_id;
// If Stream ID is invalid then close the connection.
@@ -746,14 +746,14 @@
if (connection()->connected()) {
// Only send if still connected.
if (close_write_side_only) {
- DCHECK_EQ(QUIC_VERSION_99, connection_->transport_version());
+ DCHECK(VersionHasIetfQuicFrames(connection_->transport_version()));
// Send a RST_STREAM frame.
control_frame_manager_.WriteOrBufferRstStream(id, error, bytes_written);
} else {
// Send a RST_STREAM frame plus, if version 99, an IETF
// QUIC STOP_SENDING frame. Both sre sent to emulate
// the two-way close that Google QUIC's RST_STREAM does.
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
QuicConnection::ScopedPacketFlusher flusher(
connection(), QuicConnection::SEND_ACK_IF_QUEUED);
control_frame_manager_.WriteOrBufferRstStream(id, error, bytes_written);
@@ -773,7 +773,7 @@
CloseStreamInner(id, true);
return;
}
- DCHECK_EQ(QUIC_VERSION_99, connection_->transport_version());
+ DCHECK(VersionHasIetfQuicFrames(connection_->transport_version()));
DynamicStreamMap::iterator it = dynamic_stream_map_.find(id);
if (it != dynamic_stream_map_.end()) {
@@ -798,7 +798,7 @@
void QuicSession::SendGoAway(QuicErrorCode error_code,
const std::string& reason) {
// GOAWAY frame is not supported in v99.
- DCHECK_NE(QUIC_VERSION_99, connection_->transport_version());
+ DCHECK(!VersionHasIetfQuicFrames(connection_->transport_version()));
if (goaway_sent_) {
return;
}
@@ -907,7 +907,7 @@
--num_draining_incoming_streams_;
}
draining_streams_.erase(stream_id);
- } else if (connection_->transport_version() == QUIC_VERSION_99) {
+ } else if (VersionHasIetfQuicFrames(connection_->transport_version())) {
// Stream was not draining, but we did have a fin or rst, so we can now
// free the stream ID if version 99.
if (had_fin_or_rst) {
@@ -918,7 +918,7 @@
stream->OnClose();
if (!stream_was_draining && !IsIncomingStream(stream_id) && had_fin_or_rst &&
- connection_->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection_->transport_version())) {
// Streams that first became draining already called OnCanCreate...
// This covers the case where the stream went directly to being closed.
OnCanCreateNewOutgoingStream();
@@ -943,7 +943,7 @@
--num_dynamic_incoming_streams_;
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.OnStreamClosed(stream_id);
}
@@ -977,10 +977,10 @@
locally_closed_streams_highest_offset_.erase(it);
if (IsIncomingStream(stream_id)) {
--num_locally_closed_incoming_streams_highest_offset_;
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.OnStreamClosed(stream_id);
}
- } else if (connection_->transport_version() != QUIC_VERSION_99) {
+ } else if (!VersionHasIetfQuicFrames(connection_->transport_version())) {
OnCanCreateNewOutgoingStream();
}
}
@@ -1000,7 +1000,7 @@
void QuicSession::OnConfigNegotiated() {
connection_->SetFromConfig(config_);
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
uint32_t max_streams = 0;
if (config_.HasReceivedMaxIncomingBidirectionalStreams()) {
max_streams = config_.ReceivedMaxIncomingBidirectionalStreams();
@@ -1051,7 +1051,7 @@
config_.SetStatelessResetTokenToSend(GetStatelessResetToken());
}
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.SetMaxOpenIncomingBidirectionalStreams(
config_.GetMaxIncomingBidirectionalStreamsToSend());
v99_streamid_manager_.SetMaxOpenIncomingUnidirectionalStreams(
@@ -1251,21 +1251,21 @@
}
QuicStreamId QuicSession::GetNextOutgoingBidirectionalStreamId() {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.GetNextOutgoingBidirectionalStreamId();
}
return stream_id_manager_.GetNextOutgoingStreamId();
}
QuicStreamId QuicSession::GetNextOutgoingUnidirectionalStreamId() {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.GetNextOutgoingUnidirectionalStreamId();
}
return stream_id_manager_.GetNextOutgoingStreamId();
}
bool QuicSession::CanOpenNextOutgoingBidirectionalStream() {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.CanOpenNextOutgoingBidirectionalStream();
}
return stream_id_manager_.CanOpenNextOutgoingStream(
@@ -1273,7 +1273,7 @@
}
bool QuicSession::CanOpenNextOutgoingUnidirectionalStream() {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.CanOpenNextOutgoingUnidirectionalStream();
}
return stream_id_manager_.CanOpenNextOutgoingStream(
@@ -1301,7 +1301,7 @@
if (IsIncomingStream(stream_id)) {
++num_draining_incoming_streams_;
}
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.OnStreamClosed(stream_id);
}
}
@@ -1313,7 +1313,7 @@
bool QuicSession::MaybeIncreaseLargestPeerStreamId(
const QuicStreamId stream_id) {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.MaybeIncreaseLargestPeerStreamId(stream_id);
}
return stream_id_manager_.MaybeIncreaseLargestPeerStreamId(stream_id);
@@ -1371,7 +1371,7 @@
return nullptr;
}
- if (connection_->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(connection_->transport_version())) {
// TODO(fayang): Let LegacyQuicStreamIdManager count open streams and make
// CanOpenIncomingStream interface cosistent with that of v99.
if (!stream_id_manager_.CanOpenIncomingStream(
@@ -1387,7 +1387,7 @@
void QuicSession::set_largest_peer_created_stream_id(
QuicStreamId largest_peer_created_stream_id) {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
v99_streamid_manager_.SetLargestPeerCreatedStreamId(
largest_peer_created_stream_id);
return;
@@ -1404,7 +1404,7 @@
return false;
}
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return !v99_streamid_manager_.IsAvailableStream(id);
}
@@ -1531,21 +1531,21 @@
}
size_t QuicSession::MaxAvailableBidirectionalStreams() const {
- if (connection()->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection()->transport_version())) {
return v99_streamid_manager_.GetMaxAllowdIncomingBidirectionalStreams();
}
return stream_id_manager_.MaxAvailableStreams();
}
size_t QuicSession::MaxAvailableUnidirectionalStreams() const {
- if (connection()->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection()->transport_version())) {
return v99_streamid_manager_.GetMaxAllowdIncomingUnidirectionalStreams();
}
return stream_id_manager_.MaxAvailableStreams();
}
bool QuicSession::IsIncomingStream(QuicStreamId id) const {
- if (connection()->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection()->transport_version())) {
return v99_streamid_manager_.IsIncomingStream(id);
}
return stream_id_manager_.IsIncomingStream(id);
@@ -1930,14 +1930,14 @@
void QuicSession::OnCanCreateNewOutgoingStream() {}
QuicStreamId QuicSession::next_outgoing_bidirectional_stream_id() const {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.next_outgoing_bidirectional_stream_id();
}
return stream_id_manager_.next_outgoing_stream_id();
}
QuicStreamId QuicSession::next_outgoing_unidirectional_stream_id() const {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.next_outgoing_unidirectional_stream_id();
}
return stream_id_manager_.next_outgoing_stream_id();
@@ -1952,14 +1952,14 @@
}
size_t QuicSession::max_open_incoming_bidirectional_streams() const {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.GetMaxAllowdIncomingBidirectionalStreams();
}
return stream_id_manager_.max_open_incoming_streams();
}
size_t QuicSession::max_open_incoming_unidirectional_streams() const {
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
return v99_streamid_manager_.GetMaxAllowdIncomingUnidirectionalStreams();
}
return stream_id_manager_.max_open_incoming_streams();
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 584593a..0d9af18 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -185,7 +185,7 @@
// Enforce the limit on the number of open streams.
if (GetNumOpenIncomingStreams() + 1 >
max_open_incoming_bidirectional_streams() &&
- connection()->transport_version() != QUIC_VERSION_99) {
+ !VersionHasIetfQuicFrames(connection()->transport_version())) {
// No need to do this test for version 99; it's done by
// QuicSession::GetOrCreateDynamicStream.
connection()->CloseConnection(
@@ -357,7 +357,7 @@
}
void CloseStream(QuicStreamId id) {
- if (session_.connection()->transport_version() == QUIC_VERSION_99 &&
+ if (VersionHasIetfQuicFrames(session_.connection()->transport_version()) &&
QuicUtils::GetStreamType(id, session_.perspective(),
session_.IsIncomingStream(id)) ==
READ_UNIDIRECTIONAL) {
@@ -366,7 +366,8 @@
EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(0);
} else {
// Verify reset IS sent for BIDIRECTIONAL streams.
- if (session_.connection()->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(
+ session_.connection()->transport_version())) {
// Once for the RST_STREAM, Once for the STOP_SENDING
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(2)
@@ -417,7 +418,7 @@
// needs to do the stream count where #1 is 0/1/2/3, and not
// take into account that stream 0 is special.
QuicStreamId id =
- ((stream_count - 1) * QuicUtils::StreamIdDelta(QUIC_VERSION_99));
+ ((stream_count - 1) * QuicUtils::StreamIdDelta(transport_version()));
if (!bidirectional) {
id |= 0x2;
}
@@ -563,7 +564,7 @@
}
TEST_P(QuicSessionTestServer, MaxAvailableBidirectionalStreams) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_EQ(session_.max_open_incoming_bidirectional_streams(),
session_.MaxAvailableBidirectionalStreams());
} else {
@@ -576,7 +577,7 @@
}
TEST_P(QuicSessionTestServer, MaxAvailableUnidirectionalStreams) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_EQ(session_.max_open_incoming_unidirectional_streams(),
session_.MaxAvailableUnidirectionalStreams());
} else {
@@ -681,8 +682,8 @@
// A stream ID which is too large to create.
stream_id2 = GetNthClientInitiatedBidirectionalId(
session_.MaxAvailableBidirectionalStreams() + 2);
- if (transport_version() == QUIC_VERSION_99) {
- // V99 terminates the connection with invalid stream id
+ if (VersionHasIetfQuicFrames(transport_version())) {
+ // IETF QUIC terminates the connection with invalid stream id
EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, _, _));
} else {
// other versions terminate the connection with
@@ -700,8 +701,8 @@
// A stream ID which is too large to create.
stream_id2 = GetNthClientInitiatedUnidirectionalId(
session_.MaxAvailableUnidirectionalStreams() + 2);
- if (transport_version() == QUIC_VERSION_99) {
- // V99 terminates the connection with invalid stream id
+ if (VersionHasIetfQuicFrames(transport_version())) {
+ // IETF QUIC terminates the connection with invalid stream id
EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, _, _));
} else {
// other versions terminate the connection with
@@ -715,7 +716,7 @@
TEST_P(QuicSessionTestServer, ManyAvailableBidirectionalStreams) {
// When max_open_streams_ is 200, should be able to create 200 streams
// out-of-order, that is, creating the one with the largest stream ID first.
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_, 200);
// Smaller limit on unidirectional streams to help detect crossed wires.
QuicSessionPeer::SetMaxOpenIncomingUnidirectionalStreams(&session_, 50);
@@ -732,7 +733,7 @@
EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(
GetNthClientInitiatedBidirectionalId(199)));
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// If IETF QUIC, check to make sure that creating bidirectional
// streams does not mess up the unidirectional streams.
stream_id = GetNthClientInitiatedUnidirectionalId(0);
@@ -758,7 +759,7 @@
TEST_P(QuicSessionTestServer, ManyAvailableUnidirectionalStreams) {
// When max_open_streams_ is 200, should be able to create 200 streams
// out-of-order, that is, creating the one with the largest stream ID first.
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingUnidirectionalStreams(&session_, 200);
// Smaller limit on unidirectional streams to help detect crossed wires.
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_, 50);
@@ -774,7 +775,7 @@
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(
GetNthClientInitiatedUnidirectionalId(199)));
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// If IETF QUIC, check to make sure that creating unidirectional
// streams does not mess up the bidirectional streams.
stream_id = GetNthClientInitiatedBidirectionalId(0);
@@ -1170,7 +1171,7 @@
}
TEST_P(QuicSessionTestServer, SendGoAway) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// GoAway frames are not in version 99
return;
}
@@ -1194,7 +1195,7 @@
}
TEST_P(QuicSessionTestServer, DoNotSendGoAwayTwice) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// TODO(b/118808809): Enable this test for version 99 when GOAWAY is
// supported.
return;
@@ -1207,7 +1208,7 @@
}
TEST_P(QuicSessionTestServer, InvalidGoAway) {
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// TODO(b/118808809): Enable this test for version 99 when GOAWAY is
// supported.
return;
@@ -1235,7 +1236,7 @@
.WillOnce(Invoke(
connection_,
&MockQuicConnection::ReallySendConnectivityProbingResponsePacket));
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Need to explicitly do this to emulate the reception of a PathChallenge,
// which stores its payload for use in generating the response.
connection_->OnPathChallengeFrame(
@@ -1248,9 +1249,9 @@
// Same as above, but check that if there are two PATH_CHALLENGE frames in the
// packet, the response has both of them AND we do not do migration. This for
-// V99 only.
+// IETF QUIC only.
TEST_P(QuicSessionTestServer, ServerReplyToConnectivityProbes) {
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
return;
}
if (GetParam().handshake_protocol == PROTOCOL_TLS1_3) {
@@ -1472,10 +1473,10 @@
QuicRstStreamFrame rst_frame(kInvalidControlFrameId, stream->id(),
QUIC_STREAM_CANCELLED, kByteOffset);
session_.OnRstStream(rst_frame);
- if (transport_version() == QUIC_VERSION_99) {
- // The test is predicated on the stream being fully closed. For V99, the
- // RST_STREAM only does one side (the read side from the perspective of the
- // node receiving the RST_STREAM). This is needed to fully close the
+ if (VersionHasIetfQuicFrames(transport_version())) {
+ // The test is predicated on the stream being fully closed. For IETF QUIC,
+ // the RST_STREAM only does one side (the read side from the perspective of
+ // the node receiving the RST_STREAM). This is needed to fully close the
// stream and therefore fulfill all of the expects.
QuicStopSendingFrame frame(kInvalidControlFrameId, stream->id(),
QUIC_STREAM_CANCELLED);
@@ -1650,10 +1651,10 @@
TEST_P(QuicSessionTestServer, TooManyUnfinishedStreamsCauseServerRejectStream) {
// If a buggy/malicious peer creates too many streams that are not ended
- // with a FIN or RST then we send an RST to refuse streams. For V99 the
+ // with a FIN or RST then we send an RST to refuse streams. For IETF QUIC the
// connection is closed.
const QuicStreamId kMaxStreams = 5;
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_,
kMaxStreams);
} else {
@@ -1669,7 +1670,7 @@
QuicStreamFrame data1(i, false, 0, QuicStringPiece("HT"));
session_.OnStreamFrame(data1);
// EXPECT_EQ(1u, session_.GetNumOpenStreams());
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Expect two control frames, RST STREAM and STOP SENDING
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(2)
@@ -1685,7 +1686,7 @@
session_.CloseStream(i);
}
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(
*connection_,
CloseConnection(QUIC_INVALID_STREAM_ID,
@@ -1728,7 +1729,7 @@
}
TEST_P(QuicSessionTestServer, PendingStreams) {
- if (connection_->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
return;
}
session_.set_uses_pending_streams(true);
@@ -1745,7 +1746,7 @@
}
TEST_P(QuicSessionTestServer, RstPendingStreams) {
- if (connection_->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
return;
}
session_.set_uses_pending_streams(true);
@@ -1774,16 +1775,16 @@
// Verify that a draining stream (which has received a FIN but not consumed
// it) does not count against the open quota (because it is closed from the
// protocol point of view).
- if (transport_version() == QUIC_VERSION_99) {
- // On v99, we will expect to see a MAX_STREAMS go out when there are not
- // enough streams to create the next one.
+ if (VersionHasIetfQuicFrames(transport_version())) {
+ // On IETF QUIC, we will expect to see a MAX_STREAMS go out when there are
+ // not enough streams to create the next one.
EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
} else {
EXPECT_CALL(*connection_, SendControlFrame(_)).Times(0);
}
EXPECT_CALL(*connection_, OnStreamReset(_, QUIC_REFUSED_STREAM)).Times(0);
const QuicStreamId kMaxStreams = 5;
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
QuicSessionPeer::SetMaxOpenIncomingBidirectionalStreams(&session_,
kMaxStreams);
} else {
@@ -1908,7 +1909,7 @@
QuicRstStreamFrame rst1(kInvalidControlFrameId, stream2->id(),
QUIC_ERROR_PROCESSING_STREAM, 0);
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(session_, OnCanCreateNewOutgoingStream()).Times(1);
}
session_.OnRstStream(rst1);
@@ -1934,7 +1935,7 @@
// Just for the RST_STREAM
EXPECT_CALL(*connection_, SendControlFrame(_))
.WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
EXPECT_CALL(*connection_,
OnStreamReset(stream2->id(), QUIC_STREAM_CANCELLED));
} else {
@@ -1943,10 +1944,10 @@
}
stream2->OnStreamReset(rst_frame);
- if (transport_version() == QUIC_VERSION_99) {
- // The test is predicated on the stream being fully closed. For V99, the
- // RST_STREAM only does one side (the read side from the perspective of the
- // node receiving the RST_STREAM). This is needed to fully close the
+ if (VersionHasIetfQuicFrames(transport_version())) {
+ // The test is predicated on the stream being fully closed. For IETF QUIC,
+ // the RST_STREAM only does one side (the read side from the perspective of
+ // the node receiving the RST_STREAM). This is needed to fully close the
// stream and therefore fulfill all of the expects.
QuicStopSendingFrame frame(kInvalidControlFrameId, stream2->id(),
QUIC_STREAM_CANCELLED);
@@ -1957,7 +1958,7 @@
EXPECT_EQ(stream2->id(), session_.closed_streams()->front()->id());
TestStream* stream4 = session_.CreateOutgoingBidirectionalStream();
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Once for the RST_STREAM, once for the STOP_SENDING
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(2)
@@ -1971,7 +1972,7 @@
stream4->WriteOrBufferData(body, false, nullptr);
// Note well: Reset() actually closes the stream in both directions. For
// GOOGLE QUIC it sends a RST_STREAM (which does a 2-way close), for IETF
- // QUIC/V99 it sends both a RST_STREAM and a STOP_SENDING (each of which
+ // QUIC it sends both a RST_STREAM and a STOP_SENDING (each of which
// closes in only one direction).
stream4->Reset(QUIC_STREAM_CANCELLED);
EXPECT_FALSE(QuicContainsKey(session_.zombie_streams(), stream4->id()));
@@ -2155,7 +2156,7 @@
// yet, so an RST is sent.
EXPECT_CALL(*stream, OnCanWrite())
.WillOnce(Invoke(stream, &QuicStream::OnClose));
- if (transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(transport_version())) {
// Once for the RST_STREAM, once for the STOP_SENDING
EXPECT_CALL(*connection_, SendControlFrame(_))
.Times(2)
@@ -2382,8 +2383,8 @@
// properly and that nothing in the call path interferes with the check.
// First test make sure that streams with ids below the limit are accepted.
TEST_P(QuicSessionTestServer, NewStreamIdBelowLimit) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
QuicStreamId bidirectional_stream_id = StreamCountToId(
@@ -2412,8 +2413,8 @@
// Accept a stream with an ID that equals the limit.
TEST_P(QuicSessionTestServer, NewStreamIdAtLimit) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
QuicStreamId bidirectional_stream_id = StreamCountToId(
@@ -2437,8 +2438,8 @@
// Close the connection if the id exceeds the limit.
TEST_P(QuicSessionTestServer, NewStreamIdAboveLimit) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
QuicStreamId bidirectional_stream_id = StreamCountToId(
@@ -2471,8 +2472,8 @@
// Check that the OnStopSendingFrame upcall handles bad input properly
// First test checks that invalid stream ids are handled.
TEST_P(QuicSessionTestServer, OnStopSendingInputInvalidStreamId) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
// Check that "invalid" stream ids are rejected.
@@ -2488,8 +2489,8 @@
// Second test, streams in the static stream map are not subject to
// STOP_SENDING; it's ignored.
TEST_P(QuicSessionTestServer, OnStopSendingInputStaticStreams) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
QuicStreamId stream_id = 0;
@@ -2514,8 +2515,8 @@
// Third test, if stream id specifies a closed stream:
// return true and do not close the connection.
TEST_P(QuicSessionTestServer, OnStopSendingInputClosedStream) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
@@ -2534,8 +2535,8 @@
// Fourth test, if stream id specifies a nonexistent stream, return false and
// close the connection
TEST_P(QuicSessionTestServer, OnStopSendingInputNonExistentStream) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
@@ -2551,8 +2552,8 @@
// For a valid stream, ensure that all works
TEST_P(QuicSessionTestServer, OnStopSendingInputValidStream) {
- if (transport_version() != QUIC_VERSION_99) {
- // Applicable only to V99
+ if (!VersionHasIetfQuicFrames(transport_version())) {
+ // Applicable only to IETF QUIC
return;
}
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index 55e910c..6ebda29 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -260,7 +260,8 @@
buffered_data_threshold_(GetQuicFlag(FLAGS_quic_buffered_data_threshold)),
is_static_(is_static),
deadline_(QuicTime::Zero()),
- type_(session->connection()->transport_version() == QUIC_VERSION_99 &&
+ type_(VersionHasIetfQuicFrames(
+ session->connection()->transport_version()) &&
type != CRYPTO
? QuicUtils::GetStreamType(id_,
perspective_,
@@ -387,7 +388,7 @@
stream_error_ = frame.error_code;
// Google QUIC closes both sides of the stream in response to a
// RESET_STREAM, IETF QUIC closes only the read side.
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
CloseWriteSide();
}
CloseReadSide();
@@ -1119,7 +1120,7 @@
}
void QuicStream::SendStopSending(uint16_t code) {
- if (transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(transport_version())) {
// If the connection is not version 99, do nothing.
// Do not QUIC_BUG or anything; the application really does not need to know
// what version the connection is in.
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index 7eaa91d..793ee6c 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -229,7 +229,7 @@
}
bool QuicStreamIdManager::CanOpenNextOutgoingStream() {
- DCHECK_EQ(QUIC_VERSION_99, transport_version());
+ DCHECK(VersionHasIetfQuicFrames(transport_version()));
if (outgoing_stream_count_ < outgoing_max_streams_) {
return true;
}
diff --git a/quic/core/quic_stream_id_manager_test.cc b/quic/core/quic_stream_id_manager_test.cc
index 107f472..9f5969e 100644
--- a/quic/core/quic_stream_id_manager_test.cc
+++ b/quic/core/quic_stream_id_manager_test.cc
@@ -161,7 +161,7 @@
// needs to do the stream count where #1 is 0/1/2/3, and not
// take into account that stream 0 is special.
QuicStreamId id =
- ((stream_count - 1) * QuicUtils::StreamIdDelta(QUIC_VERSION_99));
+ ((stream_count - 1) * QuicUtils::StreamIdDelta(transport_version()));
if (IsUnidi()) {
id |= 0x2;
}
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc
index d11a7a4..4c5dac7 100644
--- a/quic/core/quic_stream_test.cc
+++ b/quic/core/quic_stream_test.cc
@@ -1621,7 +1621,7 @@
EXPECT_FALSE(stream_->write_side_closed());
EXPECT_FALSE(QuicStreamPeer::read_side_closed(stream_));
// Expect to actually see a stop sending if and only if we are in version 99.
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
EXPECT_CALL(*session_, SendStopSending(kStopSendingCode, stream_->id()))
.Times(1);
} else {
@@ -1645,7 +1645,7 @@
QuicRstStreamFrame rst_frame(kInvalidControlFrameId, stream_->id(),
QUIC_STREAM_CANCELLED, 1234);
stream_->OnStreamReset(rst_frame);
- if (connection_->transport_version() == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(connection_->transport_version())) {
// Version 99/IETF QUIC should close just the read side.
EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream_));
EXPECT_FALSE(stream_->write_side_closed());
@@ -1660,7 +1660,7 @@
// If not V99, the test is a noop (no STOP_SENDING in Google QUIC).
TEST_P(QuicStreamTest, OnStopSendingReadOrReadWrite) {
Initialize();
- if (connection_->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(connection_->transport_version())) {
return;
}
@@ -1678,7 +1678,7 @@
// SendOnlyRstStream must only send a RESET_STREAM (no bundled STOP_SENDING).
TEST_P(QuicStreamTest, SendOnlyRstStream) {
Initialize();
- if (connection_->transport_version() != QUIC_VERSION_99) {
+ if (!VersionHasIetfQuicFrames(connection_->transport_version())) {
return;
}
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index 955e82f..88ffa38 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -377,8 +377,9 @@
// static
QuicStreamId QuicUtils::GetInvalidStreamId(QuicTransportVersion version) {
- return version == QUIC_VERSION_99 ? std::numeric_limits<QuicStreamId>::max()
- : 0;
+ return VersionHasIetfQuicFrames(version)
+ ? std::numeric_limits<QuicStreamId>::max()
+ : 0;
}
// static
@@ -413,7 +414,7 @@
if (id == GetInvalidStreamId(version)) {
return false;
}
- return version == QUIC_VERSION_99 ? id % 2 == 0 : id % 2 != 0;
+ return VersionHasIetfQuicFrames(version) ? id % 2 == 0 : id % 2 != 0;
}
// static
@@ -422,7 +423,7 @@
if (id == GetInvalidStreamId(version)) {
return false;
}
- return version == QUIC_VERSION_99 ? id % 2 != 0 : id % 2 == 0;
+ return VersionHasIetfQuicFrames(version) ? id % 2 != 0 : id % 2 == 0;
}
// static
@@ -459,14 +460,14 @@
// static
QuicStreamId QuicUtils::StreamIdDelta(QuicTransportVersion version) {
- return version == QUIC_VERSION_99 ? 4 : 2;
+ return VersionHasIetfQuicFrames(version) ? 4 : 2;
}
// static
QuicStreamId QuicUtils::GetFirstBidirectionalStreamId(
QuicTransportVersion version,
Perspective perspective) {
- if (version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version)) {
return perspective == Perspective::IS_CLIENT ? 0 : 1;
} else if (QuicVersionUsesCryptoFrames(version)) {
return perspective == Perspective::IS_CLIENT ? 1 : 2;
@@ -478,7 +479,7 @@
QuicStreamId QuicUtils::GetFirstUnidirectionalStreamId(
QuicTransportVersion version,
Perspective perspective) {
- if (version == QUIC_VERSION_99) {
+ if (VersionHasIetfQuicFrames(version)) {
return perspective == Perspective::IS_CLIENT ? 2 : 3;
} else if (QuicVersionUsesCryptoFrames(version)) {
return perspective == Perspective::IS_CLIENT ? 1 : 2;
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index 59005cd..678e067 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -416,6 +416,13 @@
QUIC_EXPORT_PRIVATE bool VersionLacksHeadersStream(
QuicTransportVersion transport_version);
+// Returns whether |transport_version| makes use of IETF QUIC
+// frames or not.
+QUIC_EXPORT_PRIVATE inline bool VersionHasIetfQuicFrames(
+ QuicTransportVersion transport_version) {
+ return transport_version >= QUIC_VERSION_99;
+}
+
// Returns the ALPN string to use in TLS for this version of QUIC.
QUIC_EXPORT_PRIVATE std::string AlpnForVersion(
ParsedQuicVersion parsed_version);
diff --git a/quic/core/uber_quic_stream_id_manager_test.cc b/quic/core/uber_quic_stream_id_manager_test.cc
index a2498b0..291f63b 100644
--- a/quic/core/uber_quic_stream_id_manager_test.cc
+++ b/quic/core/uber_quic_stream_id_manager_test.cc
@@ -37,26 +37,26 @@
}
QuicStreamId GetNthClientInitiatedBidirectionalId(int n) {
- return QuicUtils::GetFirstBidirectionalStreamId(
- connection_->transport_version(), Perspective::IS_CLIENT) +
+ return QuicUtils::GetFirstBidirectionalStreamId(transport_version(),
+ Perspective::IS_CLIENT) +
kV99StreamIdIncrement * n;
}
QuicStreamId GetNthClientInitiatedUnidirectionalId(int n) {
- return QuicUtils::GetFirstUnidirectionalStreamId(
- connection_->transport_version(), Perspective::IS_CLIENT) +
+ return QuicUtils::GetFirstUnidirectionalStreamId(transport_version(),
+ Perspective::IS_CLIENT) +
kV99StreamIdIncrement * n;
}
QuicStreamId GetNthServerInitiatedBidirectionalId(int n) {
- return QuicUtils::GetFirstBidirectionalStreamId(
- connection_->transport_version(), Perspective::IS_SERVER) +
+ return QuicUtils::GetFirstBidirectionalStreamId(transport_version(),
+ Perspective::IS_SERVER) +
kV99StreamIdIncrement * n;
}
QuicStreamId GetNthServerInitiatedUnidirectionalId(int n) {
- return QuicUtils::GetFirstUnidirectionalStreamId(
- connection_->transport_version(), Perspective::IS_SERVER) +
+ return QuicUtils::GetFirstUnidirectionalStreamId(transport_version(),
+ Perspective::IS_SERVER) +
kV99StreamIdIncrement * n;
}
@@ -86,10 +86,14 @@
Perspective perspective,
bool bidirectional) {
return ((bidirectional) ? QuicUtils::GetFirstBidirectionalStreamId(
- QUIC_VERSION_99, perspective)
+ transport_version(), perspective)
: QuicUtils::GetFirstUnidirectionalStreamId(
- QUIC_VERSION_99, perspective)) +
- ((stream_count - 1) * QuicUtils::StreamIdDelta(QUIC_VERSION_99));
+ transport_version(), perspective)) +
+ ((stream_count - 1) * QuicUtils::StreamIdDelta(transport_version()));
+ }
+
+ QuicTransportVersion transport_version() {
+ return connection_->transport_version();
}
MockQuicConnectionHelper helper_;