New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 791884 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Collect QUIC data usage on non-default network

Project Member Reported by zhongyi@chromium.org, Dec 5 2017

Issue description

Add mechanism to collect how many bytes that has been used on the non-default network by QUIC connection migration on path degrading. In the near future, we might want to use this to bound data usage and turn off connection migration on path degrading if data usage exceeds limits provided by application through config. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/73f23ca87f341de9b454bbd4f81e94acd66c4c35

commit 73f23ca87f341de9b454bbd4f81e94acd66c4c35
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Dec 13 18:37:13 2017

Add session config param for max time on non-default network.

Bug: 791884
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Iaa1ccb566116b80d902f0ccd893d3dac08d3258c
Reviewed-on: https://chromium-review.googlesource.com/818190
Reviewed-by: Misha Efimov <mef@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523834}
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/components/cronet/url_request_context_config.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/components/cronet/url_request_context_config_unittest.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/components/network_session_configurator/browser/network_session_configurator.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/components/network_session_configurator/browser/network_session_configurator_unittest.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/http/http_network_session.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/http/http_network_session.h
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/http/http_proxy_client_socket_wrapper_unittest.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_chromium_client_session_test.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_http_stream_test.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_proxy_client_socket_unittest.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_stream_factory.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_stream_factory.h
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_stream_factory_fuzzer.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/chromium/quic_stream_factory_test.cc
[modify] https://crrev.com/73f23ca87f341de9b454bbd4f81e94acd66c4c35/net/quic/core/quic_constants.h

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b1e43fba3492645c1c01dd02656514a4eec91d6

commit 8b1e43fba3492645c1c01dd02656514a4eec91d6
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Dec 13 20:46:30 2017

Add session config param for max number of migrations to non-default
network on path degrading.

Bug: 791884
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I433ff34b5b4e7288cbba10348f3b18066b3c1bb8
Reviewed-on: https://chromium-review.googlesource.com/818476
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523867}
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/components/cronet/url_request_context_config.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/components/cronet/url_request_context_config_unittest.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/components/network_session_configurator/browser/network_session_configurator.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/components/network_session_configurator/browser/network_session_configurator_unittest.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/http/http_network_session.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/http/http_network_session.h
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/http/http_proxy_client_socket_wrapper_unittest.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_chromium_client_session_test.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_http_stream_test.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_proxy_client_socket_unittest.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_stream_factory.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_stream_factory.h
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_stream_factory_fuzzer.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/chromium/quic_stream_factory_test.cc
[modify] https://crrev.com/8b1e43fba3492645c1c01dd02656514a4eec91d6/net/quic/core/quic_constants.h

The last two commits will enable us to bound data usage roughly:
  for each default network, each session will be granted X number of times to migrate to non-default network if default network is OnPathDegrading. And when that happens, the session will be granted up to (2Y-1) seconds on the non-default network for each migration. 

Thus the data usage on non-default network for OnPathDegrading is bounded by X(2Y-1).

You could specify: X and Y with the following configuration params:
X - "max_migrations_to_non_default_network_on_path_degrading":X
Y - "max_time_on_non_default_network_seconds": Y
e.g. X=4, Y=10
"max_migrations_to_non_default_network_on_path_degrading":4,
"max_time_on_non_default_network_seconds": 10

Labels: -Pri-1 Pri-2
Status: Assigned (was: Untriaged)

Sign in to add a comment