Bugzilla – Bug 10984
IPv6 Support declaration
Last modified: 2011-06-23 13:33:10 UTC
This is a placeholder bug for collecting sub-tasks needed to declare MeeGo-core as having IPv6 support. Please place all discussion into the meego-dev mailing list http://lists.meego.com/listinfo/meego-dev then any resolutions out of that place into comments here or into new bugs and attach those bugs to this (Depends On). I recently started the discussion in the meego-dev list, the outline of my current thinking: * Kernel and user-space support (ipv6.ko, ravd, netfilter, ... reciprocal to IPv4) * Startup/shutdown scripts and interface controls * Configuration management (total feature disable/enable, priority 4over6, auto-config, dhcp6, config tweaks, ...) * conman/libconic * Special use cases: MMS (MeeGo handset, private limited connectivity network) * DNS resolver (investigate conman proxy) * Applications (need list of most important to least important meego-core/handset applications to validate IPv6 support) * Kernel auto-bind control (priority order, application, maybe this is something I don't get) * Testing K, Go!
To be clear: MeeGo has IPv6 support, which is working today. It needs improvement in terms of management and configurability, etc. The 'TODO' items in that respect are *not* an excuse for applications and libraries not to have full IPv6 support. Any app developer writing an app which works only with Legacy IP and not IPv6 should be shot. That includes such heinous crimes as using gethostbyname() instead of getaddrinfo(), failing to fall back to the second and subsequent addresses returned by getaddrinfo(), etc.
(In reply to comment #1) > Any app developer writing an app which works only with Legacy IP and not IPv6 > should be shot. That includes such heinous crimes as using gethostbyname() > instead of getaddrinfo(), failing to fall back to the second and subsequent > addresses returned by getaddrinfo(), etc. Do you know if there's any application developers DO's and DONT's for IPv6 available somewhere?
DON'T use gethostbyname() DO use getaddrinfo() DON'T just try to use the first result from getaddrinfo() DO iterate through the results, until you find a host you can actually connect to This is true for Legacy IP too, not just IPv6. Anywhere that multiple target IP addresses may be found in the DNS. Like round robin, for example. Uli gives another example in http://udrepper.livejournal.com/16116.html See http://www.akkadia.org/drepper/userapi-ipv6.html for a basic intro to using getaddrinfo() et al.
(In reply to comment #2) > Do you know if there's any application developers DO's and DONT's for IPv6 > available somewhere? DON't assume that an interface (like eth0) has 0 or 1 associated adresses.