Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Unified Diff: net/quic/quic_sent_packet_manager.h

Issue 103973007: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for android compile error Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_reliable_client_stream_test.cc ('k') | net/quic/quic_sent_packet_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_sent_packet_manager.h
diff --git a/net/quic/quic_sent_packet_manager.h b/net/quic/quic_sent_packet_manager.h
index e4c16be4ce4e6d7807525c4260ff649c186399d5..9e7bdb8fd32968d3d802af41b03cd57fb9fd0413 100644
--- a/net/quic/quic_sent_packet_manager.h
+++ b/net/quic/quic_sent_packet_manager.h
@@ -79,8 +79,7 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Called when a new packet is serialized. If the packet contains
// retransmittable data, it will be added to the unacked packet map.
- void OnSerializedPacket(const SerializedPacket& serialized_packet,
- QuicTime serialized_time);
+ void OnSerializedPacket(const SerializedPacket& serialized_packet);
// Called when a packet is retransmitted with a new sequence number.
// Replaces the old entry in the unacked packet map with the new
@@ -98,9 +97,6 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// will be discarded as well.
void DiscardUnackedPacket(QuicPacketSequenceNumber sequence_number);
- // Discards all information about fec packet |sequence_number|.
- void DiscardFecPacket(QuicPacketSequenceNumber sequence_number);
-
// Returns true if the non-FEC packet |sequence_number| is unacked.
bool IsUnacked(QuicPacketSequenceNumber sequence_number) const;
@@ -119,30 +115,19 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Retrieves the next pending retransmission.
PendingRetransmission NextPendingRetransmission();
- // Returns the time the fec packet was sent.
- QuicTime GetFecSentTime(QuicPacketSequenceNumber sequence_number) const;
-
- // Returns true if there are any unacked packets.
bool HasUnackedPackets() 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;
-
// Returns the smallest sequence number of a sent packet which has not been
// acked by the peer. Excludes any packets which have been retransmitted
// with a new sequence number. If all packets have been acked, returns the
// sequence number of the next packet that will be sent.
QuicPacketSequenceNumber GetLeastUnackedSentPacket() const;
- // Returns the smallest sequence number of a sent fec packet which has not
- // been acked by the peer. If all packets have been acked, returns the
- // sequence number of the next packet that will be sent.
- QuicPacketSequenceNumber GetLeastUnackedFecPacket() const;
-
// Returns the set of sequence numbers of all unacked packets.
+ // Test only.
SequenceNumberSet GetUnackedPackets() const;
// Returns true if |sequence_number| is a previous transmission of packet.
@@ -173,10 +158,6 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Called when the retransmission timer expires.
virtual void OnRetransmissionTimeout();
- // Called when the fec timout timer expires. Returns the next timeout of the
- // FEC timer if it should be reset, and QuicTime::Zero() otherwise.
- virtual QuicTime OnAbandonFecTimeout();
-
// Called when a packet is timed out, such as an RTO. Removes the bytes from
// the congestion manager, but does not change the congestion window size.
virtual void OnPacketAbandoned(QuicPacketSequenceNumber sequence_number);
@@ -191,8 +172,6 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
HasRetransmittableData retransmittable,
IsHandshake handshake);
- const QuicTime::Delta DefaultRetransmissionTime();
-
// Returns amount of time for delayed ack timer.
const QuicTime::Delta DelayedAckTime();
@@ -222,22 +201,26 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
friend class test::QuicSentPacketManagerPeer;
struct TransmissionInfo {
- TransmissionInfo() {}
+ TransmissionInfo()
+ : retransmittable_frames(NULL),
+ sequence_number_length(PACKET_1BYTE_SEQUENCE_NUMBER),
+ sent_time(QuicTime::Zero()) { }
TransmissionInfo(RetransmittableFrames* retransmittable_frames,
QuicSequenceNumberLength sequence_number_length)
: retransmittable_frames(retransmittable_frames),
- sequence_number_length(sequence_number_length) {
+ sequence_number_length(sequence_number_length),
+ sent_time(QuicTime::Zero()) {
}
RetransmittableFrames* retransmittable_frames;
QuicSequenceNumberLength sequence_number_length;
+ // Zero when the packet is serialized, non-zero once it's sent.
+ QuicTime sent_time;
};
typedef linked_hash_map<QuicPacketSequenceNumber,
TransmissionInfo> UnackedPacketMap;
typedef linked_hash_map<QuicPacketSequenceNumber,
- QuicTime> UnackedFecPacketMap;
- typedef linked_hash_map<QuicPacketSequenceNumber,
TransmissionType> PendingRetransmissionMap;
typedef base::hash_map<QuicPacketSequenceNumber, SequenceNumberSet*>
PreviousTransmissionMap;
@@ -245,9 +228,6 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Process the incoming ack looking for newly ack'd data packets.
void HandleAckForSentPackets(const ReceivedPacketInfo& received_info);
- // Process the incoming ack looking for newly ack'd FEC packets.
- void HandleAckForSentFecPackets(const ReceivedPacketInfo& received_info);
-
// Update the RTT if the ack is for the largest acked sequence number.
void MaybeUpdateRTT(const ReceivedPacketInfo& received_info,
const QuicTime& ack_receive_time);
@@ -283,21 +263,16 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
void CleanupPacketHistory();
- // When new packets are created which may be retransmitted, they are added
- // to this map, which contains owning pointers to the contained frames. If
- // a packet is retransmitted, this map will contain entries for both the old
- // and the new packet. The old packet's retransmittable frames entry will be
- // NULL, while the new packet's entry will contain the frames to retransmit.
+ // Newly serialized retransmittable and fec packets are added to this map,
+ // which contains owning pointers to any contained frames. If a packet is
+ // retransmitted, this map will contain entries for both the old and the new
+ // packet. The old packet's retransmittable frames entry will be NULL, while
+ // the new packet's entry will contain the frames to retransmit.
// If the old packet is acked before the new packet, then the old entry will
// be removed from the map and the new entry's retransmittable frames will be
// set to NULL.
UnackedPacketMap unacked_packets_;
- // Pending fec packets that have not been acked yet. These packets need to be
- // cleared out of the cgst_window after a timeout since FEC packets are never
- // retransmitted.
- UnackedFecPacketMap unacked_fec_packets_;
-
// Pending retransmissions which have not been packetized and sent yet.
PendingRetransmissionMap pending_retransmissions_;
« no previous file with comments | « net/quic/quic_reliable_client_stream_test.cc ('k') | net/quic/quic_sent_packet_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698