Land Recent QUIC Changes until 03/15/2015.
commitfb3fa6c5773387e1fa71422ff24278a64eb0d2d6
authorrtenneti <rtenneti@chromium.org>
Mon, 16 Mar 2015 23:04:55 +0000 (16 16:04 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 16 Mar 2015 23:05:28 +0000 (16 23:05 +0000)
tree13a7ff36f903bbdad784d6bb7cc11b184646a652
parent1c376a851eb037b7d310b19714e11f36d2cb3497
Land Recent QUIC Changes until 03/15/2015.

Do not retransmit QUIC data for streams that have been reset. Protected
by FLAGS_quic_do_not_retransmit_for_reset_streams.

This is an attempt to reland cr/88179867 now that the underlying bug has
been fixed. Includes tests which crashed on the old CL and pass now.

Merge internal change: 88695223
https://codereview.chromium.org/1009243002/

Move QUIC reads to a more optimized reader.
Guarded by FLAGS_quic_use_optimized_packet_reader. This is not enabled
for the chromium's QUIC server yet.

The new QuicPacketReader is optimized to spend less time in memset and
uses a 16 packet receive buffer.  Saves 1.09 % of CPU in memset alone
according to profiling EndToEndTest.

Merge internal change: 88573234
https://codereview.chromium.org/1008313002/

Rollback of merge internal change: 87346681.

Chromium CL reviewed:
  https://codereview.chromium.org/968923005/

Chomium committed CL: "Land Recent QUIC Changes until 03/02/2015".
  https://codereview.chromium.org/968233004/

This CL was in M43 bit not in M42. It impacted last week's Dev release
and all Canary released after 03/03/2015.

*** Original change description ***

Remove TCP and BBR's max congestion window.  No practical change,
because Chrome's receive window is the limiting factor.

Adds kMaxReportedCwnd and kMaxReorderingForRtt as constants to replace
the max CWND in classes that used to rely on max CWND.

***

Merge internal change: 88545044
https://codereview.chromium.org/1003863006/

Make the SentPacketManager remove pending retransmissions for reset
streams. No behavior change yet. That will be in a flag protected followup.

Minor change to linked_hash_map's erase method to return an iterator
pointing to the new location of the element that followed the last
element erased by the function call (ala internal source code and
std:: c++).

Merge internal change: 88507368
https://codereview.chromium.org/1013583002/

Only changes comments. Replace "CID" with "connection id" in various
comments in quic_connection_test.cc

Merge internal change: 88463135
https://codereview.chromium.org/1013573002/

Provide a MockConnection constructor that takes connection_id,
perspective, and is_secure as arguments.  Used by the internal server
testing code. Clarify debugging log message in quic_dispatcher.cc.

Clarify debugging log message in quic_dispatcher.cc. Improve testing
infrastructure.

Merge internal change: 88461470
https://codereview.chromium.org/1008293002/

Add a kBYTE congestion option to QUIC to negotiate the TcpCubicBytesSender.

Merge internal change: 88328620
https://codereview.chromium.org/1009203003/

Add support for the MIN1 connection option to TcpCubicBytesSender.
This sender is currently unused.

Allows TcpCubicBytesSender to have a min cwnd of 1 packet in bytes.

Merge internal change: 88167032
https://codereview.chromium.org/1008283002/

R=rch@chromium.org

Review URL: https://codereview.chromium.org/1008323002

Cr-Commit-Position: refs/heads/master@{#320819}
30 files changed:
net/BUILD.gn
net/base/linked_hash_map.h
net/net.gyp
net/quic/congestion_control/send_algorithm_interface.cc
net/quic/congestion_control/tcp_cubic_bytes_sender.cc
net/quic/congestion_control/tcp_cubic_bytes_sender.h
net/quic/congestion_control/tcp_cubic_bytes_sender_test.cc
net/quic/congestion_control/tcp_cubic_sender.cc
net/quic/congestion_control/tcp_cubic_sender.h
net/quic/congestion_control/tcp_cubic_sender_test.cc
net/quic/crypto/crypto_protocol.h
net/quic/quic_connection.cc
net/quic/quic_connection_test.cc
net/quic/quic_dispatcher.cc
net/quic/quic_flags.cc
net/quic/quic_flags.h
net/quic/quic_protocol.h
net/quic/quic_sent_packet_manager.cc
net/quic/quic_sent_packet_manager.h
net/quic/quic_sent_packet_manager_test.cc
net/quic/quic_unacked_packet_map.cc
net/quic/quic_unacked_packet_map.h
net/quic/quic_unacked_packet_map_test.cc
net/quic/test_tools/quic_test_utils.cc
net/quic/test_tools/quic_test_utils.h
net/tools/quic/quic_dispatcher.cc
net/tools/quic/quic_packet_reader.cc [new file with mode: 0644]
net/tools/quic/quic_packet_reader.h [new file with mode: 0644]
net/tools/quic/quic_server.cc
net/tools/quic/quic_server.h