| Index: net/quic/congestion_control/send_algorithm_interface.cc
|
| diff --git a/net/quic/congestion_control/send_algorithm_interface.cc b/net/quic/congestion_control/send_algorithm_interface.cc
|
| index e96d74828ecf54c38384708ec73151776a07c78f..ab3fe36935e9ce479da132f4e642fc8c93b74ac2 100644
|
| --- a/net/quic/congestion_control/send_algorithm_interface.cc
|
| +++ b/net/quic/congestion_control/send_algorithm_interface.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "net/quic/congestion_control/tcp_cubic_bytes_sender.h"
|
| #include "net/quic/congestion_control/tcp_cubic_sender.h"
|
| +#include "net/quic/quic_flags.h"
|
| #include "net/quic/quic_protocol.h"
|
|
|
| namespace net {
|
| @@ -19,28 +20,33 @@ SendAlgorithmInterface* SendAlgorithmInterface::Create(
|
| CongestionControlType congestion_control_type,
|
| QuicConnectionStats* stats,
|
| QuicPacketCount initial_congestion_window) {
|
| + const QuicPacketCount max_congestion_window =
|
| + FLAGS_quic_limit_max_cwnd_to_receive_buffer
|
| + ? (kDefaultSocketReceiveBuffer * kUsableRecieveBufferFraction) /
|
| + kDefaultTCPMSS
|
| + : kMaxTcpCongestionWindow;
|
| switch (congestion_control_type) {
|
| case kCubic:
|
| return new TcpCubicSender(clock, rtt_stats, false /* don't use Reno */,
|
| initial_congestion_window,
|
| - kMaxTcpCongestionWindow, stats);
|
| + max_congestion_window, stats);
|
| case kCubicBytes:
|
| return new TcpCubicBytesSender(
|
| clock, rtt_stats, false /* don't use Reno */,
|
| - initial_congestion_window, kMaxTcpCongestionWindow, stats);
|
| + initial_congestion_window, max_congestion_window, stats);
|
| case kReno:
|
| return new TcpCubicSender(clock, rtt_stats, true /* use Reno */,
|
| initial_congestion_window,
|
| - kMaxTcpCongestionWindow, stats);
|
| + max_congestion_window, stats);
|
| case kRenoBytes:
|
| return new TcpCubicBytesSender(clock, rtt_stats, true /* use Reno */,
|
| initial_congestion_window,
|
| - kMaxTcpCongestionWindow, stats);
|
| + max_congestion_window, stats);
|
| case kBBR:
|
| // TODO(rtenneti): Enable BbrTcpSender.
|
| #if 0
|
| return new BbrTcpSender(clock, rtt_stats, initial_congestion_window,
|
| - kMaxTcpCongestionWindow, stats);
|
| + max_congestion_window, stats);
|
| #endif
|
| LOG(DFATAL) << "BbrTcpSender is not supported.";
|
| return nullptr;
|
|
|