[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Open issues list? [Re: New (-02) version of IPv6 CPE Router draft is available for review]
Posting as the maintainer of the VLC media player network components...
On Wednesday 30 July 2008 20:30:27 james woodyatt, you wrote:
> Apple uses IPv6 link-local transport for a wide variety of user
> application protocols, e.g. AirTunes, iTunes library sharing, iPhoto
> sharing, Time Machine w/ Time Capsule, etc. The big win for us is
> that we don't have any address realm conflicts with IPv6 link-local
> when hosts are attached as a bastion between their ethernet and Wi-fi
> interfaces.
My experience is that programming with link-local *is* painful. You need to
carry the scope all over the place. As long as you stick to the sockaddr_in6,
you're fine. However:
If you ever parse an address from string, boom. There is not even a standard
to note scope into a numerical IPv6 address.
If you copy the address from a binary-formatted content (packet), boom.
If a DNS lookup yields a link-local address, scope is zero, boom.
Even more stupid, if getnameinfo() returns a link-local scope, it appends the
non-standard "%eth0" at the end. And if you're not careful when you paste the
address through a text-protocol, you're unwilling violating the protocol and
sending non-sense to your peer.
VLC happens to use SAP as its "native" zero-configuration/multicast discovery
protocol. That embeds addresses (as ASCII string). There is no sane way to
carry the scope there; it would not make sense anyway. This can be worked
around by taking the scope of the interface the packet was received from, but
it *is* painful for the programmer, and tends to break across application
interface layers. The software I am talking about has had IPv6 support for
many years, with lots of skilled engineers looking at that over time (as you
may know, VLC is frequently used in Computer networking R&D depts...). I
think we finally got link-local mostly right - but what about "normal"
software?
I am highly reluctant to recommending link-local for normal applications.
--
Rémi Denis-Courmont