Deprecate gfe2_flags_reloadable_quic_connection_uses_abstract_connection_id_generator.
Also deletes legacy connection ID update code.
PiperOrigin-RevId: 481936199
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h
index 153c142..61e66cc 100644
--- a/quiche/quic/core/quic_connection.h
+++ b/quiche/quic/core/quic_connection.h
@@ -1886,7 +1886,7 @@
// Return true if framer should continue processing the packet.
bool OnPathChallengeFrameInternal(const QuicPathChallengeFrame& frame);
- virtual std::unique_ptr<QuicSelfIssuedConnectionIdManager>
+ std::unique_ptr<QuicSelfIssuedConnectionIdManager>
MakeSelfIssuedConnectionIdManager();
// Called on peer IP change or restoring to previous address to reset
diff --git a/quiche/quic/core/quic_connection_id_manager.cc b/quiche/quic/core/quic_connection_id_manager.cc
index a3909f3..a2a3fbf 100644
--- a/quiche/quic/core/quic_connection_id_manager.cc
+++ b/quiche/quic/core/quic_connection_id_manager.cc
@@ -296,29 +296,13 @@
retire_connection_id_alarm_->Cancel();
}
-QuicConnectionId QuicSelfIssuedConnectionIdManager::GenerateNewConnectionId(
- const QuicConnectionId& old_connection_id) const {
- return QuicUtils::CreateReplacementConnectionId(old_connection_id);
-}
-
absl::optional<QuicNewConnectionIdFrame>
QuicSelfIssuedConnectionIdManager::MaybeIssueNewConnectionId() {
const bool check_cid_collision_when_issue_new_cid =
GetQuicReloadableFlag(quic_check_cid_collision_when_issue_new_cid);
- absl::optional<QuicConnectionId> new_cid;
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator)) {
- QUIC_RELOADABLE_FLAG_COUNT(
- quic_connection_uses_abstract_connection_id_generator);
- new_cid =
- connection_id_generator_.GenerateNextConnectionId(last_connection_id_);
- } else {
- new_cid = GenerateNewConnectionId(last_connection_id_);
- }
+ absl::optional<QuicConnectionId> new_cid =
+ connection_id_generator_.GenerateNextConnectionId(last_connection_id_);
if (!new_cid.has_value()) {
- QUIC_BUG_IF(quic_bug_469887433_1,
- !GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator));
return {};
}
if (check_cid_collision_when_issue_new_cid) {
diff --git a/quiche/quic/core/quic_connection_id_manager.h b/quiche/quic/core/quic_connection_id_manager.h
index 1fa48e9..b8454af 100644
--- a/quiche/quic/core/quic_connection_id_manager.h
+++ b/quiche/quic/core/quic_connection_id_manager.h
@@ -161,12 +161,6 @@
// tell if a received packet has a valid connection ID.
bool IsConnectionIdInUse(const QuicConnectionId& cid) const;
- // TODO(martinduke): This class will be eliminated when
- // FLAGS_gfe2_reloadable_flag_quic_connection_uses_abstract_connection_id_generator
- // goes away.
- virtual QuicConnectionId GenerateNewConnectionId(
- const QuicConnectionId& old_connection_id) const;
-
private:
friend class test::QuicConnectionIdManagerPeer;
diff --git a/quiche/quic/core/quic_connection_id_manager_test.cc b/quiche/quic/core/quic_connection_id_manager_test.cc
index bb85d5d..9df262c 100644
--- a/quiche/quic/core/quic_connection_id_manager_test.cc
+++ b/quiche/quic/core/quic_connection_id_manager_test.cc
@@ -546,14 +546,11 @@
protected:
// Verify that a call to GenerateNewConnectionId() does the right thing.
QuicConnectionId CheckGenerate(QuicConnectionId old_cid) {
- QuicConnectionId new_cid =
- QuicUtils::CreateReplacementConnectionId(old_cid);
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator)) {
- // Ready for the actual call.
- EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(old_cid))
- .WillOnce(Return(new_cid));
- }
+ QuicConnectionId new_cid = old_cid;
+ (*new_cid.mutable_data())++;
+ // Ready for the actual call.
+ EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(old_cid))
+ .WillOnce(Return(new_cid));
return new_cid;
}
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index ee2a090..3a4e7a9 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -1877,9 +1877,7 @@
QuicConnectionPeer::SetAddressValidated(&connection_);
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -2082,9 +2080,7 @@
// Sends new server CID to client.
QuicConnectionId new_cid;
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -2146,9 +2142,7 @@
// Sends new server CID to client.
QuicConnectionId new_cid;
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -2220,9 +2214,7 @@
QuicConnectionId server_cid0 = connection_.connection_id();
QuicConnectionId server_cid1;
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -13304,9 +13296,7 @@
QuicConnectionId client_cid1 = TestConnectionId(2);
QuicConnectionId server_cid1;
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -13458,9 +13448,7 @@
QuicConnectionId server_cid0 = connection_.connection_id();
QuicConnectionId server_cid1;
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -13585,9 +13573,7 @@
QuicConnectionId client_cid1 = TestConnectionId(2);
QuicConnectionId server_cid1;
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -13699,9 +13685,7 @@
QuicConnectionId client_cid1 = TestConnectionId(2);
QuicConnectionId server_cid1;
// Sends new server CID to client.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -13838,11 +13822,8 @@
ASSERT_EQ(packet_creator->GetDestinationConnectionId(), server_cid0);
// Client will issue a new client connection ID to server.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator)) {
- EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
- .WillOnce(Return(TestConnectionId(456)));
- }
+ EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
+ .WillOnce(Return(TestConnectionId(456)));
EXPECT_CALL(visitor_, SendNewConnectionId(_))
.WillOnce(Invoke([&](const QuicNewConnectionIdFrame& frame) {
client_cid1 = frame.connection_id;
@@ -14001,11 +13982,8 @@
// Client will issue a new client connection ID to server.
QuicConnectionId new_client_connection_id;
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator)) {
- EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
- .WillOnce(Return(TestConnectionId(456)));
- }
+ EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
+ .WillOnce(Return(TestConnectionId(456)));
EXPECT_CALL(visitor_, SendNewConnectionId(_))
.WillOnce(Invoke([&](const QuicNewConnectionIdFrame& frame) {
new_client_connection_id = frame.connection_id;
@@ -14259,9 +14237,7 @@
set_perspective(Perspective::IS_SERVER);
connection_.CreateConnectionIdManager();
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -14298,9 +14274,7 @@
QuicRetireConnectionIdFrame frame;
frame.sequence_number = 0u;
if (connection_.connection_migration_use_new_cid()) {
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(cid0))
.WillOnce(Return(TestConnectionId(456)));
EXPECT_CALL(connection_id_generator_,
@@ -14340,9 +14314,7 @@
EXPECT_EQ(connection_.GetOneActiveServerConnectionId(), cid0);
connection_.SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -14377,9 +14349,7 @@
// Packet2 with RetireConnectionId frame trigers sending NewConnectionId
// immediately.
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator) &&
- !connection_.connection_id().IsEmpty()) {
+ if (!connection_.connection_id().IsEmpty()) {
EXPECT_CALL(connection_id_generator_, GenerateNextConnectionId(_))
.WillOnce(Return(TestConnectionId(456)));
}
@@ -14793,15 +14763,12 @@
!connection_.connection_migration_use_new_cid()) {
return;
}
- if (GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator)) {
- EXPECT_CALL(connection_id_generator_,
- GenerateNextConnectionId(TestConnectionId(12)))
- .WillOnce(Return(TestConnectionId(456)));
- EXPECT_CALL(connection_id_generator_,
- GenerateNextConnectionId(TestConnectionId(456)))
- .WillOnce(Return(TestConnectionId(789)));
- }
+ EXPECT_CALL(connection_id_generator_,
+ GenerateNextConnectionId(TestConnectionId(12)))
+ .WillOnce(Return(TestConnectionId(456)));
+ EXPECT_CALL(connection_id_generator_,
+ GenerateNextConnectionId(TestConnectionId(456)))
+ .WillOnce(Return(TestConnectionId(789)));
EXPECT_CALL(visitor_, SendNewConnectionId(_)).Times(2);
EXPECT_CALL(visitor_, OnRstStream(_));
EXPECT_CALL(visitor_, OnWindowUpdateFrame(_));
diff --git a/quiche/quic/core/quic_dispatcher.cc b/quiche/quic/core/quic_dispatcher.cc
index 0ae3a64..7e6de46 100644
--- a/quiche/quic/core/quic_dispatcher.cc
+++ b/quiche/quic/core/quic_dispatcher.cc
@@ -41,13 +41,6 @@
// Minimal INITIAL packet length sent by clients is 1200.
const QuicPacketLength kMinClientInitialPacketLength = 1200;
-bool VariableShortHeaderConnectionIdLengths() {
- return GetQuicReloadableFlag(
- quic_ask_for_short_header_connection_id_length) &&
- GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator);
-}
-
// An alarm that informs the QuicDispatcher to delete old sessions.
class DeleteSessionsAlarm : public QuicAlarm::DelegateWithoutContext {
public:
@@ -393,9 +386,7 @@
if (!packet_info.version_flag &&
GetQuicReloadableFlag(quic_ask_for_short_header_connection_id_length) &&
(IsSupportedVersion(ParsedQuicVersion::Q046()) ||
- IsSupportedVersion(ParsedQuicVersion::Q050()) ||
- !GetQuicReloadableFlag(
- quic_connection_uses_abstract_connection_id_generator))) {
+ IsSupportedVersion(ParsedQuicVersion::Q050()))) {
ReceivedPacketInfo gquic_packet_info(self_address, peer_address, packet);
// Try again without asking |connection_id_generator_| for the length.
const QuicErrorCode gquic_error = QuicFramer::ParsePublicHeaderDispatcher(
@@ -476,7 +467,7 @@
// unknown, in which case we allow short connection IDs for version
// negotiation because that version could allow those.
uint8_t expected_connection_id_length =
- VariableShortHeaderConnectionIdLengths()
+ GetQuicReloadableFlag(quic_ask_for_short_header_connection_id_length)
? connection_id_generator_.ConnectionIdLength(
static_cast<uint8_t>(*server_connection_id.data()))
: expected_server_connection_id_length_;
@@ -1359,7 +1350,7 @@
}
} else {
uint8_t min_connection_id_length =
- VariableShortHeaderConnectionIdLengths()
+ GetQuicReloadableFlag(quic_ask_for_short_header_connection_id_length)
? connection_id_generator_.ConnectionIdLength(static_cast<uint8_t>(
*packet_info.destination_connection_id.data()))
: expected_server_connection_id_length_;
diff --git a/quiche/quic/core/quic_dispatcher_test.cc b/quiche/quic/core/quic_dispatcher_test.cc
index ce5e23f..d702e62 100644
--- a/quiche/quic/core/quic_dispatcher_test.cc
+++ b/quiche/quic/core/quic_dispatcher_test.cc
@@ -1244,6 +1244,10 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
// dispatcher_ should drop this packet.
+ if (GetQuicReloadableFlag(quic_ask_for_short_header_connection_id_length)) {
+ EXPECT_CALL(connection_id_generator_, ConnectionIdLength(_))
+ .WillOnce(Return(15));
+ }
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index d3079d5..627532a 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -87,8 +87,6 @@
QUIC_FLAG(quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, false)
// Instead of assuming an incoming connection ID length for short headers, ask each time, if both quic_abstract_connection_id_generator and quic_connection_uses_abstract_connection_id_generator are true.
QUIC_FLAG(quic_reloadable_flag_quic_ask_for_short_header_connection_id_length, false)
-// QuicConnection uses a library to generate connection IDs
-QUIC_FLAG(quic_reloadable_flag_quic_connection_uses_abstract_connection_id_generator, true)
// When true, defaults to BBR congestion control instead of Cubic.
QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr, false)
// When true, support draft-ietf-quic-v2-01
diff --git a/quiche/quic/core/quic_utils.cc b/quiche/quic/core/quic_utils.cc
index 5a5d6b0..5a86673 100644
--- a/quiche/quic/core/quic_utils.cc
+++ b/quiche/quic/core/quic_utils.cc
@@ -444,41 +444,6 @@
}
// static
-QuicConnectionId QuicUtils::CreateReplacementConnectionId(
- const QuicConnectionId& connection_id) {
- return CreateReplacementConnectionId(connection_id,
- kQuicDefaultConnectionIdLength);
-}
-
-// static
-QuicConnectionId QuicUtils::CreateReplacementConnectionId(
- const QuicConnectionId& connection_id,
- uint8_t expected_connection_id_length) {
- if (expected_connection_id_length == 0) {
- return EmptyQuicConnectionId();
- }
- const uint64_t connection_id_hash64 = FNV1a_64_Hash(
- absl::string_view(connection_id.data(), connection_id.length()));
- if (expected_connection_id_length <= sizeof(uint64_t)) {
- return QuicConnectionId(
- reinterpret_cast<const char*>(&connection_id_hash64),
- expected_connection_id_length);
- }
- char new_connection_id_data[255] = {};
- const absl::uint128 connection_id_hash128 = FNV1a_128_Hash(
- absl::string_view(connection_id.data(), connection_id.length()));
- static_assert(sizeof(connection_id_hash64) + sizeof(connection_id_hash128) <=
- sizeof(new_connection_id_data),
- "bad size");
- memcpy(new_connection_id_data, &connection_id_hash64,
- sizeof(connection_id_hash64));
- memcpy(new_connection_id_data + sizeof(connection_id_hash64),
- &connection_id_hash128, sizeof(connection_id_hash128));
- return QuicConnectionId(new_connection_id_data,
- expected_connection_id_length);
-}
-
-// static
QuicConnectionId QuicUtils::CreateRandomConnectionId() {
return CreateRandomConnectionId(kQuicDefaultConnectionIdLength,
QuicRandom::GetInstance());
diff --git a/quiche/quic/core/quic_utils.h b/quiche/quic/core/quic_utils.h
index 2d4d5e8..79212fd 100644
--- a/quiche/quic/core/quic_utils.h
+++ b/quiche/quic/core/quic_utils.h
@@ -159,20 +159,6 @@
static QuicStreamId GetMaxClientInitiatedBidirectionalStreamId(
QuicTransportVersion version);
- // Generates a connection ID of length |expected_connection_id_length|
- // derived from |connection_id|.
- // This is guaranteed to be deterministic (calling this method with two
- // connection IDs that are equal is guaranteed to produce the same result).
- static QuicConnectionId CreateReplacementConnectionId(
- const QuicConnectionId& connection_id,
- uint8_t expected_connection_id_length);
-
- // Generates a 64bit connection ID derived from |connection_id|.
- // This is guaranteed to be deterministic (calling this method with two
- // connection IDs that are equal is guaranteed to produce the same result).
- static QuicConnectionId CreateReplacementConnectionId(
- const QuicConnectionId& connection_id);
-
// Generates a random 64bit connection ID.
static QuicConnectionId CreateRandomConnectionId();
diff --git a/quiche/quic/core/quic_utils_test.cc b/quiche/quic/core/quic_utils_test.cc
index 835cb97..a4a194f 100644
--- a/quiche/quic/core/quic_utils_test.cc
+++ b/quiche/quic/core/quic_utils_test.cc
@@ -167,91 +167,6 @@
EXPECT_FALSE(QuicUtils::IsIetfPacketShortHeader(first_byte));
}
-TEST_F(QuicUtilsTest, ReplacementConnectionIdIsDeterministic) {
- // Verify that two equal connection IDs get the same replacement.
- QuicConnectionId connection_id64a = TestConnectionId(33);
- QuicConnectionId connection_id64b = TestConnectionId(33);
- EXPECT_EQ(connection_id64a, connection_id64b);
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id64a),
- QuicUtils::CreateReplacementConnectionId(connection_id64b));
- QuicConnectionId connection_id72a = TestConnectionIdNineBytesLong(42);
- QuicConnectionId connection_id72b = TestConnectionIdNineBytesLong(42);
- EXPECT_EQ(connection_id72a, connection_id72b);
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a),
- QuicUtils::CreateReplacementConnectionId(connection_id72b));
- // Test variant with custom length.
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id64a, 7),
- QuicUtils::CreateReplacementConnectionId(connection_id64b, 7));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id64a, 9),
- QuicUtils::CreateReplacementConnectionId(connection_id64b, 9));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id64a, 16),
- QuicUtils::CreateReplacementConnectionId(connection_id64b, 16));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a, 7),
- QuicUtils::CreateReplacementConnectionId(connection_id72b, 7));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a, 9),
- QuicUtils::CreateReplacementConnectionId(connection_id72b, 9));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a, 16),
- QuicUtils::CreateReplacementConnectionId(connection_id72b, 16));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a, 32),
- QuicUtils::CreateReplacementConnectionId(connection_id72b, 32));
- EXPECT_EQ(QuicUtils::CreateReplacementConnectionId(connection_id72a, 255),
- QuicUtils::CreateReplacementConnectionId(connection_id72b, 255));
-}
-
-TEST_F(QuicUtilsTest, ReplacementConnectionIdLengthIsCorrect) {
- // Verify that all lengths get replaced by kQuicDefaultConnectionIdLength.
- const char connection_id_bytes[255] = {};
- for (uint8_t i = 0; i < sizeof(connection_id_bytes) - 1; ++i) {
- QuicConnectionId connection_id(connection_id_bytes, i);
- QuicConnectionId replacement_connection_id =
- QuicUtils::CreateReplacementConnectionId(connection_id);
- EXPECT_EQ(kQuicDefaultConnectionIdLength,
- replacement_connection_id.length());
- // Test variant with custom length.
- QuicConnectionId replacement_connection_id7 =
- QuicUtils::CreateReplacementConnectionId(connection_id, 7);
- EXPECT_EQ(7, replacement_connection_id7.length());
- QuicConnectionId replacement_connection_id9 =
- QuicUtils::CreateReplacementConnectionId(connection_id, 9);
- EXPECT_EQ(9, replacement_connection_id9.length());
- QuicConnectionId replacement_connection_id16 =
- QuicUtils::CreateReplacementConnectionId(connection_id, 16);
- EXPECT_EQ(16, replacement_connection_id16.length());
- QuicConnectionId replacement_connection_id32 =
- QuicUtils::CreateReplacementConnectionId(connection_id, 32);
- EXPECT_EQ(32, replacement_connection_id32.length());
- QuicConnectionId replacement_connection_id255 =
- QuicUtils::CreateReplacementConnectionId(connection_id, 255);
- EXPECT_EQ(255, replacement_connection_id255.length());
- }
-}
-
-TEST_F(QuicUtilsTest, ReplacementConnectionIdHasEntropy) {
- // Make sure all these test connection IDs have different replacements.
- for (uint64_t i = 0; i < 256; ++i) {
- QuicConnectionId connection_id_i = TestConnectionId(i);
- EXPECT_NE(connection_id_i,
- QuicUtils::CreateReplacementConnectionId(connection_id_i));
- for (uint64_t j = i + 1; j <= 256; ++j) {
- QuicConnectionId connection_id_j = TestConnectionId(j);
- EXPECT_NE(connection_id_i, connection_id_j);
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i),
- QuicUtils::CreateReplacementConnectionId(connection_id_j));
- // Test variant with custom length.
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i, 7),
- QuicUtils::CreateReplacementConnectionId(connection_id_j, 7));
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i, 9),
- QuicUtils::CreateReplacementConnectionId(connection_id_j, 9));
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i, 16),
- QuicUtils::CreateReplacementConnectionId(connection_id_j, 16));
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i, 32),
- QuicUtils::CreateReplacementConnectionId(connection_id_j, 32));
- EXPECT_NE(QuicUtils::CreateReplacementConnectionId(connection_id_i, 255),
- QuicUtils::CreateReplacementConnectionId(connection_id_j, 255));
- }
- }
-}
-
TEST_F(QuicUtilsTest, RandomConnectionId) {
MockRandom random(33);
QuicConnectionId connection_id = QuicUtils::CreateRandomConnectionId(&random);