blob: fbaa20abd9487255310a5f01227e111daec63d4a [file] [log] [blame]
QUICHE teama6ef0a62019-03-07 20:34:33 -05001// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
QUICHE team5be974e2020-12-29 18:35:24 -05005#include "quic/core/quic_connection_stats.h"
QUICHE teama6ef0a62019-03-07 20:34:33 -05006
7namespace quic {
8
QUICHE teama6ef0a62019-03-07 20:34:33 -05009std::ostream& operator<<(std::ostream& os, const QuicConnectionStats& s) {
10 os << "{ bytes_sent: " << s.bytes_sent;
11 os << " packets_sent: " << s.packets_sent;
12 os << " stream_bytes_sent: " << s.stream_bytes_sent;
13 os << " packets_discarded: " << s.packets_discarded;
14 os << " bytes_received: " << s.bytes_received;
15 os << " packets_received: " << s.packets_received;
16 os << " packets_processed: " << s.packets_processed;
17 os << " stream_bytes_received: " << s.stream_bytes_received;
18 os << " bytes_retransmitted: " << s.bytes_retransmitted;
19 os << " packets_retransmitted: " << s.packets_retransmitted;
20 os << " bytes_spuriously_retransmitted: " << s.bytes_spuriously_retransmitted;
21 os << " packets_spuriously_retransmitted: "
22 << s.packets_spuriously_retransmitted;
23 os << " packets_lost: " << s.packets_lost;
24 os << " slowstart_packets_sent: " << s.slowstart_packets_sent;
25 os << " slowstart_packets_lost: " << s.slowstart_packets_lost;
26 os << " slowstart_bytes_lost: " << s.slowstart_bytes_lost;
27 os << " packets_dropped: " << s.packets_dropped;
dschinazi7d0f3c82019-09-16 16:14:32 -070028 os << " undecryptable_packets_received_before_handshake_complete: "
29 << s.undecryptable_packets_received_before_handshake_complete;
QUICHE teama6ef0a62019-03-07 20:34:33 -050030 os << " crypto_retransmit_count: " << s.crypto_retransmit_count;
31 os << " loss_timeout_count: " << s.loss_timeout_count;
32 os << " tlp_count: " << s.tlp_count;
33 os << " rto_count: " << s.rto_count;
fayangce0a3162019-08-15 09:05:36 -070034 os << " pto_count: " << s.pto_count;
QUICHE teama6ef0a62019-03-07 20:34:33 -050035 os << " min_rtt_us: " << s.min_rtt_us;
36 os << " srtt_us: " << s.srtt_us;
wub9e97f802021-05-19 08:54:35 -070037 os << " egress_mtu: " << s.egress_mtu;
wub3127a542021-05-19 14:48:23 -070038 os << " max_egress_mtu: " << s.max_egress_mtu;
wub9e97f802021-05-19 08:54:35 -070039 os << " ingress_mtu: " << s.ingress_mtu;
QUICHE teama6ef0a62019-03-07 20:34:33 -050040 os << " estimated_bandwidth: " << s.estimated_bandwidth;
41 os << " packets_reordered: " << s.packets_reordered;
42 os << " max_sequence_reordering: " << s.max_sequence_reordering;
43 os << " max_time_reordering_us: " << s.max_time_reordering_us;
44 os << " tcp_loss_events: " << s.tcp_loss_events;
45 os << " connection_creation_time: "
46 << s.connection_creation_time.ToDebuggingValue();
47 os << " blocked_frames_received: " << s.blocked_frames_received;
48 os << " blocked_frames_sent: " << s.blocked_frames_sent;
49 os << " num_connectivity_probing_received: "
dschinazi8a030dd2019-10-14 13:17:18 -070050 << s.num_connectivity_probing_received;
51 os << " retry_packet_processed: "
52 << (s.retry_packet_processed ? "yes" : "no");
fayang58f71072019-11-05 08:47:02 -080053 os << " num_coalesced_packets_received: " << s.num_coalesced_packets_received;
54 os << " num_coalesced_packets_processed: "
55 << s.num_coalesced_packets_processed;
wub5cd49592019-11-25 15:17:13 -080056 os << " num_ack_aggregation_epochs: " << s.num_ack_aggregation_epochs;
dschinazi6458eb32020-06-23 12:38:41 -070057 os << " sent_legacy_version_encapsulated_packets: "
58 << s.sent_legacy_version_encapsulated_packets;
mattm072a7e32020-10-09 16:16:56 -070059 os << " key_update_count: " << s.key_update_count;
mattma2ae9352020-10-23 15:55:14 -070060 os << " num_failed_authentication_packets_received: "
61 << s.num_failed_authentication_packets_received;
mattmad5eb5d2020-12-03 16:12:15 -080062 os << " num_tls_server_zero_rtt_packets_received_after_discarding_decrypter: "
63 << s.num_tls_server_zero_rtt_packets_received_after_discarding_decrypter;
fayang133b8682020-12-08 05:50:33 -080064 os << " address_validated_via_decrypting_packet: "
65 << s.address_validated_via_decrypting_packet;
66 os << " address_validated_via_token: " << s.address_validated_via_token;
dschinazi8a030dd2019-10-14 13:17:18 -070067 os << " }";
QUICHE teama6ef0a62019-03-07 20:34:33 -050068
69 return os;
70}
71
72} // namespace quic