Log ping_received_delay in transport_connection_stats. Logging only, not protected. PiperOrigin-RevId: 326655249 Change-Id: I4285c1d510f16b37843534dd69d3f7f25990a1f2
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc index 55bd75b..6a3cc2e 100644 --- a/quic/core/http/end_to_end_test.cc +++ b/quic/core/http/end_to_end_test.cc
@@ -3860,7 +3860,8 @@ ++num_window_update_frames_; } - void OnPingFrame(const QuicPingFrame& /*frame*/) override { + void OnPingFrame(const QuicPingFrame& /*frame*/, + const QuicTime::Delta /*ping_received_delay*/) override { ++num_ping_frames_; }
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index abc0be6..bb0db5c 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -1372,7 +1372,12 @@ UpdatePacketContent(PING_FRAME); if (debug_visitor_ != nullptr) { - debug_visitor_->OnPingFrame(frame); + QuicTime::Delta ping_received_delay = QuicTime::Delta::Zero(); + const QuicTime now = clock_->ApproximateNow(); + if (now > stats_.connection_creation_time) { + ping_received_delay = now - stats_.connection_creation_time; + } + debug_visitor_->OnPingFrame(frame, ping_received_delay); } MaybeUpdateAckTimeout(); return true;
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index 0ac1252..e72fb2c 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -257,7 +257,8 @@ virtual void OnPaddingFrame(const QuicPaddingFrame& /*frame*/) {} // Called when a Ping has been parsed. - virtual void OnPingFrame(const QuicPingFrame& /*frame*/) {} + virtual void OnPingFrame(const QuicPingFrame& /*frame*/, + QuicTime::Delta /*ping_received_delay*/) {} // Called when a GoAway has been parsed. virtual void OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) {}