Subject: Re: [PATCH 0/4] RFC: raw IPv6 address parsing in NFS client

From: Jeff Garzik <[email-masked]>
Date: Sun, 18 May 2008 22:13:32 -0400

Chuck Lever wrote:
> Hi-
> 
> I'm interested in some review of the following four patches which add to
> the kernel's NFS client the ability to parse IPv6 addresses in presentation
> format.
> 
> Namely, it adds the following:
> 
> 1.  If the user passes in an IPv6 address as the server name, the colons
>     in the address will confuse the logic that splits the device name
>     into a server hostname and an export path.   We'll use square brackets
>     around IPv6 server addresses to "escape" the colons, as does Solaris.
> 
> 2.  If the user passes in a link-local IPv6 address as the server name,
>     an interface index is also necessary.  We'll use the "%id" suffix on
>     the address to pass in the index, and plant that in the sockaddr's
>     sin6_scope_id field.
> 
> In addition to the following patches in email, a git repo with these
> same patches already applied can be found here:
> 
> 	linux-nfs.org:exports/cel-2.6.git
> 
> The basic questions:
> 
> Are these reasonable conventions to follow?  Is the parsing logic adequate?
> Is there anything I'm forgetting?

I would take a look at the underlying components of glibc's 
getnameinfo(), which must parse IPv6 addresses according to POSIX 
specifications, IIRC.

Comments:

1) bracket escaping seems reasonably common.  browsers and other apps 
sometimes use that convention too.

2) an interface name rather than index should be used

	Jeff