Index: net/quic/quic_sent_packet_manager.cc |
diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc |
index 1694da25415a1b5b1b198009716d601cb793f012..829b9cbe99727f154a4896446b5b1f8bb0339a9d 100644 |
--- a/net/quic/quic_sent_packet_manager.cc |
+++ b/net/quic/quic_sent_packet_manager.cc |
@@ -172,6 +172,10 @@ void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) { |
receive_buffer_bytes_ = |
max(kMinSocketReceiveBuffer, |
static_cast<QuicByteCount>(config.ReceivedSocketReceiveBuffer())); |
+ if (FLAGS_quic_limit_max_cwnd_to_receive_buffer) { |
+ send_algorithm_->SetMaxCongestionWindow(receive_buffer_bytes_ * |
+ kUsableRecieveBufferFraction); |
+ } |
} |
send_algorithm_->SetFromConfig(config, perspective_, using_pacing_); |
@@ -181,7 +185,8 @@ void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) { |
} |
bool QuicSentPacketManager::ResumeConnectionState( |
- const CachedNetworkParameters& cached_network_params) { |
+ const CachedNetworkParameters& cached_network_params, |
+ bool max_bandwidth_resumption) { |
if (cached_network_params.has_min_rtt_ms()) { |
uint32 initial_rtt_us = |
kNumMicrosPerMilli * cached_network_params.min_rtt_ms(); |
@@ -189,7 +194,8 @@ bool QuicSentPacketManager::ResumeConnectionState( |
max(kMinInitialRoundTripTimeUs, |
min(kMaxInitialRoundTripTimeUs, initial_rtt_us))); |
} |
- return send_algorithm_->ResumeConnectionState(cached_network_params); |
+ return send_algorithm_->ResumeConnectionState(cached_network_params, |
+ max_bandwidth_resumption); |
} |
void QuicSentPacketManager::SetNumOpenStreams(size_t num_streams) { |
@@ -791,8 +797,9 @@ QuicTime::Delta QuicSentPacketManager::TimeUntilSend( |
if (pending_timer_transmission_count_ > 0) { |
return QuicTime::Delta::Zero(); |
} |
- if (unacked_packets_.bytes_in_flight() >= |
- kUsableRecieveBufferFraction * receive_buffer_bytes_) { |
+ if (!FLAGS_quic_limit_max_cwnd_to_receive_buffer && |
+ unacked_packets_.bytes_in_flight() >= |
+ kUsableRecieveBufferFraction * receive_buffer_bytes_) { |
return QuicTime::Delta::Infinite(); |
} |
return send_algorithm_->TimeUntilSend( |