0

Roll src/net/third_party/quiche/src/ 02c69dd28..11e17fea1 (38 commits)

https://quiche.googlesource.com/quiche.git/+log/02c69dd28eef..11e17fea103d

$ git log 02c69dd28..11e17fea1 --date=short --no-merges --format='%ad %ae %s'
2023-05-12 quiche-dev Remove use of std::function from CreateContextForMultiPortPath()
2023-05-11 dschinazi Fix warning in EncryptionLevelToProto
2023-05-11 diannahu Tweak BalsaHeadersSequence to prepare for JetstreamSession integration.
2023-05-11 vasilvv Extend WebTransport error code space to 32-bit.
2023-05-10 fayang Let QUIC framer always infer packet header type from framer's version.
2023-05-09 asedeno masque_server_session: factor out event handlers for connect-udp and connect-ip
2023-05-08 asedeno masque_*_bin: create quiche event loop after commandline parsing
2023-05-08 asedeno masque_sever_session: unnest different MASQUE implementations
2023-05-08 asedeno masque_*_bin: use actual logging, not std::cerr
2023-05-08 asedeno Implement QUICHE default platform logging using Abseil Logging
2023-05-08 quiche-dev Fix compilation on Chrome OS
2023-05-08 asedeno masque_utils: open tun_fd with O_NONBLOCK
2023-05-05 diannahu Support multiple interim responses in SimpleClient.
2023-05-05 vasilvv Fix open source QUICHE build
2023-05-05 vasilvv Support enough of Windows to make EndToEndTest.SimpleRequestResponse pass.
2023-05-05 elburrito Force the Public Metadata fingerprint value to be passed as big-endian.
2023-05-05 bnc Add quiche::HttpValidationPolicy::validate_transfer_encoding.
2023-05-04 martinduke Record sent ECN marks correctly for coalesced and buffered packets.
2023-05-04 quiche-dev Deprecate unused field `AT_PUBLIC_METADATA_VERIFIED_KEY_TYPE`.
2023-05-03 diannahu Avoid interim response handling for 101 Switching Protocols responses in BalsaFrame.
2023-05-03 diannahu Add a class to represent a sequence of BalsaHeaders.
2023-05-03 quiche-dev Include debug_mode in the Public Metadata fingerprint.
2023-05-03 quiche-dev Add support for CreateContextForMultiPortPath running async.
2023-05-03 bnc Do not evict unacknowledged QPACK entries.
2023-05-01 quiche-dev Use simple regex in quic_connection_test.cc
2023-05-01 haoyuewang Clean up count_reverse_path_validation_stats.
2023-04-27 quiche-dev Add ability to set a non-zero send alarm delay for QUIC connection.
2023-04-27 bnc Add comment to QPACK encoder.
2023-04-27 vasilvv More build fixes for QUICHE on Windows.
2023-04-26 vasilvv Add a Windows implementation of socket.h
2023-04-26 vasilvv Basic fixes to make QUICHE build on Windows.
2023-04-25 haoyuewang Deprecate --gfe2_reloadable_flag_quic_remove_connection_migration_connection_option_v2
2023-04-25 bnc Remove extra warnings from internal QUICHE platform implementation.
2023-04-24 renjietang Add stats on QuicConnection path degrading and recovering.
2023-04-24 wub Deprecate --gfe2_reloadable_flag_quic_dont_close_connection_in_tls_alert_callback.
2023-04-22 quiche-dev When a region override is in effect, enable debug mode. Otherwise, Beryllium will reject it when it does the country mismatch check.
2023-04-21 danzh Deprecate --gfe2_reloadable_flag_quic_verify_request_headers_2
2023-04-20 martinduke Validate incoming ECN feedback.

Created with:
  roll-dep src/net/third_party/quiche/src src/third_party/quic_trace/src

Other changes:
* Fix BUILD.gn and num_path_degrading references
* Rename histogram Net.QuicMultiPort.NumDefaultPathDegrading to
  Net.QuicSession.NumDefaultPathDegrading and always log it.
* Accommodate change to signature of CreateContextForMultiPortPath()

Change-Id: I9bd5e07aae0df4a81be4d14dda882ed5712419ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4520190
Reviewed-by: Adam Rice <ricea@chromium.org>
Commit-Queue: Nidhi Jaju <nidhijaju@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1144571}
This commit is contained in:
Nidhi Jaju
2023-05-16 08:07:14 +00:00
committed by Chromium LUCI CQ
parent fccd1b5765
commit 4da27019e3
5 changed files with 39 additions and 19 deletions
DEPS
net
tools/metrics/histograms/metadata/net

2
DEPS

@ -431,7 +431,7 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
'quiche_revision': '02c69dd28eef7ef2618782e8d54d53c14ae64382',
'quiche_revision': '11e17fea103dab9d7eb8a021038ec619a88c7296',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling ios_webkit
# and whatever else without interference from each other.

@ -1830,11 +1830,10 @@ void QuicChromiumClientSession::OnConnectionClosed(
logger_->OnConnectionClosed(frame, source);
const quic::QuicConnection::MultiPortStats* multi_port_stats =
connection()->multi_port_stats();
if (multi_port_stats != nullptr) {
UMA_HISTOGRAM_COUNTS_1000("Net.QuicMultiPort.NumDefaultPathDegrading",
multi_port_stats->num_path_degrading);
UMA_HISTOGRAM_COUNTS_1000("Net.QuicSession.NumDefaultPathDegrading",
connection()->GetStats().num_path_degrading);
if (const quic::QuicConnection::MultiPortStats* multi_port_stats =
connection()->multi_port_stats()) {
UMA_HISTOGRAM_COUNTS_1000(
"Net.QuicMultiPort.NumMultiPortFailureWhenPathNotDegrading",
multi_port_stats
@ -1845,7 +1844,7 @@ void QuicChromiumClientSession::OnConnectionClosed(
multi_port_stats->num_multi_port_probe_failures_when_path_degrading;
uint64_t srtt_ms =
multi_port_stats->rtt_stats.smoothed_rtt().ToMilliseconds();
if (multi_port_stats->num_path_degrading > 0 &&
if (connection()->GetStats().num_path_degrading > 0 &&
total_multi_port_probe_failures > 0 && srtt_ms > 0) {
base::UmaHistogramSparse(
"Net.QuicMultiPort.AltPortRttWhenPathDegradingVsGeneral",
@ -3079,10 +3078,10 @@ void QuicChromiumClientSession::MaybeStartProbing(
StartProbing(std::move(probing_callback), network, peer_address);
}
std::unique_ptr<quic::QuicPathValidationContext>
QuicChromiumClientSession::CreateContextForMultiPortPath() {
void QuicChromiumClientSession::CreateContextForMultiPortPath(
std::unique_ptr<quic::MultiPortPathContextObserver> context_observer) {
if (!connection()->connection_migration_use_new_cid()) {
return nullptr;
return;
}
// Create and configure socket on default network
@ -3091,7 +3090,7 @@ QuicChromiumClientSession::CreateContextForMultiPortPath() {
if (stream_factory_->ConfigureSocket(
probing_socket.get(), ToIPEndPoint(peer_address()), default_network_,
session_key_.socket_tag()) != OK) {
return nullptr;
return;
}
// Create new packet writer and reader on the probing socket.
@ -3107,10 +3106,11 @@ QuicChromiumClientSession::CreateContextForMultiPortPath() {
probing_writer->set_delegate(&path_validation_writer_delegate_);
IPEndPoint local_address;
probing_socket->GetLocalAddress(&local_address);
return std::make_unique<QuicChromiumPathValidationContext>(
ToQuicSocketAddress(local_address), peer_address(), default_network_,
std::move(probing_socket), std::move(probing_writer),
std::move(probing_reader));
context_observer->OnMultiPortPathContextAvailable(
std::make_unique<QuicChromiumPathValidationContext>(
ToQuicSocketAddress(local_address), peer_address(), default_network_,
std::move(probing_socket), std::move(probing_writer),
std::move(probing_reader)));
}
void QuicChromiumClientSession::MigrateToMultiPortPath(

@ -749,8 +749,9 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
void OnPathDegrading() override;
void OnForwardProgressMadeAfterPathDegrading() override;
void OnKeyUpdate(quic::KeyUpdateReason reason) override;
std::unique_ptr<quic::QuicPathValidationContext>
CreateContextForMultiPortPath() override;
void CreateContextForMultiPortPath(
std::unique_ptr<quic::MultiPortPathContextObserver> context_observer)
override;
void MigrateToMultiPortPath(
std::unique_ptr<quic::QuicPathValidationContext> context) override;

@ -791,16 +791,21 @@ if (build_epoll_based_tools) {
"src/quiche/quic/core/io/quic_default_event_loop.h",
"src/quiche/quic/core/io/quic_poll_event_loop.cc",
"src/quiche/quic/core/io/quic_poll_event_loop.h",
"src/quiche/quic/core/io/socket.cc",
"src/quiche/quic/core/io/socket.h",
"src/quiche/quic/core/io/socket_posix.cc",
"src/quiche/quic/core/io/socket_internal.h",
"src/quiche/quic/core/io/socket_posix.inc",
"src/quiche/quic/core/io/socket_win.inc",
"src/quiche/quic/core/quic_default_clock.cc",
"src/quiche/quic/core/quic_default_clock.h",
"src/quiche/quic/core/quic_default_packet_writer.cc",
"src/quiche/quic/core/quic_default_packet_writer.h",
"src/quiche/quic/core/quic_packet_reader.cc",
"src/quiche/quic/core/quic_packet_reader.h",
"src/quiche/quic/core/quic_udp_socket.cc",
"src/quiche/quic/core/quic_udp_socket.h",
"src/quiche/quic/core/quic_udp_socket_posix.cc",
"src/quiche/quic/core/quic_udp_socket_posix.inc",
"src/quiche/quic/core/quic_udp_socket_win.inc",
"src/quiche/quic/masque/masque_client.cc",
"src/quiche/quic/masque/masque_client.h",
"src/quiche/quic/masque/masque_client_session.cc",

@ -2608,6 +2608,10 @@ chromium-metrics-reviews@google.com.
<histogram name="Net.QuicMultiPort.NumDefaultPathDegrading" units="times"
expires_after="2023-10-22">
<obsolete>
Replaced by Net.QuicSession.NumDefaultPathDegrading in May 2023, as
num_path_degrading is no longer specific to the multi-port feature.
</obsolete>
<owner>renjietang@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
@ -3630,6 +3634,16 @@ chromium-metrics-reviews@google.com.
</summary>
</histogram>
<histogram name="Net.QuicSession.NumDefaultPathDegrading" units="times"
expires_after="2023-10-22">
<owner>renjietang@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
The number of time that a session which has multi-port enabled enters
path-degrading state on the default path.
</summary>
</histogram>
<histogram name="Net.QuicSession.NumMigrations" units="units"
expires_after="2023-09-17">
<owner>renjietang@chromium.org</owner>