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

Issue 1138443003: Land Recent QUIC Changes until 05/13/2015 (Closed)

Created:
5 years, 7 months ago by ramant (doing other things)
Modified:
5 years, 7 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, dcheng, jokilk_google.com, Ian Swett, alyssar, Jana
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Land Recent QUIC Changes until 05/13/2015 Adds support to the PacketDroppingTestWriter for dropping the first N packets of a connection. Will be used for testing stateless rejects, when the initial stateless reject (SREJ) from the server back to the client gets lost. Test only and not even used in this CL. Merge internal change: 93446002 https://codereview.chromium.org/1136553007/ Minor cleanup of obsolete comment and code. No functional change. Merge internal change: 93441848 https://codereview.chromium.org/1139153003/ Remove the no longer used kPACE connection option. No functional change. Merge internal change: 93437185 https://codereview.chromium.org/1135253004/ Rename local variable only - consumed_window to available_window. QuicFlowController::MaybeSendWindowUpdate() - rename counterintuitive consumed_window. Merge internal change: 93431527 https://codereview.chromium.org/1145433003/ Protected by FLAGS_enable_quic_stateless_reject_support. Add support for stateless rejects to the QuicDispatcher code. QuicServerSession - Added extra setter, which the dispatcher uses to indicate that session should issue stateless rejects (if supported by the peer). QuicDispatcher - Will use stateless rejects if the session map is over a threshold, configurable via flag. If a stateless reject has been issued, the dispatcher will close the session silently. It will also add the connection-id to the time-wait list, indicating that further packets for the connection-id should be black-holed. Changes to the end_to_end_tests will be made in a separate CL. Merge internal change: 93414515 https://codereview.chromium.org/1128103007/ Added support for stateless time-wait entries. Will be used in a subsequent CL. Time-wait list entries can now be marked as stateless, which means that the corresponding connection was closed via stateless reject. Since all state for that connection id is dropped after the stateless reject, the time-wait list manager will not respond to incoming packets for the connection ID with public resets. Instead, it will black-hole the packets. Added corresponding tests. Merge internal change: 93412303 https://codereview.chromium.org/1135113003/ Remove FLAGS_quic_use_optimized_packet_reader now that it's been deployed. Merge internal change: 93331362 https://codereview.chromium.org/1128933010/ Fixing a bug in the QUIC code where we could create new streams server-side even once the connection was killed off. Not creating QUIC streams after disconnect. Not flag protected. Merge internal change: 92727137 https://codereview.chromium.org/1142543002/ Flag-protected. Add stateless reject support to crypto streams. Client crypto stream: The client now sends all connection options on all handshake messages. (Previously, no options were sent on inchoate hellos). This is so that the client can indicate support for stateless rejects during the initial handshake. If the crypto client stream receives a stateless reject from the server, it will continue validating and cacheing the proof. It will abandon the connection with a special error code immediately thereafter. It will NOT send close messages after a reject, since there is no state at the server to close. (We may have to change this when we do stateless by default). Server crypto stream: The server now processes connection options speculatively on all handshake messages. This is so that the server can detect that the client supports stateless rejects prior to sending the reject itself. It will only consider the options to be "negotiated", however, prior to sending an SHLO. The crypto server stream now also maintains an additional boolean, indicating whether it should use stateless rejects when rejecting messages on the stream ("use_stateless_rejects"). If rejecting, it will only emit a stateless reject if both using stateless rejects and the client supports it. Merge internal change: 92677792 https://codereview.chromium.org/1139183002/ Crypto-client config no longer gives stateless reject error. QuicCryptoClientConfig::ProcessRejection no longer produces an error when processing a stateless reject. The client can always inspect the message tag directly to determine that the reject is stateless. flag-protected. Merge internal change: 92637704 https://codereview.chromium.org/1145453002/ Remove FLAGS_quic_limit_max_cwnd_to_receive_buffer. Merge internal change: 92419361 https://codereview.chromium.org/1141743004/ R=rch@chromium.org Committed: https://crrev.com/a2ea9160ddf76a700e0667a0ed07a96c40fd7450 Cr-Commit-Position: refs/heads/master@{#330162}

Patch Set 1 #

Patch Set 2 : compile error fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1040 lines, -373 lines) Patch
M chrome/browser/io_thread.h View 1 chunk +0 lines, -6 lines 0 comments Download
M chrome/browser/io_thread.cc View 2 chunks +0 lines, -17 lines 0 comments Download
M chrome/browser/io_thread_unittest.cc View 5 chunks +2 lines, -28 lines 0 comments Download
M chrome/common/chrome_switches.h View 2 chunks +0 lines, -2 lines 0 comments Download
M chrome/common/chrome_switches.cc View 2 chunks +0 lines, -8 lines 0 comments Download
M net/quic/congestion_control/send_algorithm_interface.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M net/quic/crypto/crypto_protocol.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/crypto/quic_crypto_client_config.h View 1 chunk +1 line, -3 lines 0 comments Download
M net/quic/crypto/quic_crypto_client_config.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/crypto/quic_crypto_client_config_test.cc View 1 chunk +4 lines, -5 lines 0 comments Download
M net/quic/quic_connection.cc View 2 chunks +26 lines, -4 lines 0 comments Download
M net/quic/quic_crypto_client_stream.h View 1 chunk +5 lines, -0 lines 0 comments Download
M net/quic/quic_crypto_client_stream.cc View 6 chunks +28 lines, -6 lines 0 comments Download
M net/quic/quic_crypto_client_stream_test.cc View 1 chunk +86 lines, -0 lines 0 comments Download
M net/quic/quic_crypto_server_stream.h View 5 chunks +45 lines, -0 lines 0 comments Download
M net/quic/quic_crypto_server_stream.cc View 7 chunks +52 lines, -9 lines 0 comments Download
M net/quic/quic_crypto_server_stream_test.cc View 6 chunks +271 lines, -111 lines 0 comments Download
M net/quic/quic_flags.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_flags.cc View 1 chunk +4 lines, -4 lines 0 comments Download
M net/quic/quic_flow_controller.cc View 1 chunk +4 lines, -4 lines 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 2 chunks +2 lines, -9 lines 0 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 3 chunks +6 lines, -12 lines 0 comments Download
M net/quic/quic_session.cc View 2 chunks +4 lines, -1 line 0 comments Download
M net/quic/quic_utils_test.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 3 chunks +63 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.cc View 4 chunks +73 lines, -4 lines 0 comments Download
M net/tools/quic/quic_dispatcher.h View 1 chunk +4 lines, -3 lines 0 comments Download
M net/tools/quic/quic_dispatcher.cc View 7 chunks +35 lines, -6 lines 0 comments Download
M net/tools/quic/quic_dispatcher_test.cc View 10 chunks +186 lines, -12 lines 0 comments Download
M net/tools/quic/quic_server.h View 1 chunk +0 lines, -14 lines 0 comments Download
M net/tools/quic/quic_server.cc View 3 chunks +6 lines, -59 lines 0 comments Download
M net/tools/quic/quic_server_session.h View 1 chunk +21 lines, -0 lines 0 comments Download
M net/tools/quic/quic_server_session.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M net/tools/quic/quic_server_session_test.cc View 2 chunks +8 lines, -0 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager.h View 2 chunks +13 lines, -3 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager.cc View 3 chunks +16 lines, -12 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager_test.cc View 5 chunks +39 lines, -15 lines 0 comments Download
M net/tools/quic/test_tools/packet_dropping_test_writer.h View 2 chunks +9 lines, -0 lines 0 comments Download
M net/tools/quic/test_tools/packet_dropping_test_writer.cc View 1 2 chunks +9 lines, -0 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.h View 1 chunk +5 lines, -4 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.cc View 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (1 generated)
ramant (doing other things)
5 years, 7 months ago (2015-05-15 17:44:44 UTC) #1
Ryan Hamilton
lgtm
5 years, 7 months ago (2015-05-15 18:47:34 UTC) #2
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1138443003/20001
5 years, 7 months ago (2015-05-15 18:50:26 UTC) #4
commit-bot: I haz the power
Committed patchset #2 (id:20001)
5 years, 7 months ago (2015-05-15 19:27:06 UTC) #5
commit-bot: I haz the power
5 years, 7 months ago (2015-05-15 19:27:48 UTC) #6
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/a2ea9160ddf76a700e0667a0ed07a96c40fd7450
Cr-Commit-Position: refs/heads/master@{#330162}

Powered by Google App Engine
This is Rietveld 408576698