Commit 4d835307 authored by Renjie Tang's avatar Renjie Tang Committed by Commit Bot

Roll src/net/third_party/quiche/src/ 093f8e4f0..a5c338388 (5 commits)

https://quiche.googlesource.com/quiche.git/+log/093f8e4f0014..a5c338388099

$ git log 093f8e4f0..a5c338388 --date=short --no-merges --format='%ad %ae %s'
2020-09-15 fayang Change undecryptable_packets_ from QuicCircularDeque to std::deque. No functional change expected. This is the preparation to support out of order deletion.
2020-09-14 wub Internal QUICHE change
2020-09-14 ianswett Deprecate quic_bbr_flexible_app_limited which was blocked by a bug that's now closed.  This was added for Quartc, but that project is no longer active.
2020-09-14 fayang Deprecate gfe2_reloadable_flag_quic_fix_neuter_handshake_data.
2020-09-14 renjietang Pass early data reject reason to debug_visitor.

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

Change-Id: I975e50199a590513c299c940c3b119225633fdaa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2412632
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Reviewed-by: default avatarDavid Schinazi <dschinazi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807226}
parent 8b1cf115
......@@ -322,7 +322,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': '093f8e4f0014522e32896cfa4d1d8e5510b41788',
'quiche_revision': 'a5c3383880999828b47f2dfaff3ad86cf35c886a',
# 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.
......
......@@ -589,8 +589,8 @@ void QuicConnectionLogger::OnTransportParametersResumed(
event_logger_.OnTransportParametersResumed(transport_parameters);
}
void QuicConnectionLogger::OnZeroRttRejected() {
event_logger_.OnZeroRttRejected();
void QuicConnectionLogger::OnZeroRttRejected(int reason) {
event_logger_.OnZeroRttRejected(reason);
}
void QuicConnectionLogger::RecordAggregatePacketLossRate() const {
......
......@@ -129,7 +129,7 @@ class NET_EXPORT_PRIVATE QuicConnectionLogger
// Returns connection's overall packet loss rate in fraction.
float ReceivedPacketLossRate() const;
void OnZeroRttRejected() override;
void OnZeroRttRejected(int reason) override;
private:
// Do a factory get for a histogram to record a 6-packet loss-sequence as a
......
......@@ -8,6 +8,7 @@
#include "net/log/net_log_values.h"
#include "net/quic/address_utils.h"
#include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
#include "third_party/boringssl/src/include/openssl/ssl.h"
namespace net {
......@@ -251,6 +252,65 @@ base::Value NetLogQuicTransportParametersParams(
return dict;
}
base::Value NetLogQuicZeroRttRejectReason(int reason) {
base::Value dict(base::Value::Type::DICTIONARY);
std::string reason_detail = "";
switch (reason) {
case ssl_early_data_unknown:
reason_detail = "The handshake has not progressed far enough";
break;
case ssl_early_data_disabled:
reason_detail = "0-RTT is disabled for this connection.";
break;
case ssl_early_data_accepted:
reason_detail = "0-RTT was accepted";
break;
case ssl_early_data_protocol_version:
reason_detail = "The negotiated protocol doesn't support 0-RTT.";
break;
case ssl_early_data_peer_declined:
reason_detail =
"The peer declined to offer or accept 0-RTT for an unknown reason.";
break;
case ssl_early_data_no_session_offered:
reason_detail = "The client did not offer a session.";
break;
case ssl_early_data_session_not_resumed:
reason_detail = "The server declined to resume the session.";
break;
case ssl_early_data_unsupported_for_session:
reason_detail = "The session does not support 0-RTT.";
break;
case ssl_early_data_hello_retry_request:
reason_detail = "The server sent a HelloRetryRequest.";
break;
case ssl_early_data_alpn_mismatch:
reason_detail = "The negotiated ALPN protocol did not match the session.";
break;
case ssl_early_data_channel_id:
reason_detail =
"The connection negotiated Channel ID, which is incompatible with "
"0-RTT.";
break;
case ssl_early_data_token_binding:
reason_detail =
"The connection negotiated token binding, which is incompatible with "
"0-RTT.";
break;
case ssl_early_data_ticket_age_skew:
reason_detail = "The client and server ticket age were too far apart.";
break;
case ssl_early_data_quic_parameter_mismatch:
reason_detail =
"QUIC parameters differ between this connection and the original.";
break;
default:
reason_detail = "Unknown reason " + base::NumberToString(reason);
}
dict.SetStringKey("reason", reason_detail);
return dict;
}
base::Value NetLogQuicOnConnectionClosedParams(
quic::QuicErrorCode error,
std::string error_details,
......@@ -870,10 +930,11 @@ void QuicEventLogger::OnTransportParametersResumed(
});
}
void QuicEventLogger::OnZeroRttRejected() {
void QuicEventLogger::OnZeroRttRejected(int reason) {
if (!net_log_.IsCapturing())
return;
net_log_.AddEvent(NetLogEventType::QUIC_SESSION_ZERO_RTT_REJECTED);
net_log_.AddEvent(NetLogEventType::QUIC_SESSION_ZERO_RTT_REJECTED,
[reason] { return NetLogQuicZeroRttRejectReason(reason); });
}
} // namespace net
......@@ -94,7 +94,7 @@ class NET_EXPORT_PRIVATE QuicEventLogger
const quic::TransportParameters& transport_parameters) override;
void OnTransportParametersResumed(
const quic::TransportParameters& transport_parameters) override;
void OnZeroRttRejected() override;
void OnZeroRttRejected(int reason) override;
// Events that are not received via the visitor and have to be called manually
// from the session.
......
......@@ -96,10 +96,6 @@ QUIC_FLAG(
FLAGS_quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time,
false)
// When true and the BBR9 connection option is present, BBR only considers
// bandwidth samples app-limited if they're not filling the pipe.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_flexible_app_limited, false)
// When the STMP connection option is sent by the client, timestamps in the QUIC
// ACK frame are sent and processed.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_timestamps, false)
......@@ -284,12 +280,6 @@ QUIC_FLAG(
// If true, disable QUIC version h3-29.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_draft_29, false)
// If true, try to coalesce packet of higher space with retransmissions to
// mitigate RTT inflations.
QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_coalesced_packet_of_higher_space2,
true)
// If true, record the received min_ack_delay in transport parameters to QUIC
// config.
QUIC_FLAG(bool,
......@@ -301,45 +291,6 @@ QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_disable_server_blackhole_detection,
false)
// If true,
// server accepts GOAWAY (draft-28 behavior),
// client receiving GOAWAY with stream ID that is not client-initiated
// bidirectional stream ID closes connection with H3_ID_ERROR (draft-28
// behavior).
// Also, receiving a GOAWAY with ID larger than previously received closes
// connection with H3_ID_ERROR.
// If false,
// server receiving GOAWAY closes connection with H3_FRAME_UNEXPECTED
// (draft-27 behavior),
// client receiving GOAWAY with stream ID that is not client-initiated
// bidirectional stream ID closes connection with PROTOCOL_VIOLATION
// (draft-04 behavior),
// larger ID than previously received does not trigger connection close.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_http3_goaway_new_behavior, true)
// If true, QUIC connection will revert to a previously validated MTU (if
// exists) after two PTOs.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_revert_mtu_after_two_ptos, true)
// If true, when TLPR copt is used, enable half RTT as first PTO timeout.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_half_rtt_as_first_pto, true)
// If true, enable overshooting detection when the DTOS connection option is
// supplied.
QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_enable_overshooting_detection,
true)
// If true, fix a case where data is marked lost in HANDSHAKE level but
// HANDSHAKE key gets decrypted later.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_neuter_handshake_data, true)
// If true, when data is sending in fast path mode in the creator, making sure
// stream data is sent in the right encryption level.
QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_check_encryption_level_in_fast_path,
true)
// If true, gQUIC will only consult stream_map in
// QuicSession::GetNumActiveStreams().
QUIC_FLAG(
......@@ -423,7 +374,7 @@ QUIC_FLAG(bool,
QUIC_FLAG(
bool,
FLAGS_quic_reloadable_flag_quic_close_connection_in_on_can_write_with_blocked_writer,
false)
true)
// If true, include stream information in idle timeout connection close detail.
QUIC_FLAG(bool,
......@@ -454,3 +405,10 @@ QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_disable_version_t051, false)
QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_fix_pto_pending_timer_count,
true)
// If true, QUIC connection will pass sent packet information to the debug
// visitor after a packet is recorded as sent in sent packet manager.
QUIC_FLAG(
bool,
FLAGS_quic_reloadable_flag_quic_give_sent_packet_to_debug_visitor_after_sent,
false)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment