Remove QuicUint128 from platform.
Use Abseil directly.
PiperOrigin-RevId: 366984087
Change-Id: Iffc36bb4267828f2979b023f347f34e804b0fe4e
diff --git a/quic/core/chlo_extractor.cc b/quic/core/chlo_extractor.cc
index 198d455..0cce9f9 100644
--- a/quic/core/chlo_extractor.cc
+++ b/quic/core/chlo_extractor.cc
@@ -4,6 +4,7 @@
#include "quic/core/chlo_extractor.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/crypto_framer.h"
@@ -81,7 +82,7 @@
bool OnHandshakeDoneFrame(const QuicHandshakeDoneFrame& frame) override;
bool OnAckFrequencyFrame(const QuicAckFrequencyFrame& farme) override;
void OnPacketComplete() override {}
- bool IsValidStatelessResetToken(QuicUint128 token) const override;
+ bool IsValidStatelessResetToken(absl::uint128 token) const override;
void OnAuthenticatedIetfStatelessResetPacket(
const QuicIetfStatelessResetPacket& /*packet*/) override {}
void OnKeyUpdate(KeyUpdateReason /*reason*/) override;
@@ -303,7 +304,7 @@
}
bool ChloFramerVisitor::IsValidStatelessResetToken(
- QuicUint128 /*token*/) const {
+ absl::uint128 /*token*/) const {
return false;
}
diff --git a/quic/core/crypto/crypto_handshake_message.cc b/quic/core/crypto/crypto_handshake_message.cc
index 9628ed9..c71c051 100644
--- a/quic/core/crypto/crypto_handshake_message.cc
+++ b/quic/core/crypto/crypto_handshake_message.cc
@@ -222,8 +222,8 @@
}
QuicErrorCode CryptoHandshakeMessage::GetUint128(QuicTag tag,
- QuicUint128* out) const {
- return GetPOD(tag, out, sizeof(QuicUint128));
+ absl::uint128* out) const {
+ return GetPOD(tag, out, sizeof(absl::uint128));
}
size_t CryptoHandshakeMessage::size() const {
diff --git a/quic/core/crypto/crypto_handshake_message.h b/quic/core/crypto/crypto_handshake_message.h
index 61fb757..de02d6c 100644
--- a/quic/core/crypto/crypto_handshake_message.h
+++ b/quic/core/crypto/crypto_handshake_message.h
@@ -11,10 +11,10 @@
#include <string>
#include <vector>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/quic_packets.h"
#include "quic/platform/api/quic_export.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -110,7 +110,7 @@
absl::string_view* out) const;
QuicErrorCode GetUint32(QuicTag tag, uint32_t* out) const;
QuicErrorCode GetUint64(QuicTag tag, uint64_t* out) const;
- QuicErrorCode GetUint128(QuicTag tag, QuicUint128* out) const;
+ QuicErrorCode GetUint128(QuicTag tag, absl::uint128* out) const;
// size returns 4 (message tag) + 2 (uint16_t, number of entries) +
// (4 (tag) + 4 (end offset))*tag_value_map_.size() + ∑ value sizes.
diff --git a/quic/core/crypto/null_decrypter.cc b/quic/core/crypto/null_decrypter.cc
index 4162edc..fd611bd 100644
--- a/quic/core/crypto/null_decrypter.cc
+++ b/quic/core/crypto/null_decrypter.cc
@@ -6,11 +6,11 @@
#include <cstdint>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/quic_data_reader.h"
#include "quic/core/quic_utils.h"
#include "quic/platform/api/quic_bug_tracker.h"
-#include "quic/platform/api/quic_uint128.h"
#include "common/quiche_endian.h"
namespace quic {
@@ -53,7 +53,7 @@
size_t max_output_length) {
QuicDataReader reader(ciphertext.data(), ciphertext.length(),
quiche::HOST_BYTE_ORDER);
- QuicUint128 hash;
+ absl::uint128 hash;
if (!ReadHash(&reader, &hash)) {
return false;
@@ -107,19 +107,19 @@
return std::numeric_limits<QuicPacketCount>::max();
}
-bool NullDecrypter::ReadHash(QuicDataReader* reader, QuicUint128* hash) {
+bool NullDecrypter::ReadHash(QuicDataReader* reader, absl::uint128* hash) {
uint64_t lo;
uint32_t hi;
if (!reader->ReadUInt64(&lo) || !reader->ReadUInt32(&hi)) {
return false;
}
- *hash = MakeQuicUint128(hi, lo);
+ *hash = absl::MakeUint128(hi, lo);
return true;
}
-QuicUint128 NullDecrypter::ComputeHash(const absl::string_view data1,
- const absl::string_view data2) const {
- QuicUint128 correct_hash;
+absl::uint128 NullDecrypter::ComputeHash(const absl::string_view data1,
+ const absl::string_view data2) const {
+ absl::uint128 correct_hash;
if (perspective_ == Perspective::IS_CLIENT) {
// Peer is a server.
correct_hash = QuicUtils::FNV1a_128_Hash_Three(data1, data2, "Server");
@@ -127,7 +127,7 @@
// Peer is a client.
correct_hash = QuicUtils::FNV1a_128_Hash_Three(data1, data2, "Client");
}
- QuicUint128 mask = MakeQuicUint128(UINT64_C(0x0), UINT64_C(0xffffffff));
+ absl::uint128 mask = absl::MakeUint128(UINT64_C(0x0), UINT64_C(0xffffffff));
mask <<= 96;
correct_hash &= ~mask;
return correct_hash;
diff --git a/quic/core/crypto/null_decrypter.h b/quic/core/crypto/null_decrypter.h
index fd06d3a..b36fa82 100644
--- a/quic/core/crypto/null_decrypter.h
+++ b/quic/core/crypto/null_decrypter.h
@@ -8,11 +8,11 @@
#include <cstddef>
#include <cstdint>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/quic_decrypter.h"
#include "quic/core/quic_types.h"
#include "quic/platform/api/quic_export.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -53,9 +53,9 @@
QuicPacketCount GetIntegrityLimit() const override;
private:
- bool ReadHash(QuicDataReader* reader, QuicUint128* hash);
- QuicUint128 ComputeHash(absl::string_view data1,
- absl::string_view data2) const;
+ bool ReadHash(QuicDataReader* reader, absl::uint128* hash);
+ absl::uint128 ComputeHash(absl::string_view data1,
+ absl::string_view data2) const;
Perspective perspective_;
};
diff --git a/quic/core/crypto/null_encrypter.cc b/quic/core/crypto/null_encrypter.cc
index dd9cfd9..a385321 100644
--- a/quic/core/crypto/null_encrypter.cc
+++ b/quic/core/crypto/null_encrypter.cc
@@ -4,6 +4,7 @@
#include "quic/core/crypto/null_encrypter.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/quic_data_writer.h"
#include "quic/core/quic_utils.h"
@@ -41,7 +42,7 @@
if (max_output_length < len) {
return false;
}
- QuicUint128 hash;
+ absl::uint128 hash;
if (perspective_ == Perspective::IS_SERVER) {
hash =
QuicUtils::FNV1a_128_Hash_Three(associated_data, plaintext, "Server");
diff --git a/quic/core/frames/quic_frames_test.cc b/quic/core/frames/quic_frames_test.cc
index d5ca0a4..82070f0 100644
--- a/quic/core/frames/quic_frames_test.cc
+++ b/quic/core/frames/quic_frames_test.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "absl/numeric/int128.h"
#include "quic/core/frames/quic_ack_frame.h"
#include "quic/core/frames/quic_blocked_frame.h"
#include "quic/core/frames/quic_connection_close_frame.h"
@@ -116,7 +117,7 @@
new_connection_id_frame.connection_id = TestConnectionId(2);
new_connection_id_frame.sequence_number = 2u;
new_connection_id_frame.retire_prior_to = 1u;
- new_connection_id_frame.stateless_reset_token = MakeQuicUint128(0, 1);
+ new_connection_id_frame.stateless_reset_token = absl::MakeUint128(0, 1);
std::ostringstream stream;
stream << new_connection_id_frame;
EXPECT_EQ(
diff --git a/quic/core/frames/quic_new_connection_id_frame.cc b/quic/core/frames/quic_new_connection_id_frame.cc
index fa99dfe..3d8787e 100644
--- a/quic/core/frames/quic_new_connection_id_frame.cc
+++ b/quic/core/frames/quic_new_connection_id_frame.cc
@@ -10,7 +10,7 @@
QuicControlFrameId control_frame_id,
QuicConnectionId connection_id,
QuicConnectionIdSequenceNumber sequence_number,
- const QuicUint128 stateless_reset_token,
+ const absl::uint128 stateless_reset_token,
uint64_t retire_prior_to)
: control_frame_id(control_frame_id),
connection_id(connection_id),
diff --git a/quic/core/frames/quic_new_connection_id_frame.h b/quic/core/frames/quic_new_connection_id_frame.h
index 4cf0258..9cad262 100644
--- a/quic/core/frames/quic_new_connection_id_frame.h
+++ b/quic/core/frames/quic_new_connection_id_frame.h
@@ -7,11 +7,11 @@
#include <ostream>
+#include "absl/numeric/int128.h"
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_constants.h"
#include "quic/core/quic_error_codes.h"
#include "quic/core/quic_types.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -20,7 +20,7 @@
QuicNewConnectionIdFrame(QuicControlFrameId control_frame_id,
QuicConnectionId connection_id,
QuicConnectionIdSequenceNumber sequence_number,
- const QuicUint128 stateless_reset_token,
+ const absl::uint128 stateless_reset_token,
uint64_t retire_prior_to);
friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
@@ -32,7 +32,7 @@
QuicControlFrameId control_frame_id = kInvalidControlFrameId;
QuicConnectionId connection_id = EmptyQuicConnectionId();
QuicConnectionIdSequenceNumber sequence_number = 0;
- QuicUint128 stateless_reset_token;
+ absl::uint128 stateless_reset_token;
uint64_t retire_prior_to;
};
diff --git a/quic/core/frames/quic_retire_connection_id_frame.h b/quic/core/frames/quic_retire_connection_id_frame.h
index c6fc411..cbfc7af 100644
--- a/quic/core/frames/quic_retire_connection_id_frame.h
+++ b/quic/core/frames/quic_retire_connection_id_frame.h
@@ -7,10 +7,10 @@
#include <ostream>
+#include "absl/numeric/int128.h"
#include "quic/core/quic_constants.h"
#include "quic/core/quic_error_codes.h"
#include "quic/core/quic_types.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 6a83d2e..308b4e2 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -11,6 +11,7 @@
#include <utility>
#include <vector>
+#include "absl/numeric/int128.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/null_encrypter.h"
@@ -3339,7 +3340,7 @@
QuicConfig* config = client_session->config();
ASSERT_TRUE(config);
EXPECT_TRUE(config->HasReceivedStatelessResetToken());
- QuicUint128 stateless_reset_token = config->ReceivedStatelessResetToken();
+ absl::uint128 stateless_reset_token = config->ReceivedStatelessResetToken();
// Send the public reset.
QuicConnection* client_connection = GetClientConnection();
@@ -3381,7 +3382,7 @@
QuicConfig* config = client_session->config();
ASSERT_TRUE(config);
EXPECT_TRUE(config->HasReceivedStatelessResetToken());
- QuicUint128 stateless_reset_token = config->ReceivedStatelessResetToken();
+ absl::uint128 stateless_reset_token = config->ReceivedStatelessResetToken();
// Send the public reset.
QuicConnection* client_connection = GetClientConnection();
ASSERT_TRUE(client_connection);
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index 379b5a1..1f81daa 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -11,6 +11,7 @@
#include <utility>
#include "absl/base/attributes.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/crypto_handshake_message.h"
#include "quic/core/crypto/crypto_protocol.h"
@@ -24,7 +25,6 @@
#include "quic/platform/api/quic_flags.h"
#include "quic/platform/api/quic_logging.h"
#include "quic/platform/api/quic_socket_address.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -235,13 +235,13 @@
return has_send_value_;
}
-QuicUint128 QuicFixedUint128::GetSendValue() const {
+absl::uint128 QuicFixedUint128::GetSendValue() const {
QUIC_BUG_IF(quic_bug_12743_4, !has_send_value_)
<< "No send value to get for tag:" << QuicTagToString(tag_);
return send_value_;
}
-void QuicFixedUint128::SetSendValue(QuicUint128 value) {
+void QuicFixedUint128::SetSendValue(absl::uint128 value) {
has_send_value_ = true;
send_value_ = value;
}
@@ -250,13 +250,13 @@
return has_receive_value_;
}
-QuicUint128 QuicFixedUint128::GetReceivedValue() const {
+absl::uint128 QuicFixedUint128::GetReceivedValue() const {
QUIC_BUG_IF(quic_bug_12743_5, !has_receive_value_)
<< "No receive value to get for tag:" << QuicTagToString(tag_);
return receive_value_;
}
-void QuicFixedUint128::SetReceivedValue(QuicUint128 value) {
+void QuicFixedUint128::SetReceivedValue(absl::uint128 value) {
has_receive_value_ = true;
receive_value_ = value;
}
@@ -887,7 +887,7 @@
void QuicConfig::SetIPv6AlternateServerAddressToSend(
const QuicSocketAddress& alternate_server_address_ipv6,
const QuicConnectionId& connection_id,
- QuicUint128 stateless_reset_token) {
+ absl::uint128 stateless_reset_token) {
if (!alternate_server_address_ipv6.host().IsIPv6()) {
QUIC_BUG(quic_bug_10575_10)
<< "Cannot use SetIPv6AlternateServerAddressToSend with "
@@ -922,7 +922,7 @@
void QuicConfig::SetIPv4AlternateServerAddressToSend(
const QuicSocketAddress& alternate_server_address_ipv4,
const QuicConnectionId& connection_id,
- QuicUint128 stateless_reset_token) {
+ absl::uint128 stateless_reset_token) {
if (!alternate_server_address_ipv4.host().IsIPv4()) {
QUIC_BUG(quic_bug_10575_12)
<< "Cannot use SetIPv4AlternateServerAddressToSend with "
@@ -949,7 +949,7 @@
preferred_address_connection_id_and_token_.has_value();
}
-const std::pair<QuicConnectionId, QuicUint128>&
+const std::pair<QuicConnectionId, absl::uint128>&
QuicConfig::ReceivedPreferredAddressConnectionIdAndToken() const {
QUICHE_DCHECK(HasReceivedPreferredAddressConnectionIdAndToken());
return *preferred_address_connection_id_and_token_;
@@ -1008,7 +1008,7 @@
}
void QuicConfig::SetStatelessResetTokenToSend(
- QuicUint128 stateless_reset_token) {
+ absl::uint128 stateless_reset_token) {
stateless_reset_token_.SetSendValue(stateless_reset_token);
}
@@ -1016,7 +1016,7 @@
return stateless_reset_token_.HasReceivedValue();
}
-QuicUint128 QuicConfig::ReceivedStatelessResetToken() const {
+absl::uint128 QuicConfig::ReceivedStatelessResetToken() const {
return stateless_reset_token_.GetReceivedValue();
}
@@ -1204,7 +1204,7 @@
max_idle_timeout_to_send_.ToMilliseconds());
if (stateless_reset_token_.HasSendValue()) {
- QuicUint128 stateless_reset_token = stateless_reset_token_.GetSendValue();
+ absl::uint128 stateless_reset_token = stateless_reset_token_.GetSendValue();
params->stateless_reset_token.assign(
reinterpret_cast<const char*>(&stateless_reset_token),
reinterpret_cast<const char*>(&stateless_reset_token) +
@@ -1319,7 +1319,7 @@
}
if (!is_resumption && !params.stateless_reset_token.empty()) {
- QuicUint128 stateless_reset_token;
+ absl::uint128 stateless_reset_token;
if (params.stateless_reset_token.size() != sizeof(stateless_reset_token)) {
QUIC_BUG(quic_bug_10575_16) << "Bad stateless reset token length "
<< params.stateless_reset_token.size();
@@ -1385,7 +1385,7 @@
if (!params.preferred_address->connection_id.IsEmpty()) {
preferred_address_connection_id_and_token_ = std::make_pair(
params.preferred_address->connection_id,
- *reinterpret_cast<const QuicUint128*>(
+ *reinterpret_cast<const absl::uint128*>(
¶ms.preferred_address->stateless_reset_token.front()));
}
}
diff --git a/quic/core/quic_config.h b/quic/core/quic_config.h
index d0fa2c7..e196fc5 100644
--- a/quic/core/quic_config.h
+++ b/quic/core/quic_config.h
@@ -9,13 +9,13 @@
#include <cstdint>
#include <string>
+#include "absl/numeric/int128.h"
#include "absl/types/optional.h"
#include "quic/core/crypto/transport_parameters.h"
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_packets.h"
#include "quic/core/quic_time.h"
#include "quic/platform/api/quic_export.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -142,15 +142,15 @@
bool HasSendValue() const;
- QuicUint128 GetSendValue() const;
+ absl::uint128 GetSendValue() const;
- void SetSendValue(QuicUint128 value);
+ void SetSendValue(absl::uint128 value);
bool HasReceivedValue() const;
- QuicUint128 GetReceivedValue() const;
+ absl::uint128 GetReceivedValue() const;
- void SetReceivedValue(QuicUint128 value);
+ void SetReceivedValue(absl::uint128 value);
// If has_send_value is true, serialises |tag_| and |send_value_| to |out|.
void ToHandshakeMessage(CryptoHandshakeMessage* out) const override;
@@ -163,8 +163,8 @@
private:
bool has_send_value_;
bool has_receive_value_;
- QuicUint128 send_value_;
- QuicUint128 receive_value_;
+ absl::uint128 send_value_;
+ absl::uint128 receive_value_;
};
// Stores tag from CHLO or SHLO messages that are not negotiated.
@@ -394,7 +394,7 @@
void SetIPv6AlternateServerAddressToSend(
const QuicSocketAddress& alternate_server_address_ipv6,
const QuicConnectionId& connection_id,
- QuicUint128 stateless_reset_token);
+ absl::uint128 stateless_reset_token);
bool HasReceivedIPv6AlternateServerAddress() const;
const QuicSocketAddress& ReceivedIPv6AlternateServerAddress() const;
@@ -404,13 +404,13 @@
void SetIPv4AlternateServerAddressToSend(
const QuicSocketAddress& alternate_server_address_ipv4,
const QuicConnectionId& connection_id,
- QuicUint128 stateless_reset_token);
+ absl::uint128 stateless_reset_token);
bool HasReceivedIPv4AlternateServerAddress() const;
const QuicSocketAddress& ReceivedIPv4AlternateServerAddress() const;
// Preferred Address Connection ID and Token.
bool HasReceivedPreferredAddressConnectionIdAndToken() const;
- const std::pair<QuicConnectionId, QuicUint128>&
+ const std::pair<QuicConnectionId, absl::uint128>&
ReceivedPreferredAddressConnectionIdAndToken() const;
// Original destination connection ID.
@@ -420,9 +420,9 @@
QuicConnectionId ReceivedOriginalConnectionId() const;
// Stateless reset token.
- void SetStatelessResetTokenToSend(QuicUint128 stateless_reset_token);
+ void SetStatelessResetTokenToSend(absl::uint128 stateless_reset_token);
bool HasReceivedStatelessResetToken() const;
- QuicUint128 ReceivedStatelessResetToken() const;
+ absl::uint128 ReceivedStatelessResetToken() const;
// Manage the IETF QUIC Max ACK Delay transport parameter.
// The sent value is the delay that this node uses
@@ -604,7 +604,7 @@
QuicFixedSocketAddress alternate_server_address_ipv4_;
// Connection Id data to send from the server or receive at the client as part
// of the preferred address transport parameter.
- absl::optional<std::pair<QuicConnectionId, QuicUint128>>
+ absl::optional<std::pair<QuicConnectionId, absl::uint128>>
preferred_address_connection_id_and_token_;
// Stateless reset token used in IETF public reset packet.
diff --git a/quic/core/quic_config_test.cc b/quic/core/quic_config_test.cc
index 2f37835..1253740 100644
--- a/quic/core/quic_config_test.cc
+++ b/quic/core/quic_config_test.cc
@@ -7,6 +7,7 @@
#include <memory>
#include <string>
+#include "absl/numeric/int128.h"
#include "quic/core/crypto/crypto_handshake_message.h"
#include "quic/core/crypto/crypto_protocol.h"
#include "quic/core/crypto/transport_parameters.h"
@@ -17,7 +18,6 @@
#include "quic/platform/api/quic_expect_bug.h"
#include "quic/platform/api/quic_flags.h"
#include "quic/platform/api/quic_test.h"
-#include "quic/platform/api/quic_uint128.h"
#include "quic/test_tools/quic_config_peer.h"
#include "quic/test_tools/quic_test_utils.h"
@@ -188,7 +188,7 @@
QuicIpAddress host;
host.FromString("127.0.3.1");
const QuicSocketAddress kTestServerAddress = QuicSocketAddress(host, 1234);
- const QuicUint128 kTestResetToken = MakeQuicUint128(0, 10111100001);
+ const absl::uint128 kTestResetToken = absl::MakeUint128(0, 10111100001);
const uint32_t kTestMaxAckDelayMs =
static_cast<uint32_t>(kDefaultDelayedAckTimeMs + 1);
QuicConfig server_config;
@@ -481,7 +481,7 @@
host.FromString("127.0.3.1");
QuicSocketAddress kTestServerAddress = QuicSocketAddress(host, 1234);
QuicConnectionId new_connection_id = TestConnectionId(5);
- QuicUint128 new_stateless_reset_token =
+ absl::uint128 new_stateless_reset_token =
QuicUtils::GenerateStatelessResetToken(new_connection_id);
config_.SetIPv4AlternateServerAddressToSend(
kTestServerAddress, new_connection_id, new_stateless_reset_token);
@@ -522,7 +522,7 @@
EXPECT_EQ(params.preferred_address->ipv4_socket_address, kTestServerAddress);
EXPECT_EQ(params.preferred_address->connection_id, new_connection_id);
- EXPECT_EQ(*reinterpret_cast<QuicUint128*>(
+ EXPECT_EQ(*reinterpret_cast<absl::uint128*>(
¶ms.preferred_address->stateless_reset_token.front()),
new_stateless_reset_token);
}
@@ -775,7 +775,7 @@
host.FromString("::ffff:192.0.2.128");
QuicSocketAddress kTestServerAddress = QuicSocketAddress(host, 1234);
QuicConnectionId new_connection_id = TestConnectionId(5);
- QuicUint128 new_stateless_reset_token =
+ absl::uint128 new_stateless_reset_token =
QuicUtils::GenerateStatelessResetToken(new_connection_id);
auto preferred_address =
std::make_unique<TransportParameters::PreferredAddress>();
@@ -795,7 +795,7 @@
EXPECT_TRUE(config_.HasReceivedIPv6AlternateServerAddress());
EXPECT_EQ(config_.ReceivedIPv6AlternateServerAddress(), kTestServerAddress);
EXPECT_TRUE(config_.HasReceivedPreferredAddressConnectionIdAndToken());
- const std::pair<QuicConnectionId, QuicUint128>&
+ const std::pair<QuicConnectionId, absl::uint128>&
preferred_address_connection_id_and_token =
config_.ReceivedPreferredAddressConnectionIdAndToken();
EXPECT_EQ(preferred_address_connection_id_and_token.first, new_connection_id);
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 6a1780e..acab3f7 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -2194,7 +2194,7 @@
}
}
-bool QuicConnection::IsValidStatelessResetToken(QuicUint128 token) const {
+bool QuicConnection::IsValidStatelessResetToken(absl::uint128 token) const {
return stateless_reset_token_received_ &&
token == received_stateless_reset_token_;
}
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 5febede..0eb67dc 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -24,6 +24,7 @@
#include <string>
#include <vector>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "quic/core/crypto/quic_decrypter.h"
@@ -689,7 +690,7 @@
bool OnHandshakeDoneFrame(const QuicHandshakeDoneFrame& frame) override;
bool OnAckFrequencyFrame(const QuicAckFrequencyFrame& frame) override;
void OnPacketComplete() override;
- bool IsValidStatelessResetToken(QuicUint128 token) const override;
+ bool IsValidStatelessResetToken(absl::uint128 token) const override;
void OnAuthenticatedIetfStatelessResetPacket(
const QuicIetfStatelessResetPacket& packet) override;
void OnKeyUpdate(KeyUpdateReason reason) override;
@@ -2007,7 +2008,7 @@
bool stateless_reset_token_received_;
// Stores received stateless reset token from peer. Used to verify whether a
// packet is a stateless reset packet.
- QuicUint128 received_stateless_reset_token_;
+ absl::uint128 received_stateless_reset_token_;
// Id of latest sent control frame. 0 if no control frame has been sent.
QuicControlFrameId last_control_frame_id_;
diff --git a/quic/core/quic_connection_id.h b/quic/core/quic_connection_id.h
index 7712033..909d916 100644
--- a/quic/core/quic_connection_id.h
+++ b/quic/core/quic_connection_id.h
@@ -8,8 +8,8 @@
#include <string>
#include <vector>
+#include "absl/numeric/int128.h"
#include "quic/platform/api/quic_export.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
diff --git a/quic/core/quic_connection_id_manager.cc b/quic/core/quic_connection_id_manager.cc
index fee6b25..5bf647a 100644
--- a/quic/core/quic_connection_id_manager.cc
+++ b/quic/core/quic_connection_id_manager.cc
@@ -5,18 +5,18 @@
#include "quic/core/quic_connection_id_manager.h"
#include <cstdio>
+#include "absl/numeric/int128.h"
#include "quic/core/quic_clock.h"
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_error_codes.h"
#include "quic/core/quic_utils.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
QuicConnectionIdData::QuicConnectionIdData(
const QuicConnectionId& connection_id,
uint64_t sequence_number,
- QuicUint128 stateless_reset_token)
+ absl::uint128 stateless_reset_token)
: connection_id(connection_id),
sequence_number(sequence_number),
stateless_reset_token(stateless_reset_token) {}
@@ -73,7 +73,7 @@
QUICHE_DCHECK(!initial_peer_issued_connection_id.IsEmpty());
active_connection_id_data_.emplace_back(initial_peer_issued_connection_id,
/*sequence_number=*/0u,
- QuicUint128());
+ absl::uint128());
recent_new_connection_id_sequence_numbers_.Add(0u, 1u);
}
diff --git a/quic/core/quic_connection_id_manager.h b/quic/core/quic_connection_id_manager.h
index 0968277..91ff934 100644
--- a/quic/core/quic_connection_id_manager.h
+++ b/quic/core/quic_connection_id_manager.h
@@ -12,6 +12,8 @@
#include <cstddef>
#include <memory>
+
+#include "absl/numeric/int128.h"
#include "quic/core/frames/quic_new_connection_id_frame.h"
#include "quic/core/frames/quic_retire_connection_id_frame.h"
#include "quic/core/quic_alarm.h"
@@ -20,7 +22,6 @@
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_interval_set.h"
#include "quic/platform/api/quic_export.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -31,11 +32,11 @@
struct QUIC_EXPORT_PRIVATE QuicConnectionIdData {
QuicConnectionIdData(const QuicConnectionId& connection_id,
uint64_t sequence_number,
- QuicUint128 stateless_reset_token);
+ absl::uint128 stateless_reset_token);
QuicConnectionId connection_id;
uint64_t sequence_number;
- QuicUint128 stateless_reset_token;
+ absl::uint128 stateless_reset_token;
};
// Used by QuicSelfIssuedConnectionIdManager
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index cfac0be..187ef66 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -12,6 +12,7 @@
#include <utility>
#include "absl/base/macros.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quic/core/congestion_control/loss_detection_interface.h"
@@ -6899,7 +6900,7 @@
if (!GetParam().version.HasIetfInvariantHeader()) {
return;
}
- const QuicUint128 kTestStatelessResetToken = 1010101;
+ const absl::uint128 kTestStatelessResetToken = 1010101;
QuicConfig config;
QuicConfigPeer::SetReceivedStatelessResetToken(&config,
kTestStatelessResetToken);
@@ -8611,8 +8612,8 @@
}
TEST_P(QuicConnectionTest, ValidStatelessResetToken) {
- const QuicUint128 kTestToken = 1010101;
- const QuicUint128 kWrongTestToken = 1010100;
+ const absl::uint128 kTestToken = 1010101;
+ const absl::uint128 kWrongTestToken = 1010100;
QuicConfig config;
// No token has been received.
EXPECT_FALSE(connection_.IsValidStatelessResetToken(kTestToken));
@@ -11845,7 +11846,7 @@
return;
}
PathProbeTestInit(Perspective::IS_CLIENT);
- const QuicUint128 kTestStatelessResetToken = 1010101;
+ const absl::uint128 kTestStatelessResetToken = 1010101;
QuicConfig config;
QuicConfigPeer::SetReceivedStatelessResetToken(&config,
kTestStatelessResetToken);
diff --git a/quic/core/quic_control_frame_manager.cc b/quic/core/quic_control_frame_manager.cc
index 1a95bdd..1a6d2aa 100644
--- a/quic/core/quic_control_frame_manager.cc
+++ b/quic/core/quic_control_frame_manager.cc
@@ -138,7 +138,7 @@
const QuicConnectionId& connection_id,
uint64_t sequence_number,
uint64_t retire_prior_to,
- QuicUint128 stateless_reset_token) {
+ absl::uint128 stateless_reset_token) {
QUIC_DVLOG(1) << "Writing NEW_CONNECTION_ID frame";
WriteOrBufferQuicFrame(QuicFrame(new QuicNewConnectionIdFrame(
++last_control_frame_id_, connection_id, sequence_number,
diff --git a/quic/core/quic_control_frame_manager.h b/quic/core/quic_control_frame_manager.h
index e4a5526..1406872 100644
--- a/quic/core/quic_control_frame_manager.h
+++ b/quic/core/quic_control_frame_manager.h
@@ -8,6 +8,7 @@
#include <cstdint>
#include <string>
+#include "absl/numeric/int128.h"
#include "quic/core/frames/quic_frame.h"
#include "quic/core/quic_circular_deque.h"
#include "quic/core/quic_connection_id.h"
@@ -95,7 +96,7 @@
void WriteOrBufferNewConnectionId(const QuicConnectionId& connection_id,
uint64_t sequence_number,
uint64_t retire_prior_to,
- QuicUint128 stateless_reset_token);
+ absl::uint128 stateless_reset_token);
// Tries to send a RETIRE_CONNNECTION_ID frame. The frame is buffered if it
// cannot be sent immediately.
diff --git a/quic/core/quic_control_frame_manager_test.cc b/quic/core/quic_control_frame_manager_test.cc
index 5aed6e0..d077410 100644
--- a/quic/core/quic_control_frame_manager_test.cc
+++ b/quic/core/quic_control_frame_manager_test.cc
@@ -6,6 +6,7 @@
#include <utility>
+#include "absl/numeric/int128.h"
#include "quic/core/crypto/null_encrypter.h"
#include "quic/core/frames/quic_ack_frequency_frame.h"
#include "quic/core/frames/quic_retire_connection_id_frame.h"
@@ -250,7 +251,7 @@
// Send NewConnectionIdFrame as frame 6.
manager_->WriteOrBufferNewConnectionId(
TestConnectionId(3), /*sequence_number=*/2, /*retire_prior_to=*/1,
- /*stateless_reset_token=*/MakeQuicUint128(1, 1));
+ /*stateless_reset_token=*/absl::MakeUint128(1, 1));
// Send RetireConnectionIdFrame as frame 7.
manager_->WriteOrBufferRetireConnectionId(/*sequence_number=*/0);
manager_->OnCanWrite();
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 1200956..ebaa091 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -1300,14 +1300,14 @@
// static
size_t QuicFramer::GetMinStatelessResetPacketLength() {
// 5 bytes (40 bits) = 2 Fixed Bits (01) + 38 Unpredictable bits
- return 5 + sizeof(quic::QuicUint128);
+ return 5 + sizeof(absl::uint128);
}
// static
std::unique_ptr<QuicEncryptedPacket> QuicFramer::BuildIetfStatelessResetPacket(
QuicConnectionId /*connection_id*/,
size_t received_packet_length,
- QuicUint128 stateless_reset_token) {
+ absl::uint128 stateless_reset_token) {
QUIC_DVLOG(1) << "Building IETF stateless reset packet.";
if (GetQuicReloadableFlag(quic_fix_stateless_reset)) {
if (received_packet_length <= GetMinStatelessResetPacketLength()) {
@@ -1329,9 +1329,9 @@
// cryptographic use, and does not need a secure cryptographic pseudo-random
// number generator. It's therefore safe to use WriteInsecureRandomBytes.
if (!writer.WriteInsecureRandomBytes(QuicRandom::GetInstance(),
- len - sizeof(quic::QuicUint128))) {
+ len - sizeof(absl::uint128))) {
QUIC_BUG(362045737_2) << "Failed to append random bytes of length: "
- << len - sizeof(quic::QuicUint128);
+ << len - sizeof(absl::uint128);
return nullptr;
}
// Change first 2 fixed bits to 01.
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index 13f9ee5..5704cb5 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -10,6 +10,7 @@
#include <memory>
#include <string>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/quic_decrypter.h"
#include "quic/core/crypto/quic_encrypter.h"
@@ -225,7 +226,7 @@
virtual void OnPacketComplete() = 0;
// Called to check whether |token| is a valid stateless reset token.
- virtual bool IsValidStatelessResetToken(QuicUint128 token) const = 0;
+ virtual bool IsValidStatelessResetToken(absl::uint128 token) const = 0;
// Called when an IETF stateless reset packet has been parsed and validated
// with the stateless reset token.
@@ -477,7 +478,7 @@
static std::unique_ptr<QuicEncryptedPacket> BuildIetfStatelessResetPacket(
QuicConnectionId connection_id,
size_t received_packet_length,
- QuicUint128 stateless_reset_token);
+ absl::uint128 stateless_reset_token);
// Returns a new version negotiation packet.
static std::unique_ptr<QuicEncryptedPacket> BuildVersionNegotiationPacket(
diff --git a/quic/core/quic_framer_test.cc b/quic/core/quic_framer_test.cc
index 6e04f67..f64e7a5 100644
--- a/quic/core/quic_framer_test.cc
+++ b/quic/core/quic_framer_test.cc
@@ -47,7 +47,7 @@
const uint64_t kEpoch = UINT64_C(1) << 32;
const uint64_t kMask = kEpoch - 1;
-const QuicUint128 kTestStatelessResetToken = 1010101; // 0x0F69B5
+const absl::uint128 kTestStatelessResetToken = 1010101; // 0x0F69B5
// Use fields in which each byte is distinct to ensure that every byte is
// framed correctly. The values are otherwise arbitrary.
@@ -571,7 +571,7 @@
return true;
}
- bool IsValidStatelessResetToken(QuicUint128 token) const override {
+ bool IsValidStatelessResetToken(absl::uint128 token) const override {
EXPECT_EQ(0u, framer_->current_received_frame_type());
return token == kTestStatelessResetToken;
}
diff --git a/quic/core/quic_packet_number.h b/quic/core/quic_packet_number.h
index a1ea62f..affd714 100644
--- a/quic/core/quic_packet_number.h
+++ b/quic/core/quic_packet_number.h
@@ -11,7 +11,6 @@
#include "quic/platform/api/quic_export.h"
#include "quic/platform/api/quic_logging.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
diff --git a/quic/core/quic_packets.cc b/quic/core/quic_packets.cc
index 5f3e5a2..a7599cf 100644
--- a/quic/core/quic_packets.cc
+++ b/quic/core/quic_packets.cc
@@ -219,7 +219,7 @@
QuicIetfStatelessResetPacket::QuicIetfStatelessResetPacket(
const QuicPacketHeader& header,
- QuicUint128 token)
+ absl::uint128 token)
: header(header), stateless_reset_token(token) {}
QuicIetfStatelessResetPacket::QuicIetfStatelessResetPacket(
diff --git a/quic/core/quic_packets.h b/quic/core/quic_packets.h
index 4643ebc..338adae 100644
--- a/quic/core/quic_packets.h
+++ b/quic/core/quic_packets.h
@@ -14,6 +14,7 @@
#include <utility>
#include <vector>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/frames/quic_frame.h"
#include "quic/core/quic_ack_listener_interface.h"
@@ -25,7 +26,6 @@
#include "quic/core/quic_versions.h"
#include "quic/platform/api/quic_export.h"
#include "quic/platform/api/quic_socket_address.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -155,7 +155,7 @@
// Only valid if |has_possible_stateless_reset_token| is true.
// Stores last 16 bytes of a this packet, used to check whether this packet is
// a stateless reset packet on decryption failure.
- QuicUint128 possible_stateless_reset_token;
+ absl::uint128 possible_stateless_reset_token;
// Length of the retry token length variable length integer field,
// carried only by v99 IETF Initial packets.
QuicVariableLengthIntegerLength retry_token_length_length;
@@ -196,12 +196,12 @@
struct QUIC_EXPORT_PRIVATE QuicIetfStatelessResetPacket {
QuicIetfStatelessResetPacket();
QuicIetfStatelessResetPacket(const QuicPacketHeader& header,
- QuicUint128 token);
+ absl::uint128 token);
QuicIetfStatelessResetPacket(const QuicIetfStatelessResetPacket& other);
~QuicIetfStatelessResetPacket();
QuicPacketHeader header;
- QuicUint128 stateless_reset_token;
+ absl::uint128 stateless_reset_token;
};
class QUIC_EXPORT_PRIVATE QuicData {
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 89f140b..55a9c19 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -2359,7 +2359,7 @@
writer);
}
-QuicUint128 QuicSession::GetStatelessResetToken() const {
+absl::uint128 QuicSession::GetStatelessResetToken() const {
return QuicUtils::GenerateStatelessResetToken(connection_->connection_id());
}
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index f225f26..bd65bf3 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -15,6 +15,7 @@
#include <vector>
#include "absl/container/flat_hash_map.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "quic/core/frames/quic_ack_frequency_frame.h"
@@ -720,7 +721,7 @@
// Returns a stateless reset token which will be included in the public reset
// packet.
- virtual QuicUint128 GetStatelessResetToken() const;
+ virtual absl::uint128 GetStatelessResetToken() const;
QuicControlFrameManager& control_frame_manager() {
return control_frame_manager_;
diff --git a/quic/core/quic_time_wait_list_manager.cc b/quic/core/quic_time_wait_list_manager.cc
index 4f7b615..857b6c7 100644
--- a/quic/core/quic_time_wait_list_manager.cc
+++ b/quic/core/quic_time_wait_list_manager.cc
@@ -500,7 +500,7 @@
QuicTimeWaitListManager::ConnectionIdData::~ConnectionIdData() = default;
-QuicUint128 QuicTimeWaitListManager::GetStatelessResetToken(
+absl::uint128 QuicTimeWaitListManager::GetStatelessResetToken(
QuicConnectionId connection_id) const {
return QuicUtils::GenerateStatelessResetToken(connection_id);
}
diff --git a/quic/core/quic_time_wait_list_manager.h b/quic/core/quic_time_wait_list_manager.h
index aa5686d..5e097b5 100644
--- a/quic/core/quic_time_wait_list_manager.h
+++ b/quic/core/quic_time_wait_list_manager.h
@@ -12,6 +12,7 @@
#include <memory>
#include "absl/container/flat_hash_map.h"
+#include "absl/numeric/int128.h"
#include "quic/core/quic_blocked_writer_interface.h"
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_framer.h"
@@ -186,7 +187,7 @@
// Returns a stateless reset token which will be included in the public reset
// packet.
- virtual QuicUint128 GetStatelessResetToken(
+ virtual absl::uint128 GetStatelessResetToken(
QuicConnectionId connection_id) const;
// Internal structure to store pending termination packets.
diff --git a/quic/core/quic_time_wait_list_manager_test.cc b/quic/core/quic_time_wait_list_manager_test.cc
index 37c7f37..b423713 100644
--- a/quic/core/quic_time_wait_list_manager_test.cc
+++ b/quic/core/quic_time_wait_list_manager_test.cc
@@ -9,6 +9,7 @@
#include <ostream>
#include <utility>
+#include "absl/numeric/int128.h"
#include "quic/core/crypto/crypto_protocol.h"
#include "quic/core/crypto/null_encrypter.h"
#include "quic/core/crypto/quic_decrypter.h"
@@ -21,7 +22,6 @@
#include "quic/core/quic_utils.h"
#include "quic/platform/api/quic_flags.h"
#include "quic/platform/api/quic_test.h"
-#include "quic/platform/api/quic_uint128.h"
#include "quic/test_tools/mock_quic_session_visitor.h"
#include "quic/test_tools/quic_test_utils.h"
#include "quic/test_tools/quic_time_wait_list_manager_peer.h"
@@ -57,7 +57,7 @@
return public_reset_packet_;
}
- bool IsValidStatelessResetToken(QuicUint128 token) const override {
+ bool IsValidStatelessResetToken(absl::uint128 token) const override {
return token == QuicUtils::GenerateStatelessResetToken(connection_id_);
}
@@ -220,7 +220,7 @@
QuicIetfStatelessResetPacket stateless_reset =
visitor.stateless_reset_packet();
- QuicUint128 expected_stateless_reset_token =
+ absl::uint128 expected_stateless_reset_token =
QuicUtils::GenerateStatelessResetToken(expected_connection_id);
bool stateless_reset_is_valid =
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index 95c5b90..7e3652e 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -12,6 +12,7 @@
#include "absl/base/macros.h"
#include "absl/base/optimization.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/quic_connection_id.h"
#include "quic/core/quic_constants.h"
@@ -21,7 +22,6 @@
#include "quic/platform/api/quic_flag_utils.h"
#include "quic/platform/api/quic_flags.h"
#include "quic/platform/api/quic_prefetch.h"
-#include "quic/platform/api/quic_uint128.h"
#include "common/platform/api/quiche_logging.h"
#include "common/quiche_endian.h"
@@ -38,42 +38,43 @@
#endif
#ifdef QUIC_UTIL_HAS_UINT128
-QuicUint128 IncrementalHashFast(QuicUint128 uhash, absl::string_view data) {
+absl::uint128 IncrementalHashFast(absl::uint128 uhash, absl::string_view data) {
// This code ends up faster than the naive implementation for 2 reasons:
- // 1. QuicUint128 is sufficiently complicated that the compiler
+ // 1. absl::uint128 is sufficiently complicated that the compiler
// cannot transform the multiplication by kPrime into a shift-multiply-add;
// it has go through all of the instructions for a 128-bit multiply.
// 2. Because there are so fewer instructions (around 13), the hot loop fits
// nicely in the instruction queue of many Intel CPUs.
// kPrime = 309485009821345068724781371
- static const QuicUint128 kPrime =
- (static_cast<QuicUint128>(16777216) << 64) + 315;
- auto hi = QuicUint128High64(uhash);
- auto lo = QuicUint128Low64(uhash);
- QuicUint128 xhash = (static_cast<QuicUint128>(hi) << 64) + lo;
+ static const absl::uint128 kPrime =
+ (static_cast<absl::uint128>(16777216) << 64) + 315;
+ auto hi = absl::Uint128High64(uhash);
+ auto lo = absl::Uint128Low64(uhash);
+ absl::uint128 xhash = (static_cast<absl::uint128>(hi) << 64) + lo;
const uint8_t* octets = reinterpret_cast<const uint8_t*>(data.data());
for (size_t i = 0; i < data.length(); ++i) {
xhash = (xhash ^ static_cast<uint32_t>(octets[i])) * kPrime;
}
- return MakeQuicUint128(QuicUint128High64(xhash), QuicUint128Low64(xhash));
+ return absl::MakeUint128(absl::Uint128High64(xhash),
+ absl::Uint128Low64(xhash));
}
#endif
#ifndef QUIC_UTIL_HAS_UINT128
// Slow implementation of IncrementalHash. In practice, only used by Chromium.
-QuicUint128 IncrementalHashSlow(QuicUint128 hash, absl::string_view data) {
+absl::uint128 IncrementalHashSlow(absl::uint128 hash, absl::string_view data) {
// kPrime = 309485009821345068724781371
- static const QuicUint128 kPrime = MakeQuicUint128(16777216, 315);
+ static const absl::uint128 kPrime = absl::MakeUint128(16777216, 315);
const uint8_t* octets = reinterpret_cast<const uint8_t*>(data.data());
for (size_t i = 0; i < data.length(); ++i) {
- hash = hash ^ MakeQuicUint128(0, octets[i]);
+ hash = hash ^ absl::MakeUint128(0, octets[i]);
hash = hash * kPrime;
}
return hash;
}
#endif
-QuicUint128 IncrementalHash(QuicUint128 hash, absl::string_view data) {
+absl::uint128 IncrementalHash(absl::uint128 hash, absl::string_view data) {
#ifdef QUIC_UTIL_HAS_UINT128
return IncrementalHashFast(hash, data);
#else
@@ -101,27 +102,27 @@
}
// static
-QuicUint128 QuicUtils::FNV1a_128_Hash(absl::string_view data) {
+absl::uint128 QuicUtils::FNV1a_128_Hash(absl::string_view data) {
return FNV1a_128_Hash_Three(data, absl::string_view(), absl::string_view());
}
// static
-QuicUint128 QuicUtils::FNV1a_128_Hash_Two(absl::string_view data1,
- absl::string_view data2) {
+absl::uint128 QuicUtils::FNV1a_128_Hash_Two(absl::string_view data1,
+ absl::string_view data2) {
return FNV1a_128_Hash_Three(data1, data2, absl::string_view());
}
// static
-QuicUint128 QuicUtils::FNV1a_128_Hash_Three(absl::string_view data1,
- absl::string_view data2,
- absl::string_view data3) {
+absl::uint128 QuicUtils::FNV1a_128_Hash_Three(absl::string_view data1,
+ absl::string_view data2,
+ absl::string_view data3) {
// The two constants are defined as part of the hash algorithm.
// see http://www.isthe.com/chongo/tech/comp/fnv/
// kOffset = 144066263297769815596495629667062367629
- const QuicUint128 kOffset = MakeQuicUint128(UINT64_C(7809847782465536322),
- UINT64_C(7113472399480571277));
+ const absl::uint128 kOffset = absl::MakeUint128(
+ UINT64_C(7809847782465536322), UINT64_C(7113472399480571277));
- QuicUint128 hash = IncrementalHash(kOffset, data1);
+ absl::uint128 hash = IncrementalHash(kOffset, data1);
if (data2.empty()) {
return hash;
}
@@ -134,9 +135,9 @@
}
// static
-void QuicUtils::SerializeUint128Short(QuicUint128 v, uint8_t* out) {
- const uint64_t lo = QuicUint128Low64(v);
- const uint64_t hi = QuicUint128High64(v);
+void QuicUtils::SerializeUint128Short(absl::uint128 v, uint8_t* out) {
+ const uint64_t lo = absl::Uint128Low64(v);
+ const uint64_t hi = absl::Uint128High64(v);
// This assumes that the system is little-endian.
memcpy(out, &lo, sizeof(lo));
memcpy(out + sizeof(lo), &hi, sizeof(hi) / 2);
@@ -535,7 +536,7 @@
expected_connection_id_length);
}
char new_connection_id_data[255] = {};
- const QuicUint128 connection_id_hash128 = FNV1a_128_Hash(
+ 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),
@@ -629,7 +630,7 @@
transport_version);
}
-QuicUint128 QuicUtils::GenerateStatelessResetToken(
+absl::uint128 QuicUtils::GenerateStatelessResetToken(
QuicConnectionId connection_id) {
return FNV1a_128_Hash(
absl::string_view(connection_id.data(), connection_id.length()));
diff --git a/quic/core/quic_utils.h b/quic/core/quic_utils.h
index 463b63f..abef12b 100644
--- a/quic/core/quic_utils.h
+++ b/quic/core/quic_utils.h
@@ -11,6 +11,7 @@
#include <string>
#include <type_traits>
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/quic_random.h"
#include "quic/core/frames/quic_frame.h"
@@ -21,7 +22,6 @@
#include "quic/platform/api/quic_export.h"
#include "quic/platform/api/quic_iovec.h"
#include "quic/platform/api/quic_socket_address.h"
-#include "quic/platform/api/quic_uint128.h"
namespace quic {
@@ -35,22 +35,22 @@
// Returns the 128 bit FNV1a hash of the data. See
// http://www.isthe.com/chongo/tech/comp/fnv/index.html#FNV-param
- static QuicUint128 FNV1a_128_Hash(absl::string_view data);
+ static absl::uint128 FNV1a_128_Hash(absl::string_view data);
// Returns the 128 bit FNV1a hash of the two sequences of data. See
// http://www.isthe.com/chongo/tech/comp/fnv/index.html#FNV-param
- static QuicUint128 FNV1a_128_Hash_Two(absl::string_view data1,
- absl::string_view data2);
+ static absl::uint128 FNV1a_128_Hash_Two(absl::string_view data1,
+ absl::string_view data2);
// Returns the 128 bit FNV1a hash of the three sequences of data. See
// http://www.isthe.com/chongo/tech/comp/fnv/index.html#FNV-param
- static QuicUint128 FNV1a_128_Hash_Three(absl::string_view data1,
- absl::string_view data2,
- absl::string_view data3);
+ static absl::uint128 FNV1a_128_Hash_Three(absl::string_view data1,
+ absl::string_view data2,
+ absl::string_view data3);
// SerializeUint128 writes the first 96 bits of |v| in little-endian form
// to |out|.
- static void SerializeUint128Short(QuicUint128 v, uint8_t* out);
+ static void SerializeUint128Short(absl::uint128 v, uint8_t* out);
// Returns AddressChangeType as a string.
static std::string AddressChangeTypeToString(AddressChangeType type);
@@ -219,7 +219,7 @@
static QuicConnectionId CreateZeroConnectionId(QuicTransportVersion version);
// Generates a 128bit stateless reset token based on a connection ID.
- static QuicUint128 GenerateStatelessResetToken(
+ static absl::uint128 GenerateStatelessResetToken(
QuicConnectionId connection_id);
// Determines packet number space from |encryption_level|.
diff --git a/quic/core/quic_utils_test.cc b/quic/core/quic_utils_test.cc
index a5249d7..a178725 100644
--- a/quic/core/quic_utils_test.cc
+++ b/quic/core/quic_utils_test.cc
@@ -7,6 +7,7 @@
#include <string>
#include "absl/base/macros.h"
+#include "absl/numeric/int128.h"
#include "absl/strings/string_view.h"
#include "quic/core/crypto/crypto_protocol.h"
#include "quic/core/quic_connection_id.h"
@@ -79,17 +80,17 @@
QuicUtils::DetermineAddressChangeType(old_address, new_address));
}
-QuicUint128 IncrementalHashReference(const void* data, size_t len) {
+absl::uint128 IncrementalHashReference(const void* data, size_t len) {
// The two constants are defined as part of the hash algorithm.
// see http://www.isthe.com/chongo/tech/comp/fnv/
// hash = 144066263297769815596495629667062367629
- QuicUint128 hash = MakeQuicUint128(UINT64_C(7809847782465536322),
- UINT64_C(7113472399480571277));
+ absl::uint128 hash = absl::MakeUint128(UINT64_C(7809847782465536322),
+ UINT64_C(7113472399480571277));
// kPrime = 309485009821345068724781371
- const QuicUint128 kPrime = MakeQuicUint128(16777216, 315);
+ const absl::uint128 kPrime = absl::MakeUint128(16777216, 315);
const uint8_t* octets = reinterpret_cast<const uint8_t*>(data);
for (size_t i = 0; i < len; ++i) {
- hash = hash ^ MakeQuicUint128(0, octets[i]);
+ hash = hash ^ absl::MakeUint128(0, octets[i]);
hash = hash * kPrime;
}
return hash;
@@ -311,9 +312,11 @@
QuicConnectionId connection_id1a = test::TestConnectionId(1);
QuicConnectionId connection_id1b = test::TestConnectionId(1);
QuicConnectionId connection_id2 = test::TestConnectionId(2);
- QuicUint128 token1a = QuicUtils::GenerateStatelessResetToken(connection_id1a);
- QuicUint128 token1b = QuicUtils::GenerateStatelessResetToken(connection_id1b);
- QuicUint128 token2 = QuicUtils::GenerateStatelessResetToken(connection_id2);
+ absl::uint128 token1a =
+ QuicUtils::GenerateStatelessResetToken(connection_id1a);
+ absl::uint128 token1b =
+ QuicUtils::GenerateStatelessResetToken(connection_id1b);
+ absl::uint128 token2 = QuicUtils::GenerateStatelessResetToken(connection_id2);
EXPECT_EQ(token1a, token1b);
EXPECT_NE(token1a, token2);
}
diff --git a/quic/core/tls_chlo_extractor.h b/quic/core/tls_chlo_extractor.h
index f7392a5..8383af1 100644
--- a/quic/core/tls_chlo_extractor.h
+++ b/quic/core/tls_chlo_extractor.h
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include <vector>
+#include "absl/numeric/int128.h"
#include "third_party/boringssl/src/include/openssl/ssl.h"
#include "quic/core/frames/quic_ack_frequency_frame.h"
#include "quic/core/quic_framer.h"
@@ -156,7 +157,7 @@
return true;
}
void OnPacketComplete() override {}
- bool IsValidStatelessResetToken(QuicUint128 /*token*/) const override {
+ bool IsValidStatelessResetToken(absl::uint128 /*token*/) const override {
return true;
}
void OnAuthenticatedIetfStatelessResetPacket(