# Use dual-stack (IPv4 and IPv6) on mobile data by default

Starting with SailfishOS 1.1.4.28 (Äijänpäivänjärvi), the Jolla Phone supports dual-stack mobile data connectivity (i.e., PDP context type IPV4V6). However, to the best of my knowledge, it defaults to requesting an IPv4-only PDP context (type IP). This means that even if the mobile network operator supports IPv6, the user will not be able to use it. This likely means that the user's performance is lower than what it could be, as several recent measurements have shown that IPv6 outperforms IPv4 in the mobile space (see for example Facebook's presentation at the V6 World Congress). This is likely because the IPv4 path is encumbered with large-scale NAT devices, while the IPv6 path is native end-to-end.

Not all mobile network operators supports dual-stack or IPv6, but this doesn't appear to be a problem. From my testing, if the phone is set up to request dual-stack connectivity, but the network operator (or more precisely the APN) only supports IPv4-only, then the phone will successfully establish an IPv4-only mobile data connection, just like what would happen if IPv4-only was requested in the first place. Similarly, if the APN only supports IPv6 (PDP context type IPV6), a Jolla phone set up to request dual-stack will end up with IPv6-only connectivity. This is a clear improvement on the default behaviour, which would be to fail completely.

SailfishOS' current behaviour is in volation with 3GPP Release-8 (and newer), which mandates that an UE must request IPV4V6 by default. Quoting from section 5.3.1.1:

The UE sets the PDN type during the Attach procedure based on its IP stack configuration as follows:

• A UE which is IPv6 and IPv4 capable shall request for PDN type IPv4v6.

For the reasons outlined above I propose that the default behaviour is changed, so that the Jolla Phone / SailfishOS will try to request a dual-stack IPV4V6 PDP context by default, and fall back to IP (and/or possibly IPV6) if IPV4V6 is not available.

Since SailfishOS v1.1.6.27 (Aaslakkajärvi), users can manually change the requested PDP type to IPV4V6. This is done in the Settings app, under Mobile network. Long-press on the connection profile under the Mobile data header, select Edit in the context menu. Here you can set Protocol to Dual in order to make the device request an IPV4V6 PDP context. In order to revert to the default IPv4-only behaviour, set Protocol to IP.

For the adventurous, setting Protocol to IPv6 will make the device request an IPv6-only PDP context, but be aware that because SailfishOS does not [yet] support 464XLAT, certain apps that use legacy IPv4-only programming APIs might fail to work correctly with IPv6-only connectivity.

In any case, the mobile network operator's APN needs to support the PDP types IPV4V6 or IPV6 in order for Dual to get fully connected and provisioned with IPv6 Internet connectivity. However it would also be useful if willing users with IPv4-only mobile network operators tested Dual, as this would help confirm my assumption that Dual is a safe default because of SailfishOS' built-in failback to IP. Please test and comment if it worked fine - thanks! test-ipv6.com is helpful in determining if you have IPv6 connectivity and whether or not it works correctly.

I am aware of several network operators that have deployed IPV4V6 in their mobile network (APN in brackets):

• DNA Finland [internet]
• Elisa Finland [internet]
• T-Mobile Germany [internet.t-mobile]
• IIJ Japan [iijmio.jp]
• Telenor Norway [telenor.smart]
• SK Telecom South Korea
• Tele 2 Sweden [4g.tele2.se]
• AT&T USA
• Verizon Wireless USA (the Jolla Phone can probably not connect to this network though)
• SK Telecom Vietnam

There are even more operators who have deployed single-stack IPV6 (with NAT64/DNS64 intended for use with 464XLAT):

• Orange Poland (only performs DNS64 for the hostname ipv4only.arpa, which makes 464XLAT a requirement for IPv4 Internet access)
• Mobitel Slovenia
• Si.Mobil Slovenia
• Tušmobil Slovenia
• T-Mobile USA [epc.tmobile.com]

This list is probably not exhaustive, so do comment if I've missed any operators or if you know which APNs are used for some of those listed without APN, and I'll update the post. Th*anks!

Update 2015-09-16: SailfishOS version 1.1.9.28 will still request an IPv4-only PDP context by default.

Update 2015-09-21: Added info on how 3GPP TS 23.401 Release-8 mandates IPV4V6 and how this makes SFOS violates the standard.

Update 2015-11-04: Noting the fact that SailfishOS version 2.0.0.10 Saimaa still requests IPv4-only by default. Also, added Japanese provider IIJ to the list of providers that have support IPV4V6.

Update 2016-10-25: SailfishOS 2.0.4.14 Fiskarsinjoki now appears to request Dual by default! Also removed a decommissioned DNS64/NAT64 APN for Telenor Norway.

edit retag close delete

2

So far so good, on O2 MVNO GiffGaff in the UK.

test-ipv6.com says I dont have an IPV6 address, but everything appears to work ok

( 2015-04-17 12:22:22 +0200 )edit
2

o2 germany: 'ip' and 'dual' work, 'ipv6' doesn't. When using 'dual' I only got ipv4 address according to test-ipv6.com. Will keep using 'dual' and report any issues here.

( 2015-04-17 17:26:13 +0200 )edit
1

By using Telekom in Germany you can also use the dualstack option for getting IPv4-only. It was officially confirmed at ipv6-kongress in Frankfurt 2014. Despite the fact that the Deutsche Telekom has customer-trials(dualstack) for more than 10 months running there is no public available dualstack-apn for DT-customers. If you use the old kitkat from google then this is the way to change the settings. In Android 5.x it is similar.

http://www.thomas--schaefer.de/apn-ipv4-ipv6.html

Unfortunately the "pure" android doesn't support tethering for IPv6.

I started a petition in Germany for dualstack on mobile.

https://www.openpetition.de/petition/online/ipv6-in-die-mobilfunknetze

Dear reader of this comment, if your are from Germany, please consider to sign it. Thank you!

Thomas Schäfer

( 2015-04-17 20:42:09 +0200 )edit
1

Today I made the test with a trial-SIM-card from vodafone, despite vodafone uses IPv6/NAT64+464xlat, it is also possible to set apn-type to ipv4/ipv6 on a nexus 5 with android.

https://www.netztest.at/de/Opentest?O2ced773b-0d4b-4f22-b302-428946d0300a

( 2015-04-18 23:53:46 +0200 )edit

Thomas, so you are saying that Vodafone Germany has an APN that supports IPv6-only (with NAT64/DNS64)? If so, could you say which APN that is, so I can add it to the list in my original message? Thanks!

( 2015-04-20 11:07:08 +0200 )edit

Sort by » oldest newest most voted

After upgrading to SailfishOS 2.0.4.14 Fiskarsinjoki, the APN settings appears to default to using Dual (a.k.a. IPV4V6) by default. I've verified this using SIM cards from Tele 2 Sweden and Telenor Norway. That means that this feature request has finally been implemented - a big thank you to whoever is responsible for that!

more

Based on the two tests with DNA, I am also thinking that maybe the default option should be ip. Elisa is also collecting IPv6 test group and I think it might have similar issues.

What I think should be done is putting the option clearly accessible into setttings, something like Settings --> System --> Mobile network -> Mobile network Internet Protocol version. The APN settings would also be a good place (where they are also in Android), but they are quite well hidden, how many people have thought about long pressing the Internet under "Mobile data" and found the "edit" menu where you choose APN, username and password.

Another option would be using "auto" for whitelisted known-working carriers (which I think someone suggested earlier) and using dual with them. Of course this could have an issue if all tests results use e.g. subscribtions with DNA and no one tries the prepaid.

more

1

@Mikaela, I'm looking forward to seeing you post test results from Elisa's pilot! When/if the pilot is made available for all, do let me know and I'll add their details to the main post.

While I agree that ip should remain default until we're reasonably confident that dual is safe, I don't think that leaving it like that plus exposing the setting in the UI is a great solution. The reason for that is that most users won't ever change this setting, so they'll be stuck on IPv4-only forever even though the operator might provide IPv6. However people do care about things like Facebook loading as fast as possible, and for that they should use IPv6 whenever available. But unless you're a tech-savvy user like the folks on this forum, you won't have any idea that internet protocol = dual means "faster Facebook = true". So I think that we should work towards making dual the default, because that's what gives the best user experience over all.

To that end I'm hoping that the issue with prepaid DNA subscriptions that @tbr reported turns out to be just a bug or misconfiguration in DNA's end, and that it is something we can persuade them to fix. Time will tell, I guess.

( 2015-05-22 12:52:48 +0200 )edit
1

@tore I am now in the Elisa's test and I get full points from IPv6 tests (later edit: almost full points as I am missing IPv6 reverse DNS which is known by Elisa and they say that it's coming more later edit: Elisa now has IPv6 reverse DNS and gets full points) and I am able to SSH to my phone over mobile network using the IPv6 address.

Elisa's APN is "internet" and IPv6 will be available for all customers starting on 2015-06-09 which is the national IPv6 launch day in Finland

You are probably right about dual.

( 2015-05-22 13:12:36 +0200 )edit
1

Happy Finnish IPv6 Launch Day!

@Mikaela I just updated the main article by including Elisa as one of the IPv6-capable network operators. I am making the assumption that they launched on schedule, do let me know if this was incorrect. I also made the assumption that their deployment strategy is dual-stack (PDP type IPV4V6) and not IPv6-only + 464XLAT.

If there are any other Finnish operators that launched IPv6 today (apart from Elisa/DNA), let me know and I'll add those too.

( 2015-06-09 12:05:36 +0200 )edit
1

Thanks and same to you :) They did and some people report getting IPv6 already on Sunday without being on the test group and I tested with Elisa-using relatives and I got full points. The APN-protocol that is used is IPv4/IPv6 on Androids, so I think you are right. The third bigger carrier is Sonera and I am not sure on their plans. They promise to bring native IPv6 on static network today, but I have no idea what is their situation, my brother who uses TeleFinland which is cheaper version of Sonera working on their network got no IPv6 some hours earlier. http://ape3000.com/ipv6/ has some kind of status of IPv6 in Finnish broadbands/mobile connections, but it's in Finnish and doens't have anything new.

( 2015-06-09 12:13:57 +0200 )edit
1

It has been over year now and Apple has started blocing IPv4-only apps from their store.

Shouldn't mobile networks start handling dual now removing this block?

( 2016-08-19 11:02:22 +0200 )edit

Prior to the recent official rollout, using "dual" with DNA in FInland resulted in no connectivity at all. Now that it's officially supported everything seems to work fine. Still, suggests that making it the default may be a bad idea.

First add menu option, then gather list of working (and non-working) operators and whitelist them in a later version?

more

1

Hi. I don't quite understand how the fact that this didn't work in previous versions would make it a bad idea to enable it by default in future versions? If it does work now, isn't that that what really matters?

( 2015-05-11 17:08:37 +0200 )edit
1

It means that operators may have an APN configuration where using "dual" on the Jolla could mean no connectivity at all. DNA first rolled out IPv6 for a few types of subscriptions (mine wasn't included), which is why I tried it, and even IPv4 stopped working when I tried "dual". Now that they enabled it for all subscriptions (still a few corporate subscriptions missing), both IPv4 and IPv6 work just fine.

So my point was that (apparently) it's possible for the operator to have a configuration where setting "dual" by default could mean that even IPv4 stops working. Even if mine now works, doesn't mean that another operator won't have the same sort of issue.

( 2015-05-11 17:28:28 +0200 )edit
1

Very interesting. It would have been nice to know what exactly caused the problem, but I suppose it is too late now. When an operator is IPv4-only (like I understand yours was when you had the problem), the use of "dual" should essentially work the same as "ip" (the current default), because of the built-in fallback mechanism.

The only thing I can think of is if the RIL (radio firmware) got stuck. I've seen that a few times before: after changing from one PDP type to another it gets stuck and needs to be reset (i.e., by rebooting the phone or temporarily entering flight mode). Do you remember if you rebooted your phone while "dual" was in effect and if so, did it make any difference? If this was your problem, then it doesn't cause any problems for changing the default in SailfishOS, because the upgrade process requires a phone reboot anyway.

Just to be 100% certain, by the way: I assume that you had upgraded to SailfishOS 1.1.4 before you experienced the problems? (Failures on earlier SailfishOS versions would be expected.)

Also, it's very nice to hear that DNA has deployed IPv6! Could you share some details on their deployment, so I can update the main post with that information? Which APN are they using, are they doing true dual-stack (IPV4V6 PDP context) or IPv6-only with 464XLAT? And so on...

( 2015-05-11 18:20:07 +0200 )edit
2

Dual stack IPV4V6 with default APN (internet). First attempts were with 1.1.2, I think I tried it with 1.1.4 as well, but can't be sure... dbus-send back to "ip" fixed it in any case. They were probably in some "transitioning towards ipv6" state back then, which may explain things (or 1.1.2 just being broken in this respect)

( 2015-05-11 18:46:52 +0200 )edit
2

@pekkap dual did work on 1.1.4-based SFOS with the DNA sims which did not have ipv4v6 enabled. However 1.1.2.x never did because of few bugs.

@tore DNA is doing true dual-stack and it's enabled on the default apn's.

( 2015-05-11 22:23:25 +0200 )edit