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

Issue 696569 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Cronet needs to support disabling ipv6

Project Member Reported by mge...@chromium.org, Feb 27 2017

Issue description

Certain Android phones (Samsung phones including S4, S5, S6 on L and earlier, depending on carrier) blackhole ipv6 packets when the screen is locked, and one Cronet embedder needs its existing connections to continue working when the screen locks. See internal bug b/35210656 for more details.
 

Comment 1 by mge...@chromium.org, Feb 27 2017

Description: Show this description
Labels: -Restrict-View-Google
I don't think there's any confidential here. Samsung phones block ipv6 traffic  is a known issue (https://code.google.com/p/android/issues/detail?id=32662). 

A new CTS test is added in L: https://android.googlesource.com/platform/cts/+/4018b0b/apps/CtsVerifier/src/com/android/cts/verifier/net/ConnectivityScreenOffTestActivity.java.
Project Member

Comment 3 by bugdroid1@chromium.org, Feb 28 2017

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

commit 3eba057d5ac5c97715df1cb89a9ad4d146f7e007
Author: mgersh <mgersh@chromium.org>
Date: Tue Feb 28 18:50:56 2017

Add back "default address family" to HostResolver

Cronet unfortunately needs to provide an option to disable IPv6, because
certain older Android phones blackhole IPv6 packets when the screen is
locked. (Cronet-specific code will come in a separate commit.) This is
mostly a revert of https://codereview.chromium.org/1163903002/ with some
logic rearranged.

BUG= 696569 

Review-Url: https://codereview.chromium.org/2709393007
Cr-Commit-Position: refs/heads/master@{#453651}

[modify] https://crrev.com/3eba057d5ac5c97715df1cb89a9ad4d146f7e007/net/dns/host_resolver.cc
[modify] https://crrev.com/3eba057d5ac5c97715df1cb89a9ad4d146f7e007/net/dns/host_resolver.h
[modify] https://crrev.com/3eba057d5ac5c97715df1cb89a9ad4d146f7e007/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/3eba057d5ac5c97715df1cb89a9ad4d146f7e007/net/dns/host_resolver_impl.h
[modify] https://crrev.com/3eba057d5ac5c97715df1cb89a9ad4d146f7e007/net/dns/host_resolver_impl_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Feb 28 2017

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

commit b3fe808c00e4716ff92a9629c8dea953689ba78e
Author: mgersh <mgersh@chromium.org>
Date: Tue Feb 28 20:09:20 2017

Add Cronet experimental option to disable ipv6

An embedder has a specific problem that can't be worked around in any
other way :(

BUG= 696569 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2711153007
Cr-Commit-Position: refs/heads/master@{#453682}

[modify] https://crrev.com/b3fe808c00e4716ff92a9629c8dea953689ba78e/components/cronet/url_request_context_config.cc
[modify] https://crrev.com/b3fe808c00e4716ff92a9629c8dea953689ba78e/components/cronet/url_request_context_config_unittest.cc
[modify] https://crrev.com/b3fe808c00e4716ff92a9629c8dea953689ba78e/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/b3fe808c00e4716ff92a9629c8dea953689ba78e/net/dns/mapped_host_resolver.h

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 13 2017

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

commit af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4
Author: mgersh <mgersh@chromium.org>
Date: Thu Apr 13 20:19:03 2017

Change Cronet's "disable_ipv6" to "disable_ipv6_on_wifi"

The new option is implemented in HostResolverImpl as an assumption that
IPv6 is unreachable when the current connection is wifi. In order to
make this testable, the tests that used to override IsIPv6Reachable()
now override IsGloballyReachable().

BUG= 696569 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2811183003
Cr-Commit-Position: refs/heads/master@{#464522}

[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/components/cronet/url_request_context_config.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/components/cronet/url_request_context_config_unittest.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/BUILD.gn
[rename] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/base/mock_network_change_notifier.cc
[rename] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/base/mock_network_change_notifier.h
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/fuzzed_host_resolver.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/fuzzed_host_resolver.h
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/host_resolver.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/host_resolver.h
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/host_resolver_impl.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/host_resolver_impl.h
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/host_resolver_impl_unittest.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/mapped_host_resolver.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/dns/mapped_host_resolver.h
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/quic/chromium/network_connection_unittest.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/quic/chromium/quic_network_transaction_unittest.cc
[modify] https://crrev.com/af9a9230d0afc8c8ba34f30a2a12fafc3ae144e4/net/quic/chromium/quic_stream_factory_test.cc

Comment 7 by mge...@chromium.org, Apr 17 2017

Status: Fixed (was: Assigned)
I'm going to call this fixed now, since we have an API that solves the embedder's problem. See issue 697568 for discussion of whether to build this behavior into the net stack by default.

Sign in to add a comment