linux-stable/include/linux/sunrpc
Chuck Lever 2e738fdce2 SUNRPC: Add API to acquire source address
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.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2012-03-02 15:36:53 -05:00
..
auth.h SUNRPC: subscribe RPC clients to pipefs notifications 2012-01-31 18:20:25 -05:00
auth_gss.h SUNRPC: Clean up the RPCSEC_GSS service ticket requests 2012-01-05 10:42:38 -05:00
bc_xprt.h SUNRPC: sunrpc should not explicitly depend on NFS config options 2011-07-15 09:12:23 -04:00
cache.h SUNRPC: generic cache register routines removed 2012-01-31 19:28:16 -05:00
clnt.h SUNRPC: Add API to acquire source address 2012-03-02 15:36:53 -05:00
debug.h SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field 2012-03-02 15:36:38 -05:00
gss_api.h
gss_asn1.h
gss_err.h
gss_krb5.h
gss_krb5_enctypes.h nfsd: fix dependency of nfsd on auth_rpcgss 2011-06-06 15:07:15 -04:00
Kbuild
metrics.h NFS: include filelayout DS rpc stats in mountstats 2012-02-17 13:39:47 -05:00
msg_prot.h SUNRPC: Support for RPC over AF_LOCAL transports 2011-05-27 17:42:47 -04:00
rpc_pipe_fs.h SUNRPC: move waitq from RPC pipe to RPC inode 2012-02-27 13:37:48 -05:00
rpc_rdma.h
sched.h NFS: include filelayout DS rpc stats in mountstats 2012-02-17 13:39:47 -05:00
stats.h SUNRPC: constify the rpc_program 2012-01-31 19:28:20 -05:00
svc.h Lockd: per-net up and down routines introduced 2012-02-15 00:19:47 -05:00
svc_rdma.h
svc_xprt.h SUNRPC: search for service transports in network namespace context 2012-01-31 19:28:19 -05:00
svcauth.h
svcauth_gss.h SUNRPC: create GSS auth cache per network namespace 2012-01-31 19:28:15 -05:00
svcsock.h SUNRPC: service destruction in network namespace context 2012-02-15 00:19:45 -05:00
timer.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
types.h
xdr.h NFSv4: include bitmap in nfsv4 get acl data 2012-01-05 10:42:42 -05:00
xprt.h SUNRPC: Move clnt->cl_server into struct rpc_xprt 2012-03-02 15:36:41 -05:00
xprtrdma.h
xprtsock.h