Jason Gunthorpe wrote:
On Mon, Mar 29, 2010 at 12:01:07PM -0700, Roland Dreier wrote:
> > The rdma_cm might be able to support this if the port space were separated
based
> > on the address family, depending on how PS IB ends up.
>
> I think separate port spaces is the correct solution.
This gets a bit tricky -- for normal IP stuff, there's the "bindv6only"
sysctl (and the IPV6_V6ONLY socket option). Without that, you can't
bind an IPv4 socket to the same port as an IPv6 socket, since the IPv6
socket will accept IPv4 connections via an v4->v6 mapped address. (You
can look at inet_csk_bind_conflict() to see the full complexity of the
checking done when binding an IPv4 socket)
Yeah, exactly, it is very complex and there is a real need for
things pretending to be IP to capture all this subtlety. The details
can't just be skipped over, people will notice :(
Though, I'm also not entirely certain that NFS-RDMA is right to bind
to both AFs, generally speaking on Linux for a multi-protocol app you
only want to bind to v6 addresses.. Or is it using IPV6_V6ONLY or alike?
This issue is really not in the NFS-RDMA code. the nfsd code is doing
the binding. See commit:
37498292aa97658a5d0a9bb84699ce8c1016bb74
Author: Chuck Lever <[email protected]>
Date: Tue Jan 26 14:04:22 2010 -0500
NFSD: Create PF_INET6 listener in write_ports
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html