Deprecate and remove v47
connorsmith: please review vr/c9/*
gfe-relnote: deprecate never-flipped flag gfe2_reloadable_flag_quic_enable_version_47
PiperOrigin-RevId: 275267099
Change-Id: I9fd5204ad246d683ff323bca2dc9fdaf7b4ed903
diff --git a/quic/core/crypto/crypto_utils.cc b/quic/core/crypto/crypto_utils.cc
index 8b54807..232c258 100644
--- a/quic/core/crypto/crypto_utils.cc
+++ b/quic/core/crypto/crypto_utils.cc
@@ -141,7 +141,7 @@
const uint8_t* InitialSaltForVersion(const ParsedQuicVersion& version,
size_t* out_len) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync with initial encryption salts");
switch (version.handshake_protocol) {
case PROTOCOL_QUIC_CRYPTO:
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index e7d0329..d46be60 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -141,12 +141,12 @@
ParsedQuicVersionVector all_supported_versions =
FilterSupportedVersions(AllSupportedVersions());
- // Buckets are separated by versions: versions prior to QUIC_VERSION_47 use
+ // Buckets are separated by versions: versions without crypto frames use
// STREAM frames for the handshake, and only have QUIC crypto as the handshake
- // protocol. Version 47 and greater use CRYPTO frames for the handshake, and
- // must also be split based on the handshake protocol. If the handshake
- // protocol (QUIC crypto or TLS) changes, the ClientHello/CHLO must be
- // reconstructed for the correct protocol.
+ // protocol. Versions that use CRYPTO frames for the handshake must also be
+ // split based on the handshake protocol. If the handshake protocol (QUIC
+ // crypto or TLS) changes, the ClientHello/CHLO must be reconstructed for the
+ // correct protocol.
ParsedQuicVersionVector version_buckets[3];
for (const ParsedQuicVersion& version : all_supported_versions) {
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 985a1c3..ec7902f 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -417,7 +417,7 @@
TEST_F(QuicDispatcherTest, TlsClientHelloCreatesSession) {
if (!QuicVersionUsesCryptoFrames(
CurrentSupportedVersions().front().transport_version)) {
- // TLS is only supported in versions 47 and greater.
+ // TLS is only supported in versions with crypto frames.
return;
}
SetQuicReloadableFlag(quic_supports_tls_handshake, true);
@@ -886,8 +886,8 @@
}
TEST_F(QuicDispatcherTest, ProcessPacketWithInvalidShortInitialConnectionId) {
- // Enable v47 otherwise we cannot create a packet with a short connection ID.
- SetQuicReloadableFlag(quic_enable_version_47, true);
+ // Enable a version that supports connection IDs of length different than 8.
+ SetQuicReloadableFlag(quic_enable_version_50, true);
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
@@ -931,9 +931,8 @@
}
TEST_F(QuicDispatcherTest, SupportedTransportVersionsChangeInFlight) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, true);
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_50, true);
@@ -974,43 +973,52 @@
SetQuicReloadableFlag(quic_enable_version_48_2, true);
VerifyVersionSupported(
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48));
-
- // Turn off version 47.
- SetQuicReloadableFlag(quic_enable_version_47, false);
- VerifyVersionNotSupported(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47));
-
- // Turn on version 47.
- SetQuicReloadableFlag(quic_enable_version_47, true);
- VerifyVersionSupported(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47));
}
TEST_F(QuicDispatcherTest, RejectDeprecatedVersionsWithVersionNegotiation) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Please add deprecated versions to this test");
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
CreateTimeWaitListManager();
- char packet45[kMinPacketSizeForVersionNegotiation] = {
- 0xC0, 'Q', '0', '4', '5', /*connection ID length byte*/ 0x50};
- QuicReceivedPacket packet(packet45, kMinPacketSizeForVersionNegotiation,
- QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
- EXPECT_CALL(*time_wait_list_manager_,
- SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
- .Times(1);
- dispatcher_->ProcessPacket(server_address_, client_address, packet);
+ {
+ char packet47[kMinPacketSizeForVersionNegotiation] = {
+ 0xC0, 'Q', '0', '4', '7', /*connection ID length byte*/ 0x50};
+ QuicReceivedPacket received_packet47(
+ packet47, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*time_wait_list_manager_,
+ SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
+ .Times(1);
+ dispatcher_->ProcessPacket(server_address_, client_address,
+ received_packet47);
+ }
- char packet44[kMinPacketSizeForVersionNegotiation] = {
- 0xFF, 'Q', '0', '4', '4', /*connection ID length byte*/ 0x50};
- QuicReceivedPacket packet2(packet44, kMinPacketSizeForVersionNegotiation,
- QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
- EXPECT_CALL(*time_wait_list_manager_,
- SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
- .Times(1);
- dispatcher_->ProcessPacket(server_address_, client_address, packet2);
+ {
+ char packet45[kMinPacketSizeForVersionNegotiation] = {
+ 0xC0, 'Q', '0', '4', '5', /*connection ID length byte*/ 0x50};
+ QuicReceivedPacket received_packet45(
+ packet45, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*time_wait_list_manager_,
+ SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
+ .Times(1);
+ dispatcher_->ProcessPacket(server_address_, client_address,
+ received_packet45);
+ }
+
+ {
+ char packet44[kMinPacketSizeForVersionNegotiation] = {
+ 0xFF, 'Q', '0', '4', '4', /*connection ID length byte*/ 0x50};
+ QuicReceivedPacket received_packet44(
+ packet44, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*time_wait_list_manager_,
+ SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
+ .Times(1);
+ dispatcher_->ProcessPacket(server_address_, client_address,
+ received_packet44);
+ }
}
TEST_F(QuicDispatcherTest, VersionNegotiationProbeOld) {
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index 33f7de1..297cc8b 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -514,7 +514,7 @@
// We allow variable length connection IDs for unsupported versions to
// ensure that IETF version negotiation works when other implementations
// trigger version negotiation with custom connection ID lengths.
- return version >= QUIC_VERSION_47 || version == QUIC_VERSION_UNSUPPORTED;
+ return version > QUIC_VERSION_46 || version == QUIC_VERSION_UNSUPPORTED;
}
// static
diff --git a/quic/core/quic_version_manager.cc b/quic/core/quic_version_manager.cc
index 4b2487f..dd6c78d 100644
--- a/quic/core/quic_version_manager.cc
+++ b/quic/core/quic_version_manager.cc
@@ -19,10 +19,9 @@
enable_version_50_(GetQuicReloadableFlag(quic_enable_version_50)),
enable_version_49_(GetQuicReloadableFlag(quic_enable_version_49)),
enable_version_48_(GetQuicReloadableFlag(quic_enable_version_48_2)),
- enable_version_47_(GetQuicReloadableFlag(quic_enable_version_47)),
enable_tls_(GetQuicReloadableFlag(quic_supports_tls_handshake)),
allowed_supported_versions_(std::move(supported_versions)) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
RefilterSupportedVersions();
}
@@ -41,19 +40,17 @@
}
void QuicVersionManager::MaybeRefilterSupportedVersions() {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
if (enable_version_99_ != GetQuicReloadableFlag(quic_enable_version_99) ||
enable_version_50_ != GetQuicReloadableFlag(quic_enable_version_50) ||
enable_version_49_ != GetQuicReloadableFlag(quic_enable_version_49) ||
enable_version_48_ != GetQuicReloadableFlag(quic_enable_version_48_2) ||
- enable_version_47_ != GetQuicReloadableFlag(quic_enable_version_47) ||
enable_tls_ != GetQuicReloadableFlag(quic_supports_tls_handshake)) {
enable_version_99_ = GetQuicReloadableFlag(quic_enable_version_99);
enable_version_50_ = GetQuicReloadableFlag(quic_enable_version_50);
enable_version_49_ = GetQuicReloadableFlag(quic_enable_version_49);
enable_version_48_ = GetQuicReloadableFlag(quic_enable_version_48_2);
- enable_version_47_ = GetQuicReloadableFlag(quic_enable_version_47);
enable_tls_ = GetQuicReloadableFlag(quic_supports_tls_handshake);
RefilterSupportedVersions();
}
diff --git a/quic/core/quic_version_manager.h b/quic/core/quic_version_manager.h
index 447f3dc..45e6e95 100644
--- a/quic/core/quic_version_manager.h
+++ b/quic/core/quic_version_manager.h
@@ -49,8 +49,6 @@
bool enable_version_49_;
// quic_enable_version_48_2 flag
bool enable_version_48_;
- // quic_enable_version_47 flag
- bool enable_version_47_;
// quic_supports_tls_handshake flag
bool enable_tls_;
diff --git a/quic/core/quic_version_manager_test.cc b/quic/core/quic_version_manager_test.cc
index 200a373..0822ac3 100644
--- a/quic/core/quic_version_manager_test.cc
+++ b/quic/core/quic_version_manager_test.cc
@@ -16,13 +16,12 @@
class QuicVersionManagerTest : public QuicTest {};
TEST_F(QuicVersionManagerTest, QuicVersionManager) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
SetQuicReloadableFlag(quic_enable_version_99, false);
SetQuicReloadableFlag(quic_enable_version_50, false);
SetQuicReloadableFlag(quic_enable_version_49, false);
SetQuicReloadableFlag(quic_enable_version_48_2, false);
- SetQuicReloadableFlag(quic_enable_version_47, false);
QuicVersionManager manager(AllSupportedVersions());
EXPECT_EQ(FilterSupportedTransportVersions(AllSupportedTransportVersions()),
@@ -31,41 +30,33 @@
EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_46, QUIC_VERSION_43}),
manager.GetSupportedTransportVersions());
- SetQuicReloadableFlag(quic_enable_version_47, true);
- EXPECT_EQ(QuicTransportVersionVector(
- {QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43}),
- manager.GetSupportedTransportVersions());
-
SetQuicReloadableFlag(quic_enable_version_48_2, true);
- EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_48, QUIC_VERSION_47,
- QUIC_VERSION_46, QUIC_VERSION_43}),
+ EXPECT_EQ(QuicTransportVersionVector(
+ {QUIC_VERSION_48, QUIC_VERSION_46, QUIC_VERSION_43}),
manager.GetSupportedTransportVersions());
SetQuicReloadableFlag(quic_enable_version_49, true);
EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46,
- QUIC_VERSION_43}),
+ QUIC_VERSION_46, QUIC_VERSION_43}),
manager.GetSupportedTransportVersions());
SetQuicReloadableFlag(quic_enable_version_50, true);
EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_50, QUIC_VERSION_49,
- QUIC_VERSION_48, QUIC_VERSION_47,
+ QUIC_VERSION_48, QUIC_VERSION_46,
+ QUIC_VERSION_43}),
+ manager.GetSupportedTransportVersions());
+
+ SetQuicReloadableFlag(quic_enable_version_99, true);
+ EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_99, QUIC_VERSION_50,
+ QUIC_VERSION_49, QUIC_VERSION_48,
QUIC_VERSION_46, QUIC_VERSION_43}),
manager.GetSupportedTransportVersions());
SetQuicReloadableFlag(quic_enable_version_99, true);
- EXPECT_EQ(
- QuicTransportVersionVector(
- {QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43}),
- manager.GetSupportedTransportVersions());
-
- SetQuicReloadableFlag(quic_enable_version_99, true);
- EXPECT_EQ(
- QuicTransportVersionVector(
- {QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43}),
- manager.GetSupportedTransportVersions());
+ EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_99, QUIC_VERSION_50,
+ QUIC_VERSION_49, QUIC_VERSION_48,
+ QUIC_VERSION_46, QUIC_VERSION_43}),
+ manager.GetSupportedTransportVersions());
// Ensure that all versions are now supported.
EXPECT_EQ(FilterSupportedTransportVersions(AllSupportedTransportVersions()),
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 0e48462..ceed580 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -50,7 +50,7 @@
transport_version(transport_version) {}
bool ParsedQuicVersion::KnowsWhichDecrypterToUse() const {
- return transport_version >= QUIC_VERSION_47 ||
+ return transport_version > QUIC_VERSION_46 ||
handshake_protocol == PROTOCOL_TLS1_3;
}
@@ -113,15 +113,13 @@
<< parsed_version.handshake_protocol;
return 0;
}
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
switch (parsed_version.transport_version) {
case QUIC_VERSION_43:
return MakeVersionLabel(proto, '0', '4', '3');
case QUIC_VERSION_46:
return MakeVersionLabel(proto, '0', '4', '6');
- case QUIC_VERSION_47:
- return MakeVersionLabel(proto, '0', '4', '7');
case QUIC_VERSION_48:
return MakeVersionLabel(proto, '0', '4', '8');
case QUIC_VERSION_49:
@@ -280,10 +278,6 @@
if (GetQuicReloadableFlag(quic_enable_version_48_2)) {
filtered_versions.push_back(version);
}
- } else if (version.transport_version == QUIC_VERSION_47) {
- if (GetQuicReloadableFlag(quic_enable_version_47)) {
- filtered_versions.push_back(version);
- }
} else {
filtered_versions.push_back(version);
}
@@ -371,12 +365,11 @@
return #x
std::string QuicVersionToString(QuicTransportVersion transport_version) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
switch (transport_version) {
RETURN_STRING_LITERAL(QUIC_VERSION_43);
RETURN_STRING_LITERAL(QUIC_VERSION_46);
- RETURN_STRING_LITERAL(QUIC_VERSION_47);
RETURN_STRING_LITERAL(QUIC_VERSION_48);
RETURN_STRING_LITERAL(QUIC_VERSION_49);
RETURN_STRING_LITERAL(QUIC_VERSION_50);
@@ -478,7 +471,7 @@
if (parsed_version.handshake_protocol == PROTOCOL_TLS1_3) {
SetQuicReloadableFlag(quic_supports_tls_handshake, true);
}
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
if (parsed_version.transport_version == QUIC_VERSION_99) {
SetQuicReloadableFlag(quic_enable_version_99, true);
@@ -492,9 +485,6 @@
if (parsed_version.transport_version == QUIC_VERSION_48) {
SetQuicReloadableFlag(quic_enable_version_48_2, true);
}
- if (parsed_version.transport_version == QUIC_VERSION_47) {
- SetQuicReloadableFlag(quic_enable_version_47, true);
- }
}
#undef RETURN_STRING_LITERAL // undef for jumbo builds
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index ec6cb5e..3e34cce 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -102,7 +102,7 @@
QUIC_VERSION_46 = 46, // Use IETF draft-17 header format with demultiplexing
// bit.
- QUIC_VERSION_47 = 47, // Allow variable-length QUIC connection IDs.
+ // Version 47 added variable-length QUIC server connection IDs.
QUIC_VERSION_48 = 48, // Use CRYPTO frames for the handshake.
QUIC_VERSION_49 = 49, // Client connection IDs, long header lengths, IETF
// header format from draft-ietf-quic-invariants-06.
@@ -214,8 +214,8 @@
//
// See go/new-quic-version for more details on how to roll out new versions.
static const QuicTransportVersion kSupportedTransportVersions[] = {
- QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43,
+ QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49,
+ QUIC_VERSION_48, QUIC_VERSION_46, QUIC_VERSION_43,
};
// This vector contains all crypto handshake protocols that are supported.
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index 6bcd9f4..d3a118d 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -116,8 +116,6 @@
ParseQuicVersionLabel(MakeVersionLabel('Q', '0', '4', '3')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_46),
ParseQuicVersionLabel(MakeVersionLabel('Q', '0', '4', '6')));
- EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47),
- ParseQuicVersionLabel(MakeVersionLabel('Q', '0', '4', '7')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48),
ParseQuicVersionLabel(MakeVersionLabel('Q', '0', '4', '8')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50),
@@ -128,8 +126,6 @@
ParseQuicVersionLabel(MakeVersionLabel('T', '0', '4', '3')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_46),
ParseQuicVersionLabel(MakeVersionLabel('T', '0', '4', '6')));
- EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_47),
- ParseQuicVersionLabel(MakeVersionLabel('T', '0', '4', '7')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_48),
ParseQuicVersionLabel(MakeVersionLabel('T', '0', '4', '8')));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_50),
@@ -141,16 +137,14 @@
ParseQuicVersionString("Q043"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_46),
ParseQuicVersionString("Q046"));
- EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47),
- ParseQuicVersionString("Q047"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48),
ParseQuicVersionString("Q048"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50),
ParseQuicVersionString("Q050"));
EXPECT_EQ(UnsupportedQuicVersion(), ParseQuicVersionString(""));
- EXPECT_EQ(UnsupportedQuicVersion(), ParseQuicVersionString("Q 47"));
- EXPECT_EQ(UnsupportedQuicVersion(), ParseQuicVersionString("Q047 "));
+ EXPECT_EQ(UnsupportedQuicVersion(), ParseQuicVersionString("Q 46"));
+ EXPECT_EQ(UnsupportedQuicVersion(), ParseQuicVersionString("Q046 "));
// Test a TLS version:
SetQuicReloadableFlag(quic_supports_tls_handshake, true);
@@ -158,8 +152,6 @@
ParseQuicVersionString("T043"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_46),
ParseQuicVersionString("T046"));
- EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_47),
- ParseQuicVersionString("T047"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_48),
ParseQuicVersionString("T048"));
EXPECT_EQ(ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_50),
@@ -173,9 +165,6 @@
EXPECT_EQ(MakeVersionLabel('Q', '0', '4', '6'),
CreateQuicVersionLabel(
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_46)));
- EXPECT_EQ(MakeVersionLabel('Q', '0', '4', '7'),
- CreateQuicVersionLabel(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47)));
EXPECT_EQ(MakeVersionLabel('Q', '0', '4', '8'),
CreateQuicVersionLabel(
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48)));
@@ -190,9 +179,6 @@
EXPECT_EQ(MakeVersionLabel('T', '0', '4', '6'),
CreateQuicVersionLabel(
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_46)));
- EXPECT_EQ(MakeVersionLabel('T', '0', '4', '7'),
- CreateQuicVersionLabel(
- ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_47)));
EXPECT_EQ(MakeVersionLabel('T', '0', '4', '8'),
CreateQuicVersionLabel(
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_48)));
@@ -292,9 +278,8 @@
TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsAllVersions) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, true);
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_50, true);
@@ -304,8 +289,8 @@
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
}
QuicTransportVersionVector expected_versions = {
- QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43};
+ QUIC_VERSION_99, QUIC_VERSION_50, QUIC_VERSION_49,
+ QUIC_VERSION_48, QUIC_VERSION_46, QUIC_VERSION_43};
ParsedQuicVersionVector expected_parsed_versions;
for (QuicTransportVersion version : expected_versions) {
expected_parsed_versions.push_back(
@@ -318,9 +303,8 @@
TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo99) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, true);
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_50, true);
@@ -330,8 +314,8 @@
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
}
QuicTransportVersionVector expected_versions = {
- QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48,
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43};
+ QUIC_VERSION_50, QUIC_VERSION_49, QUIC_VERSION_48, QUIC_VERSION_46,
+ QUIC_VERSION_43};
ParsedQuicVersionVector expected_parsed_versions;
for (QuicTransportVersion version : expected_versions) {
expected_parsed_versions.push_back(
@@ -344,7 +328,6 @@
TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo50) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- SetQuicReloadableFlag(quic_enable_version_47, true);
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_50, false);
@@ -354,8 +337,7 @@
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
}
QuicTransportVersionVector expected_versions = {
- QUIC_VERSION_49, QUIC_VERSION_48, QUIC_VERSION_47, QUIC_VERSION_46,
- QUIC_VERSION_43};
+ QUIC_VERSION_49, QUIC_VERSION_48, QUIC_VERSION_46, QUIC_VERSION_43};
ParsedQuicVersionVector expected_parsed_versions;
for (QuicTransportVersion version : expected_versions) {
expected_parsed_versions.push_back(
@@ -368,9 +350,8 @@
TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo49) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, true);
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, false);
SetQuicReloadableFlag(quic_enable_version_50, false);
@@ -380,7 +361,7 @@
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
}
QuicTransportVersionVector expected_versions = {
- QUIC_VERSION_48, QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43};
+ QUIC_VERSION_48, QUIC_VERSION_46, QUIC_VERSION_43};
ParsedQuicVersionVector expected_parsed_versions;
for (QuicTransportVersion version : expected_versions) {
expected_parsed_versions.push_back(
@@ -393,34 +374,8 @@
TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo48) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, true);
- SetQuicReloadableFlag(quic_enable_version_48_2, false);
- SetQuicReloadableFlag(quic_enable_version_49, false);
- SetQuicReloadableFlag(quic_enable_version_50, false);
- SetQuicReloadableFlag(quic_enable_version_99, false);
- ParsedQuicVersionVector parsed_versions;
- for (QuicTransportVersion version : all_versions) {
- parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
- }
- QuicTransportVersionVector expected_versions = {
- QUIC_VERSION_47, QUIC_VERSION_46, QUIC_VERSION_43};
- ParsedQuicVersionVector expected_parsed_versions;
- for (QuicTransportVersion version : expected_versions) {
- expected_parsed_versions.push_back(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
- }
-
- ASSERT_EQ(expected_versions, FilterSupportedTransportVersions(all_versions));
- ASSERT_EQ(expected_parsed_versions, FilterSupportedVersions(parsed_versions));
-}
-
-TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo47) {
- QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
- "Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, false);
SetQuicReloadableFlag(quic_enable_version_48_2, false);
SetQuicReloadableFlag(quic_enable_version_49, false);
SetQuicReloadableFlag(quic_enable_version_50, false);
@@ -441,11 +396,10 @@
ASSERT_EQ(expected_parsed_versions, FilterSupportedVersions(parsed_versions));
}
-TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNo39) {
+TEST_F(QuicVersionsTest, FilterSupportedTransportVersionsNoFlags) {
QuicTransportVersionVector all_versions = AllSupportedTransportVersions();
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_47, false);
SetQuicReloadableFlag(quic_enable_version_48_2, false);
SetQuicReloadableFlag(quic_enable_version_49, false);
SetQuicReloadableFlag(quic_enable_version_50, false);
@@ -505,11 +459,10 @@
// yet a typo was made in doing the #defines and it was caught
// only in some test far removed from here... Better safe than sorry.
TEST_F(QuicVersionsTest, CheckVersionNumbersForTypos) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
EXPECT_EQ(QUIC_VERSION_43, 43);
EXPECT_EQ(QUIC_VERSION_46, 46);
- EXPECT_EQ(QUIC_VERSION_47, 47);
EXPECT_EQ(QUIC_VERSION_48, 48);
EXPECT_EQ(QUIC_VERSION_49, 49);
EXPECT_EQ(QUIC_VERSION_50, 50);
@@ -517,12 +470,8 @@
}
TEST_F(QuicVersionsTest, AlpnForVersion) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- ParsedQuicVersion parsed_version_q047 =
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47);
- ParsedQuicVersion parsed_version_t047 =
- ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_47);
ParsedQuicVersion parsed_version_q048 =
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48);
ParsedQuicVersion parsed_version_t048 =
@@ -538,8 +487,6 @@
ParsedQuicVersion parsed_version_t099 =
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99);
- EXPECT_EQ("h3-Q047", AlpnForVersion(parsed_version_q047));
- EXPECT_EQ("h3-T047", AlpnForVersion(parsed_version_t047));
EXPECT_EQ("h3-Q048", AlpnForVersion(parsed_version_q048));
EXPECT_EQ("h3-T048", AlpnForVersion(parsed_version_t048));
EXPECT_EQ("h3-Q049", AlpnForVersion(parsed_version_q049));
@@ -550,13 +497,9 @@
}
TEST_F(QuicVersionsTest, QuicEnableVersion) {
- static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
+ static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
SetQuicReloadableFlag(quic_supports_tls_handshake, true);
- ParsedQuicVersion parsed_version_q047 =
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_47);
- ParsedQuicVersion parsed_version_t047 =
- ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_47);
ParsedQuicVersion parsed_version_q048 =
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48);
ParsedQuicVersion parsed_version_t048 =
@@ -572,7 +515,6 @@
ParsedQuicVersion parsed_version_t099 =
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99);
SetQuicReloadableFlag(quic_supports_tls_handshake, false);
- SetQuicReloadableFlag(quic_enable_version_47, false);
SetQuicReloadableFlag(quic_enable_version_48_2, false);
SetQuicReloadableFlag(quic_enable_version_49, false);
SetQuicReloadableFlag(quic_enable_version_50, false);
@@ -580,29 +522,8 @@
{
QuicFlagSaver flag_saver;
- QuicEnableVersion(parsed_version_q047);
- EXPECT_FALSE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_47));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_50));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
- }
-
- {
- QuicFlagSaver flag_saver;
- QuicEnableVersion(parsed_version_t047);
- EXPECT_TRUE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_47));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_50));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
- }
-
- {
- QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_q048);
EXPECT_FALSE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_50));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -612,7 +533,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_t048);
EXPECT_TRUE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_50));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -622,7 +542,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_q050);
EXPECT_FALSE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_50));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -632,7 +551,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_t050);
EXPECT_TRUE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_50));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -642,7 +560,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_q049);
EXPECT_FALSE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_49));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -652,7 +569,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_t049);
EXPECT_TRUE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_49));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_99));
@@ -662,7 +578,6 @@
QuicFlagSaver flag_saver;
QuicEnableVersion(parsed_version_t099);
EXPECT_TRUE(GetQuicReloadableFlag(quic_supports_tls_handshake));
- EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_47));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_48_2));
EXPECT_FALSE(GetQuicReloadableFlag(quic_enable_version_50));
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_99));
diff --git a/quic/quartc/quartc_factory.cc b/quic/quartc/quartc_factory.cc
index 413c4f8..ad677fd 100644
--- a/quic/quartc/quartc_factory.cc
+++ b/quic/quartc/quartc_factory.cc
@@ -63,11 +63,8 @@
// Fixes behavior of StopReading() with level-triggered stream sequencers.
SetQuicReloadableFlag(quic_stop_reading_when_level_triggered, true);
- // Enable version 47 to enable variable-length connection ids.
- SetQuicReloadableFlag(quic_enable_version_47, true);
-
- // Enable version 48 to be compatible with the latest version of Chrome.
- SetQuicReloadableFlag(quic_enable_version_48_2, true);
+ // Enable version 50 to be compatible with the latest version of Chrome.
+ SetQuicReloadableFlag(quic_enable_version_50, true);
// Ensure that we don't drop data because QUIC streams refuse to buffer it.
// TODO(b/120099046): Replace this with correct handling of WriteMemSlices().
@@ -98,7 +95,7 @@
// In exoblaze this may return false. DCHECK to avoid problems caused by
// incorrect flags configuration.
- DCHECK(GetQuicReloadableFlag(quic_enable_version_47))
+ DCHECK(GetQuicReloadableFlag(quic_enable_version_50))
<< "Your build does not support quic reloadable flags and shouldn't "
"place Quartc calls";
diff --git a/quic/quartc/test/quartc_peer_test.cc b/quic/quartc/test/quartc_peer_test.cc
index 5603ace..a9fa721 100644
--- a/quic/quartc/test/quartc_peer_test.cc
+++ b/quic/quartc/test/quartc_peer_test.cc
@@ -173,7 +173,7 @@
Connect();
// Run long enough for the bandwidth estimate to ramp up.
- simulator_.RunFor(QuicTime::Delta::FromSeconds(10));
+ simulator_.RunFor(QuicTime::Delta::FromSeconds(12));
EXPECT_EQ(client_peer_->received_messages().back().frame.size, 100u);
EXPECT_EQ(server_peer_->received_messages().back().frame.size, 100u);
diff --git a/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc b/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc
index 71cb058..dc8e998 100644
--- a/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc
+++ b/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc
@@ -57,8 +57,7 @@
ParsedQuicVersion ConsumeParsedQuicVersion(FuzzedDataProvider* provider) {
// TODO(wub): Add support for v49+.
const std::array<QuicTransportVersion, 4> transport_versions = {
- {quic::QUIC_VERSION_43, quic::QUIC_VERSION_46, quic::QUIC_VERSION_47,
- quic::QUIC_VERSION_48},
+ {quic::QUIC_VERSION_43, quic::QUIC_VERSION_46, quic::QUIC_VERSION_48},
};
return ParsedQuicVersion(