summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_connection.h
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-17 15:51:33 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-17 15:51:33 +0000
commitce7bb141d5359dfe1224a85bafa802a09f1e683d (patch)
treed2f27658cb8e127a89d7b4198fe04949283e30e7 /net/quic/quic_connection.h
parentf5d0fa6e33af3ac62a6d98e4cac1b1420533f6d7 (diff)
downloadchromium_src-ce7bb141d5359dfe1224a85bafa802a09f1e683d.zip
chromium_src-ce7bb141d5359dfe1224a85bafa802a09f1e683d.tar.gz
chromium_src-ce7bb141d5359dfe1224a85bafa802a09f1e683d.tar.bz2
Land Recent QUIC Changes.
Stub for BBRv2, based on TCP congestion feedback frames. Merge internal change: 67154078 https://codereview.chromium.org/283333008/ Update QuicSentPacketManager to sample a new recent min rtt within the first 2 rtt samples after quiescence. Merge internal change: 67149500 https://codereview.chromium.org/286143007/ Change the test QUIC stream id to be the first non reserved stream ID (and also to use the right typedef). Merge internal change: 67146383 https://codereview.chromium.org/292453003/ Adds dynamic FEC on/off switch in packet creator. Tightens use of max_packets_per_fec_group through use of a setter method across the QUIC code. FEC operations are now decided based on should_fec_protect_, which is expected to be a dynamic on/off control in the packet creator, instead of max_packets_per_fec_group. Adds dynamic FEC on/off switch in packet_creator. Merge internal change: 67144415 https://codereview.chromium.org/286153003/ Minor cleanup to simplify QuicSentPacketManager's OnPacketSent and always reset the retransmission alarm anytime a new pending packet is sent. Always setting the retransmission alarm is only a simplification of the approach, and not intended to fix any issues. Merge internal change: 67143274 https://codereview.chromium.org/288333002/ Don't set QUIC's write alarm if we are connection flow control blocked. Added QUIC_VERSION_19 to kSupportedQuicVersions. Merge internal change: 67141668 https://codereview.chromium.org/285193006/ Minor cleanup of QuicUnackedPacketMap to simplify the implementation of HasPendingPackets and move a test only method, GetNumRetransmittablePackets, into QuicSentPacketManagerPeer. Merge internal change: 67123054 https://codereview.chromium.org/282323003/ Fix a QUIC bug where a crypto packet was never removed from the UnackedPacketMap if it was not acked and spuriously retransmitted at least twice. Merge internal change: 67050631 https://codereview.chromium.org/284273002/ Refactor: move flow controller from QuicConnection to QuicSession. No behavior change intended. Merge internal change: 67036889 https://codereview.chromium.org/286213002/ Fix a QUIC bug where a packet could remain in the UnackedPacketMap indefinitely. This can cause a memory leak when tracking entropy. Merge internal change: 67028206 https://codereview.chromium.org/285233006/ Delete dead code used only in tests. Merge internal change: 66938996 https://codereview.chromium.org/288303002/ Add handling + parsing for ALTSVC frame. Also change frame type number and add an extra version check for BLOCKED frame. SPDY4/HTTP2 only. Merge internal change: 66925490 https://codereview.chromium.org/286173002/ QUIC loadtest fixes: - Wait for the QUIC handshake to complete before saying that the QuicTestClient is connected. - Force connect at client creation time when talking HTTP/HTTPS/SPDY for consistency. Merge internal change: 66855236 https://codereview.chromium.org/282153004/ QUIC now respects configured SPDY stream limits. Merge internal change: 66831620 https://codereview.chromium.org/286113004/ R=rch@chromium.org Review URL: https://codereview.chromium.org/288313003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271211 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_connection.h')
-rw-r--r--net/quic/quic_connection.h26
1 files changed, 7 insertions, 19 deletions
diff --git a/net/quic/quic_connection.h b/net/quic/quic_connection.h
index 3e43e9d..8b6e034 100644
--- a/net/quic/quic_connection.h
+++ b/net/quic/quic_connection.h
@@ -49,7 +49,6 @@ class QuicConnection;
class QuicDecrypter;
class QuicEncrypter;
class QuicFecGroup;
-class QuicFlowController;
class QuicRandom;
namespace test {
@@ -94,10 +93,12 @@ class NET_EXPORT_PRIVATE QuicConnectionVisitorInterface {
// Called when a blocked socket becomes writable.
virtual void OnCanWrite() = 0;
- // Called to ask if any writes are pending in this visitor. Writes may be
- // pending because they were write-blocked, congestion-throttled or
- // yielded to other connections.
- virtual bool HasPendingWrites() const = 0;
+ // Called to ask if the visitor wants to schedule write resumption as it has
+ // both has pending data to write, and is able to write (e.g. based on flow
+ // control limits).
+ // Writes may be pending because they were write-blocked, congestion-throttled
+ // or yielded to other connections.
+ virtual bool WillingAndAbleToWrite() const = 0;
// Called to ask if any handshake messages are pending in this visitor.
virtual bool HasPendingHandshake() const = 0;
@@ -217,8 +218,7 @@ class NET_EXPORT_PRIVATE QuicConnection
QuicConnectionHelperInterface* helper,
QuicPacketWriter* writer,
bool is_server,
- const QuicVersionVector& supported_versions,
- uint32 max_flow_control_receive_window_bytes);
+ const QuicVersionVector& supported_versions);
virtual ~QuicConnection();
// Sets connection parameters from the supplied |config|.
@@ -267,8 +267,6 @@ class NET_EXPORT_PRIVATE QuicConnection
QuicStreamId last_good_stream_id,
const std::string& reason);
- QuicFlowController* flow_controller() { return flow_controller_.get(); }
-
// Returns statistics tracked for this connection.
const QuicConnectionStats& GetStats();
@@ -460,10 +458,6 @@ class NET_EXPORT_PRIVATE QuicConnection
bool CanWrite(TransmissionType transmission_type,
HasRetransmittableData retransmittable);
- uint32 max_flow_control_receive_window_bytes() const {
- return max_flow_control_receive_window_bytes_;
- }
-
// Stores current batch state for connection, puts the connection
// into batch mode, and destruction restores the stored batch state.
// While the bundler is in scope, any generated frames are bundled
@@ -760,12 +754,6 @@ class NET_EXPORT_PRIVATE QuicConnection
// version negotiation packet.
QuicVersionVector server_supported_versions_;
- // Initial flow control receive window size for new streams.
- uint32 max_flow_control_receive_window_bytes_;
-
- // Used for connection level flow control.
- scoped_ptr<QuicFlowController> flow_controller_;
-
DISALLOW_COPY_AND_ASSIGN(QuicConnection);
};