[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