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*/) {}