Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Issue 15937012: Land Recent QUIC changes. (Closed)

Created:
7 years, 6 months ago by ramant (doing other things)
Modified:
7 years, 6 months ago
Reviewers:
wtc, Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, wtc, agl
Visibility:
Public.

Description

Land Recent QUIC changes. Make the FEC group optional by adding a flag to the private headers. Merge internal change: 46979143 Merging changes from chromium CL - 15385004 Merge internal change: 46949614 Removing debug logging from RecordPacketReceived. Seems redundant to log both when we actually receive and when we record it. Merge internal change: 46934210 Logging crypto handshake as a DVLOG rather than DLOG as it hasn't recently been needed to debug test failures. Merge internal change: 46932247 Changing the quic test client to simply not return a stream if not connected. This will hopefully turn server test check-failures into server test failures. Merge internal change: 46932163 QUIC: redo server nonces. Previously, in order to cope with strike-register failures and client clock-sync issues, the server could issue a server nonce to a client. This meant that the server had to remember rejected handshakes so that the server nonce could be matched up. With this change, QUIC servers no longer need to keep track of rejected handshakes. Instead of issuing and remembering nonces, a server will now encrypt them and forget about them. When a server nonce is used to establish freshness for a connection, it will be stored in a per-GFE strike-register. (This strike-register is separate from the one used to process client nonces.) Merge internal change: 46889484 Remove FEC_ENTROPY_FLAG from private flags. Now, FEC packet's entropy flag contain the xor of entropies of the protected packets. Merge internal change: 46889094 Limit the number of times we'll fast-retransmit a given packet using taildrop. Merge internal change: 46754530 Added CommonCertSetsQUIC to anonymous namespace. QUIC: cleanups round two. * Make CommonCertSetsQUIC a Singleton to save on every Config having its own copy. * Rework server config expiry: previously it caused an error at client hello send time. Now it will cause an error at REJ processing time but, if the config expired after we cached it, we will act as if we didn't have a cached server config. * Invalidate the server config cache in the event of a client hello sending failure. This will prevent a bad server config from being cached and poisoning connection attempts for the lifetime of the cache. * Fix a bug in the test code which failed to parse hex chunks in debugging messages correctly. (Thanks to wtc for noticing.) Merge internal change: 46742937 Merging changes from chromium - CL 15074007 Merge internal change: 46710932 Fix a bug in QuicSession's header compression behavior which could lead to infinite loops. Merge internal change: 46694681 Getting 5% our CPU usage back by not calculating SentBandwidth for the tcp congestion control algorithm. Added a TODO to improve that function since it's pretty abysmal: the ToLargerUnits and Subtract overhead alone accounted for 4.5% of the cpu in initial loadtest runs. Merge internal change: 46608880 Adding support for truncated guids in QuicFramer. Merge internal change: 46575819 using our latched write_blocked status to spare us useless system calls. Merge internal change: 46573462 Fixing some crashing issues in the QUIC loadtest, where if a client ever disconnects it never recovers, either crashing trying to create a stream or crashing waiting for a response on a non-existant stream. I'm not sure if we have the same problem for the http/https simple clients but we definitely do for QUIC. Merge internal change: 46562890 Merging changes from chromium - CL 14614006 Merge internal change: 46460427 Merging cleanup changes from chromium CL - 14651009 Merge internal change: 46457093 Fixing a test framework bug for quic: we were munging headers to do https:// for insecure quic resulting in a 404 in the http-only service map. Then disalbing the test since we don't advertise secure SPDY on insecure QUIC. Merge internal change: 46408400 Move QuicConfig from ssl_global_data to quic_dispatcher.cc. Initialize using values from QuicConfigProto and use the max_time_before_crypto_handshake to set the overall connection timeout before crypto handshake finishes. Merge internal change: 46400649 QUIC: implement ChannelIDs. We'll need this for HTTPS. Merge internal change: 46396357 Deleted usage of scoped_ptr_openssl. Added TODO comments for porting ChannelIDSigner and Verifier. R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=203220

Patch Set 1 : openssl bug fixes #

Patch Set 2 : Small bug fixes #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+2250 lines, -816 lines) Patch
M net/net.gyp View 8 chunks +26 lines, -0 lines 0 comments Download
M net/quic/congestion_control/fix_rate_sender.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/fix_rate_sender.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/fix_rate_test.cc View 4 chunks +2 lines, -4 lines 0 comments Download
M net/quic/congestion_control/inter_arrival_sender.h View 1 chunk +4 lines, -1 line 0 comments Download
M net/quic/congestion_control/inter_arrival_sender.cc View 3 chunks +43 lines, -3 lines 0 comments Download
M net/quic/congestion_control/inter_arrival_sender_test.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M net/quic/congestion_control/quic_congestion_control_test.cc View 2 chunks +0 lines, -2 lines 0 comments Download
M net/quic/congestion_control/quic_congestion_manager.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/quic_congestion_manager.cc View 4 chunks +6 lines, -34 lines 0 comments Download
M net/quic/congestion_control/quic_congestion_manager_test.cc View 5 chunks +23 lines, -7 lines 0 comments Download
M net/quic/congestion_control/send_algorithm_interface.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender_test.cc View 6 chunks +4 lines, -6 lines 0 comments Download
M net/quic/crypto/cert_compressor.h View 1 chunk +3 lines, -3 lines 0 comments Download
A net/quic/crypto/channel_id.h View 1 chunk +51 lines, -0 lines 0 comments Download
A net/quic/crypto/channel_id.cc View 1 chunk +14 lines, -0 lines 0 comments Download
A net/quic/crypto/channel_id_nss.cc View 1 chunk +20 lines, -0 lines 0 comments Download
A net/quic/crypto/channel_id_openssl.cc View 1 chunk +80 lines, -0 lines 0 comments Download
A net/quic/crypto/channel_id_test.cc View 1 chunk +49 lines, -0 lines 0 comments Download
M net/quic/crypto/common_cert_set.h View 2 chunks +3 lines, -20 lines 0 comments Download
M net/quic/crypto/common_cert_set.cc View 5 chunks +84 lines, -61 lines 0 comments Download
M net/quic/crypto/common_cert_set_test.cc View 1 chunk +5 lines, -5 lines 0 comments Download
M net/quic/crypto/crypto_handshake.h View 11 chunks +41 lines, -12 lines 0 comments Download
M net/quic/crypto/crypto_handshake.cc View 21 chunks +166 lines, -57 lines 0 comments Download
M net/quic/crypto/crypto_handshake_test.cc View 2 chunks +6 lines, -5 lines 0 comments Download
M net/quic/crypto/crypto_protocol.h View 3 chunks +7 lines, -0 lines 0 comments Download
M net/quic/crypto/crypto_server_config.h View 1 6 chunks +50 lines, -11 lines 0 comments Download
M net/quic/crypto/crypto_server_config.cc View 17 chunks +184 lines, -39 lines 0 comments Download
M net/quic/crypto/crypto_server_test.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M net/quic/crypto/strike_register.h View 4 chunks +49 lines, -11 lines 0 comments Download
M net/quic/crypto/strike_register.cc View 3 chunks +33 lines, -25 lines 0 comments Download
M net/quic/crypto/strike_register_test.cc View 1 13 chunks +57 lines, -21 lines 2 comments Download
M net/quic/quic_client_session_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_config.h View 2 chunks +8 lines, -0 lines 0 comments Download
M net/quic/quic_config.cc View 3 chunks +14 lines, -2 lines 0 comments Download
M net/quic/quic_connection.h View 3 chunks +11 lines, -3 lines 0 comments Download
M net/quic/quic_connection.cc View 11 chunks +59 lines, -16 lines 0 comments Download
M net/quic/quic_connection_helper.cc View 1 chunk +4 lines, -1 line 0 comments Download
M net/quic/quic_connection_helper_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_connection_logger.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/quic_connection_test.cc View 15 chunks +18 lines, -19 lines 0 comments Download
M net/quic/quic_crypto_client_stream.cc View 4 chunks +10 lines, -7 lines 0 comments Download
M net/quic/quic_crypto_client_stream_test.cc View 4 chunks +30 lines, -8 lines 0 comments Download
M net/quic/quic_crypto_server_stream_test.cc View 3 chunks +20 lines, -1 line 0 comments Download
M net/quic/quic_fec_group.h View 1 chunk +2 lines, -1 line 0 comments Download
M net/quic/quic_fec_group.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_fec_group_test.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M net/quic/quic_framer.h View 4 chunks +7 lines, -2 lines 0 comments Download
M net/quic/quic_framer.cc View 18 chunks +133 lines, -64 lines 0 comments Download
M net/quic/quic_framer_test.cc View 75 chunks +292 lines, -149 lines 0 comments Download
M net/quic/quic_http_stream_test.cc View 2 chunks +1 line, -3 lines 0 comments Download
M net/quic/quic_network_transaction_unittest.cc View 4 chunks +0 lines, -4 lines 0 comments Download
M net/quic/quic_packet_creator.h View 2 chunks +8 lines, -2 lines 0 comments Download
M net/quic/quic_packet_creator.cc View 7 chunks +36 lines, -10 lines 0 comments Download
M net/quic/quic_packet_creator_test.cc View 3 chunks +8 lines, -3 lines 0 comments Download
M net/quic/quic_packet_generator.h View 1 chunk +3 lines, -3 lines 0 comments Download
M net/quic/quic_packet_generator.cc View 6 chunks +12 lines, -12 lines 0 comments Download
M net/quic/quic_packet_generator_test.cc View 19 chunks +20 lines, -20 lines 0 comments Download
M net/quic/quic_protocol.h View 11 chunks +47 lines, -22 lines 0 comments Download
M net/quic/quic_protocol.cc View 7 chunks +32 lines, -15 lines 0 comments Download
M net/quic/quic_session.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_session.cc View 3 chunks +19 lines, -11 lines 0 comments Download
M net/quic/quic_session_test.cc View 3 chunks +3 lines, -5 lines 0 comments Download
M net/quic/quic_stream_factory.h View 1 chunk +2 lines, -0 lines 0 comments Download
M net/quic/quic_stream_factory.cc View 2 chunks +5 lines, -5 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 3 chunks +0 lines, -3 lines 0 comments Download
M net/quic/quic_stream_sequencer.h View 1 chunk +2 lines, -2 lines 0 comments Download
M net/quic/quic_stream_sequencer.cc View 2 chunks +5 lines, -5 lines 0 comments Download
M net/quic/quic_time.h View 2 chunks +7 lines, -0 lines 0 comments Download
M net/quic/quic_time.cc View 2 chunks +9 lines, -0 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 1 chunk +2 lines, -2 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M net/quic/reliable_quic_stream_test.cc View 3 chunks +5 lines, -2 lines 0 comments Download
M net/quic/test_tools/crypto_test_utils.h View 3 chunks +14 lines, -0 lines 0 comments Download
M net/quic/test_tools/crypto_test_utils.cc View 1 5 chunks +13 lines, -7 lines 0 comments Download
A net/quic/test_tools/crypto_test_utils_nss.cc View 1 chunk +69 lines, -0 lines 0 comments Download
A net/quic/test_tools/crypto_test_utils_openssl.cc View 1 1 chunk +178 lines, -0 lines 2 comments Download
M net/quic/test_tools/quic_connection_peer.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/test_tools/quic_connection_peer.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M net/quic/test_tools/quic_framer_peer.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/test_tools/quic_framer_peer.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 2 chunks +6 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.cc View 5 chunks +14 lines, -7 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 5 chunks +8 lines, -5 lines 0 comments Download
M net/tools/quic/quic_client.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M net/tools/quic/quic_client_session_test.cc View 1 chunk +6 lines, -6 lines 0 comments Download
M net/tools/quic/quic_dispatcher.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M net/tools/quic/quic_dispatcher_test.cc View 2 chunks +3 lines, -1 line 0 comments Download
M net/tools/quic/quic_epoll_connection_helper_test.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M net/tools/quic/quic_server.cc View 4 chunks +6 lines, -6 lines 0 comments Download
M net/tools/quic/quic_server_session.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/tools/quic/test_tools/quic_test_client.h View 3 chunks +11 lines, -0 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.cc View 7 chunks +38 lines, -21 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
ramant (doing other things)
7 years, 6 months ago (2013-05-29 18:56:15 UTC) #1
ramant (doing other things)
7 years, 6 months ago (2013-05-29 21:37:52 UTC) #2
ramant (doing other things)
Fixed Valgrind errors with initialization. Ran by agl changes to strike_register_test.cc. Fixed the OpenSSL compilation ...
7 years, 6 months ago (2013-05-30 03:17:28 UTC) #3
Ryan Hamilton
LGTM since I have reviewed all the constituent changes.
7 years, 6 months ago (2013-05-30 18:08:50 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/15937012/58001
7 years, 6 months ago (2013-05-30 18:10:58 UTC) #5
commit-bot: I haz the power
Change committed as 203220
7 years, 6 months ago (2013-05-30 21:12:23 UTC) #6
wtc
Patch set 2 LGTM. I only reviewed the diffs between patch sets 1 and 2. ...
7 years, 6 months ago (2013-06-03 17:24:00 UTC) #7
ramant (doing other things)
7 years, 6 months ago (2013-06-14 03:26:16 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/15937012/diff/58001/net/quic/crypto/strike_re...
File net/quic/crypto/strike_register_test.cc (right):

https://codereview.chromium.org/15937012/diff/58001/net/quic/crypto/strike_re...
net/quic/crypto/strike_register_test.cc:22: NonceSetTimeAndOrbit(uint8
nonce[32], unsigned time, const uint8 orbit[8]) {
On 2013/06/03 17:24:00, wtc wrote:
> 
> It is a little surprising that a function named
> "set time and orbit" also overwrites the random bytes in the
> nonce.
> 
> I understand it is convenient to initialize the random bytes
> in this function. How about renaming this function SetNonce
> and adding a comment to explain that these strike register
> tests don't look at the random bytes so this function can
> simply set the random bytes to 0?

Fixed in CL: https://codereview.chromium.org/17040003
Done.

https://codereview.chromium.org/15937012/diff/58001/net/quic/test_tools/crypt...
File net/quic/test_tools/crypto_test_utils_openssl.cc (right):

https://codereview.chromium.org/15937012/diff/58001/net/quic/test_tools/crypt...
net/quic/test_tools/crypto_test_utils_openssl.cc:24:
(void)EVP_MD_CTX_cleanup(ctx);
On 2013/06/03 17:24:00, wtc wrote:
> 
> Nit: on the previous line, the asterisk '*' should be placed
> next to the type.

Fixed in CL https://codereview.chromium.org/17040003

> 
> Just curious: did you add this (void) cast on my suggestion,
> or did some tool or compiler warn that we're not checking
> the return value?

Added the cast on your suggestion. There were no compiler warnings.

Powered by Google App Engine
This is Rietveld 408576698