Samsung Galaxy S4 – IPv6 borked….

I have been running around trying to figure out why my Samsung Galaxy S4 (Android 4.3) seems to lose its IPv6 prefix when it has been sleeping for a while. At first I blamed my edge CPE device, as I had rebuilt a OpenWRT recently and switched from WIDE-DHCPv6+RADVD to 6relayd.  And I had never noticed if the previous implementation had this issue or not.

Symptoms:  If I leave the device idle for a certain amount of time (which apparently would be longer than the preferred life of the prefix), when I open the browser I note that v6-sites are not reachable until my router sends an unsolicited RA.   I installed some free apps such as MyIPv6 and Network Info ii and although all seemed normal during phone use, after a certain time the prefixes would be non-functional, and would even not appear in these apps as existing, until the next RA sent by the router and all would resume correctly.

As well, if for whatever reason the prefix received by prefix delegation changes, an idle device (read: screen off….) will only learn of the new prefix once the route sends an RA containing that new prefix.

 

Out of desperation I started googling and apparently I am not alone:

http://developer.samsung.com/forum/board/thread/view.do?boardName=General&messageId=239890

http://code.google.com/p/android/issues/detail?id=32662

I especially liked the comment from the Samsung developers:

OK, well I tested this, as did the reporter of this issue.  Simply locking the phone (turning off the screen), with an ICMP ping to the IPv4 and IPv6 addresses respectively.  The IPv6 address of my phone ceases to reply to ICMP echo requests when I turn off the screen (as expected) –  YET IPv4 REQUESTS ARE NOT IGNORED and replies are sent by the GS4!   So what gives, Samsung devops?  This is with or without the power saving features enabled.  I don’t believe this cockamamie notion about  running down batteries – its either laziness, incompetence or an outright dismissal of a bug.

And frankly, I wouldn’t really care if ICMP echo/echo-reply data was discarded, however ND, RA and other critical v6 traffic shouldn’t be.  Or, at the very least, send a solicited RA or reset the IPv6 stack entirely, because when the phone wakes from sleep or is unlocked, the IPv6 stack is broken up until a router sends an RA.  And in my case, 6relayd seems to send one every 7 minutes or so, with a randomized +/- interval of a few seconds.  And some networks I have connected to send RAs every hour, not every few seconds, since IPv6 protocols allow for address assignment to occur without RAs….So it could be a long wait!  And even if a network sends an unsolicited-RA every 30 seconds, that is 30 seconds where your connectivity is v4-only when you benefit from a dual-stacked environment.  Not very modern-ish behaviour by a so-called industry leader!

I hate to admit it, but I tested iPhone4, 4S, 5 and iPad mini as well as Windows XP/7, and they all behave correctly when woken from whatever state they were in post-prefix-expiry.  I will be borrowing some other Android devices as I can get my hands on them to compare results.  But as of now I don’t have a very high regard for Samsung’s IPv6 implementation!

 

Samsung coders need to get a clue!  “End users can connect to networks continually by IPv4” is not an acceptable answer.  As IPv6 grows in popularity and necessity, that is a pretty bone-headed opinion.  Need I point out that at the time of this writing, that forum post is less than 6 months old!

 

7 thoughts on “Samsung Galaxy S4 – IPv6 borked….

  1. Hi Chris,

    Thanks for your post! Since I switched my ISP connection and home network to IPv6 I constantly experienced problems like connection errors in YouTube when I left the phone unattended for a while and it went into sleep. Even worse, I often do not receive Google Hangout notifications… maybe because of this very issue.

    I can reproduce the behavior with the device ignoring all IPv6 packages when the phone is in standby. I can’t believe the idiotic statement from the Samsung developer, that’s a real bummer.

    Well, as I’m not willing to endlessly debug into this and can’t accept even a bit shorter delay after wakeup (the ND workaround in dnsmasq) I ended up in disabling IPv6 for now :/ Maybe I’ll give this “ever so exotic IPv6 setup” (as it must be seen by Samsung?) another try when I’m running a different firmware on my SGS4.

    Cheers
    Dominik

    • I am still hoping the Kitkat 4.4 update will fix this. If not I will contact Samsung and see if their position remains the same.

      Are your Hangouts notification problems solved by disabling IPv6?!?!

  2. Unfortunately the 4.4.2 does not fix this issue (I upgraded today).

    I noticed that the Cyanogenmod kernel got a related (?) change . However, it only addresses *unicast* packets and thus seems limited helpful.

    The reason stated by Samsung is absurd to me (I’d love to become enlightened) – but the default setting for the WiFi is “always on, never sleep” and the IPv4 multicasts occur nevertheless, so why not for IPv6… This broken solution/driver is a shame for Android and IPv6.

    About Hangouts: I just disabled my IPv6 setup today, so I can’t tell for sure yet. The lack of Google services notifications is not always reproducible (at least in my case…). I’ll give feedback as soon as I know.

    • Damn I was really hoping Kitkat would fix this 🙁

      What are you using as a CPE device for your network?

      Maybe its time to contact Samsung and see if they will be more open minded than they were to that last bug reporter.

  3. Did you contact Samsung, and get a response of any sort? I stumbled across the same developer forum…. it was dated 2013, it’s now 2015, and my Note 5 has the same issue… i will tell them that they owe me a refund for a faulty device

    • I know that myself and others have noted to Samsung devOps that their dismissal as battery-saving is nonsensical since IPv4 does not behave this way. Sad to read that the latest flagship device is as brain-dead as its predecessors when it comes to next generation IP stack. Please voice your displeasure to Samsung, who knows maybe somebody with a modicum of vision will pick up the ball….

  4. not sure if you still have a Samsung phone/device… but i just contacted the Samsung Tech Support hotline… I was advised to goto Samsung.com –> Owners and Support –> Contact Support –> EMAIL US, as that form/email is sent directly to the Office of the President’s group, which can get responses from the Dev teams and eventually ask for a better fix.

Leave a Reply

Your email address will not be published. Required fields are marked *

r u a bot? * Time limit is exhausted. Please reload CAPTCHA.