summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_unacked_packet_map.cc
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-31 23:17:14 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-31 23:17:14 +0000
commitc5cc9bd03a52d4c96d5e00efe4633ae965c4dcfd (patch)
tree8910a2ed2f88a1751e8ea7823b7b2bc3c64da124 /net/quic/quic_unacked_packet_map.cc
parent45a4f1ff5da3196aa03cfbe3862f57a1e1eb029c (diff)
downloadchromium_src-c5cc9bd03a52d4c96d5e00efe4633ae965c4dcfd.zip
chromium_src-c5cc9bd03a52d4c96d5e00efe4633ae965c4dcfd.tar.gz
chromium_src-c5cc9bd03a52d4c96d5e00efe4633ae965c4dcfd.tar.bz2
Land Recent QUIC Changes.
Add a QUIC flag to enable time based loss detection as the default. Merge internal change: 63942432 (this CL was merged in https://codereview.chromium.org/217133004/ added FLAGS_quic_use_time_loss_detection to quic_flags.cc and made the change to quic_connection.cc also). Now that we have a default send window, no need to send WINDOW_UPDATE to ensure streams are not flow control blocked Merge internal change: 63887815 https://codereview.chromium.org/217003005/ Changing the max stream delta to allow for all open streams in a given direction. Previously, we allowed 100 streams (200 even/odd stream ids) but an insufficient delta of 100. Allowing a slightly larger stream delta for QUIC. Merge internal change: 63880428 https://codereview.chromium.org/212063006/ UDP proxy session for QUIC. This is not production ready. Major issues include the sharding issue and the time wait list. Merge internal change: 63878878 https://codereview.chromium.org/216943004/ Don't try and close a QUIC connection twice while processing a single incoming packet. Merge internal change: 63878490 https://codereview.chromium.org/217053004/ Added missing OVERRIDE. Add the ability to negotiate the QUIC loss detection algorithm in the crypto handshake. Added FLAGS_quic_congestion_control_inter_arrival and FLAGS_quic_use_time_loss_detection. They default to false. Merge internal change: 63874474 https://codereview.chromium.org/217133004/ Send BLOCKED frame directly from ReliableQuicStream. Merge internal change: 63808643 https://codereview.chromium.org/216423006/ Simplified ReliableQuicStream::IsFlowControlBlocked. Merge internal change: 63807857 https://codereview.chromium.org/217103003/ Track the sent_time for ack packets so the RTT is updated when ack packets are acked as the largest observed. Merge internal change: 63806273 https://codereview.chromium.org/216423005/ R=rch@chromium.org Review URL: https://codereview.chromium.org/217303003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260695 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_unacked_packet_map.cc')
-rw-r--r--net/quic/quic_unacked_packet_map.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc
index e7e5e16..46cf2b8 100644
--- a/net/quic/quic_unacked_packet_map.cc
+++ b/net/quic/quic_unacked_packet_map.cc
@@ -198,6 +198,14 @@ void QuicUnackedPacketMap::NeuterPacket(
}
}
+// static
+bool QuicUnackedPacketMap::IsSentAndNotPending(
+ const TransmissionInfo& transmission_info) {
+ return !transmission_info.pending &&
+ transmission_info.sent_time != QuicTime::Zero() &&
+ transmission_info.bytes_sent == 0;
+}
+
bool QuicUnackedPacketMap::IsUnacked(
QuicPacketSequenceNumber sequence_number) const {
return ContainsKey(unacked_packets_, sequence_number);
@@ -333,9 +341,10 @@ SequenceNumberSet QuicUnackedPacketMap::GetUnackedPackets() const {
return unacked_packets;
}
-void QuicUnackedPacketMap::SetPending(QuicPacketSequenceNumber sequence_number,
- QuicTime sent_time,
- QuicByteCount bytes_sent) {
+void QuicUnackedPacketMap::SetSent(QuicPacketSequenceNumber sequence_number,
+ QuicTime sent_time,
+ QuicByteCount bytes_sent,
+ bool set_pending) {
DCHECK_LT(0u, sequence_number);
UnackedPacketMap::iterator it = unacked_packets_.find(sequence_number);
if (it == unacked_packets_.end()) {
@@ -346,10 +355,12 @@ void QuicUnackedPacketMap::SetPending(QuicPacketSequenceNumber sequence_number,
DCHECK(!it->second.pending);
largest_sent_packet_ = max(sequence_number, largest_sent_packet_);
- bytes_in_flight_ += bytes_sent;
it->second.sent_time = sent_time;
- it->second.bytes_sent = bytes_sent;
- it->second.pending = true;
+ if (set_pending) {
+ bytes_in_flight_ += bytes_sent;
+ it->second.bytes_sent = bytes_sent;
+ it->second.pending = true;
+ }
}
} // namespace net