blob: 128bc93aa390dc6bd81c413ed3080d61bf066e59 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/third_party/quiche/src/quic/core/quic_connection_stats.h"
namespace quic {
QuicConnectionStats::QuicConnectionStats()
: bytes_sent(0),
packets_sent(0),
stream_bytes_sent(0),
packets_discarded(0),
bytes_received(0),
packets_received(0),
packets_processed(0),
stream_bytes_received(0),
bytes_retransmitted(0),
packets_retransmitted(0),
bytes_spuriously_retransmitted(0),
packets_spuriously_retransmitted(0),
packets_lost(0),
slowstart_count(0),
slowstart_num_rtts(0),
slowstart_packets_sent(0),
slowstart_bytes_sent(0),
slowstart_packets_lost(0),
slowstart_bytes_lost(0),
slowstart_duration(QuicTime::Delta::Zero()),
slowstart_start_time(QuicTime::Zero()),
packets_dropped(0),
undecryptable_packets_received_before_handshake_complete(0),
crypto_retransmit_count(0),
loss_timeout_count(0),
tlp_count(0),
rto_count(0),
pto_count(0),
min_rtt_us(0),
srtt_us(0),
max_packet_size(0),
max_received_packet_size(0),
estimated_bandwidth(QuicBandwidth::Zero()),
packets_reordered(0),
max_sequence_reordering(0),
max_time_reordering_us(0),
tcp_loss_events(0),
connection_creation_time(QuicTime::Zero()),
blocked_frames_received(0),
blocked_frames_sent(0),
num_connectivity_probing_received(0),
retry_packet_processed(false) {}
QuicConnectionStats::QuicConnectionStats(const QuicConnectionStats& other) =
default;
QuicConnectionStats::~QuicConnectionStats() {}
std::ostream& operator<<(std::ostream& os, const QuicConnectionStats& s) {
os << "{ bytes_sent: " << s.bytes_sent;
os << " packets_sent: " << s.packets_sent;
os << " stream_bytes_sent: " << s.stream_bytes_sent;
os << " packets_discarded: " << s.packets_discarded;
os << " bytes_received: " << s.bytes_received;
os << " packets_received: " << s.packets_received;
os << " packets_processed: " << s.packets_processed;
os << " stream_bytes_received: " << s.stream_bytes_received;
os << " bytes_retransmitted: " << s.bytes_retransmitted;
os << " packets_retransmitted: " << s.packets_retransmitted;
os << " bytes_spuriously_retransmitted: " << s.bytes_spuriously_retransmitted;
os << " packets_spuriously_retransmitted: "
<< s.packets_spuriously_retransmitted;
os << " packets_lost: " << s.packets_lost;
os << " slowstart_packets_sent: " << s.slowstart_packets_sent;
os << " slowstart_packets_lost: " << s.slowstart_packets_lost;
os << " slowstart_bytes_lost: " << s.slowstart_bytes_lost;
os << " packets_dropped: " << s.packets_dropped;
os << " undecryptable_packets_received_before_handshake_complete: "
<< s.undecryptable_packets_received_before_handshake_complete;
os << " crypto_retransmit_count: " << s.crypto_retransmit_count;
os << " loss_timeout_count: " << s.loss_timeout_count;
os << " tlp_count: " << s.tlp_count;
os << " rto_count: " << s.rto_count;
os << " pto_count: " << s.pto_count;
os << " min_rtt_us: " << s.min_rtt_us;
os << " srtt_us: " << s.srtt_us;
os << " max_packet_size: " << s.max_packet_size;
os << " max_received_packet_size: " << s.max_received_packet_size;
os << " estimated_bandwidth: " << s.estimated_bandwidth;
os << " packets_reordered: " << s.packets_reordered;
os << " max_sequence_reordering: " << s.max_sequence_reordering;
os << " max_time_reordering_us: " << s.max_time_reordering_us;
os << " tcp_loss_events: " << s.tcp_loss_events;
os << " connection_creation_time: "
<< s.connection_creation_time.ToDebuggingValue();
os << " blocked_frames_received: " << s.blocked_frames_received;
os << " blocked_frames_sent: " << s.blocked_frames_sent;
os << " num_connectivity_probing_received: "
<< s.num_connectivity_probing_received;
os << " retry_packet_processed: "
<< (s.retry_packet_processed ? "yes" : "no");
os << " }";
return os;
}
} // namespace quic