diff options
author | jokulik <jokulik@chromium.org> | 2016-03-24 15:35:30 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-24 22:37:10 +0000 |
commit | f2bd55c5ab99300b7df0a97b3d0ef16c9a2e584a (patch) | |
tree | a075e02a5d98fce698e53b975674271b17673b3b /net/quic/p2p | |
parent | ef26d8f77ba056704780199893f1ebaf518136de (diff) | |
download | chromium_src-f2bd55c5ab99300b7df0a97b3d0ef16c9a2e584a.zip chromium_src-f2bd55c5ab99300b7df0a97b3d0ef16c9a2e584a.tar.gz chromium_src-f2bd55c5ab99300b7df0a97b3d0ef16c9a2e584a.tar.bz2 |
Landing Recent QUIC changes until 3/18/2016 23:30 UTC
relnote: Add a QUIC end to end test of huge post.
The test code has been added but is currently disabled, due to
net_unittest timeout issues.
Merge internal change: 117596033
https://codereview.chromium.org/1830253002/
relnote: Do not read rejected packet number in PUBLIC RESET packet.
Merge internal change: 117595846
https://codereview.chromium.org/1834683002/
relnote: Trailers are now parsed and stored in QuicSpdyStream.
Moved the TrailersWithoutOffset test to the parent QuicSpdyStreamTest.
Deleted the ReceiveTrailersBeforeHeaders test entirely as it doesn't test useful behavior: it calls OnTrailingHeadersComplete directly but this is only ever called from within QuicSpdyStream (and subclasses).
Switch to the new WriteOrBufferBody method.
Merge internal change: 117582133
https://codereview.chromium.org/1832513004/
relnote: Move QuicSpdyClientStream::SendBody to QuicSpdyStream::WriteBody.
Merge internal change: 117577200
https://codereview.chromium.org/1830043004/
relnote: Make ShouldCreate{Incoming,Outgoing}DynamicStream abstract methods in QuicSpdySession. No behavior change.
Merge internal change: 117574127
https://codereview.chromium.org/1828123003/
relnote: Correctly set cmsg space for timestamping. Additionally, guard against future cmsg overflows. Not flag protected.
The previous calculation for the cmsg space was too small by 8B.
Merge internal change: 117568981
https://codereview.chromium.org/1828953002/
relnote: Creating a basic QUIC packet dumper
Adding newlines to any logged quic frames
Merge internal change: 117543172
https://codereview.chromium.org/1834593002/
relnote: Rename StreamSequencerBuffer to QuicStreamSequencerBuffer to bring it in line with other classes in //gfe/quic. No behavior change.
Merge internal change: 117487896
https://codereview.chromium.org/1831723002/
relnote: Rename QuicSpdyStream::response_trailers_ to received_trailers_. No behavior change.
QuicSpdyStream is used by servers and clients, received
trailers could be request trailers.
Merge internal change: 117483696
https://codereview.chromium.org/1822763002/
relnote: Introduces a QUIC_OVERLAPPING_STREAM_DATA error code, sent when receiving a stream frame containing data that overlaps with buffered data.
Renames QUIC_INVALID_STREAM_FRAME to QUIC_EMPTY_STREAM_FRAME_NO_FIN
Dan pointed out that QUIC_INVALID_STREAM_DATA is also used in the framer, making debugging the sequencer specific errors harder. Also the description of QUIC_INVALID_STREAM_DATA is that "STREAM frame data is malformed." which I don't think is true here: it's not malformed, it's just overlapping.
Merge internal change: 117452324
https://codereview.chromium.org/1830063002/
relnote: Close QUIC connection if any error occurs in QuicStreamSequencerBuffer::OnStreamData. Flag protected behind default enabled --flag_quic_consolidate_onstreamframe_errors
Flag protecting out of paranoia: new behavior is that if ever hit the QUIC_INTERNAL_ERROR branch in OnStreamData then we will now close the connection, whereas we did not before. Additionally a stream frame containing data which overlaps with existing data will now result in QUIC_INVALID_STREAM_DATA being sent on close, instead of QUIC_INVALID_STREAM_FRAME.
Merge internal change: 117446575
https://codereview.chromium.org/1830773002/
relnote: Use SO_TIMESTAMPING for received packet timestamps. Guarded by flag_quic_use_socket_timestamp.
This corrects the RTT for extremely low RTT connections (i.e. RTT < EpollServer
iteration duration). This manifests as a ~1.5Gbps improvement in egress at 100%
GFE CPU in the ustreamer load test, which while not indicative of reality, does
bring it closer to the TCP+SSL load test behavior. In practice, this really
just manages to reduce the number of calls to EpollServer::Now().
This is part of a broader set of changes to enable PACKET_RX_RING and all of
the capabilities it provides, notably PACKET_TIMESTAMPING.
Additionally, in QuicPacketReader's plain recvmsg path, ensure the returned
server IP is valid as is done in the recvmmsg path.
Merge internal change: 117434383
https://codereview.chromium.org/1828863002/
relnote: Remove QuicStreamSequencerBufferInterface that only has a single implementation. No behavior change.
Merge internal change: 117397110
https://codereview.chromium.org/1823803003/
relnote: Report no client nonce as INCHOATE_HELLO_FAILURE.
Merge internal change: 117371001
https://codereview.chromium.org/1820383002/
relnote: Add and plumb QuicReceivedPacket in the packet reception path. Optionally use its timestamp, guarded by gfe2_restart_flag_quic_use_socket_timestamp.
This is part of a broader set of changes to enable socket-level timestamping
and to enable PACKET_RX_RING with all of the capabilities it provides.
Merge internal change: 117362867
https://codereview.chromium.org/1821843003/
relnote: Add QUIC 32 in which FEC related fields are removed from private flags and revived packet list are removed from ACK frame.
Merge internal change: 117278937
https://codereview.chromium.org/1817223002/
relnote: rename QuicSpdyClientStream::headers to response_headers
Merge internal change: 117272106
https://codereview.chromium.org/1822763002/
R=rch@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1832953002
Cr-Commit-Position: refs/heads/master@{#383171}
Diffstat (limited to 'net/quic/p2p')
-rw-r--r-- | net/quic/p2p/quic_p2p_session.cc | 2 | ||||
-rw-r--r-- | net/quic/p2p/quic_p2p_session.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/net/quic/p2p/quic_p2p_session.cc b/net/quic/p2p/quic_p2p_session.cc index 6bd17d6..f165bf7 100644 --- a/net/quic/p2p/quic_p2p_session.cc +++ b/net/quic/p2p/quic_p2p_session.cc @@ -124,7 +124,7 @@ int QuicP2PSession::DoReadComplete(int result) { return result; } - QuicEncryptedPacket packet(read_buffer_->data(), result); + QuicReceivedPacket packet(read_buffer_->data(), result, clock_.Now()); connection()->ProcessUdpPacket(connection()->self_address(), connection()->peer_address(), packet); return OK; diff --git a/net/quic/p2p/quic_p2p_session.h b/net/quic/p2p/quic_p2p_session.h index 734b6e59..1f821d3 100644 --- a/net/quic/p2p/quic_p2p_session.h +++ b/net/quic/p2p/quic_p2p_session.h @@ -10,6 +10,7 @@ #include "base/strings/string_piece.h" #include "net/quic/p2p/quic_p2p_stream.h" #include "net/quic/quic_client_session_base.h" +#include "net/quic/quic_clock.h" #include "net/quic/quic_protocol.h" namespace net { @@ -82,6 +83,9 @@ class NET_EXPORT QuicP2PSession : public QuicSession { ReadState read_state_ = READ_STATE_DO_READ; scoped_refptr<IOBuffer> read_buffer_; + // For recording receipt time + QuicClock clock_; + DISALLOW_COPY_AND_ASSIGN(QuicP2PSession); }; |