diff options
author | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-20 05:55:58 +0000 |
---|---|---|
committer | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-20 05:55:58 +0000 |
commit | 0ac0c5b12a0dab7e8262c1447955e475dffa64d4 (patch) | |
tree | 410dc8bf0475df5be9fa4a03590ba9faba3b021f /net/quic/quic_sent_packet_manager.h | |
parent | 24657d1ef1e9dbcee81919ee97aebd4d81febe25 (diff) | |
download | chromium_src-0ac0c5b12a0dab7e8262c1447955e475dffa64d4.zip chromium_src-0ac0c5b12a0dab7e8262c1447955e475dffa64d4.tar.gz chromium_src-0ac0c5b12a0dab7e8262c1447955e475dffa64d4.tar.bz2 |
Land Recent QUIC Changes.
Make QuicTestClient report response_complete() when the response is
actually complete.
Merge internal change: 56678980
Remove retransmission_count from RetransmissionInfo, because it was
unused.
Merge internal change: 56678610
Deprecating FLAGS_bundle_ack_with_outgoing_packet.
Removes a QUIC-specific flag that has been set to true for a while.
Merge internal change: 56673783
Remove unnecessary tests from QuicEpollConnectionHelperTests since
much of the logic that used to be in the helper has moved directly
into the connection.
Merge internal change: 56613436
Ensure that delta_time_largest_observed values are non-negative, since
they are written to the wire as uints.
Provide a better estimate of rtt in QUIC.
Merge internal change: 56612513
Change QUIC's max CWND from a flag to a constant.
Merge internal change: 56607206
Make SimpleClient report whether headers have been completely received.
Testing only.
This brings simpleclient to feature parity for ustreamer load testing.
Merge internal change: 56543369
QUIC - Sync'ing changes while merging chromium/internal changes.
Merge internal change: 56537661
Remove deprecated flag FLAGS_track_retransmission_history.
Merge internal change: 56530712
Change PacketDroppingTestWriter::WritePacket to release any packets
that should have already been released.
Merge internal change: 56496423
Add the QUIC detailed error to the ConnectionClose packet for framing
errors.
Merge internal change: 56478281
Resurrect QUIC fast-RTO tail drop behavior.
More quickly RTO packets if there are only a few packets outstanding.
Merge internal change: 56476598
Remove EndToEndTest.NoEarlyHeadersFailureFromClient. This test races a
retransmission with a RST_STREAM in a way that is not guaranteed to
win. Further, it purports to send a valid request, but when the reset
loses the race, it's clear that actually the request is actually not
valid.
Instead, I've replaced this test with a unit test of QuicSession
and in the process tightened up the code to detect
QUIC_STREAM_RST_BEFORE_HEADERS_DECOMPRESSED.
Improved the ability of QuicSession to detect unrecoverable compression
context state.
Merge internal change: 56472103
Cleanup WriteBlockedList.
* Sanity check the values of priorities passed in to various methods.
* Cleanup of the argument types used.
* Change GetHighestPriorityWriteBlockedList to not return -1, which is
confusing since the priority value is (usually) unsigned.
Merge internal change: 56467687
Changes to support internal QuicFasterStatsGatherer class which
inherits from QuicAckNotifier::DelegateInterface and
FasterStatsGatherer.
Each QuicStream owns one of these Gatherers. Whenever the Stream writes
data to the wire, it registers the Gatherer to be notified on receipt of
ACKs for the write.
When the Gatherer has seen ACKs for the full response, it calculates
Response Time (RT), and ships off the stats to FasterStats.
If the QuicStream is destroyed before the full response has been ACKed,
then it transfers ownership of the Gatherer to the QuicSession. The
FasterStatsIdleList will check in periodically on these stored
Gatherers, and when the full response has been ACKed, the Gatherer will
ship off FasterStats and be deleted.
Calculate FasterStats RT for QUIC.
Merge internal change: 56407485
Add a method to QUIC end-to-end-test's TestParams struct so that when a
test fails, the summary includes a human readable description of the
configuration.
Merge internal change: 56382748
Replace QUIC EndToEndTest.InvalidPriority with a unit tests.
The existing end-to-end test is very fragile, and depending the behavior
of the sender, may actually crash.
Minor change to QUIC priority parsing error detection.
Merge internal change: 56375355
R=rch@chromium.org
Review URL: https://codereview.chromium.org/76723002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_sent_packet_manager.h')
-rw-r--r-- | net/quic/quic_sent_packet_manager.h | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/net/quic/quic_sent_packet_manager.h b/net/quic/quic_sent_packet_manager.h index cf4edc9..e6878dd 100644 --- a/net/quic/quic_sent_packet_manager.h +++ b/net/quic/quic_sent_packet_manager.h @@ -92,11 +92,6 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager { // Returns true if |sequence_number| is a retransmission of a packet. bool IsRetransmission(QuicPacketSequenceNumber sequence_number) const; - // Returns the number of times the data in the packet |sequence_number| - // has been transmitted. - size_t GetRetransmissionCount( - QuicPacketSequenceNumber sequence_number) const; - // Returns true if the non-FEC packet |sequence_number| is unacked. bool IsUnacked(QuicPacketSequenceNumber sequence_number) const; @@ -131,8 +126,8 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager { // Returns true if there are any unacked packets. bool HasUnackedPackets() const; - // Returns the number of unacked packets. - size_t GetNumUnackedPackets() const; + // Returns the number of unacked packets which have retransmittable frames. + size_t GetNumRetransmittablePackets() const; // Returns true if there are any unacked FEC packets. bool HasUnackedFecPackets() const; @@ -155,32 +150,25 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager { bool IsPreviousTransmission(QuicPacketSequenceNumber sequence_number) const; private: - struct RetransmissionInfo { - RetransmissionInfo() {} - explicit RetransmissionInfo(QuicPacketSequenceNumber sequence_number, - QuicSequenceNumberLength sequence_number_length) - : sequence_number(sequence_number), - sequence_number_length(sequence_number_length), - number_nacks(0), - number_retransmissions(0) { + struct TransmissionInfo { + TransmissionInfo() {} + TransmissionInfo(RetransmittableFrames* retransmittable_frames, + QuicSequenceNumberLength sequence_number_length) + : retransmittable_frames(retransmittable_frames), + sequence_number_length(sequence_number_length) { } - QuicPacketSequenceNumber sequence_number; + RetransmittableFrames* retransmittable_frames; QuicSequenceNumberLength sequence_number_length; - size_t number_nacks; - // TODO(ianswett): I believe this is now obsolete, or could at least be - // changed to a bool. - size_t number_retransmissions; }; typedef linked_hash_map<QuicPacketSequenceNumber, - RetransmittableFrames*> UnackedPacketMap; + TransmissionInfo> UnackedPacketMap; typedef linked_hash_map<QuicPacketSequenceNumber, QuicTime> UnackedFecPacketMap; typedef linked_hash_map<QuicPacketSequenceNumber, TransmissionType> PendingRetransmissionMap; - typedef base::hash_map<QuicPacketSequenceNumber, - RetransmissionInfo> RetransmissionMap; + typedef base::hash_map<QuicPacketSequenceNumber, size_t> NackMap; typedef base::hash_map<QuicPacketSequenceNumber, SequenceNumberSet*> PreviousTransmissionMap; @@ -228,10 +216,9 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager { // Pending retransmissions which have not been packetized and sent yet. PendingRetransmissionMap pending_retransmissions_; - // Map from sequence number to the retransmission info for a packet. - // This includes the retransmission timeout, and the NACK count. Only - // the new transmission of a packet will have entries in this map. - RetransmissionMap retransmission_map_; + // Map from sequence number to the number of nacks for the packet. + // Only the most recent transmission of packets are present in this map. + NackMap nack_map_; // Map from sequence number to set of all sequence number that this packet has // been transmitted as. If a packet has not been retransmitted, it will not |