| Index: net/quic/congestion_control/tcp_cubic_sender.cc
|
| diff --git a/net/quic/congestion_control/tcp_cubic_sender.cc b/net/quic/congestion_control/tcp_cubic_sender.cc
|
| index bd61bdb916ec3c7f2cb50beb9418e58fb829749d..18401b713b7d11f23925d14f36a161d6e6a4a275 100644
|
| --- a/net/quic/congestion_control/tcp_cubic_sender.cc
|
| +++ b/net/quic/congestion_control/tcp_cubic_sender.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/metrics/histogram.h"
|
| #include "net/quic/congestion_control/rtt_stats.h"
|
| +#include "net/quic/crypto/crypto_protocol.h"
|
|
|
| using std::max;
|
| using std::min;
|
| @@ -58,10 +59,18 @@ TcpCubicSender::~TcpCubicSender() {
|
| }
|
|
|
| void TcpCubicSender::SetFromConfig(const QuicConfig& config, bool is_server) {
|
| - if (is_server && config.HasReceivedInitialCongestionWindow()) {
|
| - // Set the initial window size.
|
| - congestion_window_ = min(kMaxInitialWindow,
|
| - config.ReceivedInitialCongestionWindow());
|
| + if (is_server) {
|
| + if (config.HasReceivedConnectionOptions() &&
|
| + ContainsQuicTag(config.ReceivedConnectionOptions(), kIW10)) {
|
| + // Initial window experiment. Ignore the initial congestion
|
| + // window suggested by the client and use the default ICWND of
|
| + // 10 instead.
|
| + congestion_window_ = kInitialCongestionWindow;
|
| + } else if (config.HasReceivedInitialCongestionWindow()) {
|
| + // Set the initial window size.
|
| + congestion_window_ = min(kMaxInitialWindow,
|
| + config.ReceivedInitialCongestionWindow());
|
| + }
|
| }
|
| }
|
|
|
|
|