Landing Recent QUIC changes until Mon Apr 17 2017

Desktop / Chromium - rch [chromium.org] - 18 April 2017 21:37 EDT

Flip QUIC flags, and remove deprecated flags that were missed. https://codereview.chromium.org/2821263003/

Move quic_flags.h from net/quic/core to net/quic/platform and split into api and impl.

Merge internal change: 153366836 https://codereview.chromium.org/2820423002/

Deprecate FLAGS_quic_reloadable_flag_fix_quic_callback_crash

Merge internal change: 153341928 https://codereview.chromium.org/2825833002/

deprecate -FLAGS_quic_reloadable_flag_quic_enable_version_37

Merge internal change: 153233259 https://codereview.chromium.org/2827503003/

In QUIC version >= 38, enables random padding of size [1, 256]

Protected by FLAGS_quic_reloadable_flag_quic_enable_random_padding.

Merge internal change: 153198827 https://codereview.chromium.org/2820263005/

Tweak BBR tests with the keep sending flag enabled to consistently pass unit tests.

n/a (Fix flaky test)

Merge internal change: 153196381 https://codereview.chromium.org/2820413002/

Rename QuicSession::GetCryptoStream() to GetMutableCryptoStream(). Add a const GetCryptoStream(). Make QuicSession::IsEncryptionEstablished and IsCryptoHandshakeConfirmed constant. Not protected.

Merge internal change: 153185176 https://codereview.chromium.org/2823223003/

Change a QUIC_DLOG to a QUIC_DVLOG.

This line was printing a tremendous amount in test logs and causing erroneous test failures due to output size.

Merge internal change: 153109322 https://codereview.chromium.org/2823303002/

deprecate -FLAGS_quic_reloadable_flag_quic_enable_version_36_v3

Merge internal change: 153101554 https://codereview.chromium.org/2822023005/

deprecate -FLAGS_quic_reloadable_flag_quic_disable_version_34 and remove support for QUIC v34.

Merge internal change: 153091520 https://codereview.chromium.org/2823293002/

Let QUIC be able to add random padding of [1,256] bytes after fin is consumed for a stream. Random paddings have the lowest priority to send. Not used in prod yet.

Merge internal change: 153055858 https://codereview.chromium.org/2828543002/

Uniquify QuicCryptoServerConfig::SetEphemeralKeySource

Modify QuicCryptoServerConfig::SetEphemeralKeySource to take its argument by unique_ptr, which makes it obvious how ownership of the argument is transferred.

Bare pointer -> unique_ptr in QUIC startup code. No functional change, not flag-protected.

Merge internal change: 152970365 https://codereview.chromium.org/2825493004/

Deprecate FLAGS_quic_reloadable_flag_quic_bbr_ack_spacing2 in the disabled position because it never worked that well.

Merge internal change: 152853633 https://codereview.chromium.org/2828523003/

deprecate FLAGS_quic_reloadable_flag_quic_large_ifw_options

Merge internal change: 152840111 https://codereview.chromium.org/2825523003/

Add flag counter for FLAGS_quic_reloadable_flag_quic_bbr_bandwidth_resumption

Merge internal change: 152840108 https://codereview.chromium.org/2823283002/

Improve QUIC flow-control commentary and variable-names.

While debugging, I found the current commentary and variable names to be a bit confusing. Made some tiny cosmetic improvements.

Merge internal change: 152816981 https://codereview.chromium.org/2824773005/

Base QUIC BBR's CWND on SRTT instead of min_rtt. Protected by FLAGS_quic_reloadable_flag_quic_base_cwnd_on_srtt.

Also fixes test flakiness with FLAGS_quic_reloadable_flag_quic_bbr_keep_sending_at_recent_rate by limiting the CWND in low gain mode and pacing based on max_bw in high gain mode.

Merge internal change: 152772923 https://codereview.chromium.org/2823083004/

Continue sending at the max bandwidth measured in the last two rounds for another SRTT. Protected by FLAGS_quic_reloadable_flags_quic_bbr_keep_sending_at_recent_rate.

Merge internal change: 152764149 https://codereview.chromium.org/2825093002/

Deprecate FLAGS_quic_reloadable_flag_quic_no_socket_receive_buffer.

Merge internal change: 152732968 https://codereview.chromium.org/2825773002/

Review-Url: https://codereview.chromium.org/2825083003 Cr-Commit-Position: refs/heads/master@{#465461}

fc6809b Landing Recent QUIC changes until Mon Apr 17 2017
net/BUILD.gn | 5 +-
net/quic/chromium/quic_chromium_client_session.cc | 7 +-
net/quic/chromium/quic_chromium_client_session.h | 3 +-
.../chromium/quic_chromium_client_session_test.cc | 5 +-
.../chromium/quic_chromium_client_stream_test.cc | 12 +-
net/quic/chromium/quic_http_stream.cc | 2 -
.../chromium/quic_network_transaction_unittest.cc | 1 -
net/quic/chromium/quic_stream_factory.cc | 3 +-
net/quic/core/congestion_control/bbr_sender.cc | 83 ++----
net/quic/core/congestion_control/bbr_sender.h | 12 -
.../core/congestion_control/bbr_sender_test.cc | 59 +++-
net/quic/core/congestion_control/cubic.cc | 2 +-
net/quic/core/congestion_control/cubic_bytes.cc | 2 +-
.../core/congestion_control/cubic_bytes_test.cc | 2 +-
net/quic/core/congestion_control/cubic_test.cc | 2 +-
.../congestion_control/general_loss_algorithm.cc | 2 +-
.../general_loss_algorithm_test.cc | 2 +-
.../congestion_control/send_algorithm_interface.cc | 2 +-
.../congestion_control/tcp_cubic_sender_bytes.cc | 2 +-
.../congestion_control/tcp_cubic_sender_packets.cc | 2 +-
net/quic/core/crypto/crypto_server_test.cc | 2 +-
net/quic/core/crypto/quic_crypto_server_config.cc | 6 +-
net/quic/core/crypto/quic_crypto_server_config.h | 6 +-
net/quic/core/quic_buffered_packet_store.cc | 2 +-
net/quic/core/quic_buffered_packet_store_test.cc | 2 +-
net/quic/core/quic_client_session_base.cc | 2 +-
net/quic/core/quic_config.cc | 33 +--
net/quic/core/quic_config.h | 10 -
net/quic/core/quic_config_test.cc | 23 --
net/quic/core/quic_connection.cc | 15 +-
net/quic/core/quic_connection.h | 2 +-
net/quic/core/quic_connection_test.cc | 325 +++++++++++----------
net/quic/core/quic_constants.h | 3 +
net/quic/core/quic_crypto_client_stream.cc | 2 +-
net/quic/core/quic_crypto_client_stream_test.cc | 20 +-
net/quic/core/quic_crypto_server_stream.cc | 5 +-
net/quic/core/quic_crypto_server_stream_test.cc | 7 +-
net/quic/core/quic_crypto_stream.cc | 2 +-
net/quic/core/quic_data_reader.cc | 2 +-
net/quic/core/quic_data_writer.cc | 2 +-
net/quic/core/quic_data_writer_test.cc | 2 +-
net/quic/core/quic_flags.h | 60 ----
net/quic/core/quic_flags_list.h | 39 +--
net/quic/core/quic_flow_controller.cc | 9 +-
net/quic/core/quic_flow_controller.h | 6 +-
net/quic/core/quic_framer.cc | 2 +-
net/quic/core/quic_framer_test.cc | 2 +-
net/quic/core/quic_header_list.cc | 2 +-
net/quic/core/quic_header_list_test.cc | 2 +-
net/quic/core/quic_headers_stream.cc | 2 +-
net/quic/core/quic_headers_stream_test.cc | 21 +-
net/quic/core/quic_packet_creator.cc | 48 ++-
net/quic/core/quic_packet_creator.h | 21 +-
net/quic/core/quic_packet_creator_test.cc | 182 +++++++++++-
net/quic/core/quic_packet_generator.cc | 29 +-
net/quic/core/quic_packet_generator.h | 15 +-
net/quic/core/quic_packet_generator_test.cc | 204 +++++++++++--
net/quic/core/quic_packets.cc | 2 +-
net/quic/core/quic_sent_packet_manager.cc | 2 +-
net/quic/core/quic_sent_packet_manager_test.cc | 3 +-
net/quic/core/quic_server_session_base.cc | 9 +-
net/quic/core/quic_server_session_base.h | 4 +-
net/quic/core/quic_server_session_base_test.cc | 17 +-
net/quic/core/quic_session.cc | 54 ++--
net/quic/core/quic_session.h | 11 +-
net/quic/core/quic_session_test.cc | 43 +--
net/quic/core/quic_spdy_session.cc | 8 +-
net/quic/core/quic_spdy_stream.h | 2 +-
net/quic/core/quic_stream.cc | 13 +-
net/quic/core/quic_stream.h | 7 +
net/quic/core/quic_stream_sequencer_buffer.cc | 3 +-
net/quic/core/quic_stream_test.cc | 4 +-
net/quic/core/quic_types.h | 10 +
net/quic/core/quic_utils.cc | 2 +-
net/quic/core/quic_version_manager.cc | 21 +-
net/quic/core/quic_version_manager.h | 6 -
net/quic/core/quic_version_manager_test.cc | 31 +-
net/quic/core/quic_versions.cc | 28 +-
net/quic/core/quic_versions.h | 6 +-
net/quic/core/quic_versions_test.cc | 88 +++---
net/quic/platform/api/quic_flags.h | 13 +
.../impl/quic_flags_impl.cc} | 2 +-
net/quic/platform/impl/quic_flags_impl.h | 60 ++++
net/quic/quartc/quartc_session.cc | 6 +-
net/quic/quartc/quartc_session.h | 3 +-
net/quic/quartc/quartc_stream_test.cc | 7 +-
net/quic/test_tools/crypto_test_utils.cc | 10 +-
net/quic/test_tools/quic_connection_peer.cc | 2 +-
net/quic/test_tools/quic_session_peer.cc | 5 +-
net/quic/test_tools/quic_session_peer.h | 2 +-
.../quic_stream_sequencer_buffer_peer.cc | 2 +-
net/quic/test_tools/quic_test_utils.cc | 25 +-
net/quic/test_tools/quic_test_utils.h | 32 +-
net/quic/test_tools/simple_quic_framer.cc | 9 +-
net/quic/test_tools/simple_quic_framer.h | 1 +
net/quic/test_tools/simulator/quic_endpoint.cc | 2 +-
net/spdy/spdy_framer.cc | 2 +-
net/spdy/spdy_framer_test.cc | 2 +-
net/tools/quic/end_to_end_test.cc | 82 +-----
net/tools/quic/platform/impl/quic_socket_utils.cc | 2 +-
net/tools/quic/quic_client_base.cc | 2 +-
net/tools/quic/quic_client_bin.cc | 2 +-
net/tools/quic/quic_client_session.cc | 6 +-
net/tools/quic/quic_client_session.h | 3 +-
net/tools/quic/quic_client_session_test.cc | 32 +-
net/tools/quic/quic_dispatcher.cc | 2 +-
net/tools/quic/quic_dispatcher_test.cc | 73 +----
net/tools/quic/quic_packet_reader.cc | 2 +-
net/tools/quic/quic_server.cc | 2 +
net/tools/quic/quic_server_test.cc | 1 +
net/tools/quic/quic_simple_client.cc | 2 +-
net/tools/quic/quic_simple_server_session.cc | 2 +-
net/tools/quic/quic_simple_server_session_test.cc | 13 +-
net/tools/quic/quic_simple_server_stream.cc | 2 +-
net/tools/quic/quic_simple_server_stream_test.cc | 2 +-
net/tools/quic/quic_time_wait_list_manager.cc | 2 +-
net/tools/quic/quic_time_wait_list_manager.h | 1 +
net/tools/quic/quic_time_wait_list_manager_test.cc | 2 +-
net/tools/quic/stateless_rejector.cc | 2 +-
net/tools/quic/stateless_rejector_test.cc | 1 +
.../quic/test_tools/packet_dropping_test_writer.cc | 4 +-
net/tools/quic/test_tools/quic_test_client.cc | 2 +-
122 files changed, 1181 insertions(+), 949 deletions(-)

Upstream: git.chromium.org


  • Share