Landing Recent QUIC changes until 4:14 AM, Oct 28, 2017
Send an explicit QUIC connection close when we idle timeout, but there have been recent unacked tail loss probes. Protected by FLAGS_quic_reloadable_flag_quic_explicit_close_after_tlp.
Merge internal change: 173768088
https://chromium-review.googlesource.com/c/chromium/src/+/749978
Remove timeout code that should have been deprecated.
n/a (Remove useless code)
Merge internal change: 173696357
https://chromium-review.googlesource.com/c/chromium/src/+/749975
Deprecate FLAGS_quic_reloadable_flag_quic_enable_random_padding.
Merge internal change: 173669334
https://chromium-review.googlesource.com/c/chromium/src/+/749974
Extract setting up delete_sessions_alarm_ and adding session to closed_session_list_ out of QuicDispatcher::OnConnectionClose(). Doing so allow subclass to destroy closed sessions in different ways.
Merge internal change: 173543146
https://chromium-review.googlesource.com/c/chromium/src/+/749973
In QUIC, stop calling OnStreamFrameDiscarded on stream cancellation, and canceled stream is immediately closed. Protected by FLAGS_quic_reloadable_flag_quic_remove_on_stream_frame_discarded.
Merge internal change: 173406337
https://chromium-review.googlesource.com/c/chromium/src/+/749824
Remove QuicUnackedPacketMap::RestoreToInFlight, because it's dead.
n/a (Dead code removal)
Merge internal change: 172944396
https://chromium-review.googlesource.com/c/chromium/src/+/750251
Remove AckListenerWrapper and ForceHolAckListener because they're dead code.
n/a (Dead code removal)
Merge internal change: 172939535
https://chromium-review.googlesource.com/c/chromium/src/+/750249
Rename UpdateSequenceNumberLength to UpdatePacketNumberLength in QuicPacketGenerator.
n/a (Method rename)
Merge internal change: 172920458
https://chromium-review.googlesource.com/c/chromium/src/+/750596
Add a DCHECK to ensure implementations of QuicPacketWriter don't return write blocked and then IsWriteBlocked() returns false.
n/a (Add a DCHECK)
Merge internal change: 172802216
https://chromium-review.googlesource.com/c/chromium/src/+/750247
Move QuicTransmissionInfo copying into QuicPendingRetransmission timeout.
n/a (no-op refactor)
Merge internal change: 172784381
https://chromium-review.googlesource.com/c/chromium/src/+/750595
Delete code associated with experiments
Remove experiment code. If any clients in the wild are still sending
the QUIC connection option tags, they will be ignored. Since this
change is only deleting code, it is not flag-protected.
Merge internal change: 172780334
https://chromium-review.googlesource.com/c/chromium/src/+/750244
Remove StreamBufferDeleter from quic_stream_frame.h because it is unused.
n/a (Remove dead code)
Merge internal change: 172750637
https://chromium-review.googlesource.com/c/chromium/src/+/750243
In QUIC, always force client to send connection ID.
Merge internal change: 172733471
https://chromium-review.googlesource.com/c/chromium/src/+/750273
Add a QUIC connection options to increase BBR's ack aggregation window to 20 and 40 RTTs. Protected by FLAGS_quic_reloadable_flag_quic_bbr_ack_aggregation_window.
Merge internal change: 172669632
https://chromium-review.googlesource.com/c/chromium/src/+/750590
Deprecate FLAGS_quic_reloadable_flag_quic_handle_duplicate_trailers
Merge internal change: 172536859
https://chromium-review.googlesource.com/c/chromium/src/+/750586
Fix bug in IETF QUIC crypter nonce construction
bugfix in unused code branch
Merge internal change: 172532210
https://chromium-review.googlesource.com/c/chromium/src/+/750584
Create three new QUIC BBR connection options to modify STARTUP behavior to disable conservation(BBS1), make conservation more aggressive(BBS2) and use slowstart conservation(BBS3). Protected by FLAGS_quic_reloadable_flag_quic_bbr_conservation_in_startup.
Merge internal change: 172501501
https://chromium-review.googlesource.com/c/chromium/src/+/750239
In QUIC, combine QuicPacketPublicHeader and QuicPacketHeader to QuicPacketHeader. No functional change expected.
This change also includes:
1. Replace version vector with version in QuicPacketHeader.
2. Replace public header with just connection id in QuicPublicResetPacket.
3. Define QuicVersionNegotiationPacket with only connection id and version
vector.
Merge internal change: 172457139
https://chromium-review.googlesource.com/c/chromium/src/+/750267
Fully drain the queue once per round in QUIC BBR when the BBR3 connection option is present. Protected by FLAGS_quic_reloadable_flag_quic_bbr_fully_drain_queue.
Merge internal change: 172409681
https://chromium-review.googlesource.com/c/chromium/src/+/750228
Add MaxPacingRate() method to QuicConnection, for internal use.
Merge internal change: 172385426
https://chromium-review.googlesource.com/c/chromium/src/+/750226
Remove support for extremely costly code in QuicAckFrame's PacketNumberQueue AddRange and replace with a QUIC_BUG. Replaces FLAGS_quic_reloadable_flag_quic_frames_deque2 with FLAGS_quic_reloadable_flag_quic_frames_deque3.
Merge internal change: 172374734
https://chromium-review.googlesource.com/c/chromium/src/+/750222
Deprecate use of largest_observed in QuicAckFrame because it's redundant. Protected by FLAGS_quic_reloadable_flag_quic_deprecate_largest_observed.
This is the first of 2 CLs to deprecate QuicAckFrame.largest_observed:
CL-1: Move all reads into a central place, i.e. the LargestAcked() function,
in which our assumption for the deprecation is checked. Use a reloadable flag
to decide which value to return from the function.
CL-2: After the flag is true everywhere(and no issues found), remove the
deprecated_largest_observed field, this is safe because deprecated_largest_observed
is never read when the flag is true. Also remove the reloadable flag.
Merge internal change: 168829354
https://chromium-review.googlesource.com/c/chromium/src/+/750193
Bug:
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I7e7d8210475238c64af830d49e8604c2d3deeabb
Reviewed-on: https://chromium-review.googlesource.com/752510
Commit-Queue: Jana Iyengar <[email protected]>
Reviewed-by: Ryan Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#513701}
diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
index 41da20c..5d1b1dc 100644
--- a/net/quic/test_tools/quic_test_utils.cc
+++ b/net/quic/test_tools/quic_test_utils.cc
@@ -45,7 +45,7 @@
end_of_previous_block = block.limit;
}
- ack.largest_observed = ack.packets.Max();
+ ack.deprecated_largest_observed = ack.packets.Max();
return ack;
}
@@ -57,7 +57,7 @@
QuicAckFrame MakeAckFrameWithAckBlocks(size_t num_ack_blocks,
QuicPacketNumber least_unacked) {
QuicAckFrame ack;
- ack.largest_observed = 2 * num_ack_blocks + least_unacked;
+ ack.deprecated_largest_observed = 2 * num_ack_blocks + least_unacked;
// Add enough received packets to get num_ack_blocks ack blocks.
for (QuicPacketNumber i = 2; i < 2 * num_ack_blocks + 1; i += 2) {
ack.packets.Add(least_unacked + i);
@@ -76,7 +76,7 @@
bool last_frame = i == frames.size() - 1;
const size_t frame_size = framer->GetSerializedFrameLength(
frames[i], max_plaintext_size - packet_size, first_frame, last_frame,
- header.public_header.packet_number_length);
+ header.packet_number_length);
DCHECK(frame_size);
packet_size += frame_size;
}
@@ -92,10 +92,8 @@
DCHECK_NE(0u, length);
// Re-construct the data packet with data ownership.
return new QuicPacket(buffer, length, /* owns_buffer */ true,
- header.public_header.connection_id_length,
- header.public_header.version_flag,
- header.public_header.nonce != nullptr,
- header.public_header.packet_number_length);
+ header.connection_id_length, header.version_flag,
+ header.nonce != nullptr, header.packet_number_length);
}
string Sha1Hash(QuicStringPiece data) {
@@ -169,7 +167,7 @@
}
bool NoOpFramerVisitor::OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) {
+ const QuicPacketHeader& header) {
return true;
}
@@ -660,11 +658,11 @@
QuicTransportVersionVector* versions,
Perspective perspective) {
QuicPacketHeader header;
- header.public_header.connection_id = connection_id;
- header.public_header.connection_id_length = connection_id_length;
- header.public_header.version_flag = version_flag;
- header.public_header.reset_flag = reset_flag;
- header.public_header.packet_number_length = packet_number_length;
+ header.connection_id = connection_id;
+ header.connection_id_length = connection_id_length;
+ header.version_flag = version_flag;
+ header.reset_flag = reset_flag;
+ header.packet_number_length = packet_number_length;
header.packet_number = packet_number;
QuicStreamFrame stream_frame(1, false, 0, QuicStringPiece(data));
QuicFrame frame(&stream_frame);
@@ -704,11 +702,11 @@
QuicTransportVersionVector* versions,
Perspective perspective) {
QuicPacketHeader header;
- header.public_header.connection_id = connection_id;
- header.public_header.connection_id_length = connection_id_length;
- header.public_header.version_flag = version_flag;
- header.public_header.reset_flag = reset_flag;
- header.public_header.packet_number_length = packet_number_length;
+ header.connection_id = connection_id;
+ header.connection_id_length = connection_id_length;
+ header.version_flag = version_flag;
+ header.reset_flag = reset_flag;
+ header.packet_number_length = packet_number_length;
header.packet_number = packet_number;
QuicStreamFrame stream_frame(1, false, 0, QuicStringPiece(data));
QuicFrame frame(&stream_frame);