Landing recent QUIC changes until 10:22 AM, Nov 20, 2017 UTC-8


Flip recent QUIC flags

https://chromium-review.googlesource.com/c/chromium/src/+/780809



Make some QuicConnection interfaces public.

Turn on ACK decimation (ACKD, AKDU) for QUIC to backend which doesn't run any production traffic yet.

Merge internal change: 175889473

https://chromium-review.googlesource.com/c/780583/



Add smoothed rtt to QUIC metrics reported through Quartc.

//gfe/quic/quartc reports the rtt alongside bandwidth estimate.  Quartc
connection periodically scrapes QUIC stats and reports them to the brain.  The
brain adds QUIC stats to the Quartc metrics structure, which is exported through
the api.  The Quartc brain also shares QUIC's rtt stat through the
NetworkBrainMessage.

Changes the Metrics structure returned by the Quartc API to split out QUIC
metrics as described in this doc:

https://docs.google.com/document/d/11ltkz_-hGGpx0PcteR61zptrBDZ3tMvAWjrqj-XRnNo/edit#

This is the first bit of metrics improvement.  Fields for media streams will be
added next to "quic" as described there.

n/a (only changes code used for Quartc)

TAG_CHANGE_OK=quartc has not been deployed
WANT_LGTM=kirpichov

Merge internal change: 175600126

[email protected]

https: //chromium-review.googlesource.com/c/780268/
Change-Id: I94ae180bd21ac5da93621c63d2ee2265d820addf
Reviewed-on: https://chromium-review.googlesource.com/780811
Reviewed-by: Ryan Hamilton <[email protected]>
Commit-Queue: Yixin Wang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#518298}
diff --git a/net/quic/quartc/quartc_session_interface.h b/net/quic/quartc/quartc_session_interface.h
index 69aa9a8..536079a 100644
--- a/net/quic/quartc/quartc_session_interface.h
+++ b/net/quic/quartc/quartc_session_interface.h
@@ -9,7 +9,9 @@
 #include <stdint.h>
 #include <string>
 
+#include "net/quic/core/quic_bandwidth.h"
 #include "net/quic/core/quic_error_codes.h"
+#include "net/quic/core/quic_time.h"
 #include "net/quic/core/quic_types.h"
 #include "net/quic/platform/api/quic_export.h"
 #include "net/quic/quartc/quartc_stream_interface.h"
@@ -19,7 +21,10 @@
 // Structure holding stats exported by a QuartcSession.
 struct QUIC_EXPORT_PRIVATE QuartcSessionStats {
   // Bandwidth estimate in bits per second.
-  int64_t bandwidth_estimate_bits_per_second;
+  QuicBandwidth bandwidth_estimate = QuicBandwidth::Zero();
+
+  // Smoothed round-trip time.
+  QuicTime::Delta smoothed_rtt = QuicTime::Delta::Zero();
 };
 
 // Given a PacketTransport, provides a way to send and receive separate streams