On Feb 17, 2009, at Feb 17, 2009, 7:03 AM, Ian Dall wrote:
On Mon, 2009-02-16 at 11:24 -0500, Chuck Lever wrote:
On Feb 15, 2009, at 10:32 AM, Ian Dall wrote:
I believe this includes all comments so far. I have also swatted
up on
Documentation/CodingStyle, and modified the comments somewhat to
conform.
There is also a Perl script called scripts/checkpatch.pl that you
should run against your patch before submitting. It can identify and
report many common style problems.
Thanks for that, it threw up a few white space issues which I have
fixed.
I've thought more about this. I think we don't want the scope ID
comparison here at all. The scope ID is not really part of an IPv6
address. A unique host address is contained only in the sin6_addr
field; the scope ID is simply local routing information. I can't
think of a case where two unique remotes would have identical link-
local addresses.
Isn't that exactly what makes link local addresses, well, link local?
They only have to be unique to the link (which seems to be in
practice a
lan or vlan - a bunch of hosts connected without any routing at the ip
level). They don't have to be globally unique. A single host can be on
multiple lans or vlans.
Finding anything authoritative on this is difficult. The RFC's are
vague. However, following discussion on ietf mail archives, and other
reasonably reputable sources like documentation from IBM, Sun and
FreeBSD makes me think that my interpretation is correct. Indeed, the
way the BSD crowd seem to do it is to embed the scope_id in the link
local address (internally to the kernel) and thence forth just compare
the address. So they treat it *exactly* like part of the address.
See for example:
http://www.freebsd.org/doc/en/books/developers-handbook/ipv6.html
section 8.1.1.3.
http://msdn.microsoft.com/en-us/library/ms739166(VS.85).aspx
http://books.google.com/books?id=6nNjcItz6H4C&pg=PA53&lpg=PA53&dq=sin6_scope_id+%22link+local%22&source=bl&ots=MFyiwYwO5I&sig=hZDvlVcJ8hLOwt7EXoL4lEzT4V4&hl=en&ei=eqCaSdiGD8PDkAWskMmZCw&sa=X&oi=book_result&resnum=7&ct=result
Note especially, section 1.8.1 "Since link local addresses may not be
unique on different links ..."
The only reasons I can see which would justify omitting the check are:
* For some reason you could never have a nfs server on a link
local address.
I should mention that this may be a problem for TI-RPC and NFSv4.
There's currently no way to represent a scope ID in a universal
address (the string used during rpcbind registration, or for sending
the callback address to an NFSv4 server). So, in that case, we may
have to bail on link-local support entirely.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html