Bootstrap CWND with cached bandwidth for BOW traffic.
tested: --test_filter=*EndToEndTest.IncreaseCWNDWithCachedBandwidthForBowTraffic* --test_arg=--gfe2_invert_all_feature_flags_for_test=true --runs_per_test=1000
The feature is also guarded by connection option BWID & BWR1 on the client side.
Protected by FLAGS_quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle.
PiperOrigin-RevId: 449221379
diff --git a/quiche/quic/core/crypto/crypto_protocol.h b/quiche/quic/core/crypto/crypto_protocol.h
index 855826b..352242f 100644
--- a/quiche/quic/core/crypto/crypto_protocol.h
+++ b/quiche/quic/core/crypto/crypto_protocol.h
@@ -301,6 +301,7 @@
const QuicTag kBWRE = TAG('B', 'W', 'R', 'E'); // Bandwidth resumption.
const QuicTag kBWMX = TAG('B', 'W', 'M', 'X'); // Max bandwidth resumption.
const QuicTag kBWID = TAG('B', 'W', 'I', 'D'); // Send bandwidth when idle.
+const QuicTag kBWR1 = TAG('B', 'W', 'I', '1'); // Resume bandwidth experiment 1
const QuicTag kBWRS = TAG('B', 'W', 'R', 'S'); // Server bandwidth resumption.
const QuicTag kBWS2 = TAG('B', 'W', 'S', '2'); // Server bw resumption v2.
const QuicTag kBWS3 = TAG('B', 'W', 'S', '3'); // QUIC Initial CWND - Control.
diff --git a/quiche/quic/core/http/quic_server_session_base.h b/quiche/quic/core/http/quic_server_session_base.h
index 7fbbf8b..fcfda0e 100644
--- a/quiche/quic/core/http/quic_server_session_base.h
+++ b/quiche/quic/core/http/quic_server_session_base.h
@@ -75,6 +75,10 @@
QuicSSLConfig GetSSLConfig() const override;
+ bool enable_sending_bandwidth_estimate_when_network_idle() const {
+ return enable_sending_bandwidth_estimate_when_network_idle_;
+ }
+
protected:
// QuicSession methods(override them with return type of QuicSpdyStream*):
QuicCryptoServerStreamBase* GetMutableCryptoStream() override;