Commit d100b46b authored by Victor Vasiliev's avatar Victor Vasiliev Committed by Commit Bot

Log QUIC packet losses into net event log

R=rch@chromium.org

Change-Id: I3ff1bb22ead3a993ef0248814fa6b270ec2ace23
Reviewed-on: https://chromium-review.googlesource.com/1217917Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590312}
parent b248a979
...@@ -1726,6 +1726,14 @@ EVENT_TYPE(QUIC_SESSION_PACKET_SENT) ...@@ -1726,6 +1726,14 @@ EVENT_TYPE(QUIC_SESSION_PACKET_SENT)
// } // }
EVENT_TYPE(QUIC_SESSION_PACKET_RETRANSMITTED) EVENT_TYPE(QUIC_SESSION_PACKET_RETRANSMITTED)
// Session declared a QUIC packet lost.
// {
// "transmission_type": <The quic::TransmissionType of the packet>,
// "packet_number": <The packet's full 64-bit number as a base-10 string>,
// "detection_time": <The time at which the packet was declared lost>
// }
EVENT_TYPE(QUIC_SESSION_PACKET_LOST)
// Session received a QUIC packet with a sequence number that had previously // Session received a QUIC packet with a sequence number that had previously
// been received. // been received.
// { // {
......
...@@ -73,6 +73,19 @@ std::unique_ptr<base::Value> NetLogQuicPacketRetransmittedCallback( ...@@ -73,6 +73,19 @@ std::unique_ptr<base::Value> NetLogQuicPacketRetransmittedCallback(
return std::move(dict); return std::move(dict);
} }
std::unique_ptr<base::Value> NetLogQuicPacketLostCallback(
quic::QuicPacketNumber packet_number,
quic::TransmissionType transmission_type,
quic::QuicTime detection_time,
NetLogCaptureMode /*capture_mode*/) {
auto dict = std::make_unique<base::DictionaryValue>();
dict->SetInteger("transmission_type", transmission_type);
dict->SetString("packet_number", base::NumberToString(packet_number));
dict->SetString("detection_time_us",
base::Int64ToString(detection_time.ToDebuggingValue()));
return dict;
}
std::unique_ptr<base::Value> NetLogQuicDuplicatePacketCallback( std::unique_ptr<base::Value> NetLogQuicDuplicatePacketCallback(
quic::QuicPacketNumber packet_number, quic::QuicPacketNumber packet_number,
NetLogCaptureMode /* capture_mode */) { NetLogCaptureMode /* capture_mode */) {
...@@ -469,6 +482,18 @@ void QuicConnectionLogger::OnPacketSent( ...@@ -469,6 +482,18 @@ void QuicConnectionLogger::OnPacketSent(
} }
} }
void QuicConnectionLogger::OnPacketLoss(
quic::QuicPacketNumber lost_packet_number,
quic::TransmissionType transmission_type,
quic::QuicTime detection_time) {
if (!net_log_is_capturing_)
return;
net_log_.AddEvent(
NetLogEventType::QUIC_SESSION_PACKET_LOST,
base::Bind(&NetLogQuicPacketLostCallback, lost_packet_number,
transmission_type, detection_time));
}
void QuicConnectionLogger::OnPingSent() { void QuicConnectionLogger::OnPingSent() {
no_packet_received_after_ping_ = true; no_packet_received_after_ping_ = true;
} }
......
...@@ -50,6 +50,9 @@ class NET_EXPORT_PRIVATE QuicConnectionLogger ...@@ -50,6 +50,9 @@ class NET_EXPORT_PRIVATE QuicConnectionLogger
quic::QuicPacketNumber original_packet_number, quic::QuicPacketNumber original_packet_number,
quic::TransmissionType transmission_type, quic::TransmissionType transmission_type,
quic::QuicTime sent_time) override; quic::QuicTime sent_time) override;
void OnPacketLoss(quic::QuicPacketNumber lost_packet_number,
quic::TransmissionType transmission_type,
quic::QuicTime detection_time) override;
void OnPingSent() override; void OnPingSent() override;
void OnPacketReceived(const quic::QuicSocketAddress& self_address, void OnPacketReceived(const quic::QuicSocketAddress& self_address,
const quic::QuicSocketAddress& peer_address, const quic::QuicSocketAddress& peer_address,
......
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