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

Issue 497553004: Landing Recent QUIC Changes. (Closed)

Created:
6 years, 4 months ago by ramant (doing other things)
Modified:
6 years, 4 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, wtc, Jana, alyssar, Ian Swett, rjshade
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Landing Recent QUIC Changes. Remove largest_observed_ from QuicSentPacketManager, since it's also in QuicUnackedPacketMap. Merge internal change: 73713269 https://codereview.chromium.org/491663003/ Optimize QUIC's EntropyTracker in QuicReceivedPacketManager by using a deque. Merge internal change: 73709652 https://codereview.chromium.org/496133002/ Add logic for a client to enable pacing via config to the QUIC sent packet manager. Merge internal change: 73685838 https://codereview.chromium.org/497553003/ Clear the QUIC ping alarm when a connection in closed. Merge internal change: 73684904 https://codereview.chromium.org/475173005/ Rename QuicConnection::OnPacketSent to OnWriteError, to reflect it's actual functionality, and to only be called when there is an error. Clean up some logging when packets are sent. Merge internal change: 73651039 https://codereview.chromium.org/483093004/ Refactor QuicConnection's async write behavior to record a packet as sent as soon as the write starts, not when it completes. In QuicStreamFactoryTest, MockClock's now() is returning 0 and that was causing a DFATAL in QuicUnackedPacketMap::GetLastPacketSentTime(). Noticed, in QuicConnection unittests, we are advancing clock by 1 second and made a similar change to QuicStreamFactoryTest's MockClock. Merge internal change: 73648585 https://codereview.chromium.org/473763004/ QUIC minor clean up to keep in sync with internal sources. + Use int64 for MaxBandwidthTimestamp (per rjshade). + Use DVLOG(1) instead of DLOG(INFO). + Reorder class statements. This CL has changes that were found while merging (or back porting) the following chroimum specific changes into the internal source tree. Merge internal change: 73640117 Merge internal change: 73638556 https://codereview.chromium.org/495233002/ Move least_packet_awaited_by_peer_ from QuicReceivedPacketManager to QuicSentPacketManager. Merge internal change: 73630593 https://codereview.chromium.org/493183002/ Remove timestamp_receiver. Not used. Merge internal change: 73627146 https://codereview.chromium.org/495173002/ Remove unused protected received_packet_manager_ accessor in quic_connection. Merge internal change: 73626837 https://codereview.chromium.org/496823002/ Convert QUIC's SentEntropyManager to use a deque instead of a map in order to improve memory and CPU efficiency. Merge internal change: 73625323 https://codereview.chromium.org/479543004/ When talking >=QUIC_VERSION_22, regularly send updated bandwidth estimates to the client (in SCUP messages). The main work is in QuicConnection, where a new alarm regularly checks for substantially changed bandwidth estimates and sends them to the client if so. The majority of the rest of this CL is plumbing, and test code. Feel free to suggest better values for: - Timeout between bandwidth estimate alarms - Definition of "substantial change" in estimate The flow is: - on every congestion event (ACK, packet loss) the sent packet manager passes a bandwidth estimate to the sustained bandwidth recorder - on every congestion window change, the QuicServerSession checks to see if the bandwidth has changed sufficiently *and* enough time has passed since last time we sent an update to the client - if so, it populates the CachedNetworkParams proto, and passes this to the CryptoStream which sends a SCUP message to the client Merge internal change: 73579021 https://codereview.chromium.org/490263003/ R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=291427

Patch Set 1 #

Patch Set 2 : Rebase with TOT #

Unified diffs Side-by-side diffs Delta from patch set Stats (+853 lines, -541 lines) Patch
M net/net.gypi View 1 3 chunks +2 lines, -3 lines 0 comments Download
M net/quic/congestion_control/receive_algorithm_interface.cc View 2 chunks +2 lines, -2 lines 0 comments Download
D net/quic/congestion_control/timestamp_receiver.h View 1 chunk +0 lines, -37 lines 0 comments Download
D net/quic/congestion_control/timestamp_receiver.cc View 1 chunk +0 lines, -43 lines 0 comments Download
D net/quic/congestion_control/timestamp_receiver_test.cc View 1 chunk +0 lines, -55 lines 0 comments Download
M net/quic/crypto/quic_crypto_server_config.h View 3 chunks +15 lines, -5 lines 0 comments Download
M net/quic/crypto/quic_crypto_server_config.cc View 5 chunks +19 lines, -9 lines 0 comments Download
M net/quic/crypto/quic_crypto_server_config_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/crypto/source_address_token.h View 2 chunks +3 lines, -2 lines 0 comments Download
M net/quic/quic_connection.h View 1 6 chunks +12 lines, -10 lines 0 comments Download
M net/quic/quic_connection.cc View 1 11 chunks +67 lines, -91 lines 0 comments Download
M net/quic/quic_connection_test.cc View 1 5 chunks +18 lines, -27 lines 0 comments Download
M net/quic/quic_crypto_server_stream.h View 2 chunks +3 lines, -1 line 0 comments Download
M net/quic/quic_crypto_server_stream.cc View 3 chunks +7 lines, -3 lines 0 comments Download
M net/quic/quic_default_packet_writer.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M net/quic/quic_dispatcher.h View 1 1 chunk +3 lines, -5 lines 0 comments Download
M net/quic/quic_packet_generator.h View 2 chunks +3 lines, -5 lines 0 comments Download
M net/quic/quic_per_connection_packet_writer.cc View 1 1 chunk +3 lines, -1 line 0 comments Download
M net/quic/quic_protocol.h View 1 chunk +6 lines, -0 lines 0 comments Download
M net/quic/quic_received_packet_manager.h View 4 chunks +7 lines, -26 lines 0 comments Download
M net/quic/quic_received_packet_manager.cc View 6 chunks +40 lines, -58 lines 0 comments Download
M net/quic/quic_received_packet_manager_test.cc View 7 chunks +11 lines, -9 lines 0 comments Download
M net/quic/quic_sent_entropy_manager.h View 2 chunks +37 lines, -14 lines 0 comments Download
M net/quic/quic_sent_entropy_manager.cc View 3 chunks +63 lines, -42 lines 0 comments Download
M net/quic/quic_sent_entropy_manager_test.cc View 5 chunks +13 lines, -19 lines 0 comments Download
M net/quic/quic_sent_packet_manager.h View 6 chunks +18 lines, -5 lines 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 7 chunks +37 lines, -14 lines 0 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M net/quic/quic_server_session.h View 1 3 chunks +18 lines, -0 lines 0 comments Download
M net/quic/quic_server_session.cc View 1 3 chunks +77 lines, -1 line 0 comments Download
M net/quic/quic_session.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_session.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_sustained_bandwidth_recorder.h View 5 chunks +11 lines, -5 lines 0 comments Download
M net/quic/quic_sustained_bandwidth_recorder.cc View 1 chunk +3 lines, -4 lines 0 comments Download
M net/quic/quic_sustained_bandwidth_recorder_test.cc View 5 chunks +28 lines, -22 lines 0 comments Download
M net/quic/quic_unacked_packet_map.h View 1 chunk +5 lines, -0 lines 0 comments Download
M net/quic/quic_unacked_packet_map.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/test_tools/quic_connection_peer.cc View 1 1 chunk +6 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.h View 1 chunk +3 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.cc View 1 chunk +6 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_sustained_bandwidth_recorder_peer.h View 1 chunk +34 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_sustained_bandwidth_recorder_peer.cc View 1 chunk +34 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.cc View 1 1 chunk +2 lines, -2 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 1 2 chunks +7 lines, -8 lines 0 comments Download
M net/tools/quic/quic_dispatcher.h View 1 1 chunk +2 lines, -3 lines 0 comments Download
M net/tools/quic/quic_server_session.h View 3 chunks +18 lines, -0 lines 0 comments Download
M net/tools/quic/quic_server_session.cc View 3 chunks +77 lines, -1 line 0 comments Download
M net/tools/quic/quic_server_session_test.cc View 6 chunks +111 lines, -0 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.cc View 1 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 15 (0 generated)
ramant (doing other things)
6 years, 4 months ago (2014-08-21 23:37:16 UTC) #1
Ryan Hamilton
lgtm
6 years, 4 months ago (2014-08-22 00:08:37 UTC) #2
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 4 months ago (2014-08-22 01:10:12 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/497553004/1
6 years, 4 months ago (2014-08-22 01:11:39 UTC) #4
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_chromium_gn_compile_rel on tryserver.chromium.linux ...
6 years, 4 months ago (2014-08-22 02:13:25 UTC) #5
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-22 02:16:52 UTC) #6
commit-bot: I haz the power
Try jobs failed on following builders: android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tests_recipe/builds/1210)
6 years, 4 months ago (2014-08-22 02:16:54 UTC) #7
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 4 months ago (2014-08-22 02:54:24 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/497553004/20001
6 years, 4 months ago (2014-08-22 02:55:04 UTC) #9
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_dbg_tests_recipe on tryserver.chromium.linux ...
6 years, 4 months ago (2014-08-22 04:37:58 UTC) #10
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-22 05:35:20 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tests_recipe/builds/1276)
6 years, 4 months ago (2014-08-22 05:35:22 UTC) #12
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 4 months ago (2014-08-22 15:32:49 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/497553004/20001
6 years, 4 months ago (2014-08-22 15:34:05 UTC) #14
commit-bot: I haz the power
6 years, 4 months ago (2014-08-22 16:33:29 UTC) #15
Message was sent while issue was closed.
Committed patchset #2 (20001) as 291427

Powered by Google App Engine
This is Rietveld 408576698