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

Issue 327393002: Land Recent QUIC Changes. (Closed)

Created:
6 years, 6 months ago by ramant (doing other things)
Modified:
6 years, 6 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, Jana, wtc, jar (doing other things), Robbie Shade, Ian Swett
Project:
chromium
Visibility:
Public.

Description

Land Recent QUIC Changes. (This CL merges changes until last Friday). Change the QUIC TLP to send new data instead of retransmitting old data when new data is available. Also tighten up the QuicSentPacketManagerTest for TLP per avd's request. Merge internal change: 68731782 https://codereview.chromium.org/327383002/ Use override consistently instead of virtual. Merge internal change: 68717267 https://codereview.chromium.org/325373002/ QUIC - added code to read kUAID in the server code from the CHLO message. The following is the list of kUAID strings for chrome built by google. The following is true for all platforms for clients built by google (android, posix, windows and chromeos). UAID: "unknown Chrome/37.0.2029.0" chrome developer's builds. UAID: " Chrome/37.0.2029.0" Stable UAID: "canary Chrome/37.0.2029.0" Canary UAID: "dev Chrome/37.0.2029.0" Dev UAID: "beta Chrome/37.0.2029.0" Beta Merge internal change: 68715745 https://codereview.chromium.org/333523002/ Minor change to keep the code similar between chromium and internal source tree. + use SupportedVersions. + One line per argument. + Minor fixes to comments. Merge internal change: 68659711 https://codereview.chromium.org/335433002/ Changed SetIpInfoInCmsg to return the length of the packet info structure used. Merge internal change: 68639530 https://codereview.chromium.org/329223003/ (minor) rename frames_ to buffered_frames_ in QuicStreamSequencer Merge internal change: 68571729 https://codereview.chromium.org/329403003/ Enables PacketGenerator's use of PacketCreator's FEC primitives. Adds methods in PacketGenerator that enable use of the PacketCreator's FEC primitives, and adds tests for these methods. Merge internal change: 68558082 https://codereview.chromium.org/326403006/ Connection level flow control (CLFC) accounting on receipt of FIN/RST for already closed streams. This implements the following behavior discussed internally. Proposal: implement rch/jar's solution from earlier in the thread, in which "bytes sent" is added to the RST frame, and each endpoint must send a FIN or RST containing "bytes sent" on stream termination. This gets the job done pretty simply, and will make our flow control very similar to SPDY. We can investigate more exotic dynamic stream window scaling (as per avd's suggestion earlier in the thread) in future if SPDY-style flow control is shown to be a problem. A stream *must* send either a FIN or a RST on termination, either of which contain enough data that the peer can definitively determine how many bytes were sent on that stream (this is already implemented). This CL implements the correct CLFC accounting of these frames when received after the stream has been closed locally. Motivating example: Client sends GET+FIN, Server sends response. Before response arrives, client RSTs the stream (user closed tab?), tearing down local state. Before this CL, when the server response arrives it just gets dropped - but the server has counted the bytes sent against its CLFC _send_ window. The client will not count these bytes against it's CLFC _receive_ window, and so the endpoint states are now out of sync. To fix this, when a stream is closed we store the current "last bytes received offset" in a map in the session, and handle a FIN/RST for a closed stream by removing the difference between the final byte offset from FIN/RST and the stored value from the map to the CLFC receive window. QUIC: Connection level flow control accounting on receipt of FIN/RST for already closed streams. Protected behind existing flag: FLAGS_enable_quic_connection_flow_control Merge internal change: 68555475 https://codereview.chromium.org/320263003/ Add QuicStreamSequencerPeer to quic/test_tools, to make stream sequencer tests more consistent with other tests. Merge internal change: 68553409 https://codereview.chromium.org/318333002/ R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=276575

Patch Set 1 #

Patch Set 2 : Fix compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+970 lines, -217 lines) Patch
M net/net.gypi View 1 chunk +4 lines, -0 lines 0 comments Download
M net/quic/crypto/quic_crypto_server_config.cc View 2 chunks +3 lines, -0 lines 0 comments Download
M net/quic/quic_connection.cc View 1 chunk +8 lines, -2 lines 0 comments Download
M net/quic/quic_connection_test.cc View 8 chunks +34 lines, -10 lines 0 comments Download
M net/quic/quic_flow_controller_test.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M net/quic/quic_packet_creator.h View 2 chunks +4 lines, -1 line 0 comments Download
M net/quic/quic_packet_creator.cc View 2 chunks +6 lines, -1 line 0 comments Download
M net/quic/quic_packet_creator_test.cc View 6 chunks +14 lines, -5 lines 0 comments Download
M net/quic/quic_packet_generator.h View 3 chunks +31 lines, -0 lines 0 comments Download
M net/quic/quic_packet_generator.cc View 4 chunks +59 lines, -26 lines 0 comments Download
M net/quic/quic_packet_generator_test.cc View 8 chunks +264 lines, -5 lines 0 comments Download
M net/quic/quic_sent_packet_manager.h View 2 chunks +4 lines, -3 lines 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 5 chunks +13 lines, -7 lines 0 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 6 chunks +52 lines, -2 lines 0 comments Download
M net/quic/quic_session.h View 1 chunk +12 lines, -0 lines 0 comments Download
M net/quic/quic_session.cc View 3 chunks +61 lines, -1 line 0 comments Download
M net/quic/quic_session_test.cc View 1 2 chunks +81 lines, -1 line 0 comments Download
M net/quic/quic_stream_sequencer.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_stream_sequencer.cc View 8 chunks +19 lines, -19 lines 0 comments Download
M net/quic/quic_stream_sequencer_test.cc View 7 chunks +84 lines, -94 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 2 chunks +15 lines, -0 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 4 chunks +8 lines, -1 line 0 comments Download
M net/quic/reliable_quic_stream_test.cc View 2 chunks +25 lines, -1 line 0 comments Download
M net/quic/test_tools/crypto_test_utils_openssl.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/test_tools/quic_connection_peer.h View 2 chunks +3 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_connection_peer.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_packet_creator_peer.h View 1 chunk +0 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_packet_creator_peer.cc View 1 chunk +0 lines, -8 lines 0 comments Download
A net/quic/test_tools/quic_packet_generator_peer.h View 1 chunk +36 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_packet_generator_peer.cc View 1 chunk +34 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_stream_sequencer_peer.h View 1 chunk +31 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_stream_sequencer_peer.cc View 1 chunk +28 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 1 chunk +3 lines, -3 lines 0 comments Download
M net/quic/test_tools/simple_quic_framer.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/tools/quic/end_to_end_test.cc View 3 chunks +5 lines, -5 lines 0 comments Download
M net/tools/quic/quic_in_memory_cache_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/tools/quic/quic_socket_utils.h View 1 chunk +6 lines, -3 lines 0 comments Download
M net/tools/quic/quic_socket_utils.cc View 3 chunks +4 lines, -2 lines 0 comments Download
M net/tools/quic/quic_spdy_server_stream_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/tools/quic/quic_time_wait_list_manager_test.cc View 4 chunks +6 lines, -6 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
ramant (doing other things)
6 years, 6 months ago (2014-06-11 23:38:56 UTC) #1
Ryan Hamilton
lgtm
6 years, 6 months ago (2014-06-12 00:43:19 UTC) #2
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 6 months ago (2014-06-12 00:46:15 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/327393002/20001
6 years, 6 months ago (2014-06-12 00:47:29 UTC) #4
commit-bot: I haz the power
6 years, 6 months ago (2014-06-12 08:02:53 UTC) #5
Message was sent while issue was closed.
Change committed as 276575

Powered by Google App Engine
This is Rietveld 408576698