Infeasible
Status Update
Comments
hb...@gmail.com <hb...@gmail.com> #2
Please take and attach a full Bugreport next time this happens. Thanks.
mi...@gmail.com <mi...@gmail.com> #3
Here you go!
I had to zip it due to the size being over 10MB
I had to zip it due to the size being over 10MB
da...@gmail.com <da...@gmail.com> #4
I have the same issue with my nexus 10.
I think it's a problem with ipv6 (and DNS ?) because when I use a vpn (which 'disables' ipv6) everything works fine.
I think it's a problem with ipv6 (and DNS ?) because when I use a vpn (which 'disables' ipv6) everything works fine.
mi...@gmail.com <mi...@gmail.com> #5
That would make sense, why LTE isn't affected.
ra...@gmail.com <ra...@gmail.com> #6
Same issue on OnePlus One CM12 beta, WiFi throughput is perfect but a ton of latency in apps.
LTE with far less throughput is much faster.
LTE with far less throughput is much faster.
mi...@gmail.com <mi...@gmail.com> #7
That is an accurate description. The WiFi is active and the signal is excellent, unlike some of the other WiFi bugs. However, the amount of latency bogs down any app that accesses the internet.
ra...@gmail.com <ra...@gmail.com> #8
Found a fix - disabled ipv6 on my router.
ipv6 seems broken on Lollipop, using an ipv6 APN breaks mobile data entirely.
ipv6 seems broken on Lollipop, using an ipv6 APN breaks mobile data entirely.
ja...@jperham.com <ja...@jperham.com> #9
[Comment deleted]
Ja...@landiego.com <Ja...@landiego.com> #10
I can confirm this an issue also on my network.
Any networks with an IPv6 AAAA record lags for appoximately 5-10 seconds on wifi before timing out and using IPv4. The wifi "adapter" shows a self assigned fe:: address which I assume is because Lollipop doesn't support DHCPv6.
Any networks with an IPv6 AAAA record lags for appoximately 5-10 seconds on wifi before timing out and using IPv4. The wifi "adapter" shows a self assigned fe:: address which I assume is because Lollipop doesn't support DHCPv6.
mi...@gmail.com <mi...@gmail.com> #11
Disabling ipv6 seems to help, but this is not a long-term solution, obviously.
Ja...@landiego.com <Ja...@landiego.com> #12
Just an update, I set my DHCPv6 server to also allow stateless configuration which fixed the issue. Pure DHCPv6 causes the lag.
sa...@gmail.com <sa...@gmail.com> #13
Confirmed disabling ipv6 fixes this issue.
di...@gmail.com <di...@gmail.com> #14
I can not confirm a IP6 issue (Nexus10, 5.01).
If i switch IP6 support on or off at my router (AVM7490) it has no impact on the (long) delays.
If i switch IP6 support on or off at my router (AVM7490) it has no impact on the (long) delays.
di...@gmail.com <di...@gmail.com> #15
Maybe this is a solution for my issue because i use a router with 2.4 and 5 ghz wifi in parallel with WPA2. Also i get better connectivity on 5 ghz !!!
https://code.google.com/p/android/issues/detail?id=87782
at...@gmail.com <at...@gmail.com> #16
I created a new IPv4-only VLAN & WiFi SSID and connected my Nexus 5 to that, and I continue to see the same lag.
Apparently specifying a local IPv6-enabled DNS server causes the problem, too. As soon as I changed the DHCP server to hand out8.8.8.8/8.8.4.4 as DNS servers, the lag went away.
Apparently specifying a local IPv6-enabled DNS server causes the problem, too. As soon as I changed the DHCP server to hand out
ze...@gmail.com <ze...@gmail.com> #17
I can confirm the behaviour on three different devices after updating to Lollipop.
Nexus 4 (5.0.1)
Nexus 5 (5.0.1)
Nexus 7 2012 (5.0.2)
My home wifi has IPv6 enabled and all devices have a lag before starting to fetch data from a server. Configuring a DNS server outside the network (8.8.8.8/8.8.4.4 ) on each device solves the problem.
The router is a AVM 7490 and setting the DHCP server to assign the DHCPv6 server, prefix and IPv6 addresses (in contrast to only assigning the DHCPv6 which seems to be the default) also seems to solve the problem.
Nexus 4 (5.0.1)
Nexus 5 (5.0.1)
Nexus 7 2012 (5.0.2)
My home wifi has IPv6 enabled and all devices have a lag before starting to fetch data from a server. Configuring a DNS server outside the network (
The router is a AVM 7490 and setting the DHCP server to assign the DHCPv6 server, prefix and IPv6 addresses (in contrast to only assigning the DHCPv6 which seems to be the default) also seems to solve the problem.
di...@gmail.com <di...@gmail.com> #18
I do'nt understand how you set the IPV6 on your 7490. i could not finde the proper options in my 7490. can you post screenshots?
ma...@gmail.com <ma...@gmail.com> #19
I have a Nexus 6 (5.0.1) and have the same issue with extreme wifi latency, but I already use Google's DNS servers and it doesn't make a difference. The DHCP server is configured to hand out 8.8.8.8 and 8.8.4.4, and I've also tried using static settings on the phone, manually entering the DNS servers that way.. no improvement.
di...@gmail.com <di...@gmail.com> #20
I have a nexus10 with 5.02 and a AVM 7490 on a 50MBit VDSL.
if i use 802.11n+g (2.4GHz) with WPA2 i have a slow internet speed.
If i switch to WPA (2.4GHz) or to 811.11n+ac (5GHz) with WPA2 speed is much better!
if i use 802.11n+g (2.4GHz) with WPA2 i have a slow internet speed.
If i switch to WPA (2.4GHz) or to 811.11n+ac (5GHz) with WPA2 speed is much better!
da...@gmail.com <da...@gmail.com> #21
+1 To this issue. Enabled IPv6 on my pfSense Firewall a few days ago (using a Hurricane Electric tunnel) and started suffering this exact same issue. Would it help if I/We were to provide pcaps for this issue? Or is the cause/issue known?
xb...@gmail.com <xb...@gmail.com> #22
Same here on my Galaxy S4 International LTE (i9505). Using a pfSense Firewall powered by a HE.net IPv6 Tunnel. Disabling the DHCPv6 and Router Advertisements worked and my WiFi is buttersmooth now. I can definitely confirm it is IPv6 causing issues for me.
za...@zacpod.com <za...@zacpod.com> #23
Same problem on my network. HTC One M8. Same issue on Stock and ARHD.
Native IP6, using a RT-AC66U(in AP-only mode) behind a Sophos UTM firewall.
Sophos is providing IPv6 advertisement.
Laptops, servers, and other non-lollipop Androids work fine.
On Lollipop, DNS lookups take a long time, and often fail. When I disable IP6 things work fine on the phone. (been using this:https://play.google.com/store/apps/details?id=de.lennartschoch.disableipv6 )
Native IP6, using a RT-AC66U(in AP-only mode) behind a Sophos UTM firewall.
Sophos is providing IPv6 advertisement.
Laptops, servers, and other non-lollipop Androids work fine.
On Lollipop, DNS lookups take a long time, and often fail. When I disable IP6 things work fine on the phone. (been using this:
lo...@google.com <lo...@google.com> #24
The bugreport in #2 is an unexpected configuration. It looks like the network is sending a Router Advertisement that configures IPv6 DNS servers, but not IPv6 addresses.
Because the code that configures the DNS servers is independent from the code that configures the IPv6 addresses, the phone attempts to use the configured DNS servers (2001:4860:4860::8888 and 2001:4860:4860::8844) without having an IPv6 address that can reach them. The DNS lookup code notices the error and retries, but that adds a few seconds to every DNS lookup.
michaeltomes: did you configure the network like this yourself? Or is this behaviour on by default on your wireless router(s)?
Because the code that configures the DNS servers is independent from the code that configures the IPv6 addresses, the phone attempts to use the configured DNS servers (2001:4860:4860::8888 and 2001:4860:4860::8844) without having an IPv6 address that can reach them. The DNS lookup code notices the error and retries, but that adds a few seconds to every DNS lookup.
michaeltomes: did you configure the network like this yourself? Or is this behaviour on by default on your wireless router(s)?
mi...@gmail.com <mi...@gmail.com> #25
I made no adjustments to my router, or phone. The problem simply stopped, even before the Lollipop update. I can't really offer any real suggestions on what caused the initial issue, as I don't know how to reproduce the problem.
lo...@google.com <lo...@google.com> #26
michaeltomes: if you can attach the output of "adb shell dumpsys connectivity" (or another bugreport), that would allow us to determine why the problem is gone.
Anyone else seeing this specific problem:
1. While the problem is happening, run "adb shell dumpsys connectivity" and save the output.
2. Disable IPv6 on your wifi router and reboot it. Wifi will disconnect; reconnect if necessary.
3. If things are still slow, that's another bug.
4. If the problem has gone away, attach the output of the command in step #1.
Anyone else seeing this specific problem:
1. While the problem is happening, run "adb shell dumpsys connectivity" and save the output.
2. Disable IPv6 on your wifi router and reboot it. Wifi will disconnect; reconnect if necessary.
3. If things are still slow, that's another bug.
4. If the problem has gone away, attach the output of the command in step #1.
za...@zacpod.com <za...@zacpod.com> #27
I think I've found part of the issue...
root@htc_m8:/ # getprop | grep net.dns
[net.dns1]: [fda1:51e6:2f7e::1]
[net.dns2]: [2xxx:fxxx:axxx:101::10]
[net.dns3]: [2xxx:fxxx:axxx:101::1]
[net.dns4]: [10.0.0.1]
[net.dns5]: []
For some reason the RADVD supplied DNS entries are playing second fiddle to net.dns1 - which seems to be perma-set to the link-local address with a ::1 at the end. No idea where that is coming from - all the other machines on my network are getting proper DNSs.
Also, when I try to change that address it doesn't stick:
root@htc_m8:/data # setprop net.dns1 2xxx:fxxx:axxx:101::1
root@htc_m8:/data # getprop net.dns1
fda1:51e6:2f7e::1
root@htc_m8:/ # getprop | grep net.dns
[net.dns1]: [fda1:51e6:2f7e::1]
[net.dns2]: [2xxx:fxxx:axxx:101::10]
[net.dns3]: [2xxx:fxxx:axxx:101::1]
[net.dns4]: [10.0.0.1]
[net.dns5]: []
For some reason the RADVD supplied DNS entries are playing second fiddle to net.dns1 - which seems to be perma-set to the link-local address with a ::1 at the end. No idea where that is coming from - all the other machines on my network are getting proper DNSs.
Also, when I try to change that address it doesn't stick:
root@htc_m8:/data # setprop net.dns1 2xxx:fxxx:axxx:101::1
root@htc_m8:/data # getprop net.dns1
fda1:51e6:2f7e::1
da...@gmail.com <da...@gmail.com> #28
Could someone 'adb shell' to their device, and post the output of 'ip a' ? I don't seem to be getting a 'link global' ipv6 address... not sure if this is the issue - my DNS is set for IPv6, but it's not assigned me a valid IPv6 Global IP to the device!
6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 48:5a:3f:61:32:a0 brd ff:ff:ff:ff:ff:ff
inet192.168.0.12/24 brd 192.168.0.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::4a5a:3fff:fe61:32a0/64 scope link
valid_lft forever preferred_lft forever
FWIW; I'm not quite having the issue 36903775 pointed out with the DNS;
[net.dns1]: [2001:4860:4860::8888]
[net.dns2]: [2001:4860:4860::8844]
[net.dns3]: [2001:XXX:XXX:e3f::ff6d]
[net.dns4]: [8.8.8.8]
[net.dns5]: [8.8.4.4]
My pfSense is setup to use '2001:XXX:XXX:e3f::ff6d' as it's primary, and the Google DNS servers as secondary... So it's swapped them around a little.
6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 48:5a:3f:61:32:a0 brd ff:ff:ff:ff:ff:ff
inet
valid_lft forever preferred_lft forever
inet6 fe80::4a5a:3fff:fe61:32a0/64 scope link
valid_lft forever preferred_lft forever
FWIW; I'm not quite having the
[net.dns1]: [2001:4860:4860::8888]
[net.dns2]: [2001:4860:4860::8844]
[net.dns3]: [2001:XXX:XXX:e3f::ff6d]
[net.dns4]: [8.8.8.8]
[net.dns5]: [8.8.4.4]
My pfSense is setup to use '2001:XXX:XXX:e3f::ff6d' as it's primary, and the Google DNS servers as secondary... So it's swapped them around a little.
da...@gmail.com <da...@gmail.com> #29
Arg; above - ' issue 36903775 ' was referring to comment 27 in this thread. Please ignore the link it generated...
gr...@gmail.com <gr...@gmail.com> #30
Hi guys!
I have the same problem...
Running pfSense, RA enabled...
Phone: HTC M8 android 5.0.1
When I turn screen on, it sometimes takes from 5-15 seconds for ipv6 to "initialise" and then it`s working great.
So problem is in fact between screen on and those 15 seconds.
If I disable IPv6 on the router, problem is naturally gone.
I tested this in 3 ipv6 enviroments, all 3 using different solutions (pfsense, openwrt and dd-wrt).
My notebook, pc`s and servers are not affected by this so it must be Android or device radio firmware...
If you need logs, please tell me what you need, I will provide.
BR,
G
I have the same problem...
Running pfSense, RA enabled...
Phone: HTC M8 android 5.0.1
When I turn screen on, it sometimes takes from 5-15 seconds for ipv6 to "initialise" and then it`s working great.
So problem is in fact between screen on and those 15 seconds.
If I disable IPv6 on the router, problem is naturally gone.
I tested this in 3 ipv6 enviroments, all 3 using different solutions (pfsense, openwrt and dd-wrt).
My notebook, pc`s and servers are not affected by this so it must be Android or device radio firmware...
If you need logs, please tell me what you need, I will provide.
BR,
G
da...@gmail.com <da...@gmail.com> #31
Building on this some more; I changed my pfSense Router Advertisement config from 'managed' (assignment via DHCPv6) to 'assisted' (DHCPv6 Server assignment combined with Stateless Autoconfig) and I'm receiving Global link IPs correctly, and everything works as expected.
I'm suspecting this may be related to: #32621
I'm suspecting this may be related to: #32621
da...@gmail.com <da...@gmail.com> #33
gr...@gmail.com <gr...@gmail.com> #34
I have it set on assisted.
Otherwise ofcourse does not work... Duh :)
Otherwise ofcourse does not work... Duh :)
lo...@google.com <lo...@google.com> #35
As regards the problems on pfsense: as stated in #23, this is an unexpected configuration. The IPv6 code is built around the assumption that RDNSS would always be used with autoconfiguration. But pfsense advertises DNS servers in RDNSS without enabling stateless address autoconfiguration.
The fix is likely to be not to use IPv6 nameservers unless there are appropriate IPv6 addresses to contact them with. In the meantime, a workaround is to enable stateless address autoconfiguration.
Note that the net.dnsX system properties are only used for legacy purposes. The actual DNS servers used are the ones listed in the output of "adb shell dumpsys connectivity".
For those seeing this that are not using pfsense: can you provide the output of "adb shell dumpsys connectivity" so we can determine what's going on?
The fix is likely to be not to use IPv6 nameservers unless there are appropriate IPv6 addresses to contact them with. In the meantime, a workaround is to enable stateless address autoconfiguration.
Note that the net.dnsX system properties are only used for legacy purposes. The actual DNS servers used are the ones listed in the output of "adb shell dumpsys connectivity".
For those seeing this that are not using pfsense: can you provide the output of "adb shell dumpsys connectivity" so we can determine what's going on?
gr...@gmail.com <gr...@gmail.com> #36
Hi!
But I do use stateless autoconfig!
I have it set to assisted, that is DHCPv6 + SLAAC.
And it works just fine with all devices except for android.
And again, after I wake the phone up, I have to wait up to 15 seconds, after 15 seconds all is working just great.
Attached dumpsys file.
But I do use stateless autoconfig!
I have it set to assisted, that is DHCPv6 + SLAAC.
And it works just fine with all devices except for android.
And again, after I wake the phone up, I have to wait up to 15 seconds, after 15 seconds all is working just great.
Attached dumpsys file.
lo...@google.com <lo...@google.com> #37
gregecslo: what is the preferred / valid lifetime of the IPv6 addresses in the router advertisement? It's possible that if the device is asleep, the device misses enough RA packets that the IPv6 addresses time out.
gr...@gmail.com <gr...@gmail.com> #38
Thats not the case...
See attached image, lifetimes are huge...
See attached image, lifetimes are huge...
lo...@google.com <lo...@google.com> #39
Next steps would be to check the router lifetime is long enough that it doesn't expire, and if that's not what's happening, provide a tcpdump of the packets that the device emits when you turn the screen on and try to use the network.
gr...@gmail.com <gr...@gmail.com> #40
Hmmm router lifetime was 60 seconds.
I raised it to 7200 seconds.
Will report back, I`m doing testst right now.
I raised it to 7200 seconds.
Will report back, I`m doing testst right now.
lo...@google.com <lo...@google.com> #41
A router lifetime that is too low will cause this to happen, yes. That is because the device drops multicast packets to save power, and possibly because of RA deduplication logic in the firmware (device-specific).
Note that an RA lifetime of 60s likely implies that your network sends RAs significantly more frequently than once every 60s, and you should be aware of possible battery life implications before you do something like that.
Note that an RA lifetime of 60s likely implies that your network sends RAs significantly more frequently than once every 60s, and you should be aware of possible battery life implications before you do something like that.
gr...@gmail.com <gr...@gmail.com> #42
OK I raised it to 7200 seconds.
Now, in my RA config, I have:
AdvSendAdvert on;
MinRtrAdvInterval 5;
MaxRtrAdvInterval 20;
AdvDefaultLifetime 7200;
AdvLinkMTU 1500;
This is not OK?
Now, in my RA config, I have:
AdvSendAdvert on;
MinRtrAdvInterval 5;
MaxRtrAdvInterval 20;
AdvDefaultLifetime 7200;
AdvLinkMTU 1500;
This is not OK?
lo...@google.com <lo...@google.com> #43
MaxRtrAdvInterval 20 means that the device's CPU has to wake up to receive packets at least once every 20 seconds. That can get expensive when the device is on battery. In a network that doesn't change often, something one packet every 15 minutes (e.g., MinRtrAdvInterval 600, MaxRtrAdvInterval 1200) is more appropriate.
gr...@gmail.com <gr...@gmail.com> #44
This only applies for SLAAC right?
DHCPv6 and static assigments are unaffected by those packets I believe?
DHCPv6 and static assigments are unaffected by those packets I believe?
gr...@gmail.com <gr...@gmail.com> #45
[Comment deleted]
ek...@google.com <ek...@google.com> #46
The values in update #43 are safe. The router sending RAs must
respond to RSes from the client, and the clients sends (at least) 3 at
link up time.
If all 3 RSes are missed (or ignored) then yes, there will necessarily
be a delay in configuring a default route (and any SLAAC'd addresses).
(There are separate efforts underway to make RSes more reliable.)
respond to RSes from the client, and the clients sends (at least) 3 at
link up time.
If all 3 RSes are missed (or ignored) then yes, there will necessarily
be a delay in configuring a default route (and any SLAAC'd addresses).
(There are separate efforts underway to make RSes more reliable.)
gr...@gmail.com <gr...@gmail.com> #47
Hmm I tested with value provided in #43 and the link did not come up.
I removed my prevoius comment because I found out, that sometines it does come up and sometimes it doesn`t...
So safer value is 30/60 or my clients can wait like 600 seconds to max 1200 seconds for ipv6 connectivity. This is not good.
I removed my prevoius comment because I found out, that sometines it does come up and sometimes it doesn`t...
So safer value is 30/60 or my clients can wait like 600 seconds to max 1200 seconds for ipv6 connectivity. This is not good.
ek...@google.com <ek...@google.com> #48
It would be good to understand why the client's Router Solicitations might be getting dropped / ignored.
gr...@gmail.com <gr...@gmail.com> #49
I did a capture on pfsense, and RS never came to it.
Actually only where router sends RA client gets IP.
So it seems that phone is not even sending RS`es :S
Actually only where router sends RA client gets IP.
So it seems that phone is not even sending RS`es :S
lo...@google.com <lo...@google.com> #50
Are you sure? The device not sending RS packets is definitely unexpected. I don't know what HTC code does, but stock Android definitely toggles disable_ipv6 when link comes up, and that causes the kernel to send RS packets.
Not sending RS packets forces networks to send RAs frequently, which is bad for battery life.
Not sending RS packets forces networks to send RAs frequently, which is bad for battery life.
gr...@gmail.com <gr...@gmail.com> #51
Yup, confirmed not sending RS.
Situation:
1. I turn on wifi on SSID AP1
2. Android gets ipv6
3. I move 300meters away and connect to AP2 (which has no ipv6)
4. I move back and connect to AP1
5. No more Ipv6 and no RS being sent from android
6. I toggle wifi OFF and back ON
7. NO RS are being sent at all
8. I toggle wifi OFF
9. I restart RA on pfsense
10. Toggle wifi ON
11. IPv6 address obtained.
lol
Situation:
1. I turn on wifi on SSID AP1
2. Android gets ipv6
3. I move 300meters away and connect to AP2 (which has no ipv6)
4. I move back and connect to AP1
5. No more Ipv6 and no RS being sent from android
6. I toggle wifi OFF and back ON
7. NO RS are being sent at all
8. I toggle wifi OFF
9. I restart RA on pfsense
10. Toggle wifi ON
11. IPv6 address obtained.
lol
lo...@google.com <lo...@google.com> #52
Android does not send RSes when roaming on the same network (same SSID, or SSIDs that have been detected to be the same network at layer 3).
gr...@gmail.com <gr...@gmail.com> #53
AP1 and AP2 are not on the same network and also they use completley different ip ranges.
So when I move from AP-1 to AP-N I loose network connectivity if I do not receive RA packet :)
Android breaks internet....again :()
So when I move from AP-1 to AP-N I loose network connectivity if I do not receive RA packet :)
Android breaks internet....again :()
lo...@google.com <lo...@google.com> #54
If the device disconnects and reassociates, then it should send RSes again. If it does not, then that's a bug. I don't think stock Android does that though. Have you tried on a Nexus device?
Before you say things like "Android breaks internet again", please consider the effect of what you are saying on the developers who are taking their time to comment on a public bug tracker like this.
Before you say things like "Android breaks internet again", please consider the effect of what you are saying on the developers who are taking their time to comment on a public bug tracker like this.
gr...@gmail.com <gr...@gmail.com> #55
What about us, who test things in OUR FREE time and help you to deliver better product? Devs are paid to do this, we are not. Public bug tracker is more beneficial to you than us, sorry. But OK, I said it in a joke, please do not take it too seriously :)
Back to the topic...
I will try to get some devices different from my M8 and test it.
Back to the topic...
I will try to get some devices different from my M8 and test it.
gr...@gmail.com <gr...@gmail.com> #56
OK, tried with SGS 4, sam problem also with nexus 7 (2013 - wifi edition).
Tried with 4.4.4 and 5.0.1 and 5.0.2
So this is Android issue and it`s not device specific in my opinion.
Maybe even kernel related...
Tried with 4.4.4 and 5.0.1 and 5.0.2
So this is Android issue and it`s not device specific in my opinion.
Maybe even kernel related...
lo...@google.com <lo...@google.com> #57
Can you provide a tcpdump and bugreport taken on the Nexus 7? A good command to use would be "tcpdump -ni any -s0 -U -w /sdcard/icmp6.pcap icmp6"
gr...@gmail.com <gr...@gmail.com> #58
OK, I can do it tomorrow.
Where can I upload it, or send it via mail?
I don`t want to share it here :)
Where can I upload it, or send it via mail?
I don`t want to share it here :)
gr...@gmail.com <gr...@gmail.com> #59
Hmmm I tried with more android devices (not nexus family) in an enviroment with Cisco router.
Same issue occured.
Cisco is sending RA every 200 seconds and when I moved away from AP and lost signal and then came back, I had to wait 170 seconds to obtain IPv6 address. So it is crucial that Android devices get router expiration around 30 minutes and 1 RA packet every minute or else ipv6 on them is unusable.
I also tested with Windows 8.1 tablet.
When I cam back to AP IPv6 was autoconfigured in about 6 seconds.
Same issue occured.
Cisco is sending RA every 200 seconds and when I moved away from AP and lost signal and then came back, I had to wait 170 seconds to obtain IPv6 address. So it is crucial that Android devices get router expiration around 30 minutes and 1 RA packet every minute or else ipv6 on them is unusable.
I also tested with Windows 8.1 tablet.
When I cam back to AP IPv6 was autoconfigured in about 6 seconds.
gr...@gmail.com <gr...@gmail.com> #60
And a comment on battery drain...
I come home from work and don`t turn the screen on. I eat my lunch :) and then I turn the screen on and check if I have IPv6 address. No I have not. So my phone is dissmissing all the RAs sent to it therefore no battery drain from that. After 30 seconds it gets RA with default router lifetime of 1800 seconds and I have absoluteley no problems with browsing. RAs are sent between 30 and 60 seconds and phone is not awake bacause of them (at least battery in android settings says so).
I come home from work and don`t turn the screen on. I eat my lunch :) and then I turn the screen on and check if I have IPv6 address. No I have not. So my phone is dissmissing all the RAs sent to it therefore no battery drain from that. After 30 seconds it gets RA with default router lifetime of 1800 seconds and I have absoluteley no problems with browsing. RAs are sent between 30 and 60 seconds and phone is not awake bacause of them (at least battery in android settings says so).
lo...@google.com <lo...@google.com> #61
You can email the tcpdump to me.
As to why you lose your IPv6 address, I don't understand how that happens. The IPv6 address lifetime is 86400 seconds, so it should stay around for that long.
What happens on some devices is that the wifi chipset is configured the wifi chipset to drop all RAs when the screen is off. They likely do this to avoid battery impact. This is not a good thing to do, because it causes IPv6 TCP connections to get stuck. This in turn causes things like the MCS connection to stop working, so for example, the device won't receive hangouts messages when the screen is off. That'shttps://code.google.com/p/android/issues/detail?id=32662
Recent Nexus devices do not do this - they drop some of the RAs, but (depending on the RA timers) they should receive enough RAs to maintain a working IPv6 connection.
As to why you lose your IPv6 address, I don't understand how that happens. The IPv6 address lifetime is 86400 seconds, so it should stay around for that long.
What happens on some devices is that the wifi chipset is configured the wifi chipset to drop all RAs when the screen is off. They likely do this to avoid battery impact. This is not a good thing to do, because it causes IPv6 TCP connections to get stuck. This in turn causes things like the MCS connection to stop working, so for example, the device won't receive hangouts messages when the screen is off. That's
Recent Nexus devices do not do this - they drop some of the RAs, but (depending on the RA timers) they should receive enough RAs to maintain a working IPv6 connection.
gr...@gmail.com <gr...@gmail.com> #62
I actually don`t loose it.
When I come home from work, it connects to my home wifi (which has ipv6+ipv4).
And I do not turn on screen for 30 minutes. When I turn it on, I don`t have ipv6 UNTIL first RA packet arrives. Then it works normally.
So my conclusion is, that android/htc/wifi firmware are dropping every RA packet when screen is off, that equals only ipv4 connectivity (so nothing is broken) and absolutely NO battery drain.
But this is not expected behaviour...
When I come home from work, it connects to my home wifi (which has ipv6+ipv4).
And I do not turn on screen for 30 minutes. When I turn it on, I don`t have ipv6 UNTIL first RA packet arrives. Then it works normally.
So my conclusion is, that android/htc/wifi firmware are dropping every RA packet when screen is off, that equals only ipv4 connectivity (so nothing is broken) and absolutely NO battery drain.
But this is not expected behaviour...
gr...@gmail.com <gr...@gmail.com> #63
I can`t do tcpdump, nexus is not rooted...
But I made a video that proves, that HTC M8 and Nexus 7 suffer from exactly the same behavior.
Turned wifi off on both.
Set ra packets to 600/1200
Rebooted router
Turned WiFi on on both devices
HTC and Nexus 7 both failed to obtain IPv6 address...
Regards,
Greg
But I made a video that proves, that HTC M8 and Nexus 7 suffer from exactly the same behavior.
Turned wifi off on both.
Set ra packets to 600/1200
Rebooted router
Turned WiFi on on both devices
HTC and Nexus 7 both failed to obtain IPv6 address...
Regards,
Greg
gr...@gmail.com <gr...@gmail.com> #64
And the video: http://youtu.be/ucajgbY-05M
I captured traffic on my pfsense and NO RS came in from one or other device.
I captured traffic on my pfsense and NO RS came in from one or other device.
gr...@gmail.com <gr...@gmail.com> #65
I testet with Nexus7, HTC M8, HTC Desire500 and HTC Desire 610.
Findings:
1. All phones IGNORE RA packets when in sleep mode (display turned off) and I can see lifetime decreasing, when I turn phone on lifetime counter resets as it should.
2. There is NO batter drain from RA packets on all 4 devices, because in sleep RA packets are being discarded (see number 1)
3. When I wake devices up, NONE of them sends Router Solicitation (RS) message to router and if RA send interval is set too high all 4 devices DO NOT OBTAIN IPv6 ADDRESS until they receive RA
4. When RA interval set to min 3 max 10 all 4 devices obtain IPv6 address NO LATER than in 10 seconds
There is no and I mean NO configuration error on my router as windows tablets perform exactly as they should (they send RS, they listen to RA while asleep etc...)
Other people have exactly the same issue see:
https://code.google.com/p/android/issues/detail?id=32662
Not sending RS packet is NOT device manufacturer fault (in sense of radio firmware) but it`s SW fault, either Android or kernel that is used.
Not receiving RA while in sleep IS device manufacturer fault and it`s a radio problem.
But if device would send RS EVERY TIME when it`s woken up, we wouldn`t be discussing in this thread would we :)
So to conclude, Nexus 7 is your device, you are the manufacturer and you have a product that don`t work well in IPv6 enviroment. It is not receiving RA while in sleep mode nor it is sending RS when woken up.
RA packet however can be adjusted.
I set min to 3 and max advert to 10 seconds and all lifetimes (route lifetime, dnssl lifetime, dnssearch lifetime etc) to at least 7200 seconds. This actually make the problem (almost) go away.
I would very much like to hear your comment as dev and appreciate some concrete answer, as this testing took me quite a lot of time :)
Regards,
G
Findings:
1. All phones IGNORE RA packets when in sleep mode (display turned off) and I can see lifetime decreasing, when I turn phone on lifetime counter resets as it should.
2. There is NO batter drain from RA packets on all 4 devices, because in sleep RA packets are being discarded (see number 1)
3. When I wake devices up, NONE of them sends Router Solicitation (RS) message to router and if RA send interval is set too high all 4 devices DO NOT OBTAIN IPv6 ADDRESS until they receive RA
4. When RA interval set to min 3 max 10 all 4 devices obtain IPv6 address NO LATER than in 10 seconds
There is no and I mean NO configuration error on my router as windows tablets perform exactly as they should (they send RS, they listen to RA while asleep etc...)
Other people have exactly the same issue see:
Not sending RS packet is NOT device manufacturer fault (in sense of radio firmware) but it`s SW fault, either Android or kernel that is used.
Not receiving RA while in sleep IS device manufacturer fault and it`s a radio problem.
But if device would send RS EVERY TIME when it`s woken up, we wouldn`t be discussing in this thread would we :)
So to conclude, Nexus 7 is your device, you are the manufacturer and you have a product that don`t work well in IPv6 enviroment. It is not receiving RA while in sleep mode nor it is sending RS when woken up.
RA packet however can be adjusted.
I set min to 3 and max advert to 10 seconds and all lifetimes (route lifetime, dnssl lifetime, dnssearch lifetime etc) to at least 7200 seconds. This actually make the problem (almost) go away.
I would very much like to hear your comment as dev and appreciate some concrete answer, as this testing took me quite a lot of time :)
Regards,
G
lo...@google.com <lo...@google.com> #66
Not sending RS packets when the screen turns on is working as intended. The reason is that sending RS when the screen turns on is not a real fix. When the screen turns on, then either the device already has current, unexpired IPv6 connectivity, or its IPv6 connectivity has expired. If it has connectivity, there's no point sending an RS. If connectivity expired, then apps on the device were already suffering connectivity issues, which is a problem. Instead, the device should receive RAs while asleep.
Here's how it's supposed to work.
- When you connect to a wifi network, the device should send up to 3 RS packets, receive an RA, and configure IPv6.
- When the device is asleep, it should receive RAs occasionally - likely around one RA every 3. These should refresh the timers of the default route and the IPv6 addresses, so the device does not lose IPv6 connectivity.
- When you disassociate, IPv4 and IPv6 configuration is cleared.
- When you reconnect, the device sends RS packets again.
On a device that is behaving like this, receiving RA packets every few seconds *will* impact battery life and is not recommended.
As you say, not receiving multicast RA when the device is asleep ishttps://code.google.com/p/android/issues/detail?id=32662 . The fix to that is in wifi firmware, so it's device-dependent. Unfortunately I think the Nexus 7 does not have that fix.
On my Nexus 7, I do see RS packets go out when I connect to wifi, as expected, even if I turn on wifi and immediately turn the screen off. What I see is:
$ adb shell /data/tcpdump -ni wlan0 "icmp6 or port 67 or port 68"
...
12:47:30.067462 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from d8:50:e6:88:75:10, length 315
12:47:30.086078 IP 192.168.1.1.67 > 192.168.1.115.68: BOOTP/DHCP, Reply, length 300
12:47:30.327258 IP6 :: > ff02::1:ff88:7510: ICMP6, neighbor solicitation, who has fe80::da50:e6ff:fe88:7510, length 24
12:47:31.327808 IP6 fe80::da50:e6ff:fe88:7510 > ff02::2: ICMP6, router solicitation, length 16
12:47:31.372241 IP6 fe80::225:36ff:fe89:7500 > ff02::1: ICMP6, router advertisement, length 56
The fact that you don't see the RSes is strange. We set accept_ra=2 on all interfaces. When wifi is disconnected, it has disable_ipv6=1, and when it connects, we set disable_ipv6 to 0, which causes the kernel to send an RS.
Here's how it's supposed to work.
- When you connect to a wifi network, the device should send up to 3 RS packets, receive an RA, and configure IPv6.
- When the device is asleep, it should receive RAs occasionally - likely around one RA every 3. These should refresh the timers of the default route and the IPv6 addresses, so the device does not lose IPv6 connectivity.
- When you disassociate, IPv4 and IPv6 configuration is cleared.
- When you reconnect, the device sends RS packets again.
On a device that is behaving like this, receiving RA packets every few seconds *will* impact battery life and is not recommended.
As you say, not receiving multicast RA when the device is asleep is
On my Nexus 7, I do see RS packets go out when I connect to wifi, as expected, even if I turn on wifi and immediately turn the screen off. What I see is:
$ adb shell /data/tcpdump -ni wlan0 "icmp6 or port 67 or port 68"
...
12:47:30.067462 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from d8:50:e6:88:75:10, length 315
12:47:30.086078 IP 192.168.1.1.67 > 192.168.1.115.68: BOOTP/DHCP, Reply, length 300
12:47:30.327258 IP6 :: > ff02::1:ff88:7510: ICMP6, neighbor solicitation, who has fe80::da50:e6ff:fe88:7510, length 24
12:47:31.327808 IP6 fe80::da50:e6ff:fe88:7510 > ff02::2: ICMP6, router solicitation, length 16
12:47:31.372241 IP6 fe80::225:36ff:fe89:7500 > ff02::1: ICMP6, router advertisement, length 56
The fact that you don't see the RSes is strange. We set accept_ra=2 on all interfaces. When wifi is disconnected, it has disable_ipv6=1, and when it connects, we set disable_ipv6 to 0, which causes the kernel to send an RS.
gr...@gmail.com <gr...@gmail.com> #67
Have you seen the video?
Nexus 7 is unable to connect to network AFTER wifi is turned on.
It still sometimes loose ipv6 connectivity but I`ve set timers to really high (like 7 days) and route and dns to infinity.
Nexus 7 is unable to connect to network AFTER wifi is turned on.
It still sometimes loose ipv6 connectivity but I`ve set timers to really high (like 7 days) and route and dns to infinity.
gr...@gmail.com <gr...@gmail.com> #68
And btw, if so many devices have this bug, isn `t it safer to send RA`s on 10 seconds interval to assure they have connectivity?
lo...@google.com <lo...@google.com> #69
I did see the video, but I can't reproduce the problem. My N7 does send RS packets. Without a tcpdump taken on the device it's hard to say conclusively whether a) the device is not sending them, or b) the device is sending them and the network is dropping them before they get to the router.
Before you say that the problem is obviously a) because other OSes don't have that problem, bear in mind that network hardware does sometimes do strange things. For example, my home router responds to all DAD probes that have a traffic class value of 0x00, because it expects the traffic class value to be 0xb8 (presumably because that's what some popular OS sends them with).
Configuring the network to send RA packets every few seconds is definitely not recommended, because it will have substantial battery impact on devices that don't drop RAs. In your case I would suggest:
1. Figure out why the RS packets are getting lost.
2. Send RAs with long lifetimes (e.g., hours). Note that you cannot set an infinite router lifetime; the maximum you can set in the packet is 65535, and the maximum allowed by the standard is 9000 (so implementations might choose to drop values > 9000, or limit them to 9000).
Before you say that the problem is obviously a) because other OSes don't have that problem, bear in mind that network hardware does sometimes do strange things. For example, my home router responds to all DAD probes that have a traffic class value of 0x00, because it expects the traffic class value to be 0xb8 (presumably because that's what some popular OS sends them with).
Configuring the network to send RA packets every few seconds is definitely not recommended, because it will have substantial battery impact on devices that don't drop RAs. In your case I would suggest:
1. Figure out why the RS packets are getting lost.
2. Send RAs with long lifetimes (e.g., hours). Note that you cannot set an infinite router lifetime; the maximum you can set in the packet is 65535, and the maximum allowed by the standard is 9000 (so implementations might choose to drop values > 9000, or limit them to 9000).
gr...@gmail.com <gr...@gmail.com> #70
Confirmed that both devices are not sending them.
One plus is sending them for example...
One plus is sending them for example...
ek...@google.com <ek...@google.com> #71
You cannot confirm that RSes are not sent unless you tcpdump on the device. You can only confirm that any such packets are not received.
gr...@gmail.com <gr...@gmail.com> #72
I did tcpdump and I see no: ICMP6, router solicitation,
lo...@google.com <lo...@google.com> #73
You ran a tcpdump on the device? If so, please attach it or email it to me personally.
gr...@gmail.com <gr...@gmail.com> #74
Hello!
I have to apologize on blaming Android for IPv6 not being fully functional on my devices.
I found root cause of it and also implemented a fix and now it is working as intended. It took me weekend to test as I have multiple networks in multiple VLANs and different SSIDs.
Main problem was my OpenWRT wireless router, cause and remediation can be found here:https://forum.openwrt.org/viewtopic.php?id=56048
In addition, my HTC M8 was indeed not sending RS packets, I also found out why. It was kernel (not stock) problem. I recompiled kernel, flashed it to M8 and now it is sending RS packets as it should be.
There is still problem with periodic RA packets not being accepted by device while in sleep mode, but this is different story, this is HTC`s problem.
Thanks for everything "lore...@google.com" !
BR,
Greg
I have to apologize on blaming Android for IPv6 not being fully functional on my devices.
I found root cause of it and also implemented a fix and now it is working as intended. It took me weekend to test as I have multiple networks in multiple VLANs and different SSIDs.
Main problem was my OpenWRT wireless router, cause and remediation can be found here:
In addition, my HTC M8 was indeed not sending RS packets, I also found out why. It was kernel (not stock) problem. I recompiled kernel, flashed it to M8 and now it is sending RS packets as it should be.
There is still problem with periodic RA packets not being accepted by device while in sleep mode, but this is different story, this is HTC`s problem.
Thanks for everything "lore...@google.com" !
BR,
Greg
ek...@google.com <ek...@google.com> #75
Good news! Thanks for letting us know.
What other open issues remain for this bug?
What other open issues remain for this bug?
gr...@gmail.com <gr...@gmail.com> #76
I would say just device manufacturer specifics.
Like discarding all multicast when in sleep mode, but this is very device specific...
Ye olde Nexus 7 has this problem, newer models don`t. And all the HCT phones I tested have this issue too...
Can Google do something about that? Report it to HTC, as they will simply disregard me as end user :)
Like discarding all multicast when in sleep mode, but this is very device specific...
Ye olde Nexus 7 has this problem, newer models don`t. And all the HCT phones I tested have this issue too...
Can Google do something about that? Report it to HTC, as they will simply disregard me as end user :)
at...@gmail.com <at...@gmail.com> #77
Unfortunately, there must be multiple issues.
I also run pfSense, in a multi-VLAN, multi-SSID environment.
I have confirmed, with multiple Nexus devices, that IPv6 "just works" until I flag Lollipop, then it immediately breaks.
Since I'm flashing factory images, I don't think I can run tcpdump from the device.
But there definitely is a regression of some sort in 5.0.
I also run pfSense, in a multi-VLAN, multi-SSID environment.
I have confirmed, with multiple Nexus devices, that IPv6 "just works" until I flag Lollipop, then it immediately breaks.
Since I'm flashing factory images, I don't think I can run tcpdump from the device.
But there definitely is a regression of some sort in 5.0.
lo...@google.com <lo...@google.com> #78
athompso99: have you read the earlier comments around pfsense in this bug, and does the suggested fix work?
at...@gmail.com <at...@gmail.com> #79
Yes, I've read them.
No, I haven't tried them yet, see below.
I have, however, observed the same behavior behind an OpenBSD router, and a
Linux-based router. I haven't had the opportunity to test IOS or JunOS
with Lollipop and IPv6.
Can you explain yet what client behavior changed as of 5.0, such that on
the same hardware+firmware, merely updating Android causes a loss of IPv6
functionality? The Nexus 5 in particular is my canonical test case: 4.x
works as expected, 5.x fails (and requires client-specific workarounds).
If 5.0 merely breaks bug-compatibility, due to some new consensus on how
IPv6 works, and multiple open-source projects now need to fix *their*
networking stacks to accommodate some new understanding of IPv6, I'll open
those bug reports upstream (at least for pfSense/FreeBSD and OpenBSD).
But "tweak settings on your router" is, so far, a pretty bad (and not
always possible) workaround for a broken client, not a fix or resolution.
Yes, I may wind up making those tweaks to accommodate one broken client
(and thank you to everyone here who persisted long enough to find that
workaround!) but as far as I can see there's still a client-side regression
of some sort that *only* affects Android 5.0+.
In related testing by a colleague, adjusting RA timers was confirmed to
have negative results for some other devices. I'll have to get details,
and find out where I can safely make this adjustment.
As a network engineer, "it must be the network" just doesn't fly when
*nothing changed* except the client, sorry...
-Adam
No, I haven't tried them yet, see below.
I have, however, observed the same behavior behind an OpenBSD router, and a
Linux-based router. I haven't had the opportunity to test IOS or JunOS
with Lollipop and IPv6.
Can you explain yet what client behavior changed as of 5.0, such that on
the same hardware+firmware, merely updating Android causes a loss of IPv6
functionality? The Nexus 5 in particular is my canonical test case: 4.x
works as expected, 5.x fails (and requires client-specific workarounds).
If 5.0 merely breaks bug-compatibility, due to some new consensus on how
IPv6 works, and multiple open-source projects now need to fix *their*
networking stacks to accommodate some new understanding of IPv6, I'll open
those bug reports upstream (at least for pfSense/FreeBSD and OpenBSD).
But "tweak settings on your router" is, so far, a pretty bad (and not
always possible) workaround for a broken client, not a fix or resolution.
Yes, I may wind up making those tweaks to accommodate one broken client
(and thank you to everyone here who persisted long enough to find that
workaround!) but as far as I can see there's still a client-side regression
of some sort that *only* affects Android 5.0+.
In related testing by a colleague, adjusting RA timers was confirmed to
have negative results for some other devices. I'll have to get details,
and find out where I can safely make this adjustment.
As a network engineer, "it must be the network" just doesn't fly when
*nothing changed* except the client, sorry...
-Adam
lo...@google.com <lo...@google.com> #80
I don't think anyone said "it must be the network".
As for the question of what changed: if the problem is the same as the problems with pfsense reported by others (which we won't know for sure until more investigation is done), then the explanation is in comment #23 : what changed is that Android now supports RDNSS. The device is getting (and using) an IPv6 DNS server via RDNSS without an IPv6 address that it can use to talk to it, and that delays DNS queries.
This is a bug and it will be fixed, but I don't know when that will be. Workarounds are change the network configuration to enable SLAAC (so the device gets an IPv6 address) or change the network configuration to disable RDNSS (or set the lifetime to zero).
Note that this configuration (RDNSS without SLAAC) is not expected to be common. Most IPv6 networks (~all residential ISP deployments, all cellular deployments) have SLAAC enabled and do not hit this issue.
As for the question of what changed: if the problem is the same as the problems with pfsense reported by others (which we won't know for sure until more investigation is done), then the explanation is in
This is a bug and it will be fixed, but I don't know when that will be. Workarounds are change the network configuration to enable SLAAC (so the device gets an IPv6 address) or change the network configuration to disable RDNSS (or set the lifetime to zero).
Note that this configuration (RDNSS without SLAAC) is not expected to be common. Most IPv6 networks (~all residential ISP deployments, all cellular deployments) have SLAAC enabled and do not hit this issue.
gr...@gmail.com <gr...@gmail.com> #81
Hi!
Can you post your /var/etc/radvd.conf here from pfSense?
Can you post your /var/etc/radvd.conf here from pfSense?
su...@gmail.com <su...@gmail.com> #82
So just to be clear, this issue will be one day resolved? This is affecting all my android devices and is making websurfing nearly impossible on any Comcast devices. There is no option to disable IPV6 address with Comcast, but if I disable IPV6 in my Android device after having to root it and install an app to disable IPV6 temporarily it reaffirms that this bug is a pretty serious issue.
su...@gmail.com <su...@gmail.com> #83
[Comment deleted]
su...@gmail.com <su...@gmail.com> #84
At least offering an option to disable IPV6 from the network options would help reduce the severity of this issue till IPV6 is fixed in Lollipop. I realize this specific thread has not had a huge influx of reports, but I don't think most people realize their slow Lollipop wifi is related to this bug, this really isn't a minor issue as there are thousands of threads from users complaining of slow wifi, but with no idea of the actual cause. Not everyone has the option to change their gateway to no longer use IPV6 and you really shouldn't expect your users to become network admins to resolve an issue created by an update. I'm not trying to be a dick, but this is a very low priority ticket for a very big issue. Literally every android user with Comcast service has no option to disable IPV6...
su...@gmail.com <su...@gmail.com> #85
[Comment deleted]
tw...@gmail.com <tw...@gmail.com> #86
I'm using IPv6 on Sonic.net with 6rd on my OpenWRT router. My Windows 8.1 desktop and Linux server configure themselves for IPv6 just fine, as does my Chromebook, and as did my phone on KitKat (ipv6-test.com shows no issues besides DNS6, and there are no connectivity problems).
Once I upgraded to Lollipop on my Verizon LG G3, major connectivity problems began at home. Internet access stopped working over IPv6 which caused some sync problems and delays.
I can ping local IPv6 devices, but not outside ones (cannot ping6www.google.com , for example; no replies). The WLAN interface picks up an IPv6 address but does not pick up an IPv6 default gateway ("ip -f inet6 route" does not show a default route).
I tried the fix in #74's link, to disable igmp snooping on all my OpenWRT interfaces, to no effect. I don't use pfSense or know what that is. My IPv6 configuration is simple and just works, except with Lollipop...
Once I upgraded to Lollipop on my Verizon LG G3, major connectivity problems began at home. Internet access stopped working over IPv6 which caused some sync problems and delays.
I can ping local IPv6 devices, but not outside ones (cannot ping6
I tried the fix in #74's link, to disable igmp snooping on all my OpenWRT interfaces, to no effect. I don't use pfSense or know what that is. My IPv6 configuration is simple and just works, except with Lollipop...
lo...@google.com <lo...@google.com> #87
If you are experiencing IPv6 issues with Lollipop, please post the output of "adb shell dumpsys connectivity", or if possible, a full bugreport.
su...@gmail.com <su...@gmail.com> #88
There is no If about this, if you do a simple google search for this issue, you'll find that this is affecting the majority of Lollipop devices not a minority. I'll do my best to get you such a dump, but I hope you understand its issues like this that cause iOS to continue to dominate the US market and drive customers away from Android. Especially when Devs try to pretend its not an issue caused by the OS, but rather by the network which operates perfectly for all other devices connected iOS included. Once I have a dump for you I'll post it here as an attached file.
tw...@gmail.com <tw...@gmail.com> #89
Another bug report pointed out that routing is handled through rules and tables, so I posted the output of related commands to route.txt. See bugreport.txt.7zip for the full output of the bugreport command, connectivity.txt for the full output of "dumpsys connectivity", ip.txt for the output of ip addr. No time to redact anything...
Traceroute doesn't make it anywhere. Cannot ping outside of local addresses. Can ping router and nearby devices.
Traceroute doesn't make it anywhere. Cannot ping outside of local addresses. Can ping router and nearby devices.
tw...@gmail.com <tw...@gmail.com> #90
More info: when I was experimenting with this, I left my phone alone for a while and then turned off DHCPv6 on my router. When I happened to test it again, it was able to ping6 www.google.com successfully! (Must have been 5 minutes or more of sitting there.)
... but I was not able to replicate this. I wasn't able to get it to work again at all, DHCPv6 on or off. I *do* know that DHCPv6 is not supported by Android Lollipop, as it is, but my other devices are able to get addresses with or without it. For testing, I tried turning off DHCPv6 on those devices and on the router and they continued to work after restarting their interfaces.
"ping6 -I wlan0 fe80::32b5:c2ff:feb9:819e" (that's the default route) returns "ping: sendmsg: Invalid argument" repeatedly.
Running the same thing on my server, but eth0 instead of wlan0, gets successful replies.
"ping6 fe80::32b5:c2ff:feb9:819e" just returns "connect: Invalid argument" (same as on my server).
I can successfully ping6:
- my router
- my desktop
- my server
...But nothing on the wider Internet.
It seems like a route issue, maybe related to the bizarre way Android handles IPv6 routes (see route.txt).
Just to repeat that this connectivity issue is not present in any other device or Android version I've used. Practically instant IPv6 connectivity on my Chromebook, with or without DHCPv6 turned on at the router.
... but I was not able to replicate this. I wasn't able to get it to work again at all, DHCPv6 on or off. I *do* know that DHCPv6 is not supported by Android Lollipop, as it is, but my other devices are able to get addresses with or without it. For testing, I tried turning off DHCPv6 on those devices and on the router and they continued to work after restarting their interfaces.
"ping6 -I wlan0 fe80::32b5:c2ff:feb9:819e" (that's the default route) returns "ping: sendmsg: Invalid argument" repeatedly.
Running the same thing on my server, but eth0 instead of wlan0, gets successful replies.
"ping6 fe80::32b5:c2ff:feb9:819e" just returns "connect: Invalid argument" (same as on my server).
I can successfully ping6:
- my router
- my desktop
- my server
...But nothing on the wider Internet.
It seems like a route issue, maybe related to the bizarre way Android handles IPv6 routes (see route.txt).
Just to repeat that this connectivity issue is not present in any other device or Android version I've used. Practically instant IPv6 connectivity on my Chromebook, with or without DHCPv6 turned on at the router.
su...@gmail.com <su...@gmail.com> #91
I haven't grabbed the logs requested yet, but I rooted my device, installed a new rom as well as an app to disable IPV6. Once IPV6 is disabled page now load instantly again instead of taking 5 minutes to load as they do normally since Lollipop. To me this proves conclusively that the issue exists. My major issue here is that it would appear the Devs don't care that they released such a major bug in a public release like this and feel the burden to prove the issue is on the customer. All that tells me is that Android is doomed and we should be looking to other mobile OS's for the future. If major bugs like this can make it to full release and users have to put in the time to find the bug for the devs than there is no way this OS will ever survive the test of time. I never see iOS devs fighting their customers like this to prove an issue exists and get it patched especially when there are dozens of threads online complaining of slow wifi issues with their newly updated devices which were just fine on the exact same networks prior to the update.
su...@gmail.com <su...@gmail.com> #92
I also tested this on 2 other roms, one being a GPE edition based rom and another Sense based rom for my HTC M8 device. All 3 tested roms gave the same results while connected to an IPV6 enabled network. In all testing IPV6 disabling resolved the connection issue.
su...@gmail.com <su...@gmail.com> #93
NetworkFactories for:
usbnet
WIFI
Telephony
Active default network: 101
Current Networks:
NetworkAgentInfo{ ni{[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "FBI_Surveillance_Van-5", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]} network{101} lp{{InterfaceName: wlan0 LinkAddresses: [192.168.1.149/24,fe80::2ee:bdff:febc:d00f/64,2601:46:c601:6d82:2ee:bdff:febc:d00f/64,2601:46:c601:6d82:505d:d28b:c447:c1ac/64, ] Routes: [fe80::/64 -> :: wlan0,::/0 -> fe80::68ee:96ff:feb3:919a wlan0,2601:46:c601:6d82::/64 -> :: wlan0,192.168.1.0/24 -> 0.0.0.0 wlan0,0.0.0.0/0 -> 192.168.1.1 wlan0,] DnsAddresses: [2001:558:feed::1,2001:558:feed::2,75.75.75.75,75.75.76.76,] Domains: null MTU: 0 TcpBufferSizes: 524288,1048576,2097152,262144,524288,1048576}} nc{[ Transports: WIFI Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps]} Score{60} validated{true} created{true} explicitlySelected{false} }
Requests:
NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
NetworkRequest [ id=2, legacyType=-1, [] ]
Lingered:
MultiCastFilterRule:
Network Requests:
Listen from uid/pid:10005/1170 for NetworkRequest [ id=2, legacyType=-1, [] ]
Request from uid/pid:1000/992 for NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
mActiveDefaultNetwork: 1 CONNECTED/CONNECTED
mLegacyTypeTracker:
0 none
1 NetworkAgentInfo [WIFI () - 101] CONNECTED/CONNECTED
2 none
3 none
4 none
5 none
7 none
10 none
11 none
12 none
13 none
14 none
15 none
51 none
52 none
53 none
54 none
55 none
56 none
NetworkTransitionWakeLock is currently not held.
It was last requested for
mUpstreamIfaceTypes:
1
7
9
4
Tether state:
wlan0 - InitialState - Available - lastError =0
ConnSrv Change History: 5/140 entries (current 0x71245d ms - Sun May 10 16:21:53 EDT 2015)
[0xcb8d] [Sun May 10 14:19:10 EDT 2015] (992/1000) 2: , 1 null CONNECTING
[0xce10] [Sun May 10 14:19:11 EDT 2015] (992/1000) 2: , 1 null CONNECTING
[0xce29] [Sun May 10 14:19:11 EDT 2015] (992/1000) 2: , 1 CONNECTING DISCONNECTED
[0xd1d2] [Sun May 10 14:19:12 EDT 2015] (992/1000) 2: , 1 CONNECTING CONNECTED
[0xd214] [Sun May 10 14:19:12 EDT 2015] (992/1000) 3: , 1 CONNECTED
usbnet
WIFI
Telephony
Active default network: 101
Current Networks:
NetworkAgentInfo{ ni{[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "FBI_Surveillance_Van-5", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]} network{101} lp{{InterfaceName: wlan0 LinkAddresses: [
Requests:
NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
NetworkRequest [ id=2, legacyType=-1, [] ]
Lingered:
MultiCastFilterRule:
Network Requests:
Listen from uid/pid:10005/1170 for NetworkRequest [ id=2, legacyType=-1, [] ]
Request from uid/pid:1000/992 for NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
mActiveDefaultNetwork: 1 CONNECTED/CONNECTED
mLegacyTypeTracker:
0 none
1 NetworkAgentInfo [WIFI () - 101] CONNECTED/CONNECTED
2 none
3 none
4 none
5 none
7 none
10 none
11 none
12 none
13 none
14 none
15 none
51 none
52 none
53 none
54 none
55 none
56 none
NetworkTransitionWakeLock is currently not held.
It was last requested for
mUpstreamIfaceTypes:
1
7
9
4
Tether state:
wlan0 - InitialState - Available - lastError =0
ConnSrv Change History: 5/140 entries (current 0x71245d ms - Sun May 10 16:21:53 EDT 2015)
[0xcb8d] [Sun May 10 14:19:10 EDT 2015] (992/1000) 2: , 1 null CONNECTING
[0xce10] [Sun May 10 14:19:11 EDT 2015] (992/1000) 2: , 1 null CONNECTING
[0xce29] [Sun May 10 14:19:11 EDT 2015] (992/1000) 2: , 1 CONNECTING DISCONNECTED
[0xd1d2] [Sun May 10 14:19:12 EDT 2015] (992/1000) 2: , 1 CONNECTING CONNECTED
[0xd214] [Sun May 10 14:19:12 EDT 2015] (992/1000) 3: , 1 CONNECTED
su...@gmail.com <su...@gmail.com> #94
If you'd like to give me a tutorial on pulling a full bug report for you, I'll be happy to make a go of it, but at this point I'm pretty upset that its requiring this much work on the part of the user to make your OS functional.
tw...@gmail.com <tw...@gmail.com> #95
I don't think there is any question that the issue exists. I don't have enough info to speculate as to why it is not affecting everyone or if perhaps it IS affecting everyone who uses IPv6.
I don't know if I did it correctly, but I just opened up Terminal Emulator, typed su to become superuser, then: bugreport > /sdcard/bugreport.txt and zipped it up.
I don't know if I did it correctly, but I just opened up Terminal Emulator, typed su to become superuser, then: bugreport > /sdcard/bugreport.txt and zipped it up.
lo...@google.com <lo...@google.com> #96
twiliterate, thanks for the bugreport. It looks like the device configured IPv6 as expected: it got two global IPv6 address from prefix 2602:243:XXXX:XXXX::, a DNS server from the same prefix, and a link-local route. The router is responding to ND That all looks normal.
"ping6 -I" does not work due to a kernel bug, but I'd expect ping6 without -I to work. traceroute6 should also work, if it's included.
Things to try:
1. ping6 2602:243:XXXX:XXXX::1 # Your DNS server; replace XXXX with real address.
2. ping6 -c 3 2001:4860:4860::8888 # Internet destination (Google DNS)
3. traceroute6 -n 2001:4860:4860::8888
4. time ping -c1 $RANDOM-v4.metric.gstatic.com # Time a DNS query
5. ip -6 route get 2001:4860:4860::8888 # Check that routing rules are working
Given your earlier statements, I'd expect that the answers will be #1 works, #2 times out, #3 falls into the void, #4 works. #5 should say that packets are sent out through wlan0 to the link-local address of the router.
If so, then the next step would be to run a tcpdump to see what is happening to the packets once they leave the device. "tcpdump -i wlan0 -s0 -U -w /sdcard/wlan0.pcap ip6" on the device would be best, but a tcpdump on the openwrt box might also help.
"ping6 -I" does not work due to a kernel bug, but I'd expect ping6 without -I to work. traceroute6 should also work, if it's included.
Things to try:
1. ping6 2602:243:XXXX:XXXX::1 # Your DNS server; replace XXXX with real address.
2. ping6 -c 3 2001:4860:4860::8888 # Internet destination (Google DNS)
3. traceroute6 -n 2001:4860:4860::8888
4. time ping -c1 $
5. ip -6 route get 2001:4860:4860::8888 # Check that routing rules are working
Given your earlier statements, I'd expect that the answers will be #1 works, #2 times out, #3 falls into the void, #4 works. #5 should say that packets are sent out through wlan0 to the link-local address of the router.
If so, then the next step would be to run a tcpdump to see what is happening to the packets once they leave the device. "tcpdump -i wlan0 -s0 -U -w /sdcard/wlan0.pcap ip6" on the device would be best, but a tcpdump on the openwrt box might also help.
lo...@google.com <lo...@google.com> #97
sublimefly: can you also try the troubleshooting steps above? (Replace the DNS server in step #1 with the Comcast DNS server, 2001:558:feed::1). A bugreport would also help.
su...@gmail.com <su...@gmail.com> #98
I'll try those steps after my son goes to sleep. Attached is a bug report.
lo...@google.com <lo...@google.com> #99
sublimefly, that doesn't look like a full bugreport. It should be several MB long, not ~200k. Something like "adb bugreport > bugreport.txt" should work.
su...@gmail.com <su...@gmail.com> #100
Emailed it to you as the max size per comment is 10MB and its around 16MB.
tw...@gmail.com <tw...@gmail.com> #101
No, there is something about ping6 and the fe80 address that causes a problem. It doesn't work on my server, either, without the -I. The only reason I knew about the -I thing is because I looked it up after I had the problem on my server as well.
---
1. Sonic.net does not currently have an IPv6-addressed DNS server, so none of my devices are configured with one. Could this be related?
---
2. I started a "ping6www.google.com " on my phone when I got home today and it worked better than expected, since I actually got some success. This sort of on/off connectivity matches my experience with Lollipop a month or two ago, before I went back to KitKat (and now am back to Lollipop again).
icmp_seq 1-4 successful
icmp_seq 38-65 successful
icmp_seq 96-139 successful
icmp_seq 155-199 successful
icmp_seq 215-258 successful
icmp_seq 275-295 successful, then CTRL-C
---www.google.com ping statistics ---
295 packets transmitted, 186 received, 36% packet loss, time 294451ms
The packet loss actually has continued to improve as time goes on. It's at about 18% loss right now. Still not good, but better than 100%. (Meanwhile, there's 0% loss on my desktop computer and server.)
---
3. When IPv6 is up (aka a ping6 to an outside address is currently succeeding), I get this:
# traceroute6 -n 2001:4860:4860::8888
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 16 byte packets
1 2602:243:2009:d080::1 1.497 ms 0.787 ms 0.811 ms
2 2602:24b:8179:10::1 26.425 ms 47.872 ms 33.875 ms
3 2001:5a8:5:e::1 29.358 ms 34.561 ms 30.266 ms
4 2001:5a8:5:3::2 33.276 ms 31.301 ms 38.037 ms
5 2001:1868:a200::1 29.293 ms 28.896 ms 28.952 ms
6 2001:504:d::1f 27.919 ms 28.256 ms 27.657 ms
7 2001:4860::1:0:21 28.630 ms 29.058 ms 38.494 ms
8 2001:4860::8:0:6117 54.396 ms 51.418 ms 50.644 ms
9 2001:4860::8:0:61e1 46.880 ms 46.306 ms 48.242 ms
10 2001:4860::8:0:924b 51.021 ms 55.563 ms 57.145 ms
11 2001:4860::2:0:90fe 55.010 ms 53.689 ms 50.248 ms
12 * * *
13 2001:4860:4860::8888 55.003 ms 2602:243:2009:d080:a939:7467:cbc2:b197 2991.983 ms !H 3000.079 ms !H
Otherwise, I get this:
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 16 byte packets
1 2602:243:2009:d080:a939:7467:cbc2:b197 2991.695 ms !H 2998.979 ms !H 2602:243:2009:d080::1 1.924 ms
---
4. The success of this one is unrelated to whether IPv6 is up or down, which confused me at first, but then I realized this is just an IPv4 ping. It always succeeded. Here's one sample:
# time ping -c1 $RANDOM-v4.metric.gstatic.com
PING29738-v4.metric.gstatic.com (216.58.192.46) 56(84) bytes of data.
64 bytes fromnuq04s30-in-f14.1e100.net (216.58.192.46): icmp_seq=1 ttl=53 time=27.8 ms
---29738-v4.metric.gstatic.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 27.857/27.857/27.857/0.000 ms
0m0.15s real 0m0.00s user 0m0.01s system
---
5. Interesting, here. Results are consistently different depending on whether IPv6 is up or not (ping6 to the Internet is succeeding or not). I ran:
while true; do sleep 1; ip -6 route get 2001:4860:4860::8888; done
Then, I watched the results alongside a ping6 2001:4860:4860::8888 and it was clear that the gaps in the ping corresponded with a change in the route.
When IPv6 is up and working (ping6 packets succeed), I get:
2001:4860:4860::8888 from :: via fe80::32b5:c2ff:feb9:819e dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
When IPv6 is not working (ping6 packet loss), I get:
2001:4860:4860::8888 from :: via 2001:4860:4860::8888 dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
---
I don't have the tcpdump PIE binary for Android so I'd need to find that.
---
1. Sonic.net does not currently have an IPv6-addressed DNS server, so none of my devices are configured with one. Could this be related?
---
2. I started a "ping6
icmp_seq 1-4 successful
icmp_seq 38-65 successful
icmp_seq 96-139 successful
icmp_seq 155-199 successful
icmp_seq 215-258 successful
icmp_seq 275-295 successful, then CTRL-C
---
295 packets transmitted, 186 received, 36% packet loss, time 294451ms
The packet loss actually has continued to improve as time goes on. It's at about 18% loss right now. Still not good, but better than 100%. (Meanwhile, there's 0% loss on my desktop computer and server.)
---
3. When IPv6 is up (aka a ping6 to an outside address is currently succeeding), I get this:
# traceroute6 -n 2001:4860:4860::8888
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 16 byte packets
1 2602:243:2009:d080::1 1.497 ms 0.787 ms 0.811 ms
2 2602:24b:8179:10::1 26.425 ms 47.872 ms 33.875 ms
3 2001:5a8:5:e::1 29.358 ms 34.561 ms 30.266 ms
4 2001:5a8:5:3::2 33.276 ms 31.301 ms 38.037 ms
5 2001:1868:a200::1 29.293 ms 28.896 ms 28.952 ms
6 2001:504:d::1f 27.919 ms 28.256 ms 27.657 ms
7 2001:4860::1:0:21 28.630 ms 29.058 ms 38.494 ms
8 2001:4860::8:0:6117 54.396 ms 51.418 ms 50.644 ms
9 2001:4860::8:0:61e1 46.880 ms 46.306 ms 48.242 ms
10 2001:4860::8:0:924b 51.021 ms 55.563 ms 57.145 ms
11 2001:4860::2:0:90fe 55.010 ms 53.689 ms 50.248 ms
12 * * *
13 2001:4860:4860::8888 55.003 ms 2602:243:2009:d080:a939:7467:cbc2:b197 2991.983 ms !H 3000.079 ms !H
Otherwise, I get this:
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 16 byte packets
1 2602:243:2009:d080:a939:7467:cbc2:b197 2991.695 ms !H 2998.979 ms !H 2602:243:2009:d080::1 1.924 ms
---
4. The success of this one is unrelated to whether IPv6 is up or down, which confused me at first, but then I realized this is just an IPv4 ping. It always succeeded. Here's one sample:
# time ping -c1 $
PING
64 bytes from
---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 27.857/27.857/27.857/0.000 ms
0m0.15s real 0m0.00s user 0m0.01s system
---
5. Interesting, here. Results are consistently different depending on whether IPv6 is up or not (ping6 to the Internet is succeeding or not). I ran:
while true; do sleep 1; ip -6 route get 2001:4860:4860::8888; done
Then, I watched the results alongside a ping6 2001:4860:4860::8888 and it was clear that the gaps in the ping corresponded with a change in the route.
When IPv6 is up and working (ping6 packets succeed), I get:
2001:4860:4860::8888 from :: via fe80::32b5:c2ff:feb9:819e dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
When IPv6 is not working (ping6 packet loss), I get:
2001:4860:4860::8888 from :: via 2001:4860:4860::8888 dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
---
I don't have the tcpdump PIE binary for Android so I'd need to find that.
ek...@google.com <ek...@google.com> #102
The existence of "default dev wlan0 metric 1024" in the wlan0 routing table may be problematic.
Can you delete that route and try again? In the meantime, I'll have to look to see where in stock Android such a thing might be added.
Can you delete that route and try again? In the meantime, I'll have to look to see where in stock Android such a thing might be added.
tw...@gmail.com <tw...@gmail.com> #103
Here's a pcap taken from my OpenWRT router:
# tcpdump -i br-lan -s0 -U -w /tmp/loss.pcap ip6
I then used Wireshark to export just the packets with the MAC address of my phone based on this filter:
eth.addr == 34:xx:xx:xx:19:cb
The first ~15 seconds, there was no IPv6 connectivity for my phone. The latter ~15 seconds, connectivity had returned. I tried to make it a roughly even split.
pcap is attached.
# tcpdump -i br-lan -s0 -U -w /tmp/loss.pcap ip6
I then used Wireshark to export just the packets with the MAC address of my phone based on this filter:
eth.addr == 34:xx:xx:xx:19:cb
The first ~15 seconds, there was no IPv6 connectivity for my phone. The latter ~15 seconds, connectivity had returned. I tried to make it a roughly even split.
pcap is attached.
lo...@google.com <lo...@google.com> #104
twiliterate: what ek said, "default dev wlan0" is going to cause problems. The tcpdump confirms that Android believes 2001:4860:4860::8888 is directly connected and is trying to reach it directly, as opposed to via the default router.
I wonder if this is happening due to some strange/invalid router advertisement packet coming from some other device on the network. Is the linux server on the same network as the Android device? If so, can you install rdisc6 on the linux server and attach the output of "rdisc6 eth0"?
I wonder if this is happening due to some strange/invalid router advertisement packet coming from some other device on the network. Is the linux server on the same network as the Android device? If so, can you install rdisc6 on the linux server and attach the output of "rdisc6 eth0"?
tw...@gmail.com <tw...@gmail.com> #105
I just noticed a typo in my route.txt in #89. I wrote the second command as "ip -6 route show wlan0". The actual command used was "ip -6 route show table wlan0".
Anyway, yes, I just tried removing "default dev wlan0 metric 1024" using:
ip -6 route del table wlan0 default dev wlan0 metric 1024
This does nothing at all the first time, since there seem to be two entries or something. When I try to re-add it, it gives an error that it already existed:
RTNETLINK answers: File exists
This behavior was confirmed by testing again after rebooting the device, and indeed, the first removal results in no change, with the second removal causing the following issues...
I started to get these messages from these processes:
[ ping6 2001:4860:4860::8888 ]
ping: sendmsg: Network is unreachable
[ ip -6 route get 2001:4860:4860::8888 ]
unreachable 2001:4860:4860::8888 from :: dev lo table 0 proto kernel src 2600:1010:805f:a34c:e0be:ac76:1b79:f318 metric 4294967295 error -101 hoplimit 255
I add it back using:
ip -6 route add table wlan0 default dev wlan0 metric 1024
...which results in the typical route failure while IPv6 connectivity starts its few-minute journey to being restored:
2001:4860:4860::8888 from :: via 2001:4860:4860::8888 dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
When it does come back the next time, I only need to remove the default dev wlan0 route *once* to break things. ;-)
Anyway, yes, I just tried removing "default dev wlan0 metric 1024" using:
ip -6 route del table wlan0 default dev wlan0 metric 1024
This does nothing at all the first time, since there seem to be two entries or something. When I try to re-add it, it gives an error that it already existed:
RTNETLINK answers: File exists
This behavior was confirmed by testing again after rebooting the device, and indeed, the first removal results in no change, with the second removal causing the following issues...
I started to get these messages from these processes:
[ ping6 2001:4860:4860::8888 ]
ping: sendmsg: Network is unreachable
[ ip -6 route get 2001:4860:4860::8888 ]
unreachable 2001:4860:4860::8888 from :: dev lo table 0 proto kernel src 2600:1010:805f:a34c:e0be:ac76:1b79:f318 metric 4294967295 error -101 hoplimit 255
I add it back using:
ip -6 route add table wlan0 default dev wlan0 metric 1024
...which results in the typical route failure while IPv6 connectivity starts its few-minute journey to being restored:
2001:4860:4860::8888 from :: via 2001:4860:4860::8888 dev wlan0 src 2602:243:2009:d080:a939:7467:cbc2:b197 metric 0
cache
When it does come back the next time, I only need to remove the default dev wlan0 route *once* to break things. ;-)
tw...@gmail.com <tw...@gmail.com> #106
Oops, let me correct what I said before! I got a little confused.
When I entered the command:
ip -6 route del table wlan0 default dev wlan0 metric 1024
...and I said there was "no change," that was when IPv6 connectivity was already working properly -- and then running it a second time broke it. But for some reason I didn't try it when it wasn't working, which I'm sure was when you wanted me to try it...
Now, I tried it when IPv6 connectivity was *not* already working (which is when it makes sense to try), and it seemed to resolve the problem! I'm watching it now and verifying this, but I wanted to correct my last statement before anyone thinks too hard about it.
When I entered the command:
ip -6 route del table wlan0 default dev wlan0 metric 1024
...and I said there was "no change," that was when IPv6 connectivity was already working properly -- and then running it a second time broke it. But for some reason I didn't try it when it wasn't working, which I'm sure was when you wanted me to try it...
Now, I tried it when IPv6 connectivity was *not* already working (which is when it makes sense to try), and it seemed to resolve the problem! I'm watching it now and verifying this, but I wanted to correct my last statement before anyone thinks too hard about it.
tw...@gmail.com <tw...@gmail.com> #107
OK, so to correct myself again from earlier, getting this message when trying to add the "default dev wlan0" route back:
RTNETLINK answers: File exists
... was *not* because "default dev wlan0" was already there. It was because another default gateway was already there -- the second (correct) one, seen in my route.txt. I drew the wrong conclusion at first. Running the deletion a second time must have ignored my specificity and deleted the other default gateway as well.
Back to the topic, I can confirm that removing "default dev wlan0" from the wlan0 DOES resolve the problem until Wi-Fi is next reconnected. Yay, progress.
I've attached the results of "rdisc eth0" on the server, which is on the same network as phone.
RTNETLINK answers: File exists
... was *not* because "default dev wlan0" was already there. It was because another default gateway was already there -- the second (correct) one, seen in my route.txt. I drew the wrong conclusion at first. Running the deletion a second time must have ignored my specificity and deleted the other default gateway as well.
Back to the topic, I can confirm that removing "default dev wlan0" from the wlan0 DOES resolve the problem until Wi-Fi is next reconnected. Yay, progress.
I've attached the results of "rdisc eth0" on the server, which is on the same network as phone.
tw...@gmail.com <tw...@gmail.com> #108
I took a tcpdump which should give a good picture of what goes on with my phone when it first connects to Wi-Fi, then tries to get on IPv6 (which takes a while), then succeeds and then eventually drops out for a bit and comes back.\
With my OpenWRT router, I captured all traffic involving my phone, starting with Wi-Fi off and then turning it on and using ping6 until I got replies, waited until the replies stopped, and then waited until they started again.
I used this command to take the capture:
tcpdump -i br-lan -s0 -U -w /tmp/etherhost.pcap "ether host 34:xx:xx:xx:19:cb"
I then used Wireshark to remove all TCP packets, and then to remove a couple of EAPOL and work-related DNS packets. Everything else is included.
With my OpenWRT router, I captured all traffic involving my phone, starting with Wi-Fi off and then turning it on and using ping6 until I got replies, waited until the replies stopped, and then waited until they started again.
I used this command to take the capture:
tcpdump -i br-lan -s0 -U -w /tmp/etherhost.pcap "ether host 34:xx:xx:xx:19:cb"
I then used Wireshark to remove all TCP packets, and then to remove a couple of EAPOL and work-related DNS packets. Everything else is included.
lo...@google.com <lo...@google.com> #109
sublimefly: skimming the bugreport suggests that IPv6 is configured correctly. I did notice that the router lifetime is low (178 seconds). A low lifetime won't break things, but it does suggest that the device might be missing Router Advertisements, and therefore might experience IPv6 connectivity issues when the screen is off.
Can you post the output of the commands posted in #96 and #97?
Can you post the output of the commands posted in #96 and #97?
tw...@gmail.com <tw...@gmail.com> #110
There's a "fix" floating around which is a script that simply disables IPv6 entirely, and runs at a regular interval (i.e. minutely) by cron. I don't like the idea of turning off IPv6, especially for a new version of Android.
Thanks to your help, for me, to solve the problem without losing IPv6 capability, the script can contain this:
#/system/bin/sh
ip -6 route del table wlan0 default dev wlan0 via :: 2>/dev/null || true
(the "2>/dev/null || true" is just to squelch errors)
Right now, I'm trialing a Tasker profile instead, which runs that command as root every time Wi-Fi is connected.
Again, thanks for all the help so far. I'll try and watch this bug to see if a cause is found or if more info is needed.
Thanks to your help, for me, to solve the problem without losing IPv6 capability, the script can contain this:
#/system/bin/sh
ip -6 route del table wlan0 default dev wlan0 via :: 2>/dev/null || true
(the "2>/dev/null || true" is just to squelch errors)
Right now, I'm trialing a Tasker profile instead, which runs that command as root every time Wi-Fi is connected.
Again, thanks for all the help so far. I'll try and watch this bug to see if a cause is found or if more info is needed.
lo...@google.com <lo...@google.com> #111
twiliterate: if you run "rdisc6 eth0" on the linux server, does the broken route reappear on the device?
In the bugreport I see that the system does try to add a default route on wlan0, but it (correctly) specifies the gateway:
05-10 11:17:10.622 - SND -> {49 network route add 100 wlan0 ::/0 fe80::32b5:c2ff:feb9:819e}
It's possible that somewhere in the code this next hop gets lost and the system ends up asking the kernel to configure a route without a next-hop, resulting in the broken "default dev wlan0 metric 1024" route.
In the bugreport I see that the system does try to add a default route on wlan0, but it (correctly) specifies the gateway:
05-10 11:17:10.622 - SND -> {49 network route add 100 wlan0 ::/0 fe80::32b5:c2ff:feb9:819e}
It's possible that somewhere in the code this next hop gets lost and the system ends up asking the kernel to configure a route without a next-hop, resulting in the broken "default dev wlan0 metric 1024" route.
tw...@gmail.com <tw...@gmail.com> #112
The broken route does not reappear when I run "rdisc6 eth0" on the server -- at least not according to "ip -6 route show table wlan0". I've tried many times in a row, now.
The first time I tried running "rdisc6 eth0" on the server, earlier this evening, the phone's IPv6 connectivity *was* interrupted at just about the same time, but I was not able to replicate that and I still can't, so I figured it was a coincidence.
The first time I tried running "rdisc6 eth0" on the server, earlier this evening, the phone's IPv6 connectivity *was* interrupted at just about the same time, but I was not able to replicate that and I still can't, so I figured it was a coincidence.
lo...@google.com <lo...@google.com> #113
That's unfortunate. Do you happen to have access to a Nexus device to see if the problem occurs there too? Without access to LG's source code it may not be possible to get to the bottom of this issue, though if you're willing to help we might be able to determine what's going on by running strace on netd.
When the problem is occurring (i.e., IPv6 reachability on/off every few seconds), does "ip monitor" print anything interesting about routes?
When the problem is occurring (i.e., IPv6 reachability on/off every few seconds), does "ip monitor" print anything interesting about routes?
tw...@gmail.com <tw...@gmail.com> #114
I do not have access to a Nexus device. I could try flashing an AOSP ROM with Android 5.0.1...
I don't know if I'd call it interesting, but this stuff shows up just as connectivity disappears. (A portion of the bottom shows up as it returns.):
ff02::16 dev wlan0 lladdr 33:33:00:00:00:16 NOARP
ff02::1:ff38:19cb dev wlan0 lladdr 33:33:ff:38:19:cb NOARP
2602:243:2009:d080:90fe:12d9:10ee:cc88 dev wlan0 lladdr 30:85:a9:95:94:bc STALE
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:400e:c01::5f dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:400e:c01::5f dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
239.2.0.252 dev wlan0 lladdr 01:00:5e:02:00:fc NOARP
239.2.0.251 dev wlan0 lladdr 01:00:5e:02:00:fb NOARP
239.255.255.250 dev wlan0 lladdr 01:00:5e:7f:ff:fa NOARP
ff02::1:ff4e:b16f dev wlan0 lladdr 33:33:ff:4e:b1:6f NOARP
ff02::1 dev wlan0 lladdr 33:33:00:00:00:01 NOARP
ff02::2 dev wlan0 lladdr 33:33:00:00:00:02 NOARP
ff02::1:ff64:b3a3 dev wlan0 lladdr 33:33:ff:64:b3:a3 NOARP
2000:: dev wlan0
ff02::1:ff00:1 dev wlan0 lladdr 33:33:ff:00:00:01 NOARP
ff02::1:ff00:200e dev wlan0 lladdr 33:33:ff:00:20:0e NOARP
ff02::1:ff00:bc dev wlan0 lladdr 33:33:ff:00:00:bc NOARP
2001:4860:4860::8888 dev wlan0
10.11.12.1 dev wlan0 lladdr 30:b5:c2:b9:81:9e STALE
fe80::32b5:c2ff:feb9:819e dev wlan0 lladdr 30:b5:c2:b9:81:9e router STALE
I don't know if I'd call it interesting, but this stuff shows up just as connectivity disappears. (A portion of the bottom shows up as it returns.):
ff02::16 dev wlan0 lladdr 33:33:00:00:00:16 NOARP
ff02::1:ff38:19cb dev wlan0 lladdr 33:33:ff:38:19:cb NOARP
2602:243:2009:d080:90fe:12d9:10ee:cc88 dev wlan0 lladdr 30:85:a9:95:94:bc STALE
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:400e:c01::5f dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
2607:f8b0:400e:c01::5f dev wlan0 FAILED
2607:f8b0:4005:803::2004 dev wlan0 FAILED
2607:f8b0:4005:800::1012 dev wlan0 FAILED
239.2.0.252 dev wlan0 lladdr 01:00:5e:02:00:fc NOARP
239.2.0.251 dev wlan0 lladdr 01:00:5e:02:00:fb NOARP
239.255.255.250 dev wlan0 lladdr 01:00:5e:7f:ff:fa NOARP
ff02::1:ff4e:b16f dev wlan0 lladdr 33:33:ff:4e:b1:6f NOARP
ff02::1 dev wlan0 lladdr 33:33:00:00:00:01 NOARP
ff02::2 dev wlan0 lladdr 33:33:00:00:00:02 NOARP
ff02::1:ff64:b3a3 dev wlan0 lladdr 33:33:ff:64:b3:a3 NOARP
2000:: dev wlan0
ff02::1:ff00:1 dev wlan0 lladdr 33:33:ff:00:00:01 NOARP
ff02::1:ff00:200e dev wlan0 lladdr 33:33:ff:00:20:0e NOARP
ff02::1:ff00:bc dev wlan0 lladdr 33:33:ff:00:00:bc NOARP
2001:4860:4860::8888 dev wlan0
10.11.12.1 dev wlan0 lladdr 30:b5:c2:b9:81:9e STALE
fe80::32b5:c2ff:feb9:819e dev wlan0 lladdr 30:b5:c2:b9:81:9e router STALE
tw...@gmail.com <tw...@gmail.com> #115
OK, so this does not occur with ParanoidAndroid: http://forum.xda-developers.com/verizon-lg-g3/development/rom-paranoidandroid-5-t2964416
I tracked down a version from December which still had 5.0.1, but I also tried a version from February 6th which had 5.0.2. Neither exhibits the problem.
I installed Android 5.0.2 x86 in VirtualBox as well, bridging it to the network... but I couldn't get it to start up as of about 5 minutes of booting so that's a no-go for now.
LG does make some of their source available here:http://opensource.lge.com/osSch/list?types=ALL&search=vs985
The LGVS985_G3_Android_L_V23C download would be the one. I downloaded it, and it contains both their Android and Kernel source tarballs within a zip file. I tried extracting the Android source but don't know exactly what I'd be looking for.
I tracked down a version from December which still had 5.0.1, but I also tried a version from February 6th which had 5.0.2. Neither exhibits the problem.
I installed Android 5.0.2 x86 in VirtualBox as well, bridging it to the network... but I couldn't get it to start up as of about 5 minutes of booting so that's a no-go for now.
LG does make some of their source available here:
The LGVS985_G3_Android_L_V23C download would be the one. I downloaded it, and it contains both their Android and Kernel source tarballs within a zip file. I tried extracting the Android source but don't know exactly what I'd be looking for.
tw...@gmail.com <tw...@gmail.com> #116
lorenzo: If you're able to get me a PIE version of strace that will run on my device or have other ideas, I'd be happy to look into this more later... Otherwise, do you know how to escalate this to LG? Weekend over, so I won't be flooding this issue as much and probably won't have time to mess with compiling things, but I'll check back here when I can.
Also, the VM started and I got a terminal emulator on there. No issue... so this pretty much has to be LG-related somehow. (The faulty route is present in stock Lollipop (VS98523C) but was not present on ParanoidAndroid nor on the x86 version of 5.0.2 fromhttp://www.fixedbyvonnie.com/2015/03/how-to-install-android-5-0-lollipop-in-virtualbox-windows/ . In the VM, of course, the routes showed eth0 rather than wlan0, but no problems.)
Also, the VM started and I got a terminal emulator on there. No issue... so this pretty much has to be LG-related somehow. (The faulty route is present in stock Lollipop (VS98523C) but was not present on ParanoidAndroid nor on the x86 version of 5.0.2 from
su...@gmail.com <su...@gmail.com> #117
I'm experiencing the issue on multiple HTC M8 builds, so it's not just an LG issue. Possibly and issue in the source supplied to both companies?
tw...@gmail.com <tw...@gmail.com> #118
Ssublime, we're both having IPv6 connectivity issues, but we might not be
experiencing the exact same cause.
Also, as of this morning I lost my IPv6 addresses (except an fe80 one) and
I had no IPv6 connectivity. The wlan0 route table lost all of its content
except:
fe80::/64 dev wlan0 proto kernel metric 256
fe80::/64 dev wlan0 proto static metric 1024
Running an rdisc6 eth0 on my Linux server did not change the situation. I
toggled Wi-Fi off and on and connectivity was restored, with my Tasker
profile dropping the bad route again.
I noticed the wlan0 table sometimes has a different name, like 1021. Don't
know what that is about.
Anyway, how could this be so broken in so many different ways, I wonder?
experiencing the exact same cause.
Also, as of this morning I lost my IPv6 addresses (except an fe80 one) and
I had no IPv6 connectivity. The wlan0 route table lost all of its content
except:
fe80::/64 dev wlan0 proto kernel metric 256
fe80::/64 dev wlan0 proto static metric 1024
Running an rdisc6 eth0 on my Linux server did not change the situation. I
toggled Wi-Fi off and on and connectivity was restored, with my Tasker
profile dropping the bad route again.
I noticed the wlan0 table sometimes has a different name, like 1021. Don't
know what that is about.
Anyway, how could this be so broken in so many different ways, I wonder?
su...@gmail.com <su...@gmail.com> #119
I'll be honest, I still have no idea why IPV6 is higher priority on a mobile device than IPV4 for lan connections. I'm not in that field specifically, but it makes little sense to me to push it this hard this early in its adoption.
tw...@gmail.com <tw...@gmail.com> #120
It's just a bug. Actually, I suspect it is multiple bugs. We're helping to sort it out, here...
su...@gmail.com <su...@gmail.com> #121
I don't want to keep harping on it here, it's just concerning that such major bugs are marked small and than pretty much ignored for more than 6 months post full release.
lo...@google.com <lo...@google.com> #122
twiliterate: can you compile strace from external/strace in the AOSP tree? If you pull the AOSP tree for the Android version that LG is using (5.0.2?) and compile for 32-bit architecture (e.g., aosp_hammerhead - see https://source.android.com/source/building-devices.html ), that might work on your device. If so, we can run something like "strace -f -e socket,sendto,close -s 1024 -x $(pidof netd)" and see what netlink commands it is sending the kernel.
I looked at the LG source archive but it doesn't seem to contain the system code, only the kernel and what might be the source of GPL tools.
I looked at the LG source archive but it doesn't seem to contain the system code, only the kernel and what might be the source of GPL tools.
lo...@google.com <lo...@google.com> #123
sublimefly: it definitely looks like you and twiliterate are seeing different problems. Can you provide the debugging steps listed above?
tw...@gmail.com <tw...@gmail.com> #124
Urgh... Surely someone has an strace binary floating around for Android 5.0.1? I'm trying to figure out compiling it but it's going to take a while.
lo...@google.com <lo...@google.com> #125
Here's the strace from my N7 2013 running 5.1.1. Does that work?
tw...@gmail.com <tw...@gmail.com> #126
The version of strace I found here worked: http://forum.xda-developers.com/showthread.php?t=2516002&page=3
trace1.log: With Wi-Fi off, I started an strace as root using this command, after copying to /data/local and chmod 755 strace (and cd /data/local):
./strace -f -e socket,sendto,close -s 1024 -x -p $(pidof netd) -r -o /data/local/trace.log
Then, I turned Wi-Fi on, left it on long enough for IPv6 to establish connectivity and then to lose it again (and then, if I recall correctly, to gain it back):
--
trace2.log: After doing that and looking at the log, I didn't think it was what you'd need, so I ran a trace again without "-e socket,sendto,close". If it's not in trace1.log, just grep for what you need in trace2.log.
Almost every time I ran the strace command, after turning Wi-Fi back on while strace was running, the Wi-Fi icon would appear briefly and then disappear, only to return about 5-10 seconds later... crash? Whenever this happened, on return, the route table would be correct! (no default dev wlan0 issue).
So, this next log starts with me doing that a few times so that strace could catch netd being bad (rather than the WLAN crashing its way to proper behavior), but otherwise it is the same scheme of enabling WLAN, waiting for IPv6 to come and go and come back.
The password to the zip file is just my username.
trace1.log: With Wi-Fi off, I started an strace as root using this command, after copying to /data/local and chmod 755 strace (and cd /data/local):
./strace -f -e socket,sendto,close -s 1024 -x -p $(pidof netd) -r -o /data/local/trace.log
Then, I turned Wi-Fi on, left it on long enough for IPv6 to establish connectivity and then to lose it again (and then, if I recall correctly, to gain it back):
--
trace2.log: After doing that and looking at the log, I didn't think it was what you'd need, so I ran a trace again without "-e socket,sendto,close". If it's not in trace1.log, just grep for what you need in trace2.log.
Almost every time I ran the strace command, after turning Wi-Fi back on while strace was running, the Wi-Fi icon would appear briefly and then disappear, only to return about 5-10 seconds later... crash? Whenever this happened, on return, the route table would be correct! (no default dev wlan0 issue).
So, this next log starts with me doing that a few times so that strace could catch netd being bad (rather than the WLAN crashing its way to proper behavior), but otherwise it is the same scheme of enabling WLAN, waiting for IPv6 to come and go and come back.
The password to the zip file is just my username.
lo...@google.com <lo...@google.com> #127
My zip utility can't read the file:
$ unzip ../strace.zip
Archive: ../strace.zip
skipping: trace1.log need PK compat. v5.1 (can do v4.6)
skipping: trace2.log need PK compat. v5.1 (can do v4.6)
That said, if the wifi icon disconnected when you ran strace, that might indicate that running strace on netd killed it, in which case the results may not be useful.
The strace flags were indeed wrong. Something like this works on my device ("$(pidof netd)" doesn't work because pidof returns all the threads, not just the main process):
$ strace -f -e socket,writev -s 1024 -x -p 198
Then, running "adb shell ndc network route del 104 wlan0 2001:db8::/32" results in:
[pid 623] socket(PF_NETLINK, SOCK_DGRAM|SOCK_CLOEXEC, NETLINK_ROUTE) = 34
[pid 623] writev(34, [{"\x40\x00\x00\x00\x19\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16}, {"\x0a\x20\x00\x00\x00\x04\xfd\x01\x00\x00\x00\x00", 12}, {"\x08\x00\x0f\x00", 4}, {"\xfd\x03\x00\x00", 4}, {"\x14\x00\x01\x00", 4}, {"\x20\x01\x0d\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16}, {"\x08\x00\x04\x00", 4}, {"\x15\x00\x00\x00", 4}, {"", 0}, {"", 0}], 10) = 64
Which you can decode in various ways, but a fairly easy way, if you have the Android source tree, is:
$ cd system/extras/tests/net_test
$ python
$ unzip ../strace.zip
Archive: ../strace.zip
skipping: trace1.log need PK compat. v5.1 (can do v4.6)
skipping: trace2.log need PK compat. v5.1 (can do v4.6)
That said, if the wifi icon disconnected when you ran strace, that might indicate that running strace on netd killed it, in which case the results may not be useful.
The strace flags were indeed wrong. Something like this works on my device ("$(pidof netd)" doesn't work because pidof returns all the threads, not just the main process):
$ strace -f -e socket,writev -s 1024 -x -p 198
Then, running "adb shell ndc network route del 104 wlan0 2001:db8::/32" results in:
[pid 623] socket(PF_NETLINK, SOCK_DGRAM|SOCK_CLOEXEC, NETLINK_ROUTE) = 34
[pid 623] writev(34, [{"\x40\x00\x00\x00\x19\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16}, {"\x0a\x20\x00\x00\x00\x04\xfd\x01\x00\x00\x00\x00", 12}, {"\x08\x00\x0f\x00", 4}, {"\xfd\x03\x00\x00", 4}, {"\x14\x00\x01\x00", 4}, {"\x20\x01\x0d\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16}, {"\x08\x00\x04\x00", 4}, {"\x15\x00\x00\x00", 4}, {"", 0}, {"", 0}], 10) = 64
Which you can decode in various ways, but a fairly easy way, if you have the Android source tree, is:
$ cd system/extras/tests/net_test
$ python
RTM_DELROUTE ((RTMsg(family=10, dst_len=32, src_len=0, tos=0, table=0, protocol=4, scope=253, type=1, flags=0), {'RTA_OIF': 21, 'RTA_DST': '2001:db8::', 'RTA_TABLE': 1021}), '')
A plain "ip monitor route" run on the device will also show everything routing-related that's happening on the system, but it can't conclusively prove whether netd or another process (or even the kernel) created the route.
A plain "ip monitor route" run on the device will also show everything routing-related that's happening on the system, but it can't conclusively prove whether netd or another process (or even the kernel) created the route.
du...@gmail.com <du...@gmail.com> #128
I just wanted to throw in my 2 cents here, but we have been seeing this issue across android devices on our network since we started implementing dual stack a few months ago. Like has been said, it's been on LG, Samsung, Moto, HTC, Nexus and other devices running Lollipop. Our only solution has been to disable dual stack for customer modems. I've tried everything that I can think of on the modem end, both statefull and stateless DHCPv6, but the android devices will not work properly on IPv6. It seems that they will initially connect via IPv6 and work, but if they lose wifi then reconnect, they will no longer work, despite pulling all correct IPv6 information. I've attached a bugreport from a Nexus device that we had with this same issue, hopefully that helps as well.
lo...@google.com <lo...@google.com> #129
dustin, this is likely the problem:
2001:48f8:28:859::1 dev wlan0 FAILED
That suggests that the router is not responding to NS packets for its global address, or that the linux kernel doesn't like the replies it gets. The router's link-local address seems fine, however:
fe80::e47:3dff:fe29:77d2 dev wlan0 lladdr 0c:47:3d:29:77:d2 router REACHABLE
Other than DNS not working, in which direction do you see problems? If the device sends packets to the Internet, to they arrive? Can the device receive packets from the Internet?
2001:48f8:28:859::1 dev wlan0 FAILED
That suggests that the router is not responding to NS packets for its global address, or that the linux kernel doesn't like the replies it gets. The router's link-local address seems fine, however:
fe80::e47:3dff:fe29:77d2 dev wlan0 lladdr 0c:47:3d:29:77:d2 router REACHABLE
Other than DNS not working, in which direction do you see problems? If the device sends packets to the Internet, to they arrive? Can the device receive packets from the Internet?
du...@gmail.com <du...@gmail.com> #130
It's strange though, every other type of device works just fine with this same router, only the android has the issue. IPv4 still works just fine, but since the device thinks that IPv6 is working, it will attempt to use that first until it times out, then fallback to IPv4. I will do some packet captures to check on the direction of the issue, but from what I can tell, IPv6 packets are not reaching their destination.
tw...@gmail.com <tw...@gmail.com> #131
Wanted to do one more follow-up here. Lorenzo graciously helped me look into my problem further, and it appears to either be a problem with LG's Lollipop firmware or Verizon's variant of it in particular (VS98523C). The problem I've been experiencing with a faulty IPv6 WLAN route (default dev wlan0) is limited to the stock ROM, not any of the alternative ROMs I've tried, and that faulty route is present even when IPv6 is disabled on my router and no other devices are connected to it. The ball is in Verizon/LG's court now. I believe they're aware of the issue at this point. I'll be working around the issue (or using another ROM) for now.
su...@gmail.com <su...@gmail.com> #132
Sorry guys, I've been unable to the testing requested yet. My company forced me to start using iOS for work and had me grab a crap iPhone sadly, which is what I was afraid of from this. I still have my M8 and when I get some more time I'll make sure to run those tests and get back to you guys with the results.
ma...@gmail.com <ma...@gmail.com> #133
Hey, I found this bug when researching WiFi issues with my Nexus 5.
Hopefully my added information is helpful to resolve the issue. If you require additional details, please let me know and I will happily provide those.
1. Device and software
Nexus 5, Android 5.1.1
2. Issue and symptoms
Since I have upgraded my phone to Android 5.0.2, I am experiencing serious lags in network connectivity when device is connected to my home WiFi. Later versions did not resolve the issue.
When using cellular data services (3G or 4G) there is no problem at all. However, when using the (potentially much faster) WiFi connection, loading a website causes a delay (white screen) of about 5-10 seconds. Similarly, when starting any App that requires internet connectiviy, there is a long delay.
Many friends of mine told me about similar problems with other phones and Android 5.
3. Findings so far
The issue seems to be related to IPv6. My cellular provider (1&1 / Vodafone Germany) does not use IPv6 yet, hence there is no issue when connected to 3G or 4G.
My home network supports IPv4 and also has IPv6 enabled. Android receives configuration via DHCP and I can ping local IPv6 addresses. However, I cannot reach any external IPv6 address from the phone. Using IPv4, I can ping both internal and external (via NAT routing) hosts.
I assume that Android tries to connect via IPv6 first and falls back to IPv4 after some time out, which would explain the lagging.
I setup a secondary WiFi that is IPv4 only and found the connection to work without issues, the same applied to other IPv4 WiFi networks I tried.
Unfortunately I cannot change the IPv6 configuration of my router, as it was supplied by my ISP and runs a branded firmware.
As another test, I disabled IPv6 on my Android phone (echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6 - requires root) and found that this also resolved connectivity issues on my home network.
It would be a workaround if IPv6 could be disabled in network settings as also suggested in #171829:https://code.google.com/p/android/issues/detail?id=171829
Still, I only see this as a temporary solution.
3. Service provider and network infrastructure
ISP is Unitymedia Baden-Wuerttemberg(formerly known as KabelBW) - with 2.7 million customers they are the largest provider for cable internet in Germany
My service contract includes 200 MBit/s downlink and 10 MBit/s uplink, so internet connection speed is definetely not the issue ;-)
Router is a provider-supplied Ubee EVW3226 cable router:
http://www.ubeeinteractive.com/products/cable/evw3226
The router runs a Unitymedia-branded firmware which gives me very little control with regards to IPv6 settings. I can neither disable the protocol nor can I influence DHVPv6 settings. As I am forced to use this router, I have to live with that.
For WiFi AP I have tried an Asus RT-N-66U and a Draytek VigorAP 900 (both support 2.4GHz + 5GHz Dual-Band) and found the issue to be identical regardless of WiFi AP.
4. Conclusion
I am certainly not an IPv6 expert, but I think the problem is on the Android side of things here:
- all other devices on the WiFi and Ethernet work flawlessly with both IPv4 and - if supported - IPv6 (e.g. my Windows Desktop, multiple RaspberryPi running Linux, Amazon FireTV Stick, Google Chromecast Stick, iPad, etc.)
- when I was still using Android 4 on my Nexus, I did not have any issue with exactly the same network infrastructure and configuration
- other users (friends of mine) have same issue on their networks
I hope the problem can be identified and resolved. If you need any additional info (logs, config data, etc.) please let me know.
Thanks and regards
Malte
Hopefully my added information is helpful to resolve the issue. If you require additional details, please let me know and I will happily provide those.
1. Device and software
Nexus 5, Android 5.1.1
2. Issue and symptoms
Since I have upgraded my phone to Android 5.0.2, I am experiencing serious lags in network connectivity when device is connected to my home WiFi. Later versions did not resolve the issue.
When using cellular data services (3G or 4G) there is no problem at all. However, when using the (potentially much faster) WiFi connection, loading a website causes a delay (white screen) of about 5-10 seconds. Similarly, when starting any App that requires internet connectiviy, there is a long delay.
Many friends of mine told me about similar problems with other phones and Android 5.
3. Findings so far
The issue seems to be related to IPv6. My cellular provider (1&1 / Vodafone Germany) does not use IPv6 yet, hence there is no issue when connected to 3G or 4G.
My home network supports IPv4 and also has IPv6 enabled. Android receives configuration via DHCP and I can ping local IPv6 addresses. However, I cannot reach any external IPv6 address from the phone. Using IPv4, I can ping both internal and external (via NAT routing) hosts.
I assume that Android tries to connect via IPv6 first and falls back to IPv4 after some time out, which would explain the lagging.
I setup a secondary WiFi that is IPv4 only and found the connection to work without issues, the same applied to other IPv4 WiFi networks I tried.
Unfortunately I cannot change the IPv6 configuration of my router, as it was supplied by my ISP and runs a branded firmware.
As another test, I disabled IPv6 on my Android phone (echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6 - requires root) and found that this also resolved connectivity issues on my home network.
It would be a workaround if IPv6 could be disabled in network settings as also suggested in #171829:
Still, I only see this as a temporary solution.
3. Service provider and network infrastructure
ISP is Unitymedia Baden-Wuerttemberg(formerly known as KabelBW) - with 2.7 million customers they are the largest provider for cable internet in Germany
My service contract includes 200 MBit/s downlink and 10 MBit/s uplink, so internet connection speed is definetely not the issue ;-)
Router is a provider-supplied Ubee EVW3226 cable router:
The router runs a Unitymedia-branded firmware which gives me very little control with regards to IPv6 settings. I can neither disable the protocol nor can I influence DHVPv6 settings. As I am forced to use this router, I have to live with that.
For WiFi AP I have tried an Asus RT-N-66U and a Draytek VigorAP 900 (both support 2.4GHz + 5GHz Dual-Band) and found the issue to be identical regardless of WiFi AP.
4. Conclusion
I am certainly not an IPv6 expert, but I think the problem is on the Android side of things here:
- all other devices on the WiFi and Ethernet work flawlessly with both IPv4 and - if supported - IPv6 (e.g. my Windows Desktop, multiple RaspberryPi running Linux, Amazon FireTV Stick, Google Chromecast Stick, iPad, etc.)
- when I was still using Android 4 on my Nexus, I did not have any issue with exactly the same network infrastructure and configuration
- other users (friends of mine) have same issue on their networks
I hope the problem can be identified and resolved. If you need any additional info (logs, config data, etc.) please let me know.
Thanks and regards
Malte
ma...@gmail.com <ma...@gmail.com> #134
lo...@google.com <lo...@google.com> #135
Malte, can you attach a bugreport taken while experiencing the problem?
ma...@gmail.com <ma...@gmail.com> #136
Hi Lorenzo,
thanks for getting back on this.
I will send you three bugreport files via PM:
#1 Android just booted up, WiFi connected to home network, IPv6 enabled
#2 Having just loaded a website, suffering the connectivity issues described
#3 Manually disabled IPv6 on iface wlan0 and loaded website without any issues
If you need any additional info or output of shell commands, let me know.
Regards
Malte
thanks for getting back on this.
I will send you three bugreport files via PM:
#1 Android just booted up, WiFi connected to home network, IPv6 enabled
#2 Having just loaded a website, suffering the connectivity issues described
#3 Manually disabled IPv6 on iface wlan0 and loaded website without any issues
If you need any additional info or output of shell commands, let me know.
Regards
Malte
du...@gmail.com <du...@gmail.com> #137
Lorenzo,
I'm not sure what additional steps you're wanting me to do. As has been stated before, under IPv6 dual stack implementations, every platform except Android Lollipop works properly through wifi. Why do the customer's have to prove anything? This isn't the network, it's the android wifi. I created a separate thread asking for an option to disable IPv6 for wifi, and it was closed. Why shouldn't it be an option if IPv6 wifi does not properly work like every other O/S on android?
I'm not sure what additional steps you're wanting me to do. As has been stated before, under IPv6 dual stack implementations, every platform except Android Lollipop works properly through wifi. Why do the customer's have to prove anything? This isn't the network, it's the android wifi. I created a separate thread asking for an option to disable IPv6 for wifi, and it was closed. Why shouldn't it be an option if IPv6 wifi does not properly work like every other O/S on android?
su...@gmail.com <su...@gmail.com> #138
This is why my work forced me to get an iPhone, I'm still following this and hoping it gets fixed so I can try and get back on the android platform. But I have a feeling this is going to hurt androids customer base.
ma...@gmail.com <ma...@gmail.com> #139
I think Lorenzo is really trying hard to analyze and fix this issue, so let's give him the opportunity to do so before we start our rants - shall we?
I still think that the priority assigned to this issue is way too low.
To me, this is a major problem which renders my Android phone next to unusable. I know at least ten people who suffer exactly the same problem and are obviously really upset about it.
As more and more ISPs are starting to implement IPv6, we will probably see more Dual-Stack configurations prone to this type of problem - which is a total show-stopper.
Let us not discuss the pros and cons of mixing IPv4 and IPv6 on the same network - at least here in Germany the cable internet providers all use these transition mechanisms. Many corporate networks run Dual-Stack nowadays and I guess that DSL providers might eventually also chose this path.
With my provider Unitymedia BW, I cannot even deactivate IPv6 in the supplied router so rooting my phone and disabling that protocol on client side was the only way to temporarily fix the problem.
Bottomline: Users do not have a choice, DS is there and Android should support it.
At the same time, all other devices on this same network just work - I just confirmed that 2 iPads, 3 Windows machines and 2 RaspberryPis happily use IPv6 protocol while a bunch of other clients are still on IPv4 and access the Internet via NAT.
If IPv6 implementation in Android cannot be fixed to support this in the short term, giving users a way to disable IPv6 it as suggested in issue 36949180 would be a temporary solution - still better than switching to mobile data services while at home or at work because the cell network is faster than WiFi :-(
I still think that the priority assigned to this issue is way too low.
To me, this is a major problem which renders my Android phone next to unusable. I know at least ten people who suffer exactly the same problem and are obviously really upset about it.
As more and more ISPs are starting to implement IPv6, we will probably see more Dual-Stack configurations prone to this type of problem - which is a total show-stopper.
Let us not discuss the pros and cons of mixing IPv4 and IPv6 on the same network - at least here in Germany the cable internet providers all use these transition mechanisms. Many corporate networks run Dual-Stack nowadays and I guess that DSL providers might eventually also chose this path.
With my provider Unitymedia BW, I cannot even deactivate IPv6 in the supplied router so rooting my phone and disabling that protocol on client side was the only way to temporarily fix the problem.
Bottomline: Users do not have a choice, DS is there and Android should support it.
At the same time, all other devices on this same network just work - I just confirmed that 2 iPads, 3 Windows machines and 2 RaspberryPis happily use IPv6 protocol while a bunch of other clients are still on IPv4 and access the Internet via NAT.
If IPv6 implementation in Android cannot be fixed to support this in the short term, giving users a way to disable IPv6 it as suggested in
su...@gmail.com <su...@gmail.com> #140
I'm happy to give him more time myself, but this has been a reported issue since November and it constantly feels like the burden is entirely on the customers.
du...@gmail.com <du...@gmail.com> #141
Agreed, as an ISP network engineer who is in charge of implementing IPv6 dual stack on our network, it's frustrating that I've had to create a work around of essentially disabling IPv6 on customer modem's who have android devices with this problem. I agree, this thread's priority should be higher.
do...@gmail.com <do...@gmail.com> #142
Hi!
I've reported this on Oct 2014 (https://code.google.com/p/android/issues/detail?id=77892 )
I dont know why another user created another issue when it was already created, but please, FIX IT asap. I had to disable IPv6 on all the customer network due to this problem.
Thanks!
I've reported this on Oct 2014 (
I dont know why another user created another issue when it was already created, but please, FIX IT asap. I had to disable IPv6 on all the customer network due to this problem.
Thanks!
ma...@gmail.com <ma...@gmail.com> #143
Hi Lorenzo,
I have additional information that might be helpful.
I experimented a little more and found that with IPv6 enabled for iface wlan0, ping6 actually works from commandline:
shell@hammerhead:/ $ ip a | grep wlan0 -A10
ip a | grep wlan0 -A10
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c4:9a:02:8b:7b:76 brd ff:ff:ff:ff:ff:ff
inet192.168.1.60/24 brd 192.168.1.255 scope global wlan0
inet6 2a02:8070:b288:4700:459a:328b:35c1:94c2/64 scope global temporary dynamic
valid_lft 604774sec preferred_lft 85774sec
inet6 2a02:8070:b288:4700:c69a:2ff:fe8b:7b76/64 scope global dynamic
valid_lft 1027219sec preferred_lft 422419sec
inet6 fe80::c69a:2ff:fe8b:7b76/64 scope link
valid_lft forever preferred_lft forever
shell@hammerhead:/ $ ping6 -c4ipv6.google.com
ping6 -c4ipv6.google.com
PINGipv6.google.com (fra02s27-in-x04.1e100.net ) 56 data bytes
64 bytes fromfra02s27-in-x04.1e100.net : icmp_seq=1 ttl=56 time=42.7 ms
64 bytes fromfra02s27-in-x04.1e100.net : icmp_seq=2 ttl=56 time=29.6 ms
64 bytes fromfra02s27-in-x04.1e100.net : icmp_seq=3 ttl=56 time=30.8 ms
64 bytes fromfra02s27-in-x04.1e100.net : icmp_seq=4 ttl=56 time=29.7 ms
---ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 29.610/33.235/42.703/5.489 ms
However, for any app (including chrome browser) the IPv6 connection apparently fails and fallback to IPv4 occurs after timeout.
I installed the app "IPv6 and More" (https://play.google.com/store/apps/details?id=com.tsts.ipv6MorePro ) and tried to ping ipv6.google.com using that tool.
Result: Commandline ping worked BUT "ipv6.google.com is NOT Reachable via API" - see screenshot attached.
I will submit yet another bugreport file taken in that situation to Lorenzo.
So maybe IPv6 connectivity is OK on OS level but gets messed up somewhere in the abstraction layer(s) towards the app API?
Best regards
Malte
I have additional information that might be helpful.
I experimented a little more and found that with IPv6 enabled for iface wlan0, ping6 actually works from commandline:
shell@hammerhead:/ $ ip a | grep wlan0 -A10
ip a | grep wlan0 -A10
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c4:9a:02:8b:7b:76 brd ff:ff:ff:ff:ff:ff
inet
inet6 2a02:8070:b288:4700:459a:328b:35c1:94c2/64 scope global temporary dynamic
valid_lft 604774sec preferred_lft 85774sec
inet6 2a02:8070:b288:4700:c69a:2ff:fe8b:7b76/64 scope global dynamic
valid_lft 1027219sec preferred_lft 422419sec
inet6 fe80::c69a:2ff:fe8b:7b76/64 scope link
valid_lft forever preferred_lft forever
shell@hammerhead:/ $ ping6 -c4
ping6 -c4
PING
64 bytes from
64 bytes from
64 bytes from
64 bytes from
---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 29.610/33.235/42.703/5.489 ms
However, for any app (including chrome browser) the IPv6 connection apparently fails and fallback to IPv4 occurs after timeout.
I installed the app "IPv6 and More" (
Result: Commandline ping worked BUT "
I will submit yet another bugreport file taken in that situation to Lorenzo.
So maybe IPv6 connectivity is OK on OS level but gets messed up somewhere in the abstraction layer(s) towards the app API?
Best regards
Malte
lo...@google.com <lo...@google.com> #144
Dustin: again, I would suggest that you work with us to determine why Android's IPv6 stack does not work well in your network.
You may be correct that Android is not behaving correctly; without more investigation it's hard to know for sure. What we do know for sure, though, is that globally, well over 5% of Android users have working IPv6 connectivity, and that in major wireline IPv6 deployments worldwide, that percentage is well into the double digits - typically higher than other operating systems on the same network. That's a LOT of users with working IPv6 connectivity, on a lot of networks.
(Malte: the IPv6 statistics for both Nexus 5 and for Android 5.0 in general, on your particular network, also do not indicate a widespread problem.)
You may be correct that Android is not behaving correctly; without more investigation it's hard to know for sure. What we do know for sure, though, is that globally, well over 5% of Android users have working IPv6 connectivity, and that in major wireline IPv6 deployments worldwide, that percentage is well into the double digits - typically higher than other operating systems on the same network. That's a LOT of users with working IPv6 connectivity, on a lot of networks.
(Malte: the IPv6 statistics for both Nexus 5 and for Android 5.0 in general, on your particular network, also do not indicate a widespread problem.)
du...@gmail.com <du...@gmail.com> #145
Tell me what information and tests I can run for you, and I'm more than happy to do so. The problem is that there are so many different android versions, and I understand that Google only directly supports the Nexus releases, and we're seeing issues with Samsung, LG, Motorola and other "flavors" of android that are modified by OEM's. I'll test what I can for you, just let me know. I've tried doing straight DHCPv6, SLAAC, SLAAC+RDNSS, and haven't had any luck with any of them on our implementation of IPv6 dual stack. I'm sorry about the frustration on my side of things, but I will get you whatever you'd like me to test. Thanks, Lorenzo.
~Dustin
~Dustin
lo...@google.com <lo...@google.com> #146
Malte - that suggests that IPv6 is working, but somehow IPv6 TCP connections are not successful. Do you know if they are timing out slowly (seconds) or are failing fast (milliseconds or tens of milliseconds)?
I have looked at the bugreports but nothing jumped out at me as being obviously wrong. Your device has global IPv6 addresses, a default route with a reasonable lifetime, and ND cache entries indicating progress.
You say that when IPv6 is enabled, all websites are slow? Or just IPv6 websites like Google, Facebook, etc.? For example, doeswww.amazon.com load quickly, or is it slow? Also, if you run something like:
adb shell time ping -c1 $RANDOM-v4.metric.gstatic.com
a few times, what happens? Also, what does this do?
adb shell ping6 -c1ipv4.google.com
I have looked at the bugreports but nothing jumped out at me as being obviously wrong. Your device has global IPv6 addresses, a default route with a reasonable lifetime, and ND cache entries indicating progress.
You say that when IPv6 is enabled, all websites are slow? Or just IPv6 websites like Google, Facebook, etc.? For example, does
adb shell time ping -c1 $
a few times, what happens? Also, what does this do?
adb shell ping6 -c1
ma...@gmail.com <ma...@gmail.com> #147
So it is down to statistics then? Well, in German there is a saying that translates to "paper is patient", if you understand what I mean. Customers are not - and I am starting to get really upset about this.
What is the point in making the effort to raise a bug report, attempt to accurately describe the issues, collect information etc. if you end up telling us it was not a major issue?
Even if it does not affect a large percentage of users (or not yet), it is still a major problem to me, many people I know and I bet to the other people who joined this discussion...
I think it is also hard to tell if many users have this problem or not, because most users will not be able to diagnose the root cause of the problem. To them, the symptom will simply be "wifi is slow".
And if my observations apply to other phones, Google's statistics will probably record that devices are connected to IPv6 as they have a corresponding address assigned to the iface. But do these statistics also tell wether or not the apps can succesfully use the IPv6 connection or if they fall back to IPv4 after some timeout?
By the way, while I was still on Android 4, I did not have these issues - same network setup.
Also, what do you mean by particular network?
None of the four German cellular network providers (Vodafone, E-Plus, Telefonica / o2 and T-Mobile) use IPv6 yet - so no problem to expect.
The majority of German homes are connected via ADSL, and afaik most of the ADSL providers here do not use IPv6 stacks yet. Many routers would not even support it yet. And generally speaking, customers can use their own equipment with ADSL and just turn off IPv6 so the router will fall back to IPv4 and NAT. Again, no problem to expect.
With the German cable ISPs however, situation is different. They are starting to push IPv6 (Unitymedia especially) and - since they usually have control over the modem and router - they can and will enforce their transition mechanism. In some cases they use true Dual Stack (router still gets a "real" IPv4 address assigned, devices capable of using IPv6 use it, other devices fall back to NAT) and in others it is DS-lite with IPv4 tunneling through IPv6 and NAT happening on provider side.
All the people I know who have this setup in their home, also suffer the connectivity issues with Android. Shall I send you a list of affected device IMEIs or Google IDs to make the problem more prominent?
Strangely enough, many other devices work with IPv6 on exactly the same network.
To me that is a good indication that Android might not behave correctly in this particular situation.
What is the point in making the effort to raise a bug report, attempt to accurately describe the issues, collect information etc. if you end up telling us it was not a major issue?
Even if it does not affect a large percentage of users (or not yet), it is still a major problem to me, many people I know and I bet to the other people who joined this discussion...
I think it is also hard to tell if many users have this problem or not, because most users will not be able to diagnose the root cause of the problem. To them, the symptom will simply be "wifi is slow".
And if my observations apply to other phones, Google's statistics will probably record that devices are connected to IPv6 as they have a corresponding address assigned to the iface. But do these statistics also tell wether or not the apps can succesfully use the IPv6 connection or if they fall back to IPv4 after some timeout?
By the way, while I was still on Android 4, I did not have these issues - same network setup.
Also, what do you mean by particular network?
None of the four German cellular network providers (Vodafone, E-Plus, Telefonica / o2 and T-Mobile) use IPv6 yet - so no problem to expect.
The majority of German homes are connected via ADSL, and afaik most of the ADSL providers here do not use IPv6 stacks yet. Many routers would not even support it yet. And generally speaking, customers can use their own equipment with ADSL and just turn off IPv6 so the router will fall back to IPv4 and NAT. Again, no problem to expect.
With the German cable ISPs however, situation is different. They are starting to push IPv6 (Unitymedia especially) and - since they usually have control over the modem and router - they can and will enforce their transition mechanism. In some cases they use true Dual Stack (router still gets a "real" IPv4 address assigned, devices capable of using IPv6 use it, other devices fall back to NAT) and in others it is DS-lite with IPv4 tunneling through IPv6 and NAT happening on provider side.
All the people I know who have this setup in their home, also suffer the connectivity issues with Android. Shall I send you a list of affected device IMEIs or Google IDs to make the problem more prominent?
Strangely enough, many other devices work with IPv6 on exactly the same network.
To me that is a good indication that Android might not behave correctly in this particular situation.
lo...@google.com <lo...@google.com> #148
Dustin: if you have the opportunity to testing using a Nexus device, that would be ideal because it's possible to run tcpdump.
In Android 5.0 and above, configurations that are expected to work are SLAAC + DHCPv4 (this has worked since 2009), SLAAC DHCPv4 + RDNSS, and SLAAC+RDNSS with no IPv4. DHCPv6 is not supported and will be ignored.
Configurations that currently do not work are:
- Setting link-local (i.e., inside fe80::/64) DNS servers via RDNSS
- Sending RAs that configure only a default route but do not provide SLAAC (e.g., if the network uses DHCPv6 for addressing.)
Analysis of the bugreport you posted above suggested that the problem was that the device was unable to resolve the DNS server's IPv6 address to a MAC address:
2001:48f8:28:859::1 dev wlan0 FAILED
This could potentially indicate a bug in the router's ND implementation. Perhaps it does not like NS packets sent from global addresses? IPv6 traffic seemed to be flowing because the router was reachable:
fe80::e47:3dff:fe29:77d2 dev wlan0 lladdr 0c:47:3d:29:77:d2 router REACHABLE
I assume that the problem here was that DNS lookups were timing out?
Also, what is the lifetime of the RAs? The "ip" binary on Nexus 9 shipped in L suffers from an obscure compiler bug that causes it to report all lifetimes as zero, e.g.:
default via fe80::e47:3dff:fe29:77d2 dev wlan0 proto ra metric 1024 expires 0sec
In Android 5.0 and above, configurations that are expected to work are SLAAC + DHCPv4 (this has worked since 2009), SLAAC DHCPv4 + RDNSS, and SLAAC+RDNSS with no IPv4. DHCPv6 is not supported and will be ignored.
Configurations that currently do not work are:
- Setting link-local (i.e., inside fe80::/64) DNS servers via RDNSS
- Sending RAs that configure only a default route but do not provide SLAAC (e.g., if the network uses DHCPv6 for addressing.)
Analysis of the bugreport you posted above suggested that the problem was that the device was unable to resolve the DNS server's IPv6 address to a MAC address:
2001:48f8:28:859::1 dev wlan0 FAILED
This could potentially indicate a bug in the router's ND implementation. Perhaps it does not like NS packets sent from global addresses? IPv6 traffic seemed to be flowing because the router was reachable:
fe80::e47:3dff:fe29:77d2 dev wlan0 lladdr 0c:47:3d:29:77:d2 router REACHABLE
I assume that the problem here was that DNS lookups were timing out?
Also, what is the lifetime of the RAs? The "ip" binary on Nexus 9 shipped in L suffers from an obscure compiler bug that causes it to report all lifetimes as zero, e.g.:
default via fe80::e47:3dff:fe29:77d2 dev wlan0 proto ra metric 1024 expires 0sec
du...@gmail.com <du...@gmail.com> #149
I will check on these as I can, I'll have to purchase a nexus for our lab as the one I was using was a co-workers. Just curious, and maybe it was answered earlier, but why no DHCPv6 support? I don't think there is a problem with the router's ND implementation, because IPv6 dual stack works perfectly on Linux, Apple, and Microsoft operating systems on the exact same router. DNS lookup's on those work fine with IPv6 and our DNS server. I have our RA lifetime set to
ma...@gmail.com <ma...@gmail.com> #150
Back to analysis then:
It seems as if it failed slowly. At least it takes about 10 seconds until the app throws the "could not reach" at me. No idea how it works internally though, could attempt multiple retries.
I could not really tell a difference between IPv4 and IPv6 enabled sites. I guess, almost all webiste hosters do support IPv4 as a fallback anyways?
Attached is a console dump of the commands and output you had requested - please note that I disabled IPv6 on wlan0 somewhere in the middle (line 75) and tried again to show any difference.
It seems as if it failed slowly. At least it takes about 10 seconds until the app throws the "could not reach" at me. No idea how it works internally though, could attempt multiple retries.
I could not really tell a difference between IPv4 and IPv6 enabled sites. I guess, almost all webiste hosters do support IPv4 as a fallback anyways?
Attached is a console dump of the commands and output you had requested - please note that I disabled IPv6 on wlan0 somewhere in the middle (line 75) and tried again to show any difference.
lo...@google.com <lo...@google.com> #151
Malte, I see your device is rooted. Care to do the following?
1. Turn off mobile data and turn on wifi.
2. Reboot.
3. A minute or so after wifi connects, do:
adb root
adb shell ndc resolver setnetdns 100 "" 192.168.1.1
4. See if the problem is still there.
Also, it might be helpful to run tcpdump, like so:
1. adb shell tcpdump -ni wlan0 -U -w /sdcard/dump.pcap port 53 or port 443
2. Try to go tohttps://ipv6.google.com/ and https://ipv4.google.com/ in the browser.
Currently, most websites do not support IPv6. Major websites like Google, Facebook, Yahoo, Wikipedia and others do, but most websites are IPv4-only (e.g.,cnn.com , www.spiegel.de , www.amazon.com ). If you see delays on IPv4-only websites when IPv6 is enabled, then that suggests a problem with IPv6 DNS. IPv6 DNS is also one of the things that is new on lollipop.
1. Turn off mobile data and turn on wifi.
2. Reboot.
3. A minute or so after wifi connects, do:
adb root
adb shell ndc resolver setnetdns 100 "" 192.168.1.1
4. See if the problem is still there.
Also, it might be helpful to run tcpdump, like so:
1. adb shell tcpdump -ni wlan0 -U -w /sdcard/dump.pcap port 53 or port 443
2. Try to go to
Currently, most websites do not support IPv6. Major websites like Google, Facebook, Yahoo, Wikipedia and others do, but most websites are IPv4-only (e.g.,
ma...@gmail.com <ma...@gmail.com> #152
I have recorded a small video which illustrates the issue and compares latency and load time of IPv6 / IPv4 DS compared to IPv4 only.
I uploaded to YouTube:
https://youtu.be/lb2SxnACm1k
The problem is pretty obvious, isn't it?
I uploaded to YouTube:
The problem is pretty obvious, isn't it?
lo...@google.com <lo...@google.com> #153
Malte, that's pretty clear. It does look like the problem is DNS. Does the setnetdns command I posted above fix the problem? Are you able to run the tcpdump command I posted above?
ma...@gmail.com <ma...@gmail.com> #154
First off, please DON'T tell me that the rooted Android has anything to do with this problem... I had exactly the same problem with the unmodified, locked (unrooted) stock rom before. I only rooted this device to be able to switch of IPv6.
I tried the following as you suggested:
1. Set phone to flight mode
2. Enable WiFi
3. Reboot
4. Execute commands on ADB
shell@hammerhead:/ $ su
su
root@hammerhead:/ # ndc resolver setnetdns 100 "" 192.168.1.1
ndc resolver setnetdns 100 "" 192.168.1.1
200 0 Resolver command succeeded
root@hammerhead:/ # ip a | grep "wlan0" -A10
ip a | grep "wlan0" -A10
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c4:9a:02:8b:7b:76 brd ff:ff:ff:ff:ff:ff
inet192.168.1.60/24 brd 192.168.1.255 scope global wlan0
inet6 2a02:8070:b288:4700:35fb:d833:c757:a901/64 scope global temporary dynamic
valid_lft 604717sec preferred_lft 85717sec
inet6 2a02:8070:b288:4700:c69a:2ff:fe8b:7b76/64 scope global dynamic
valid_lft 1027204sec preferred_lft 422404sec
inet6 fe80::c69a:2ff:fe8b:7b76/64 scope link
valid_lft forever preferred_lft forever
What can I say? Manually overriding the DNS seems to have resolved the problem. I could connect to websites without any delay.
So it seems indeed related to DNS.
Do you want the tcpdumps with DNS manually set as above or with the "normal" configuration?
I tried the following as you suggested:
1. Set phone to flight mode
2. Enable WiFi
3. Reboot
4. Execute commands on ADB
shell@hammerhead:/ $ su
su
root@hammerhead:/ # ndc resolver setnetdns 100 "" 192.168.1.1
ndc resolver setnetdns 100 "" 192.168.1.1
200 0 Resolver command succeeded
root@hammerhead:/ # ip a | grep "wlan0" -A10
ip a | grep "wlan0" -A10
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c4:9a:02:8b:7b:76 brd ff:ff:ff:ff:ff:ff
inet
inet6 2a02:8070:b288:4700:35fb:d833:c757:a901/64 scope global temporary dynamic
valid_lft 604717sec preferred_lft 85717sec
inet6 2a02:8070:b288:4700:c69a:2ff:fe8b:7b76/64 scope global dynamic
valid_lft 1027204sec preferred_lft 422404sec
inet6 fe80::c69a:2ff:fe8b:7b76/64 scope link
valid_lft forever preferred_lft forever
What can I say? Manually overriding the DNS seems to have resolved the problem. I could connect to websites without any delay.
So it seems indeed related to DNS.
Do you want the tcpdumps with DNS manually set as above or with the "normal" configuration?
lo...@google.com <lo...@google.com> #155
At this point it seems pretty clear that the IPv6 DNS server being configured by the network is causing the problem. A tcpdump of port 53 traffic when the problem is happening should help clarify what's going on.
I would expect to see DNS queries to the ...:add0 IPv6 address, then either no response or invalid responses, and then after 15-10 seconds, DNS queries to 192.168.1.1 and valid responses.
I would expect to see DNS queries to the ...:add0 IPv6 address, then either no response or invalid responses, and then after 15-10 seconds, DNS queries to 192.168.1.1 and valid responses.
ma...@gmail.com <ma...@gmail.com> #156
Lorenzo, I tried to get tcpdump running but no success.
The factory image I use does not include the binary.
When I copy tcpdump binary to the device, I get "error: only position independent executables (PIE) are supported." message - I guess this is part of the security architecture and I would need a tcpdump cross-compiled with some more flags set?
Can you provide a working tcpdump binary for my device? Or point me to a guide how to make it work without bricking my phone? ;-)
Here is all the version info from getprop:
[ro.build.date.utc]: [1429292097]
[ro.build.date]: [Fri Apr 17 17:34:57 UTC 2015]
[ro.build.description]: [hammerhead-user 5.1.1 LMY48B 1863243 release-keys]
[ro.build.display.id ]: [LMY48B]
[ro.build.fingerprint]: [google/hammerhead/hammerhead:5.1.1/LMY48B/1863243:user/release-keys]
[ro.build.flavor]: [hammerhead-user]
[ro.build.host]: [wpiu6.hot.corp.google.com ]
[ro.build.id ]: [LMY48B]
[ro.build.product]: [hammerhead]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [1863243]
[ro.build.version.release]: [5.1.1]
[ro.build.version.sdk]: [22]
Thanks.
The factory image I use does not include the binary.
When I copy tcpdump binary to the device, I get "error: only position independent executables (PIE) are supported." message - I guess this is part of the security architecture and I would need a tcpdump cross-compiled with some more flags set?
Can you provide a working tcpdump binary for my device? Or point me to a guide how to make it work without bricking my phone? ;-)
Here is all the version info from getprop:
[ro.build.date.utc]: [1429292097]
[ro.build.date]: [Fri Apr 17 17:34:57 UTC 2015]
[ro.build.description]: [hammerhead-user 5.1.1 LMY48B 1863243 release-keys]
[
[ro.build.fingerprint]: [google/hammerhead/hammerhead:5.1.1/LMY48B/1863243:user/release-keys]
[ro.build.flavor]: [hammerhead-user]
[ro.build.host]: [
[
[ro.build.product]: [hammerhead]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [1863243]
[ro.build.version.release]: [5.1.1]
[ro.build.version.sdk]: [22]
Thanks.
du...@gmail.com <du...@gmail.com> #157
Sorry, our RA lifetime is set to 3600 seconds by default, which is what I've seen is common for most of our cable modem gateway's.
lo...@google.com <lo...@google.com> #158
Dustin: can you provide a few more details on the problem? You say that when the device connects to the network, it works fine, but then if it disconnects and reconnects, it stops working.
When it's in the broken state, what is the problem? Is it that DNS lookups are slow? Or does IPv6 just not work at all? For example, if you go to http://[2600::aaaa]/ orhttp://ipv6.google.com/ in the browser, does it work?
As for why no DHCPv6 support, see my comments in issue 36949085 .
When it's in the broken state, what is the problem? Is it that DNS lookups are slow? Or does IPv6 just not work at all? For example, if you go to http://[2600::aaaa]/ or
As for why no DHCPv6 support, see my comments in
du...@gmail.com <du...@gmail.com> #159
If I turn my wifi on with IPv6 for the initial time, I can connect to ipv6.google.com and other IPv6 sites. If I turn my wifi off, then back on, connecting to the same access point, I can no longer get to ipv6.google.com . I'm also not able to get to http://[2600::aaaa]/ in my browser. With the http://[2600::aaaa]/ address, I get an ERR_ADDRESS_UNREACHABLE message in my chrome browser, with ipv6.google.com , I get the same error message.
lo...@google.com <lo...@google.com> #160
Malte: here's a tcpdump binary taken from my Nexus 5 which might work.
lo...@google.com <lo...@google.com> #161
Dustin: when you reconnect, and IPv6 is not working, is the device configured with IPv6 address, IPv6 default route, etc.? "adb shell dumpsys connectivity" should show this. And what does ping6 2600::aaaa say? When does IPv6 start working again? Does it require a reboot?
du...@gmail.com <du...@gmail.com> #162
I'm not familiar with how to do a adb shell dumpsys connectivity...i'm not a software guy unfortunately, just a network engineer. If I reboot the device, it will work initially, until I drop the wifi and bring it back up. I'm testing this on an LG G3 right now, which is my personal phone, but I can procure a Nexus device if that would be better for troubleshooting. We've used one and it shows the same symptoms.
The device is getting an IPv6 address though, at least according to the Network Status page.
The device is getting an IPv6 address though, at least according to the Network Status page.
lo...@google.com <lo...@google.com> #163
Dustin, bear in mind that the LG G3 (at least on Verizon) suffers from the bug described in comment #104 above, and IPv6 is unlikely to work well until Verizon or LG fix it.
As for adb, it's a tool that among other things allows you to run commands on the device. "adb shell dumpsys connectivity" is a diagnostic command. If you don't have adb I'm afraid there's not much that can be done to debug anything, really. I believe that to get adb you'll need to download the Android SDK and the SDK tools. Seehttp://developer.android.com/tools/help/adb.html
As for adb, it's a tool that among other things allows you to run commands on the device. "adb shell dumpsys connectivity" is a diagnostic command. If you don't have adb I'm afraid there's not much that can be done to debug anything, really. I believe that to get adb you'll need to download the Android SDK and the SDK tools. See
ma...@gmail.com <ma...@gmail.com> #164
Hi Lorenzo, thank you for providing the tcpdump binary - it works fine.
I took a trace while connecting tospiegel.de and experiencing the delays. I also opened ipv4.google.com and ipv6.google.com as requested.
I just briefly looked at the captured packets with Wireshark. To me it seems as if Android was sending many DNS requests via IPv6, gets no response and then falls back to IPv4 DNS.
I will send you the pcap via Google Mail for further investigation.
I took a trace while connecting to
I just briefly looked at the captured packets with Wireshark. To me it seems as if Android was sending many DNS requests via IPv6, gets no response and then falls back to IPv4 DNS.
I will send you the pcap via Google Mail for further investigation.
lo...@google.com <lo...@google.com> #165
Malte, based on the tcpdump, the router's DNS implementation is broken. The router tells the devices on the network to use it as IPv6 DNS server via RDNSS:
06-02 13:20:48.585 - RCV <- {615 DnsInfo servers wlan0 4294967295 2a02:8070:xxxx:xxxx:20b:ff:fe00:add0}
but then it never answers any DNS queries over IPv6, only over IPv4. The problem only occurs on Android 5.0 and above because earlier versions did not support RDNSS. I don't know why other OSes don't have the problem.
Working around this in Android code is not very practical, unfortunately. I suggest you take this up with Unitymedia and ask them to fix the code in the router. Feel free to get them in touch with me if you like.
06-02 13:20:48.585 - RCV <- {615 DnsInfo servers wlan0 4294967295 2a02:8070:xxxx:xxxx:20b:ff:fe00:add0}
but then it never answers any DNS queries over IPv6, only over IPv4. The problem only occurs on Android 5.0 and above because earlier versions did not support RDNSS. I don't know why other OSes don't have the problem.
Working around this in Android code is not very practical, unfortunately. I suggest you take this up with Unitymedia and ask them to fix the code in the router. Feel free to get them in touch with me if you like.
ei...@etherkiller.de <ei...@etherkiller.de> #166
Malte, can you please provide the eRouter type? Are you using a Technicolor TC7200 provided by UM?
ei...@etherkiller.de <ei...@etherkiller.de> #167
Sorry, I just found the comment regarding the Ubee. I'll forward this internally to have it investigated. Thanks!
gr...@gmail.com <gr...@gmail.com> #168
I thought I had this problem, but I found out it was my router.
There is a setting called "Block Anonymous Internet Requests" in my firewall settings that was turned on. After I turned it off it seems like things are now working much much better.
Figured it out after this site told me that ICMP was filtered.
http://ipv6-test.com/
There is a setting called "Block Anonymous Internet Requests" in my firewall settings that was turned on. After I turned it off it seems like things are now working much much better.
Figured it out after this site told me that ICMP was filtered.
ma...@gmail.com <ma...@gmail.com> #169
That modem + router device Unitymedia provided to me is a Ubee EVW3226EU.
According to the (very limited) admin interface it is HW revision 1.23 running SW version EVW3226_1.0.15c.
Are you affiliated with Unitymedia and / or Ubee? You mentioned that you would have this investigated... By whom?
Thanks and regards.
According to the (very limited) admin interface it is HW revision 1.23 running SW version EVW3226_1.0.15c.
Are you affiliated with Unitymedia and / or Ubee? You mentioned that you would have this investigated... By whom?
Thanks and regards.
ma...@gmail.com <ma...@gmail.com> #170
Lorenzo, thanks for the detailed analysis.
For now I do assume that the router is at fault as it does not respond to the DNS requests.
If I find the time, I will sniff the communication of some other clients (e.g. Windows, iPad) to figure out why these don't suffer the same issues.
Maybe DNS timeout is just shorter on those so they fall back to IPv4 quicker? Or maybe they obtain a different DNS config via DHCPv6?
I will keep you posted.
Still I think that an option to disable IPv6 for specific networks on Android side (somewhere in network settings) would be an helpful feature.
IPv6 transition is slow and faulty and most users will not be able to diagnose issues like these. Instead of blaming router / ISP many will assume it is Android's fault - just as I did until proven otherwise. Being able to switch off IPv6 might be a quick and dirty workaround if all else fails.
For now I do assume that the router is at fault as it does not respond to the DNS requests.
If I find the time, I will sniff the communication of some other clients (e.g. Windows, iPad) to figure out why these don't suffer the same issues.
Maybe DNS timeout is just shorter on those so they fall back to IPv4 quicker? Or maybe they obtain a different DNS config via DHCPv6?
I will keep you posted.
Still I think that an option to disable IPv6 for specific networks on Android side (somewhere in network settings) would be an helpful feature.
IPv6 transition is slow and faulty and most users will not be able to diagnose issues like these. Instead of blaming router / ISP many will assume it is Android's fault - just as I did until proven otherwise. Being able to switch off IPv6 might be a quick and dirty workaround if all else fails.
lo...@google.com <lo...@google.com> #171
Malte: do you know if the router responds with ICMPv6 "port unreachable" errors, or does it just drop the queries? The tcpdump expression I provided above wouldn't have seen the ICMPv6 packets, you'd need to use something like "adb shell tcpdump -ni wlan0 -U -w /sdcard/dump.pcap port 53 or port 443 or icmp6".
As for disabling IPv6: workarounds and fallbacks create problems too. The problems caused by the fallbacks need to be balanced with the problems caused by the bug.
Here's a crude example: suppose that we shortened the timeout from 5s to 500ms. Most users might not notice 500ms. Maybe it would have felt slow, but not really slow. So maybe you wouldn't have reported this bug, and the report would not have gotten to us or to the people who need to fix it (Unitymedia and Ubee).
There are other costs, too: battery impact, risk of other bugs due to the complexity of the workarounds, and so on.
As for disabling IPv6: workarounds and fallbacks create problems too. The problems caused by the fallbacks need to be balanced with the problems caused by the bug.
Here's a crude example: suppose that we shortened the timeout from 5s to 500ms. Most users might not notice 500ms. Maybe it would have felt slow, but not really slow. So maybe you wouldn't have reported this bug, and the report would not have gotten to us or to the people who need to fix it (Unitymedia and Ubee).
There are other costs, too: battery impact, risk of other bugs due to the complexity of the workarounds, and so on.
mc...@gmail.com <mc...@gmail.com> #172
[Comment deleted]
mc...@gmail.com <mc...@gmail.com> #173
Sorry if this info is out there. On the LG G3, you can turn on WiFi and airplane mode, and you will have no issues. Of course you have to make VOIP calls. If you turn off airplane mode, and WiFi it will also work. Seems the IPV6 problem only comes into play, if both WiFi and Cellular are on at the same time. At least on the G3. You can also tunnel 4to6 on your router and that will also fix the IPV6 issue. Oc course you won't get to IPV6 only websites with that setting. But, the sync issue will be gone.
lo...@google.com <lo...@google.com> #174
As regards the LG G3 issue: I believe that Verizon Wireless and LG are aware of it, and that a fix is in the works.
jf...@gmail.com <jf...@gmail.com> #175
I can verify that the post in #173 is identical to my issue with Samsung GS5 and GS4, stock (unrooted) 5.0 android, Verizon Wireless, Comcast HSI w/ Netgear C6300.
Airplane mode w/ wifi on?test-ipv6.com works 10/10
Standard operation with wifi off and cellular activated? (VZ only) 10/10
Standard operation with both antennas active? 0/10
-No IPv6 address detected
-Connections to IPv6-only sites are timing out
Airplane mode w/ wifi on?
Standard operation with wifi off and cellular activated? (VZ only) 10/10
Standard operation with both antennas active? 0/10
-No IPv6 address detected
-Connections to IPv6-only sites are timing out
ra...@gmail.com <ra...@gmail.com> #176
I'm having this problem on Samsung Galaxy Tab S (AT&T SM-T707) COMCAST HSI Netgear R7000. All other devices in the network test 10/10 test-ipv6.com , Android (stock) tablet shows 1/10. The only test that failed on test-ipv6.com was "Test IPv6 large packet" returned "timeout(15.091s)"
jo...@gmail.com <jo...@gmail.com> #177
This is beyond a joke. GOOGLE FIX THE ISSUE!!
jo...@gmail.com <jo...@gmail.com> #178
My Samsung galaxy S5 will not work with ipv6, disabled it on my router and the issue went away but I would really like to use ipv6.
[Deleted User] <[Deleted User]> #179
I just upgraded to Lollipop 5.1 on my Verizon Droid Turbo and immediately wifi on my home and other networks became unusable because of this issue. Verizon acknowledges the issue, but says that my only recourse is to contact Google or Motorola. My girlfriend is running Lollipop 5.0 on a Samsung S5 Sport on Sprint and has the same issue. Is this an issue with my router (Netgear N300 C3000) or with Android?
ra...@gmail.com <ra...@gmail.com> #180
I found a solution that works for my Galaxy Tab S with my R7000 router. I set the Internet connection type to DHCP and specified "Use DHCP server" for IP address assignment, instead of "Autoconfig". It seems if you try to send too much info to lollipop, it doesn't handle it well, so you have to have the DHCP server do the work. That might explain why my Windows machines and iOS devices didn't have any problems. I have the same issue with my Kitkat 4.4.2 device and this solution worked for it also.
ap...@gmail.com <ap...@gmail.com> #181
I have the same problem with my moto x 2013 lollipop 5.1 and router svg6582.
I don't know what I can do.
I don't know what I can do.
mc...@gmail.com <mc...@gmail.com> #182
Verizon released an update for the G3. They did manage to fix the WiFi sync issue. Still on 5.0.2 though.
[Deleted User] <[Deleted User]> #183
I'm not a power user, but when I configure my router to use Google's public DNS servers, the problem goes away.
su...@gmail.com <su...@gmail.com> #184
Google can blame the carriers all they want but it's just going to further hurt the platform. I went really out of my wayvand worked with a few great devs on the xda forums to remove IPV6 from a ROM build and have been running that with zero issues. Sadly though its just a toy for me now because my job forced me to starting using an iPhone for a daily driver, its been a horrible experience though. Butvim glad to hear others are figuring out solutions. Everyday I see more and more people complaining on social media about how slow their internet is on a newer android device and it's not looking good for the future of Android as a mobile platform
rs...@chromium.org <rs...@chromium.org> #185
Lorenzo: Just ran into this deploying DHCPv6-PD from Comcast on a WNDR3700v1 running DD-WRT. I've read through the entire report and it seems like there's a variety of things at play, but happy to spend some real time debugging (and if you're in MTV, can always look deeper into it).
What I've observed is that setting Static DNS configs to the Google Public DNS makes things 'just work', but leaving it blank (the default on DD-WRT) makes Android awful, although every other device (iOS, ChromeOS, Chromecast, Windows, Mac, Linux) behaves just fine. So regardless of whether or not there's something misconfigured (and I can totally appreciate botching the DHCP6c config on my end), the fact that every other device can route around the damage suggests there's ample room for improvement. I've left some net-internals log on Issue chromium:511506 so you can see how it plays out for real world loading.
What I've observed is that setting Static DNS configs to the Google Public DNS makes things 'just work', but leaving it blank (the default on DD-WRT) makes Android awful, although every other device (iOS, ChromeOS, Chromecast, Windows, Mac, Linux) behaves just fine. So regardless of whether or not there's something misconfigured (and I can totally appreciate botching the DHCP6c config on my end), the fact that every other device can route around the damage suggests there's ample room for improvement. I've left some net-internals log on Issue chromium:511506 so you can see how it plays out for real world loading.
ra...@gmail.com <ra...@gmail.com> #186
That's a good point. When I noted my config (#180) I didn't think to mention that I had set my primary IPv6 DNS to OpenDNS and my secondary to Google.
OpenDNS 2626:0:ccc::2
Google 2001:4860:4860::8844
OpenDNS 2626:0:ccc::2
Google 2001:4860:4860::8844
lo...@google.com <lo...@google.com> #187
Ryan, and anyone else running the latest M preview - if you are inclined to help debug this, the output of "adb shell dumpsys connectivity --diag" would be helpful.
sublimefly: please understand that OEMs control the code that runs on the devices that they manufacture, and carriers often a) request customizations to that code and b) control schedules of code updates to their customers.
ericmcdaniel: it's possible that the Netgear router is advertising a link-local DNS server, which does not work on Android L. This should already be fixed in the latest M preview build.
JFreed22: this might be a bug in Samsung code. I would not expect this problem to occur on stock Android or Nexus devices. Attaching the output of "adb shell dumpsys connectivity" or a full bugreport, taken when the problem is occurring, would help.
sublimefly: please understand that OEMs control the code that runs on the devices that they manufacture, and carriers often a) request customizations to that code and b) control schedules of code updates to their customers.
ericmcdaniel: it's possible that the Netgear router is advertising a link-local DNS server, which does not work on Android L. This should already be fixed in the latest M preview build.
JFreed22: this might be a bug in Samsung code. I would not expect this problem to occur on stock Android or Nexus devices. Attaching the output of "adb shell dumpsys connectivity" or a full bugreport, taken when the problem is occurring, would help.
[Deleted User] <[Deleted User]> #188
Lorenzo:
Do you have a suggestion for how I might check this setting in my router and to change it to a setting that will work? I'm on Verizon and there is little prospect of getting an update any time soon to M. Thanks!
Do you have a suggestion for how I might check this setting in my router and to change it to a setting that will work? I'm on Verizon and there is little prospect of getting an update any time soon to M. Thanks!
su...@gmail.com <su...@gmail.com> #189
Lorenzo, I completely understand the carrier specific issue. But I don't think you realize that 99% of android customers are unaware of or care about that part of the issue. They see android taking forever to load pages and iPhones not experiencing this issue. So where do those customers report their carrier specific issue and how long do you expect them to wait for a fix if one ever comes before giving up on android?
lo...@google.com <lo...@google.com> #190
ericmcdaniel: the output of "adb shell dumpsys connectivity" would help find out what is happening.
du...@gmail.com <du...@gmail.com> #191
Lorenzo,
I will confirm that the most recent patch that LG implemented on the G3 did fix that device's issues with IPv6 on wifi. Hopefully other manufacturers will implement the same fixes soon.
I will confirm that the most recent patch that LG implemented on the G3 did fix that device's issues with IPv6 on wifi. Hopefully other manufacturers will implement the same fixes soon.
[Deleted User] <[Deleted User]> #192
We see similar issues happening in our app on our corporate WiFi.
"adb shell dumpsys connectivity" output attached.
Company name replaced with <<company>>.
"adb shell dumpsys connectivity" output attached.
Company name replaced with <<company>>.
ek...@google.com <ek...@google.com> #193
Re #192: the device has a default route on wlan0 without a global IPv6 address. The device also has a global IPv6 address on the mobile interface; the kernel is probably trying to use that address to send traffic to IPv6 destinations via the wlan0 interface (which is never likely to work).
There is a recent kernel net-next fix to help address exactly this situation.
There is a recent kernel net-next fix to help address exactly this situation.
[Deleted User] <[Deleted User]> #194
Re #193 (ek): what does a net-next fix mean? Are you saying it would be part of the next Android OS upgrade? Since it can take many months and even years for users to get the latest version of Android on their phones, it would mean that app developers would still have to solve the issue.
an...@gmail.com <an...@gmail.com> #195
[Comment deleted]
an...@gmail.com <an...@gmail.com> #196
Hi,
Recently I moved my S3 (i9300) from kitkat to lollipop 5.1.1. Then I noticed this slow wifi issue annoying me: on mobile data (3g, around 1mbps), navigation is ok. On wifi, 20s to start loading any page on Chrome on seeing an image on Twitter app, WhatsApp messages didn't arrived in hours, until I opened the app.
Today I finally convinced my girlfriend to move from her iPhone 5S to a Moto G (2015) recently launched. I connected on my home network and noticed the same problem. It even dropped internet connectivity when I was installing some apps for her. Disabling ipv6 on router worked fine here, but that just ruins the experience when coming from iOS. I've done this workaround in my home connection, but what about any other wifi we try to connect to? I won't root her new phone in order to disable ipv6 on her side.
Please find attached "dumpsys connectivity" files, one with ipv6 enabled on router, one with it turned off. Thanks for your effort.
Recently I moved my S3 (i9300) from kitkat to lollipop 5.1.1. Then I noticed this slow wifi issue annoying me: on mobile data (3g, around 1mbps), navigation is ok. On wifi, 20s to start loading any page on Chrome on seeing an image on Twitter app, WhatsApp messages didn't arrived in hours, until I opened the app.
Today I finally convinced my girlfriend to move from her iPhone 5S to a Moto G (2015) recently launched. I connected on my home network and noticed the same problem. It even dropped internet connectivity when I was installing some apps for her. Disabling ipv6 on router worked fine here, but that just ruins the experience when coming from iOS. I've done this workaround in my home connection, but what about any other wifi we try to connect to? I won't root her new phone in order to disable ipv6 on her side.
Please find attached "dumpsys connectivity" files, one with ipv6 enabled on router, one with it turned off. Thanks for your effort.
br...@gmail.com <br...@gmail.com> #197
Not sure if this will help the different issues mentioned above, but you may want to see my thread of today over at:
http://forum.cyanogenmod.org/topic/74791-how-to-disable-ipv6/
Note that I really don't disable IPv6 in that thread.
Regards . . .
Note that I really don't disable IPv6 in that thread.
Regards . . .
tr...@gmail.com <tr...@gmail.com> #198
I had this same issue on my phone. Wifi would connect, but none of my apps would refresh, or would take FOREVER to refresh a little bit of information.
I changed my router bandwidth settings from 20MHz to 20MHz/40MHz and the problem has disappeared.
Samsung Galaxy Note 4 (5.0.1)
I changed my router bandwidth settings from 20MHz to 20MHz/40MHz and the problem has disappeared.
Samsung Galaxy Note 4 (5.0.1)
gf...@gmail.com <gf...@gmail.com> #199
I too have this issue on a Moto G 3rd Gen on an Arris router in Brazil. My wife almost exchanged her phone because of this bug. I found out after updating another phone in the same network (a Nexus 4, to lollipop) the bug is there also.
I "fixed" the issue by installing a Market App named NDSET.
I do understand this is a router issue. But you shouldn't expect the regular user manualy setting up a router to fix this. Android should be able to blackflag a router with ipv6 bug. User shouldn't even see the bug
Are there any details how Windows Mobile or IOS bypass the bug on these networks?
I've been a Android users since the HTC G1, and I'm really interested in this.
Thank you in advance.
I "fixed" the issue by installing a Market App named NDSET.
I do understand this is a router issue. But you shouldn't expect the regular user manualy setting up a router to fix this. Android should be able to blackflag a router with ipv6 bug. User shouldn't even see the bug
Are there any details how Windows Mobile or IOS bypass the bug on these networks?
I've been a Android users since the HTC G1, and I'm really interested in this.
Thank you in advance.
ti...@cedaradvisors.com <ti...@cedaradvisors.com> #200
I can also verify that the method described in post #173 resolves the issue. I have a Droid Turbo and a Samsung Galaxy Tab A connected to a ASUS RT-N66R router. I tried the other workarounds (Google DNS, disable IPV6, etc.) but none worked. With both wifi and celluar enabled, Google Drive fails to download shared documents, download times in the Gmail app are horrendous. In airplane mode/WiFi, the app data downloads are lightening fast for both devices. I can finally get faster downloads over WiFi than over cellular data.
ma...@gmail.com <ma...@gmail.com> #201
I still have the problems I described earlier, nothing really changed since my last post here.
For some time I worked around the terrible latency issues by disabling IPv6 on WiFi interface on my phone - but I do not consider that a solution, especially as it requires to root Android. Also, disabling IPv6 somwhat defeats it's purpose, doesn't it?
I appreciate that my specific router may behave incorrectly. But in the end that is out of my control. The router and configuration are supplied by my cable ISP and I cannot change anything about that. Most other users will not even understand what's going on. They rightfully expect their devices to work and naturally will blame Android if it the only device not working properly in their network...
Just to point it out one more time: EVERY OTHER device on my network works just fine using that same router, no latency problems whatsoever.
I have quite a huge mix of clients, Windows 7, Windows 10, Apple iOS tablets, several Linux boxes and a bunch of "smart" devices such as Samsung TV, Logitech media players, home automation equipment etc.
Apparently all these devices either don't suffer the same problems as my Android devices do, or their IPv6 implementations are more fail-safe and thus hide the issues from the users.
Either way - I believe that Google should fix this.
To help, I went out of my ways to take another tcpdump capture which illustrates the issue - will send to Lorenzo by PM.
This is what I did:
0. put phone in airplane mode
1. switch on wifi
2. run tcpdump
> tcpdump -ni wlan0 -U -w /sdcard/dump3.pcap port 53 or port 443 or icmp6
3. connect to home network (to observe dhcp, etc.)
4. openspiegel.de in chrome
5. openipv4.google.com in chrome
6. openipv6.google.com in chrome
7. disable IPV6 on wlan0
> echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
8. repeat above tests
=> no delay when loadingspiegel.de or ipv4.google.com ,
ipv6.google.com of course does not work
9. copy pcap to PC
For comparison, I also took the same trace on a Windows 10 laptop (same scenario) so Lorenzo could figure out what Microsoft does differently to protect their users from these problems.
If helpful, I could also capture communication from a Linux box - let me know.
I wish I could also take a similar trace for an Apple device but unfortunately I don't have a way to tap into the communication - my switch does not allow to mirror a port and the router does not have that option either. Ideas?
To reiterate my request:
I really wished that this problem was fixed on Google's side anytime soon. It is really frustrating and reflects badly on the platform. The blame-game (router is at fault, IPv6 should be implemented differently, etc.) does not help anyone.
Network implementation is not about personal opinion or belief but about interoperability. Same goes about the lack of DHCPv6 support in Android by the way - but that is a different story.
I know many frustrated Android users because of the prevailing problems. Disabling IPv6 or switching to another platform cannot really be the advice to give to them, can it?
For some time I worked around the terrible latency issues by disabling IPv6 on WiFi interface on my phone - but I do not consider that a solution, especially as it requires to root Android. Also, disabling IPv6 somwhat defeats it's purpose, doesn't it?
I appreciate that my specific router may behave incorrectly. But in the end that is out of my control. The router and configuration are supplied by my cable ISP and I cannot change anything about that. Most other users will not even understand what's going on. They rightfully expect their devices to work and naturally will blame Android if it the only device not working properly in their network...
Just to point it out one more time: EVERY OTHER device on my network works just fine using that same router, no latency problems whatsoever.
I have quite a huge mix of clients, Windows 7, Windows 10, Apple iOS tablets, several Linux boxes and a bunch of "smart" devices such as Samsung TV, Logitech media players, home automation equipment etc.
Apparently all these devices either don't suffer the same problems as my Android devices do, or their IPv6 implementations are more fail-safe and thus hide the issues from the users.
Either way - I believe that Google should fix this.
To help, I went out of my ways to take another tcpdump capture which illustrates the issue - will send to Lorenzo by PM.
This is what I did:
0. put phone in airplane mode
1. switch on wifi
2. run tcpdump
> tcpdump -ni wlan0 -U -w /sdcard/dump3.pcap port 53 or port 443 or icmp6
3. connect to home network (to observe dhcp, etc.)
4. open
5. open
6. open
7. disable IPV6 on wlan0
> echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
8. repeat above tests
=> no delay when loading
9. copy pcap to PC
For comparison, I also took the same trace on a Windows 10 laptop (same scenario) so Lorenzo could figure out what Microsoft does differently to protect their users from these problems.
If helpful, I could also capture communication from a Linux box - let me know.
I wish I could also take a similar trace for an Apple device but unfortunately I don't have a way to tap into the communication - my switch does not allow to mirror a port and the router does not have that option either. Ideas?
To reiterate my request:
I really wished that this problem was fixed on Google's side anytime soon. It is really frustrating and reflects badly on the platform. The blame-game (router is at fault, IPv6 should be implemented differently, etc.) does not help anyone.
Network implementation is not about personal opinion or belief but about interoperability. Same goes about the lack of DHCPv6 support in Android by the way - but that is a different story.
I know many frustrated Android users because of the prevailing problems. Disabling IPv6 or switching to another platform cannot really be the advice to give to them, can it?
je...@gmail.com <je...@gmail.com> #202
Marshmallow doesnt appear to fix this.
I'm running into what appears to be the same issue on a Nexus 6 running MRA58K.
I've got a vyatta based Edgerouter Lite, and using prefix delegation from Comcast. I have name servers on the router pointing to Google Public, and I host and cache DNS on the router for my LAN. Immediately after associating to my AP, I note that I have full v4 and v6 connectivity (test-ipv6.com shows 10/10).
Eventually, however, I note that v6 requests start failing. The device shows v6 addresses in Settings, but it appears that all v6 requests timeout. My local firewall is set to allow all ICMPv6 from inside.
I'm running into what appears to be the same issue on a Nexus 6 running MRA58K.
I've got a vyatta based Edgerouter Lite, and using prefix delegation from Comcast. I have name servers on the router pointing to Google Public, and I host and cache DNS on the router for my LAN. Immediately after associating to my AP, I note that I have full v4 and v6 connectivity (
Eventually, however, I note that v6 requests start failing. The device shows v6 addresses in Settings, but it appears that all v6 requests timeout. My local firewall is set to allow all ICMPv6 from inside.
lo...@google.com <lo...@google.com> #203
jeremydk, what is the output of "adb shell dumpsys connectivity --diag"?
lo...@google.com <lo...@google.com> #204
[jeremydk - to be clear - what is the output when the problem is occurring]
je...@gmail.com <je...@gmail.com> #205
NetworkDiagnostics:ifaces{wlan0} index{5} network{149} nethandle{639966563038}
ICMPv4 dst{8.8.8.8} src{10.0.0.11:8 }: SUCCEEDED: 1/1 (32ms)
ICMPv4 dst{10.0.0.1} src{10.0.0.11:10 }: SUCCEEDED: 1/1 (8ms)
ICMPv6 dst{2001:4860:4860::8888} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:7}: FAILED: 0/16 (4795ms)
ICMPv6 dst{2001:558:feed::2} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:9}: FAILED: 0/16 (4798ms)
ICMPv6 dst{2001:558:feed::1} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:11}: FAILED: 0/16 (4801ms)
ICMPv6 dst{fe80::618:d6ff:fef1:2b22%wlan0} src{[fe80::161a:a3ff:fe97:274b%wlan0]:12}: FAILED: 0/16 (4829ms)
DNS UDP dst{8.8.8.8} src{10.0.0.11:41204 } qtype{1} qname{312155-android-ds.metric.gstatic.com }: SUCCEEDED: 1/1 NOERROR (70ms)
DNS UDP dst{10.0.0.1} src{10.0.0.11:48585 } qtype{1} qname{995789-android-ds.metric.gstatic.com }: SUCCEEDED: 1/1 NOERROR (51ms)
DNS UDP dst{2001:4860:4860::8888} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:42689} qtype{28} qname{535042-android-ds.metric.gstatic.com }: FAILED: 0/8 (3995ms)
DNS UDP dst{2001:558:feed::2} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:46004} qtype{28} qname{942130-android-ds.metric.gstatic.com }: FAILED: 0/8 (4018ms)
DNS UDP dst{2001:558:feed::1} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:49619} qtype{28} qname{326231-android-ds.metric.gstatic.com }: FAILED: 0/8 (3995ms)
ICMPv4 dst{8.8.8.8} src{
ICMPv4 dst{10.0.0.1} src{
ICMPv6 dst{2001:4860:4860::8888} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:7}: FAILED: 0/16 (4795ms)
ICMPv6 dst{2001:558:feed::2} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:9}: FAILED: 0/16 (4798ms)
ICMPv6 dst{2001:558:feed::1} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:11}: FAILED: 0/16 (4801ms)
ICMPv6 dst{fe80::618:d6ff:fef1:2b22%wlan0} src{[fe80::161a:a3ff:fe97:274b%wlan0]:12}: FAILED: 0/16 (4829ms)
DNS UDP dst{8.8.8.8} src{
DNS UDP dst{10.0.0.1} src{
DNS UDP dst{2001:4860:4860::8888} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:42689} qtype{28} qname{
DNS UDP dst{2001:558:feed::2} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:46004} qtype{28} qname{
DNS UDP dst{2001:558:feed::1} src{[2601:600:8200:bdf1:b5b9:2ac1:2d22:2dda]:49619} qtype{28} qname{
je...@gmail.com <je...@gmail.com> #206
Had attached it for Lorenzo.
@Lorenzo, do you also want a diag from when I'm in a good state? I just need to toggle the wlan adapter.
@Lorenzo, do you also want a diag from when I'm in a good state? I just need to toggle the wlan adapter.
lo...@google.com <lo...@google.com> #207
jeremydk: yes, IPv6 is completely broken here. We'd need more information to know for sure what's going on. It's possible that NS packets are going unanswered, but if that were happening the device would disconnect quickly.
It would be helpful to have a full bugreport (you can attach or send privately to me), and a tcpdump taken while the problem is happening. If this is an unrooted device you won't be able to run tcpdump on the device itself, but perhaps you can do it on the vyatta box?
Are you sure you're allowing all ICMPv6, including to and from link-local addresses and between global and link-local addresses?
It would be helpful to have a full bugreport (you can attach or send privately to me), and a tcpdump taken while the problem is happening. If this is an unrooted device you won't be able to run tcpdump on the device itself, but perhaps you can do it on the vyatta box?
Are you sure you're allowing all ICMPv6, including to and from link-local addresses and between global and link-local addresses?
je...@gmail.com <je...@gmail.com> #208
Lorenzo:
Sent you a bugreport, TCPdump (from the Vyatta box), and a few snippets from my vyatta config via email.
Sent you a bugreport, TCPdump (from the Vyatta box), and a few snippets from my vyatta config via email.
be...@mtac.net <be...@mtac.net> #209
I'm having this problem on a Comcast modem as well, so I started doing some digging. I skimmed through the comments, and it seems that blame is continuously balked to the router and other sources.
How can you pass the blame when EVERY other device on the market does not have this problem. I currently have a Macbook Pro, an iPad, an Asus Laptop, Wii U, PS3, and PS4 connecting via WiFi to the router and have no problems whatsoever.
The only two things that have problems are my wife and my Android devices.
This issue has been active for almost a year but Google has yet to prioritize and fix this? That's despicable. I may have to swap both of our devices to iPhone if this doesn't get fixed soon.
How can you pass the blame when EVERY other device on the market does not have this problem. I currently have a Macbook Pro, an iPad, an Asus Laptop, Wii U, PS3, and PS4 connecting via WiFi to the router and have no problems whatsoever.
The only two things that have problems are my wife and my Android devices.
This issue has been active for almost a year but Google has yet to prioritize and fix this? That's despicable. I may have to swap both of our devices to iPhone if this doesn't get fixed soon.
to...@gmail.com <to...@gmail.com> #210
Same Problem here in Germany with Ipv6. All Android devices have the 10 sec network delay. Unusable.
pi...@gmail.com <pi...@gmail.com> #211
Having the same issue with a new Galaxy S6 edge running 5.1.1 . It takes a long time to reach websites, but the download/upload speed is as fast as my internet connection allows, making me think this was a DNS problem of sorts. After trying a few suggested fixes, the only one that fixed the issue for me was to straight up disable IPV6 on my router, even though i never had any problems with it on my home PCs and other various non android devices.
Upon disabling IPV6 on the router, my Galaxy S6 edge connects to website instantly.
Upon disabling IPV6 on the router, my Galaxy S6 edge connects to website instantly.
se...@gmail.com <se...@gmail.com> #212
Kabeldeutschland and Primacom customers in Germany have the exact same problem. As soon as RNDSS arrives, pages take at least 10 seconds to load. The routers of these cable internet providers do not provide an option to disable IPv6, forcing the customers to disable IPv6 on their phones somehow.
ei...@etherkiller.de <ei...@etherkiller.de> #213
Sorry for taking me so long to report back on this issue. Lorenzo contacted me today to remind me. I'm in touch with my contacts to figure out what RA settings are configured on the eRouters. I'll star the issue now to receive further updates.
mi...@bartletts.net <mi...@bartletts.net> #214
I have a Nexus 6P and have this problem. Took several days to find the problem is with IP6. I fortunately have disabled IP6 for now making the phone usable on my home wifi network. However, as others have said, no other devices in my house have this problem. My wife's iPhone, Windows computers, iPads, Macbooks, Linux computers, ... Only my brand new Android can't do IP6.
Seems the solution is disable IP6 or get an iPhone.
Fix this Google!
Seems the solution is disable IP6 or get an iPhone.
Fix this Google!
lo...@google.com <lo...@google.com> #215
Mike: please attach or send by private email the output of "adb shell dumpsys connectivity" and "adb shell dumpsys connectivity --diag" so we can determine whether this is a bug in Android.
ma...@gmail.com <ma...@gmail.com> #216
Hi eim...@etherkiller.de,
I reached out to Unitymedia Germany (BW) but no luck so far.
Do you have any contact in their tech department or at Ubee?
If you send me a privat message, I could share the problem descriptions and traces with you.
Hopefully we could drive this issue towards a solution.
Thanks and regards
Malte
I reached out to Unitymedia Germany (BW) but no luck so far.
Do you have any contact in their tech department or at Ubee?
If you send me a privat message, I could share the problem descriptions and traces with you.
Hopefully we could drive this issue towards a solution.
Thanks and regards
Malte
ml...@gmail.com <ml...@gmail.com> #217
As another data point; I run pfSense with IPv6 tunneled thru HE.net, I set the router advertisements to "Assisted" for "DHCPv6 Server assignment combined with Stateless Autoconfig". This works fine, HOWEVER, as soon as I enable wifi calling with Tmobile (which uses IPv6 looking at network settings that cannot be disabled) on my Nexus 6 or 6p, I experience this problem after a few minutes. Initially starts out ok, and then degrades to super-slow DNS lookups until I cycle wifi or wifi calling settings.
ei...@etherkiller.de <ei...@etherkiller.de> #218
Hi Malte,
I do not have a response from their CPE Engineering yet, but expect it to arrive end of this week.
Kind regards,
Dominik
I do not have a response from their CPE Engineering yet, but expect it to arrive end of this week.
Kind regards,
Dominik
bo...@gmail.com <bo...@gmail.com> #219
I have this issue on a Sony Xperia Z3 running 5.1.1 on a network with RDDNS and Autoconfig on in Range in Addition go DHCPV6, with the DHCPV6 app from the app store.
lo...@google.com <lo...@google.com> #220
mloebl: that's unexpected. Can you attach to this bugreport, or send in private email, the output of:
adb shell dumpsys connectivity
adb shell dumpsys connectivity --diag
or, even better, a full bugreport? (Please collect data when the problem is happening.)
bojack1437: there is a known issue in 5.1 where getting an IPv6 DNS server via RDNSS on a DHCPv6-only network will not work. Can you provide or send by email the output of "adb shell dumpsys connectivity"?
adb shell dumpsys connectivity
adb shell dumpsys connectivity --diag
or, even better, a full bugreport? (Please collect data when the problem is happening.)
bojack1437: there is a known issue in 5.1 where getting an IPv6 DNS server via RDNSS on a DHCPv6-only network will not work. Can you provide or send by email the output of "adb shell dumpsys connectivity"?
bo...@gmail.com <bo...@gmail.com> #221
This network has SLAAC + RDDNS and Stateful DHCPv6 with DNS
adb shell dumpsys connectivity
http://pastebin.com/8qvi7356
adb shell dumpsys connectivity --diag
http://pastebin.com/6jWxDLV5
adb shell dumpsys connectivity
adb shell dumpsys connectivity --diag
ma...@gmail.com <ma...@gmail.com> #222
Update on my case:
I compiled a detailed technical description of the problem and have sent it - along with all necessary protocols and traces - to my ISP Unitymedia BW in Germany more than a month ago.
I also called their support department several times to enquire about the status of my request.
Their phone service reps did not know details about ICMPv6 DNS RA and of course could not solve the problem but promised, they would forward my information to their 2nd level IT experts.
Unfortunately, nothing has been fixed so far. The ISP has not even acknowledged the problem.
Today, one of their support managers told me outright that based on his research my internet connection was working fine and he refuses to exchange the affected router or fix the firmware unless I paid for that. His suggestion was to buy a different smartphone, Apple iPhone would work fine. Can you believe that?
I am more than annoyed with the problem.
Lorenzo, could you please refer me to someone from Google Germany who might have an interest to weigh in?
Unitymedia is by far the biggest cable provider over here and many of their customers might be affected by the same issues.
I think the situation reflects badly on Android while in reality the ISP's router is at fault and the provider is unwilling or incapable to fix the problem.
Most users are not able to analyze the problem and find the root cause, so they will believe ISP's lies and simply blame Google for their issues - much as I did in the beginning... :-(
Looking forward to your reply.
Thanks and regards
Malte
I compiled a detailed technical description of the problem and have sent it - along with all necessary protocols and traces - to my ISP Unitymedia BW in Germany more than a month ago.
I also called their support department several times to enquire about the status of my request.
Their phone service reps did not know details about ICMPv6 DNS RA and of course could not solve the problem but promised, they would forward my information to their 2nd level IT experts.
Unfortunately, nothing has been fixed so far. The ISP has not even acknowledged the problem.
Today, one of their support managers told me outright that based on his research my internet connection was working fine and he refuses to exchange the affected router or fix the firmware unless I paid for that. His suggestion was to buy a different smartphone, Apple iPhone would work fine. Can you believe that?
I am more than annoyed with the problem.
Lorenzo, could you please refer me to someone from Google Germany who might have an interest to weigh in?
Unitymedia is by far the biggest cable provider over here and many of their customers might be affected by the same issues.
I think the situation reflects badly on Android while in reality the ISP's router is at fault and the provider is unwilling or incapable to fix the problem.
Most users are not able to analyze the problem and find the root cause, so they will believe ISP's lies and simply blame Google for their issues - much as I did in the beginning... :-(
Looking forward to your reply.
Thanks and regards
Malte
th...@gmail.com <th...@gmail.com> #223
How is this issue Priority "small", when it is clearly affecting many models of Android phones from using Wifi on modern modems that support IPV6? I have a Samsung S6 that has this issue on Comcast / Cox wifi routers, yet others on iPhones and other devices have none of these issues. Google's own Project Fi relies on Wifi as primary data usage... this is ridiculous to be a "small" issue, when it is obviously affecting many. Most people don't know to come into Google's code forms to complain or report bugs. If this was an iPhone issue, this would have been resolved week after it was reported. This is sad
we...@gmail.com <we...@gmail.com> #224
Are there any updates on this issue? It has been over a year now and it effects both my nexus phone and nexus tablet. ;( (no other devices has the problem)
Im on Comcast in the US.
Is there anything that I can do/help out with?
Im on Comcast in the US.
Is there anything that I can do/help out with?
ne...@gmail.com <ne...@gmail.com> #225
@lorenzo: I can report the same experience as mloebl - with IPv6 enabled on my home network (Comcast + Asus RT-AC66U), enabling WiFi Calling (T-Mobile) results in all IPv6 packets being dropped beginning approximately 30 seconds after WiFi Calling completes auto-configuration.
It should be noted that toggling "Mobile Data" will automatically disable WiFi Calling, which would explain reports that disabling Mobile Data works around this issue.
Based on these findings, I believe that this issue is entirely due to IPv6 requests timing out before failing over to IPv4, producing what users are experiencing as "slow WiFi" when IPv6 and WiFi Calling are enabled simultaneously.
FULL REPRO STEPS:
1. Verify that WiFi Calling is DISABLED
2. Connect to IPv6-enabled WiFi network
3. "ping6 Google.com" from device
4. ENABLE T-Mobile WiFi Calling
RESULTS:
After approx. 30 seconds all IPv6 packets are dropped as "Destination unreachable: Address unreachable"
VERIFIED ON:
Nexus 6 (shamu) running official Android 6.0 build MRA58K
DUMPSYS CONNECTIVITY and DUMPSYS CONNECTIVITY --DIAG have been e-mailed to you with subject line " Issue 36949180 - WiFi Calling causing IPv6 failure - DUMPSYS"
It should be noted that toggling "Mobile Data" will automatically disable WiFi Calling, which would explain reports that disabling Mobile Data works around this issue.
Based on these findings, I believe that this issue is entirely due to IPv6 requests timing out before failing over to IPv4, producing what users are experiencing as "slow WiFi" when IPv6 and WiFi Calling are enabled simultaneously.
FULL REPRO STEPS:
1. Verify that WiFi Calling is DISABLED
2. Connect to IPv6-enabled WiFi network
3. "ping6 Google.com" from device
4. ENABLE T-Mobile WiFi Calling
RESULTS:
After approx. 30 seconds all IPv6 packets are dropped as "Destination unreachable: Address unreachable"
VERIFIED ON:
Nexus 6 (shamu) running official Android 6.0 build MRA58K
DUMPSYS CONNECTIVITY and DUMPSYS CONNECTIVITY --DIAG have been e-mailed to you with subject line "
ne...@gmail.com <ne...@gmail.com> #226
@lorenzo: Output of "adb bugreport" has also been forwarded to you, with subject line " Issue 36949180 - WiFi Calling causing IPv6 failure - BUGREPORT"
ra...@gmail.com <ra...@gmail.com> #227
I am also on Comcast in US. I don't know if this is helpful, but through
trial and error I found an IPv6 setting on my router that eliminated the
problem for my Galaxy Tab S. My router is a Netgear R7000 and in the
IPv6 settings, the "Internet Connection Type" field has a drop down menu
with 8 choices. Long story short: the setting that fixes the problem is
"Auto Configure". There is also a choice called "Auto Detect", which I
tried first. "Auto Detect" doesn't help, but "Auto Configure" made the
problem go away. I have no idea what the difference is.
trial and error I found an IPv6 setting on my router that eliminated the
problem for my Galaxy Tab S. My router is a Netgear R7000 and in the
IPv6 settings, the "Internet Connection Type" field has a drop down menu
with 8 choices. Long story short: the setting that fixes the problem is
"Auto Configure". There is also a choice called "Auto Detect", which I
tried first. "Auto Detect" doesn't help, but "Auto Configure" made the
problem go away. I have no idea what the difference is.
ml...@gmail.com <ml...@gmail.com> #228
Glad @lorenzo was able to capture it, as I let the prepaid Tmo sim lapse and just re-upped it. I've run into a related issue with this. If I have IPv6 enabled, and enable Tmo wifi calling, it will also drop and reconnect the wifi quite frequently (very well may be DNS related). Living in a low-service area, issue is pretty noticeable. Once I disable IPv6 on the router, no more issues and wifi/Tmo wifi calling are rock solid.
if you need a second capture, I've upped the SIM so can do it now.
if you need a second capture, I've upped the SIM so can do it now.
su...@gmail.com <su...@gmail.com> #229
I think we just need to face facts, Android devs don't care about service breaking issues end of story. At least following this thread has lead me to believe this completely and I'm now second guessing my love of Android. This has been an issue for over two years and zero progress has been made. Dev's can say whatever they want, but when a service breaking issue is low priority and ignored almost entirely with all of these posts and submission of data for 2 full years its very apparent they couldn't care less about their customers.
jo...@gmail.com <jo...@gmail.com> #230
+1 Samsung S5 Neo. Sucks IPv6 doesn't work when I lock the screen.
Disable ipv6 on my router solves the problem. But I don't want that!
Come on Google, fix this!
Disable ipv6 on my router solves the problem. But I don't want that!
Come on Google, fix this!
su...@gmail.com <su...@gmail.com> #231
So I just setup Marshmallow on my HTC M8 Google Play Addition and guess what... The IPV6 routing issue is still there. Worst Devs ever!!! Seriously, how many years will this go on with as many customers as its occurring for? I'm sorry to be harsh, but this is going to continue to hurt market share and if you guys can't see that then you deserve to lose all the business its costing you.
su...@gmail.com <su...@gmail.com> #232
At this point I am starting to think we need to start submitting this issue as new bug reports so someone who can actually resolve the issue gets eyes on it. I'm sure I'm just extra upset because I really thought they'd have figured this out by the time I moved to Marshmallow and I'm spiteful. But with the millions of lines of code submitted by everyone here and all the complaints and stories about this issue found when you google it that it would be resolved by now. It's honestly disgusting that this still isn't addressed with what a major issue it is.
ml...@gmail.com <ml...@gmail.com> #233
I am unsure if lucky or it was fixed, but using IPv6 via PFSense, and Nexus 6p with 6.0.1, I no longer am having any issues with this. Even functioning properly with Tmo Wifi Calling enabled.
I can confirm I indeed have an IPv6 address on the phone, and browsing and other network activity is snappy for both IPv4 and IPv6 sites.
I can confirm I indeed have an IPv6 address on the phone, and browsing and other network activity is snappy for both IPv4 and IPv6 sites.
ri...@gmail.com <ri...@gmail.com> #234
Been experiencing this issue since upgrade to Lollipop on my LGG3. Using DNSSet doesn't help, setting google dns on my router doesn't help. The only thing that did work was rooting my phone and disabling ipv6. I've been seriously considering buying an iPhone and just being done with it, cannot stand not being able to use my phone on wifi at home.
st...@gmail.com <st...@gmail.com> #235
This wifi issue is a severe problem that occurs also in new Wiko' smartphones, with Android > 5.0.
I can confirm no trouble with Android phones which manage only IPv4 address (older).
It is very annoying, especially when you can't modify any IPv6 settings on your own supplier router. Many friends of mine are switching to iPhone... wonder why!!!?
Please give us a chance to set our phones usable!
I can confirm no trouble with Android phones which manage only IPv4 address (older).
It is very annoying, especially when you can't modify any IPv6 settings on your own supplier router. Many friends of mine are switching to iPhone... wonder why!!!?
Please give us a chance to set our phones usable!
sr...@gmail.com <sr...@gmail.com> #236
Nexus 6, Android 6.0.1
I can state that ipv6 works fine UNLESS T-Mobile WiFi calling is connected. In this case, web browsing is crazy sliw.
My wild guess: Perhaps DNS requests are being sent down the WiFi calling VPN?
I can state that ipv6 works fine UNLESS T-Mobile WiFi calling is connected. In this case, web browsing is crazy sliw.
My wild guess: Perhaps DNS requests are being sent down the WiFi calling VPN?
ra...@gmail.com <ra...@gmail.com> #237
I am getting same issue while accessing rest api on LAN on Wifi. My handset is Nexus 6 with Android M.
I went through this thread, and one big question pops in my mind - Why this annoying issue been there for an year and android team is pushing IPv6 as default which is right now broken. why there is no update with ipv4 as default and a control for user to enable IPV6 so they can use their handsets happily.
I went through this thread, and one big question pops in my mind - Why this annoying issue been there for an year and android team is pushing IPv6 as default which is right now broken. why there is no update with ipv4 as default and a control for user to enable IPV6 so they can use their handsets happily.
zo...@gmail.com <zo...@gmail.com> #238
I'm having same issue on all Android lollipop devices. I tried unchecking Stateless in comcast gateway but it only helped for one day. Pretty depressing to see the apathy around this at Google and it looks like lorenzo@google.com stopped paying attention to this thread last November...
gi...@gmail.com <gi...@gmail.com> #239
Same problem with Motorola Nexus 6 - android 6.0.1 - it works if I disable Ipv6 on my router.
jo...@gmail.com <jo...@gmail.com> #240
True true true. happens for me on wifi and cellular only when ipv6 is enabled
[Deleted User] <[Deleted User]> #241
I have this problem as well. LG g2 on Sprint running 5.0.2 when on comcast WiFi. No other devices in the house including other Android phones have the issue. Why can't we disable ipv6 without root? Seems like Google is being like Apple and taking away control of the devices that we own.
st...@gmail.com <st...@gmail.com> #242
I just had this issue on my Moto G 2015 - Android 6.0.1, I'm on Comcast.
The symptoms I had were ~9 second dns lookups. Ping and speedtests showed normal numbers (~14ms and ~50Mb/s), but these tests took ~10 seconds to start, which I suspect was the first dns server timing out and then switching to an IPv4 dns server. While the issue was present, IPv6 didn't work as tested bytest-ipv6.com .
After installing and uninstalling a DHCPv6 app (it didn't help), IPv6 started working again and I'm 90% sure one DNS server disappeared from the list ("getprop | grep net.dns"):
[net.dns1]: [2001:558:feed::1]
[net.dns2]: [2001:558:feed::2]
[net.dns3]: [8.8.8.8]
[net.dns4]: [8.8.4.4]
The first 2 appear to be Comcast's IPv6 dns servers. I definitely saw one in the list before when it wasn't working that started with "fe", so if I have this issue again I'll be sure to note what it is.
The symptoms I had were ~9 second dns lookups. Ping and speedtests showed normal numbers (~14ms and ~50Mb/s), but these tests took ~10 seconds to start, which I suspect was the first dns server timing out and then switching to an IPv4 dns server. While the issue was present, IPv6 didn't work as tested by
After installing and uninstalling a DHCPv6 app (it didn't help), IPv6 started working again and I'm 90% sure one DNS server disappeared from the list ("getprop | grep net.dns"):
[net.dns1]: [2001:558:feed::1]
[net.dns2]: [2001:558:feed::2]
[net.dns3]: [8.8.8.8]
[net.dns4]: [8.8.4.4]
The first 2 appear to be Comcast's IPv6 dns servers. I definitely saw one in the list before when it wasn't working that started with "fe", so if I have this issue again I'll be sure to note what it is.
pa...@gmail.com <pa...@gmail.com> #243
Both my Nexus 6 with the latest Android 6 and my wife's Nexus 5X are affected. The DNSset app doesn't seem to work anymore for our Android versions. Is there a proper fix cuz we are burning all our mobile data. This thread seems to be going for 16months, this is unacceptable...
st...@gmail.com <st...@gmail.com> #244
@paul.vayssiere Can you open a terminal emulator or adb shell into the phone and run "getprop | grep net.dns"? What ISP do you have?
st...@gmail.com <st...@gmail.com> #245
I actually just discovered exactly why I am having this issue.
I was watching my router stats and noticed that my router lost its IPv6 address for a moment. My phone (and laptop) both retained a local IPv6 address, but were unable to communicate over the internet via IPv6. Mu phone also seemed to have different DNS settings when the public IPv6 address was lost by the router:
Normal for comcast:
[net.dns1]: [2001:558:feed::1]
[net.dns2]: [2001:558:feed::2]
[net.dns3]: [8.8.8.8]
[net.dns4]: [8.8.4.4]
When the issue is present:
[net.dns1]: [fe80::e23f:49ff:fe58:c192%wlan0]
[net.dns2]: [8.8.8.8]
[net.dns3]: [8.8.4.4]
[net.dns4]: []
I'm not entirely sure what the dns1 address is, but it seems to me the issue is not being able to keep an IPv6 address, whether it be my router or Comcast, so I'll be disabling IPv6 for now.
I was watching my router stats and noticed that my router lost its IPv6 address for a moment. My phone (and laptop) both retained a local IPv6 address, but were unable to communicate over the internet via IPv6. Mu phone also seemed to have different DNS settings when the public IPv6 address was lost by the router:
Normal for comcast:
[net.dns1]: [2001:558:feed::1]
[net.dns2]: [2001:558:feed::2]
[net.dns3]: [8.8.8.8]
[net.dns4]: [8.8.4.4]
When the issue is present:
[net.dns1]: [fe80::e23f:49ff:fe58:c192%wlan0]
[net.dns2]: [8.8.8.8]
[net.dns3]: [8.8.4.4]
[net.dns4]: []
I'm not entirely sure what the dns1 address is, but it seems to me the issue is not being able to keep an IPv6 address, whether it be my router or Comcast, so I'll be disabling IPv6 for now.
bj...@gmail.com <bj...@gmail.com> #246
some (or most) of you don't see a problem with Android here but a problem with the wifi firmware of Samsung devices, which breaks IPv6 in wifi networks for those devices:
https://code.google.com/p/android/issues/detail?id=32662
http://lists.cluenet.de/pipermail/ipv6-ops/2015-June/010634.html
https://docs.google.com/spreadsheets/d/1uDL39XN72iJcQea03Wqdt9k5FhwKAv8WdsYiwjCceIA
lo...@google.com <lo...@google.com> #247
As for devices dropping IPv6 packets when the screen is off: as of Android 6.0 and above, that behaviour is disallowed by the Android CDD and should cause a failure in the ConnectivityScreenOff conformance test.
iv...@erben.sk <iv...@erben.sk> #248
Hi,
it seems to be problem also on my Redmi Note 2. I have also noticed that nothing is advertising 8.8.8.8 as dns, but i still see it in getprop | grep dns list. What the...!
After turning off RA DNS anouncments, everything works great.
I really 'love' ipv6
it seems to be problem also on my Redmi Note 2. I have also noticed that nothing is advertising 8.8.8.8 as dns, but i still see it in getprop | grep dns list. What the...!
After turning off RA DNS anouncments, everything works great.
I really 'love' ipv6
sc...@gmail.com <sc...@gmail.com> #249
Like sriches stated above, the problem goes away when I disable WiFi calling.
I have a nexus 6 unlocked (purchased from google, not my carrier) I use T-Mobile, on android 6.01.
I have a nexus 6 unlocked (purchased from google, not my carrier) I use T-Mobile, on android 6.01.
bi...@gmail.com <bi...@gmail.com> #250
That's great, there is some issue with my LG G4 where I cannot disable wifi calling. lol
I am, running a small business level network at my home, Aruba IAP 225 (connected directly to 30d), D-Link DGS-100-24, and Fortigate 30d. I cannot get my LG G4 to work correctly on wifi. I see that it has an IPv6 address, but nothing else on the network has IPv6 enabled.
Seeing that IPv6 problems have been around since 2014 does not make me hopeful for a fix for my G4.
I am, running a small business level network at my home, Aruba IAP 225 (connected directly to 30d), D-Link DGS-100-24, and Fortigate 30d. I cannot get my LG G4 to work correctly on wifi. I see that it has an IPv6 address, but nothing else on the network has IPv6 enabled.
Seeing that IPv6 problems have been around since 2014 does not make me hopeful for a fix for my G4.
so...@soundvessel.com <so...@soundvessel.com> #251
Could we get the priority of this issue raised? IP6 will become a necessity. Perviously had this issue with a 2 year old Note 3 only to be dealing with it again on the flagship Nexus 6p.
si...@gmail.com <si...@gmail.com> #252
Perhaps not the correct thread but another issue seem to be that PMTUD for IPv6 isn't working as it should. Which in turn is experienced as slow wifi in some applications. Google now search is one of them.
When IPv6 is enabled, and the path MTU to destination is 1280. Android sends a packet with size 1314 which in turn is dropped by the firewall. As a response ICMP error "Packet to big, use MTU 1280" is sent to Android from firewall but must be ignored since packets with size 1314 keep coming.
To me it seems like Android is calculating with a IPv6 header of 20bytes instead of 40bytes.
It should be mentioned that i do not know if the ICMP error packet is properly received by the Android phone. But i find it highly unlikley that it's dropped by the AP (same issue on two different AP's).
Once connected to a network without IPv6, works like a charm.
When IPv6 is enabled, and the path MTU to destination is 1280. Android sends a packet with size 1314 which in turn is dropped by the firewall. As a response ICMP error "Packet to big, use MTU 1280" is sent to Android from firewall but must be ignored since packets with size 1314 keep coming.
To me it seems like Android is calculating with a IPv6 header of 20bytes instead of 40bytes.
It should be mentioned that i do not know if the ICMP error packet is properly received by the Android phone. But i find it highly unlikley that it's dropped by the AP (same issue on two different AP's).
Once connected to a network without IPv6, works like a charm.
sc...@gmail.com <sc...@gmail.com> #253
Mine seems to work fine now... note 4 on lolli pop... I disabled ipv6 on my router... solved issues... then I just recently turned ipv6 back on... problem no longer there... did google fix this finally??? Please let us know if this was finally fixed across the board???
sc...@gmail.com <sc...@gmail.com> #254
Mine seems to work fine now... note 4 on lolli pop... I disabled ipv6 on my router... solved issues... then I just recently turned ipv6 back on... problem no longer there... did google fix this finally??? Please let us know if this was finally fixed across the board???
jo...@gmail.com <jo...@gmail.com> #255
So, I'm hitting this issue as well -- same symptoms with slow wifi that seems to "stall" and then work, while speedtests show full speed.
From what I've gathered, and what other have said, it seems to be related to Android 5.x+ with IPv6 on at the router with IPv6 DNS entries being broadcast from the router. Comcast seems to be the usual ISP with the problems.
On my router with stock firmware, I can use full IPv6 and it works correctly. If you check the DNS entries that get sent to the network, it's only the router's IPv4 address. If I used an alternative firmware like openWRT/LEDE, then the router also sends out IPv6 DNS entries, which is when the timeouts on Android (but no other OS) start to hit.
So, the problem (besides lack of full DHCPv6 support from Google) is that Android is choking on IPv6 DNS entries supplied by the router.
From what I've gathered, and what other have said, it seems to be related to Android 5.x+ with IPv6 on at the router with IPv6 DNS entries being broadcast from the router. Comcast seems to be the usual ISP with the problems.
On my router with stock firmware, I can use full IPv6 and it works correctly. If you check the DNS entries that get sent to the network, it's only the router's IPv4 address. If I used an alternative firmware like openWRT/LEDE, then the router also sends out IPv6 DNS entries, which is when the timeouts on Android (but no other OS) start to hit.
So, the problem (besides lack of full DHCPv6 support from Google) is that Android is choking on IPv6 DNS entries supplied by the router.
[Deleted User] <[Deleted User]> #256
[Comment deleted]
[Deleted User] <[Deleted User]> #257
[Comment deleted]
cl...@gmail.com <cl...@gmail.com> #258
The problem at this point is that Google's engineers have stubbornly refused to support the standards that every other OS vendor supports and now they're worried that if they back down and fix Android it will make them look weak or something.
lo...@google.com <lo...@google.com> #259
Update on this bug with fixes that have been made over the last year or so.
1. Android 5.x had a bug where link-local DNS servers would not work. That was fixed in 6.0 or 6.1.
2. Previous Android releases had a bug where if the router sent a router advertisement with a default route but no autoconfigured IPv6 prefixes, and the device also had an IPv6 cellular connection, the device would attempt to use the invalid IPv6 configuration instead of avoiding it. IIRC that was fixed in 6.1, but the fix is device-specific.
3. In Android 7.0 and above, the OS will notice if DNS servers are unresponsive and avoid them. So if a misbehaving router announces an IPv6 DNS server that doesn't respond to queries, the performance penalty will be removed soon after disconnect. Note that this is an invalid configuration, and a network that has this IPv6 problem may have other IPv6 problems as well.
Bear in mind that there is nothing that the Android team can do to fix older versions of Android. It is up to the OEM (and sometimes, the carrier as well) to provide a software update.
Also bear in mind that OEMs may or may not pick up those fixes and may introduce bugs (or bug fixes) that are not in stock Android. There is not much the Android team can do about such issues.
As such, when adding more comments to this issue, please focus on issues that happen in Android 7.0 or above, and preferably issues that are can be reproduced on Nexus or Pixel devices.
1. Android 5.x had a bug where link-local DNS servers would not work. That was fixed in 6.0 or 6.1.
2. Previous Android releases had a bug where if the router sent a router advertisement with a default route but no autoconfigured IPv6 prefixes, and the device also had an IPv6 cellular connection, the device would attempt to use the invalid IPv6 configuration instead of avoiding it. IIRC that was fixed in 6.1, but the fix is device-specific.
3. In Android 7.0 and above, the OS will notice if DNS servers are unresponsive and avoid them. So if a misbehaving router announces an IPv6 DNS server that doesn't respond to queries, the performance penalty will be removed soon after disconnect. Note that this is an invalid configuration, and a network that has this IPv6 problem may have other IPv6 problems as well.
Bear in mind that there is nothing that the Android team can do to fix older versions of Android. It is up to the OEM (and sometimes, the carrier as well) to provide a software update.
Also bear in mind that OEMs may or may not pick up those fixes and may introduce bugs (or bug fixes) that are not in stock Android. There is not much the Android team can do about such issues.
As such, when adding more comments to this issue, please focus on issues that happen in Android 7.0 or above, and preferably issues that are can be reproduced on Nexus or Pixel devices.
su...@gmail.com <su...@gmail.com> #260
It's really a shame is this is too little too late for now. The majority of large corporations have moved to Apple devices for security reasons as predicted and likely won't be looking back any time soon...
a....@gmail.com <a....@gmail.com> #261
Hey, here is a bug that is reproducible:
DHCPv6 doesn't work on Android.
DHCPv6 doesn't work on Android.
ne...@gmail.com <ne...@gmail.com> #262
Thank you for the update, Lorenzo!
I'm happy to report that I am not seeing issues with IPv6 support on my home network setup with Android 7.0+ (Nexus 6P).
Cheers!
I'm happy to report that I am not seeing issues with IPv6 support on my home network setup with Android 7.0+ (Nexus 6P).
Cheers!
ba...@gmail.com <ba...@gmail.com> #263
I'm on the latest update for the Nexus 6 and I am still experiencing this
problem.
problem.
lo...@google.com <lo...@google.com> #264
bamapookie, do you have wifi calling enabled? If you disable wifi calling, does the problem stop occurring?
rv...@gmail.com <rv...@gmail.com> #265
Just saw this yesterday morning...after 3 hours with very little activity on my phone, battery at 96%. Turned off IPv6 yesterday after seeing that. After about 3 hours this morning, very little activity on phone, battery at 100%. That's not giant, but it's the same thing that I've been seeing on both Nougat and 7.1.1 Preview 1.
Oh, by the way, have a Nexus 6P, and am currently using 7.1.1 Preview 1. But, as I said, see the same sort of thing on Nougat.
Did not see this on Marshmallow with the Nexus 6P.
Oh, by the way, have a Nexus 6P, and am currently using 7.1.1 Preview 1. But, as I said, see the same sort of thing on Nougat.
Did not see this on Marshmallow with the Nexus 6P.
go...@evilazrael.de <go...@evilazrael.de> #266
I doubt this is only a DNS issue. Or at least not in my case. My girlfriend's phone (Sony xperia Z5) has the same symptom, first connection to new servers get delayed 5-10 seconds and this happens only in my network, which is IPv6 enabled. I am using radvd for router advertisements. I see in Android that the IPv6 address and the IPv6 DNS is set properly. But the device does not set any IPv6 route, so the DNS and everything IPv6 enabled is not reachable which will probably cause the delay (detecting DNS and fallback to IPv4).
My own KC-S701 running Android 4.4 takes ages to configure IPv6, but everything is working. IPv6 address, route are setup, but there's no IPv6 DNS configured evenipv6-test.com is claiming DNS6+IPv6 is working.
I attached some output from the xperia Z5: ip a, ip route & ip -6 route and getprop net.dns1/2 and my radvd config file.
My own KC-S701 running Android 4.4 takes ages to configure IPv6, but everything is working. IPv6 address, route are setup, but there's no IPv6 DNS configured even
I attached some output from the xperia Z5: ip a, ip route & ip -6 route and getprop net.dns1/2 and my radvd config file.
go...@evilazrael.de <go...@evilazrael.de> #267
Nvidia Shield with Android 6.0.1 same behaviour as the xperia Z5 (also running Android 6.0.1, forgot to mention this.
ss...@gmail.com <ss...@gmail.com> #268
[Comment deleted]
ss...@gmail.com <ss...@gmail.com> #269
With Nexus 5X + Android 7.1.1, I also experienced Wi-Fi disconnect every about 10 seconds.
It occurred when all of the following two conditions were satisfied.
1) default ipv6 router drops all incoming ipv6 packets from Android 7.1.1
2) But the router advertise ICMPv6 RA and RDNSS with AdvRDNSSLifetime not 0 second
3) DNS resolver server exists on local network and reply to Android 7.1.1
As I looked at tcpdump, after Android tried connecting tohttps://googlehosted.l.googleusercontent.com/ with ipv6 transport,
Wi-Fi is disconnected.
It occurred when all of the following two conditions were satisfied.
1) default ipv6 router drops all incoming ipv6 packets from Android 7.1.1
2) But the router advertise ICMPv6 RA and RDNSS with AdvRDNSSLifetime not 0 second
3) DNS resolver server exists on local network and reply to Android 7.1.1
As I looked at tcpdump, after Android tried connecting to
Wi-Fi is disconnected.
ad...@google.com <ad...@google.com> #270
This is a product feature issue; not a developer issue. Our Android Support team will be in contact with you shortly.
In the meantime, here are helpful resources:
ml...@gmail.com <ml...@gmail.com> #271
How is it having IPv6 (widespread at time of the phone's release) cause my device's Wifi to be slower and less stable a feature? Where's the intentional benefit in that developer's design? This is a bug.
lo...@google.com <lo...@google.com> #272
We're not aware of any reason why IPv6 should be slower than IPv4 in the general case. There may be specific networks on which this happens, but if so, that should be dealt with by opening new issues and not commenting on this issue.
th...@brokenwire.net <th...@brokenwire.net> #273
Nice way to resurrect a 7 year old thread.
*Achievement unlocked: Necromancer*
*Achievement unlocked: Necromancer*
th...@gmail.com <th...@gmail.com> #274
I believe this was accidently resolved against the devs best efforts via a complete system revamp in Android 7.0 lol.
go...@evilazrael.de <go...@evilazrael.de> #275
Besides reviving a long dead issue topic, I am sure somebody would have complained and closed the new report as a duplicate. Like always...
And there can be issues with ipv6. Something like varying MTUs when you have to use tunnels or so.
And there can be issues with ipv6. Something like varying MTUs when you have to use tunnels or so.
Description
My device is having a speed issue when connected to wifi. I have not been able to figure out the exact cause, but here is a list of observations.
1) When connected to LTE (wifi disabled or no server available), I have absolutely no issue. Data performance is up to par with Kit-Kat. Ping tests are normal, with pings to
2) When connected to wifi, any action that requires internet connectivity, is delayed approximately 5-9 seconds. For instance, opening facebook messenger. When I click on a conversation, the page is white for several seconds, before finally populating with the text. This occurs in every app that must connect to the internet across the board.
3) Ping testing while using wifi shows about a 9000ms ping to
There is no packet loss. It simply takes forever to make the trip.
4) Overall speed does not appear to be the problem. Speed tests top out fairly close to the available bandwidth. At my home, it is 50Mb/s. My speed tests on my phone gets up into the 40s. Similar results were noted on other wireless networks.