Re: [PATCH 07/15] SUNRPC: Add API to acquire source address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mar 1, 2012, at 5:09 PM, Jim Rees wrote:

> Chuck Lever wrote:
> 
>  NFSv4.0 clients must send endpoint information for their callback
>  service to NFSv4.0 servers during their first contact with a server.
>  Traditionally on Linux, user space provides the callback endpoint IP
>  address via the "clientaddr=" mount option.
> 
>  During an NFSv4 migration event, it is possible that an FSID may be
>  migrated to a destination server that is accessible via a different
>  source IP address than the source server was.  The client must update
>  callback endpoint information on the destination server so that it can
>  maintain leases and allow delegation.
> 
>  Without a new "clientaddr=" option from user space, however, the
>  kernel itself must construct an appropriate IP address for the
>  callback update.  Provide an API in the RPC client for upper layer
>  RPC consumers to acquire a source address for a remote.
> 
>  The mechanism used by the mount.nfs command is copied: set up a
>  connected UDP socket to the designated remote, then scrape the source
>  address off the socket.  We are careful to select the correct network
>  namespace when setting up the temporary UDP socket.
> 
> That seems like a lot of work.  On OpenBSD it's a one-liner, a call into the
> routing system to get the device and source address that would be used to
> talk to a given destination.

The goal here is to emulate exactly what is done in user space so that the result is the same whether the address is obtained in the kernel or by the mount.nfs command.

> Is there no equivalent in linux?

No idea.

-- 
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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux