Home | History | Annotate | Download | only in quic
      1 // 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 
      5 #include "net/quic/quic_connection_stats.h"
      6 
      7 using std::ostream;
      8 
      9 namespace net {
     10 
     11 QuicConnectionStats::QuicConnectionStats()
     12     : bytes_sent(0),
     13       packets_sent(0),
     14       stream_bytes_sent(0),
     15       packets_discarded(0),
     16       bytes_received(0),
     17       packets_received(0),
     18       packets_processed(0),
     19       stream_bytes_received(0),
     20       bytes_retransmitted(0),
     21       packets_retransmitted(0),
     22       bytes_spuriously_retransmitted(0),
     23       packets_spuriously_retransmitted(0),
     24       packets_lost(0),
     25       slowstart_packets_lost(0),
     26       packets_revived(0),
     27       packets_dropped(0),
     28       crypto_retransmit_count(0),
     29       loss_timeout_count(0),
     30       tlp_count(0),
     31       rto_count(0),
     32       min_rtt_us(0),
     33       srtt_us(0),
     34       estimated_bandwidth(0),
     35       packets_reordered(0),
     36       max_sequence_reordering(0),
     37       max_time_reordering_us(0),
     38       tcp_loss_events(0),
     39       cwnd_increase_congestion_avoidance(0),
     40       cwnd_increase_cubic_mode(0),
     41       connection_creation_time(QuicTime::Zero()) {
     42 }
     43 
     44 QuicConnectionStats::~QuicConnectionStats() {}
     45 
     46 ostream& operator<<(ostream& os, const QuicConnectionStats& s) {
     47   os << "{ bytes sent: " << s.bytes_sent
     48      << ", packets sent:" << s.packets_sent
     49      << ", stream bytes sent: " << s.stream_bytes_sent
     50      << ", packets discarded: " << s.packets_discarded
     51      << ", bytes received: " << s.bytes_received
     52      << ", packets received: " << s.packets_received
     53      << ", packets processed: " << s.packets_processed
     54      << ", stream bytes received: " << s.stream_bytes_received
     55      << ", bytes retransmitted: " << s.bytes_retransmitted
     56      << ", packets retransmitted: " << s.packets_retransmitted
     57      << ", bytes spuriously retransmitted: " << s.bytes_spuriously_retransmitted
     58      << ", packets spuriously retransmitted: "
     59      << s.packets_spuriously_retransmitted
     60      << ", packets lost: " << s.packets_lost
     61      << ", slowstart packets lost: " << s.slowstart_packets_lost
     62      << ", packets revived: " << s.packets_revived
     63      << ", packets dropped:" << s.packets_dropped
     64      << ", crypto retransmit count: " << s.crypto_retransmit_count
     65      << ", rto count: " << s.rto_count
     66      << ", tlp count: " << s.tlp_count
     67      << ", min_rtt(us): " << s.min_rtt_us
     68      << ", srtt(us): " << s.srtt_us
     69      << ", max packet size: " << s.max_packet_size
     70      << ", estimated bandwidth: " << s.estimated_bandwidth
     71      << ", congestion window: " << s.congestion_window
     72      << ", tcp_loss_events: " << s.tcp_loss_events
     73      << ", packets reordered: " << s.packets_reordered
     74      << ", max sequence reordering: " << s.max_sequence_reordering
     75      << ", max time reordering(us): " << s.max_time_reordering_us
     76      << ", total amount of cwnd increase in TCPCubic, in congestion avoidance: "
     77      << s.cwnd_increase_congestion_avoidance
     78      << ", amount of cwnd increase in TCPCubic, in cubic mode: "
     79      << s.cwnd_increase_cubic_mode
     80      << "}\n";
     81   return os;
     82 }
     83 
     84 }  // namespace net
     85