summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_flow_controller_test.cc
Commit message (Collapse)AuthorAgeFilesLines
* Land Recent QUIC Changes.rtenneti@chromium.org2014-04-301-93/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove InterArrivalSender and Receiver from QUIC because they are never used and increase maintenance. Merge internal change: 65742790 https://codereview.chromium.org/256393002/ Remove support for the Public Reset packets of QUIC_VERSION_13. Merge internal change: 65740152 https://codereview.chromium.org/256383002/ Remove WillAcceptStreamFrames codepath since we effectively don't use this code, and flow control is the right way to deal with this issue anyways. Removes currently implemented protection measure in <internal server>/quic to use max_frame_memory_ as the maximum stream buffer size. This limit (i) is currently set to max_size_t and is therefore not currently really useful, and (ii) will be more correctly replaced by flow control. (See: b/14235094) Merge internal change: 65737468 https://codereview.chromium.org/260233004/ Test change: Set return types of response_body_size() and response_size() in SimpleClient to int64 to make them large enough to hold number of response bytes. Merge internal change: 65728046 https://codereview.chromium.org/254013004/ Swapping packet writer wrappers back to packet writers in preparation for internal server QoS changes. Not flag protected. Using Quic packet writers directly instead of wrapping them. Merge internal change: 65720400 https://codereview.chromium.org/250843009/ Only send a QUIC BLOCKED frame once at a given "sent bytes" offset. Merge internal change: 65654681 https://codereview.chromium.org/251903007/ Add Kathleen Nichols min rtt algorithm to QUIC's RttStats, so it can be used with BBR. Merge internal change: 65596807 https://codereview.chromium.org/257133002/ Discard all unencrypted crypto packets in QUIC once the connection moves to forward secure. Merge internal change: 65592364 https://codereview.chromium.org/260243003/ Remove unneccessary .get() calls to scoped_ptr (reported by clang-tidy). Merge internal change: 65590426 https://codereview.chromium.org/260033005/ Sync'ing with internal source code. + Deleted a comment per review comments from wtc. Merge internal change: 65565864 https://codereview.chromium.org/258063011/ Change QUIC SendAlgorithmInterface's UpdateRtt method to OnRttUpdated and supply a largest observed to the send algorithm instead of the latest rtt sample argument. Necessary for the new BBR implementation, which needs to know what packet was acked when an rtt sample is taken. Merge internal change: 65541913 https://codereview.chromium.org/258223002/ Print error code as string on write failure in QuicConnection. Merge internal change: 65519182 https://codereview.chromium.org/251143006/ R=rch@chromium.org Review URL: https://codereview.chromium.org/263473003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267358 0039d316-1c4b-4281-b951-d872f2087c98
* Land Recent QUIC Changes.rtenneti@chromium.org2014-04-241-7/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding still more fasterstats for quic - num_handshake_messages. Merge internal change: 65469190 https://codereview.chromium.org/250293003/ Add an EndToEndTest to add further verification of Jana's fix for recording recieved packets before sending out acks. Can be integrated into Jana's internal change: 65170337 or submitted afterwards. Merge internal change: 65467231 https://codereview.chromium.org/254393002/ Killing off quic v13. Merge internal change: 65444673 https://codereview.chromium.org/255403002/ Removing an outdated DCHECK: we don't insist on sending handshake data alone as it is more efficient to bundle it with acks. Merge internal change: 65441182 https://codereview.chromium.org/254383002/ Fixes bug where received packet is not recorded in received_info_ before ack is bundled and sent with outgoing data. Also includes some cleanup. Fixes QUIC bug where ack information is not correctly populated before ack is sent. Updated the largest_observed packet number to QuicHttpStreamTest for tests to pass. Merge internal change: 65350665 https://codereview.chromium.org/250263004/ Deleted FLAGS_enable_quic_stream_flow_control and added FLAGS_enable_quic_stream_flow_control_2 for another try to enable flow control for QUIC versions >= 17. Merge internal change: 65309219 https://codereview.chromium.org/247363007/ Don't cast the MockableQuicClient when accessed via QuicTestClient::client(). Merge internal change: 65306668 https://codereview.chromium.org/248503002/ Remove unnecessary QuicClientPeer::GetFd method (QuicClient already has an fd() accessor). Merge internal change: 65300502 https://codereview.chromium.org/246783006/ Changes from sync'ing with internal source tree. + Fixed include order and deleted unneeded includes. + Added DISALLOW_COPY_AND_ASSIGN for a class in quic_connection_test.cc to be consistent with rest of the classes. Merge internal change: 65273756 https://codereview.chromium.org/248483002/ More followup from flow control flag issues. Simplify interaction with flow controller by passing in version at construction, so users of QuicFlowController don't need to do version checks around each method call. Move QUIC version checks inside the QuicFlowController. Merge internal change: 65270500 https://codereview.chromium.org/246653005/ R=rch@chromium.org Review URL: https://codereview.chromium.org/254413002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265883 0039d316-1c4b-4281-b951-d872f2087c98
* Land Recent QUIC Changes.rtenneti@chromium.org2014-04-181-0/+101
Disable QuicFlowController for QUIC versions < QUIC_VERSION_17 Chrome Beta was happily advertising a flow control receive window of length 0, under the assumption that because the version of QUIC being spoken didn't support flow control, a zero length window advertisement would have no adverse effects. On the server end, the refactoring in internal change: 64733866 resulted in the QUIC version not being checked when querying QuicFlowController::IsBlocked. IsBlocked would look at the client's advertised receive window, and conclude that no data could be sent. This would never change as the flow control accounting is protected behind version checks. Ultimately this means that once a stream was marked as write blocked, it would never resume writing: https://codereview.chromium.org/242453002/diff/1/net/quic/quic_session.cc?context=&column_width=80 (line# 286) resulting in a connection timeout. This CL explicitly disables the QuicFlowController when the negotiated QUIC version is < QUIC_VERSION_17. Merge internal change: 65137349 This internal change was LGTM'ed by rch. Wanted to port this change to disable flow control. https://codereview.chromium.org/242583002/ Downgrading rst stream codes which wouldn't be recognized by the peer. chromium: fixed chromium's unit tests to use AdjustErrorForVersion. Merge internal change: 64783797 https://codereview.chromium.org/242483002/ Added WriteResult::WriteResult method for internal use. Merge internal change: 64780998 https://codereview.chromium.org/242293003/ QUIC: When sending a RST stream for flow control accounting purposes, include a more descriptive error code. Prompted by alyssar's comment in internal change: 61236803 Chromium specific code: + deleted unused ConstructRstPacket method from QuicNetworkTransactionTest. + Changed ConstructRstPacket to use the new descriptive error code. Merge internal change: 64774941 https://codereview.chromium.org/242093003/ Pull out flow control functionality from ReliableQuicStream into a new class, QuicFlowController. Without this refactoring, all the accounting of bytes sent/buffered/consumed, comparisons of these with limits to decide if blocked or not, will be duplicated in ReliableQuicStream and QuicConnection. Putting all this in a new class means it's easier to have more comprehensive testing, simplifies ReliableQuicStream, and will make it much easier to add Connection level flow control (work in progress internal change: 63944402). Refactor of QUIC stream flow control. No behavior change, still protected behind FLAGS_enable_quic_stream_flow_control. This flag is currently disabled. Merge internal change: 64733866 https://codereview.chromium.org/242453002/ Plumbs through delta_largest_observed from QuicSentPackerManager::HandleAckForSentPacket, up to the QuicAckNotifier. Eventually these values get to the QuicFasterStatsGatherer which now performs a more accurate RT calculation. The important changes are in QuicSentPacketManager (pulling the delta out of ReceivedInfo), and in QuicFasterStatsGatherer (doing the new calculation of RT). The rest is plumbing and updating tests. Improve accuracy of QUIC FasterStats RT calculation by using the delta time included with delayed ACKs. Merge internal change: 64721749 https://codereview.chromium.org/241783002/ Fixed a bug in QuicPacketCreator when FEC was used for unsupported versions, and made packet_creator tests run across all supported versions of QUIC. Merge internal change: 64701677 https://codereview.chromium.org/241483004/ Fix to ensure hybrid slow start is reset when QUIC's retransmission timer fires. Merge internal change: 64698621 https://codereview.chromium.org/241563002/ R=rch@chromium.org Review URL: https://codereview.chromium.org/242593002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264889 0039d316-1c4b-4281-b951-d872f2087c98