summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_sent_packet_manager.h
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 02:21:42 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 02:21:42 +0000
commit6ae6e3487233a3564815ceac05c548890e937b5d (patch)
tree5020a68d4c8729f084016ed001b8845c38b03e7d /net/quic/quic_sent_packet_manager.h
parentdf17af527036da14d6a3f292c79f3b811ff53f6d (diff)
downloadchromium_src-6ae6e3487233a3564815ceac05c548890e937b5d.zip
chromium_src-6ae6e3487233a3564815ceac05c548890e937b5d.tar.gz
chromium_src-6ae6e3487233a3564815ceac05c548890e937b5d.tar.bz2
Land Recent QUIC Changes.
Remove QUIC's accummulated_number_of_lost_packets from the TCP and InterArrival congestion feedback frames. This is part of the migration to version 15, and removes a field which was intended to be used by FEC, but never set to a non-zero value previously due to a bug in the code. Merge internal change: 60948757 https://codereview.chromium.org/155723002/ Add stats for lost and spuriously retransmitted packets to QuicConnectionStats. Merge internal change: 60932905 https://codereview.chromium.org/149793004/ The MOCK_METHODx usages removed in this CL try to mock either a non-virtual or not existing method and are thus never called. Please look carefully at each deletion. Instead of deleting, the right fix might be: - Fix spelling or signature to actually overwrite a method in the base class - Make the method in the base class virtual - This is a currently unused mock intended to mock a non-virtual method via template injection and it should be left alone Merge internal change: 60910454 https://codereview.chromium.org/153093006/ Cleanup: Remove inclusion of base/scoped_ptr.h in files which don't use scoped_ptr. Testing ensures that these inclusions don't have transitive dependencies. Merge internal change: 60858913 https://codereview.chromium.org/155683002/ Change QUIC's GetRetransmissionDelay() to exponentially back off from the minimum value, instead of using the minimum multiple times. Merge internal change: 60782771 https://codereview.chromium.org/155673002/ QUIC_VERSION_14 introduced. Add byte_offset to RST_STREAM_FRAME, add version checks for WINDOW_UPDATE and BLOCKED frames. None of these additions used yet. Merge internal change: 60780039 https://codereview.chromium.org/155623003/ (minor) QUIC: Initialize members in QUIC frame constructors. Merge internal change: 60677390 https://codereview.chromium.org/150663004/ Add WINDOW_UPDATE and BLOCKED frames to QUIC. Not yet used. Adds the frame types, and matching framer methods for reading/writing them. The framer visitor methods to handle the new frames just return true and ignore them for now. Merge internal change: 60646513 https://codereview.chromium.org/130463004/ QUIC cleanup to remove the helper which provided GetNextPacketSequenceNumber to QuicSentPacketManager and instead let the connection use that information directly. Merge internal change: 60587367 https://codereview.chromium.org/132503007/ R=rch@chromium.org Review URL: https://codereview.chromium.org/149113005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249228 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_sent_packet_manager.h')
-rw-r--r--net/quic/quic_sent_packet_manager.h21
1 files changed, 5 insertions, 16 deletions
diff --git a/net/quic/quic_sent_packet_manager.h b/net/quic/quic_sent_packet_manager.h
index 922134f..e767288 100644
--- a/net/quic/quic_sent_packet_manager.h
+++ b/net/quic/quic_sent_packet_manager.h
@@ -32,6 +32,7 @@ class QuicSentPacketManagerPeer;
class QuicClock;
class QuicConfig;
+struct QuicConnectionStats;
// Class which tracks the set of packets sent on a QUIC connection and contains
// a send algorithm to decide when to send new packets. It keeps track of any
@@ -58,18 +59,9 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
QuicSequenceNumberLength sequence_number_length;
};
- // Interface which provides callbacks that the manager needs.
- class NET_EXPORT_PRIVATE HelperInterface {
- public:
- virtual ~HelperInterface();
-
- // Called to return the sequence number of the next packet to be sent.
- virtual QuicPacketSequenceNumber GetNextPacketSequenceNumber() = 0;
- };
-
QuicSentPacketManager(bool is_server,
- HelperInterface* helper,
const QuicClock* clock,
+ QuicConnectionStats* stats,
CongestionFeedbackType congestion_type);
virtual ~QuicSentPacketManager();
@@ -121,10 +113,8 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Returns the number of unacked packets which have retransmittable frames.
size_t GetNumRetransmittablePackets() 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.
+ // Returns the smallest sequence number of a serialized packet which has not
+ // been acked by the peer. If there are no unacked packets, returns 0.
QuicPacketSequenceNumber GetLeastUnackedSentPacket() const;
// Returns the set of sequence numbers of all unacked packets.
@@ -314,14 +304,13 @@ class NET_EXPORT_PRIVATE QuicSentPacketManager {
// Tracks if the connection was created by the server.
bool is_server_;
- HelperInterface* helper_;
-
// An AckNotifier can register to be informed when ACKs have been received for
// all packets that a given block of data was sent in. The AckNotifierManager
// maintains the currently active notifiers.
AckNotifierManager ack_notifier_manager_;
const QuicClock* clock_;
+ QuicConnectionStats* stats_;
scoped_ptr<SendAlgorithmInterface> send_algorithm_;
// Tracks the send time, size, and nack count of sent packets. Packets are
// removed after 5 seconds and they've been removed from pending_packets_.