Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(772)

Unified Diff: net/socket/tcp_socket_libevent.cc

Issue 1215543003: Add UMA for the kernel's TCP RTT estimate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make method name more descriptive. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/socket/tcp_socket_libevent.cc
diff --git a/net/socket/tcp_socket_libevent.cc b/net/socket/tcp_socket_libevent.cc
index 6a6417b1ba12151a291b896312b93b9d27aeaa16..db339e2ced7f58b87a814954289ec4c68796377b 100644
--- a/net/socket/tcp_socket_libevent.cc
+++ b/net/socket/tcp_socket_libevent.cc
@@ -746,4 +746,25 @@ void TCPSocketLibevent::UpdateTCPFastOpenStatusAfterRead() {
}
}
+bool TCPSocketLibevent::GetEstimatedRoundTripTime(base::TimeDelta* out_rtt) {
mmenke 2015/07/07 19:53:50 How do you intend to use this to inform future cod
Bryan McQuade 2015/07/07 21:03:33 I'm mostly interested in understanding TCP RTT in
+ DCHECK(out_rtt);
+ if (!socket_ || !socket_->IsConnected()) {
mmenke 2015/07/07 19:53:50 The IsConnected() check seems concerning - if the
Bryan McQuade 2015/07/07 21:03:32 Yes, good point. I had added that to prevent loggi
+ return false;
+ }
mmenke 2015/07/07 19:53:49 nit: Remove braces.
Bryan McQuade 2015/07/07 21:03:33 Done.
+
+ bool success = false;
+#if defined(TCP_INFO)
+ tcp_info info;
+ socklen_t info_len = sizeof(tcp_info);
+ success = getsockopt(socket_->socket_fd(), IPPROTO_TCP, TCP_INFO, &info,
+ &info_len) == 0 &&
+ info_len == sizeof(tcp_info);
+ if (success) {
+ *out_rtt = base::TimeDelta::FromMicroseconds(info.tcpi_rtt);
mmenke 2015/07/07 19:53:49 Suggest getting rid of success variable, and just
Bryan McQuade 2015/07/07 21:03:33 Done.
+ }
mmenke 2015/07/07 19:53:50 nit: Remove braces.
Bryan McQuade 2015/07/07 21:03:32 Done.
+#endif
mmenke 2015/07/07 19:53:49 nit: #endif // defined(TCP_INFO) (Not done in m
Bryan McQuade 2015/07/07 21:03:32 Done.
+
+ return success;
+}
+
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698