Land Recent QUIC Changes.

Add a QUIC flag to enable time based loss detection as the default.

Merge internal change: 63942432
(this CL was merged in https://codereview.chromium.org/217133004/
added  FLAGS_quic_use_time_loss_detection to quic_flags.cc 
and made the change to quic_connection.cc also).


Now that we have a default send window, no need to send WINDOW_UPDATE to
ensure streams are not flow control blocked

Merge internal change: 63887815
https://codereview.chromium.org/217003005/


Changing the max stream delta to allow for all open streams in a given
direction.  Previously, we allowed 100 streams (200 even/odd stream ids)
but an insufficient delta of 100.

Allowing a slightly larger stream delta for QUIC.

Merge internal change: 63880428
https://codereview.chromium.org/212063006/


UDP proxy session for QUIC. This is not production ready. Major issues
include the sharding issue and the time wait list.

Merge internal change: 63878878
https://codereview.chromium.org/216943004/


Don't try and close a QUIC connection twice while processing a single
incoming packet.

Merge internal change: 63878490
https://codereview.chromium.org/217053004/

Added missing OVERRIDE.


Add the ability to negotiate the QUIC loss detection algorithm in the
crypto handshake.

Added FLAGS_quic_congestion_control_inter_arrival and
FLAGS_quic_use_time_loss_detection. They default to false.

Merge internal change: 63874474
https://codereview.chromium.org/217133004/


Send BLOCKED frame directly from ReliableQuicStream.

Merge internal change: 63808643
https://codereview.chromium.org/216423006/


Simplified ReliableQuicStream::IsFlowControlBlocked.

Merge internal change: 63807857
https://codereview.chromium.org/217103003/


Track the sent_time for ack packets so the RTT is updated when ack
packets are acked as the largest observed.

Merge internal change: 63806273
https://codereview.chromium.org/216423005/

[email protected]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260695 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index 7dfb5983..2609de21 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -94,9 +94,9 @@
 const size_t kStartOfHashData = 0;
 
 // Limit on the delta between stream IDs.
-const QuicStreamId kMaxStreamIdDelta = 100;
+const QuicStreamId kMaxStreamIdDelta = 200;
 // Limit on the delta between header IDs.
-const QuicHeaderId kMaxHeaderIdDelta = 100;
+const QuicHeaderId kMaxHeaderIdDelta = 200;
 
 // Reserved ID for the crypto stream.
 const QuicStreamId kCryptoStreamId = 1;
@@ -677,6 +677,11 @@
   kFixRate,  // Provided for testing.
 };
 
+enum LossDetectionType {
+  kNack,  // Used to mimic TCP's loss detection.
+  kTime,  // Time based loss detection.
+};
+
 struct NET_EXPORT_PRIVATE CongestionFeedbackMessageTCP {
   CongestionFeedbackMessageTCP();