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

Issue 1613513003: Early connection migration in QUIC. (Closed)

Created:
4 years, 11 months ago by Jana
Modified:
4 years, 10 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, pauljensen, Fan Yang
Base URL:
https://chromium.googlesource.com/chromium/src.git@home
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

QUIC currently migrates connections on platform notifications. This CL implements an early connection migration, where QUIC aggressively tries to migrate QUIC connections to an alternate network when the current network starts to fail. Network failure is defined as a number of consecutive retransmission timeouts, currently 2. Early migration is expected be useful specifically when an Android user moves from using a WiFi network to a cellular network. Android favors WiFi over cellular connectivity, even poor WiFi is preferred over good cellular connectivity. Commonly, as a user moves out of WiFi range, this preferential behavior causes the application to experience a (possibly extended) period of poor or no connectivity, causing the "parking-lot problem". Early migration should alleviate this problem. NOTE: QUIC does not change connectivity state by bringing network interfaces up or down. QUIC only migrates connections to existing alternative interfaces. BUG=576998 Committed: https://crrev.com/d36ada63f49d89a7a4c4ba91f8618654a7cf1313 Cr-Commit-Position: refs/heads/master@{#373997}

Patch Set 1 #

Patch Set 2 : Rebase and ensure old tests passing. #

Patch Set 3 : Added tests and plumbing for Finch. #

Patch Set 4 : Style nit fixed. #

Total comments: 12

Patch Set 5 : Addresses Ryan's comments. #

Patch Set 6 : Merged internal changes. #

Patch Set 7 : Typo fixed. #

Total comments: 1

Patch Set 8 : Rebased against merged cl. #

Total comments: 12

Patch Set 9 : Comments addressed. #

Patch Set 10 : Comments addressed. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+261 lines, -35 lines) Patch
M chrome/browser/io_thread.h View 1 2 3 4 5 6 7 2 chunks +5 lines, -0 lines 0 comments Download
M chrome/browser/io_thread.cc View 1 2 3 4 5 6 7 3 chunks +10 lines, -0 lines 0 comments Download
M chrome/browser/io_thread_unittest.cc View 1 2 3 4 5 2 chunks +10 lines, -0 lines 0 comments Download
M net/http/http_network_session.h View 1 2 3 4 5 6 7 1 chunk +5 lines, -2 lines 0 comments Download
M net/http/http_network_session.cc View 1 2 3 4 5 6 7 2 chunks +2 lines, -0 lines 0 comments Download
M net/quic/quic_chromium_client_session.h View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_chromium_client_session.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M net/quic/quic_stream_factory.h View 1 2 3 4 5 6 7 2 chunks +5 lines, -0 lines 0 comments Download
M net/quic/quic_stream_factory.cc View 1 2 3 4 5 6 7 8 9 9 chunks +27 lines, -28 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 1 2 3 4 5 6 7 8 6 chunks +192 lines, -5 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 21 (6 generated)
Jana
Ryan: Just a note that I'm doing a separate internal CL for the shared code ...
4 years, 10 months ago (2016-02-02 01:59:13 UTC) #4
Ryan Hamilton
https://codereview.chromium.org/1613513003/diff/60001/net/http/http_network_session.h File net/http/http_network_session.h (right): https://codereview.chromium.org/1613513003/diff/60001/net/http/http_network_session.h#newcode197 net/http/http_network_session.h:197: // the session experiences poor connectivity. There's a bit ...
4 years, 10 months ago (2016-02-02 04:19:59 UTC) #5
Jana
Thanks, Ryan. Happy to come back to this after the shared code lands, but responses ...
4 years, 10 months ago (2016-02-02 06:53:53 UTC) #6
Ryan Hamilton
Good progress! Please ping when you've rebased off of the internal CL.
4 years, 10 months ago (2016-02-02 23:17:54 UTC) #7
Jana
On 2016/02/02 23:17:54, Ryan Hamilton wrote: > Good progress! Please ping when you've rebased off ...
4 years, 10 months ago (2016-02-04 08:20:02 UTC) #8
Ryan Hamilton
Looks good, modulo a diff glitch? https://codereview.chromium.org/1613513003/diff/120001/net/quic/quic_connection.h File net/quic/quic_connection.h (right): https://codereview.chromium.org/1613513003/diff/120001/net/quic/quic_connection.h#newcode141 net/quic/quic_connection.h:141: virtual void OnPathDegrading() ...
4 years, 10 months ago (2016-02-04 20:22:20 UTC) #9
Jana
On 2016/02/04 20:22:20, Ryan Hamilton wrote: > Looks good, modulo a diff glitch? > > ...
4 years, 10 months ago (2016-02-05 00:48:14 UTC) #10
Ryan Hamilton
Sweet! https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc (right): https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc#newcode1271 net/quic/quic_stream_factory.cc:1271: if (!migrate_sessions_early_ || (session->GetNumActiveStreams() == 0)) { nit: ...
4 years, 10 months ago (2016-02-05 01:32:56 UTC) #11
Jana
Thanks Ryan! See below. https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc (right): https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc#newcode1271 net/quic/quic_stream_factory.cc:1271: if (!migrate_sessions_early_ || (session->GetNumActiveStreams() == ...
4 years, 10 months ago (2016-02-05 03:03:31 UTC) #12
Ryan Hamilton
https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc (right): https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc#newcode1271 net/quic/quic_stream_factory.cc:1271: if (!migrate_sessions_early_ || (session->GetNumActiveStreams() == 0)) { On 2016/02/05 ...
4 years, 10 months ago (2016-02-05 17:57:38 UTC) #13
Jana
Hm. I thought I sent this out earlier, but I clearly didn't. https://codereview.chromium.org/1613513003/diff/140001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc ...
4 years, 10 months ago (2016-02-05 22:24:36 UTC) #14
Ryan Hamilton
lgtm
4 years, 10 months ago (2016-02-05 22:39:59 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1613513003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1613513003/180001
4 years, 10 months ago (2016-02-06 01:00:57 UTC) #17
commit-bot: I haz the power
Committed patchset #10 (id:180001)
4 years, 10 months ago (2016-02-06 02:42:15 UTC) #19
commit-bot: I haz the power
4 years, 10 months ago (2016-02-06 02:44:01 UTC) #21
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/d36ada63f49d89a7a4c4ba91f8618654a7cf1313
Cr-Commit-Position: refs/heads/master@{#373997}

Powered by Google App Engine
This is Rietveld 408576698