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(