linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jim Rees <rees@umich.edu>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: trond.myklebust@netapp.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 07/15] SUNRPC: Add API to acquire source address
Date: Thu, 1 Mar 2012 17:09:18 -0500	[thread overview]
Message-ID: <20120301220918.GA3778@umich.edu> (raw)
In-Reply-To: <20120301220114.2138.67690.stgit@degas.1015granger.net>

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.  Is there no equivalent in linux?

  reply	other threads:[~2012-03-01 22:09 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-01 22:00 [PATCH 00/15] For 3.4 (2nd take) Chuck Lever
2012-03-01 22:00 ` [PATCH 01/15] NFS: Make nfs_cache_array.size a signed integer Chuck Lever
2012-03-01 22:00 ` [PATCH 02/15] NFS: Clean up debugging in decode_pathname() Chuck Lever
2012-03-01 22:00 ` [PATCH 03/15] NFS: Add debugging messages to NFSv4's CLOSE procedure Chuck Lever
2012-03-01 22:00 ` [PATCH 04/15] NFS: Reduce debugging noise from encode_compound_hdr Chuck Lever
2012-03-01 22:15   ` Adamson, Dros
2012-03-01 22:19   ` Myklebust, Trond
2012-03-01 22:00 ` [PATCH 05/15] SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field Chuck Lever
2012-03-01 22:01 ` [PATCH 06/15] SUNRPC: Move clnt->cl_server into struct rpc_xprt Chuck Lever
2012-03-01 22:01 ` [PATCH 07/15] SUNRPC: Add API to acquire source address Chuck Lever
2012-03-01 22:09   ` Jim Rees [this message]
2012-03-01 22:27     ` Chuck Lever
2012-03-01 22:01 ` [PATCH 08/15] commit 6f38b4ba433ac6494f83cb73dd07dcbde797e1e0 Chuck Lever
2012-03-01 22:01 ` [PATCH 09/15] NFS: Add a client-side function to display NFS file handles Chuck Lever
2012-03-01 22:28   ` Myklebust, Trond
2012-03-01 22:32     ` Chuck Lever
2012-03-02 17:17     ` Steve Dickson
2012-03-02 17:19       ` Chuck Lever
2012-03-02 18:50         ` Steve Dickson
2012-03-06 16:55           ` Adamson, Dros
2012-03-01 22:01 ` [PATCH 10/15] NFS: Save root file handle in nfs_server Chuck Lever
2012-03-01 22:30   ` Myklebust, Trond
2012-03-01 22:01 ` [PATCH 11/15] NFS: Simplify arguments of encode_renew() Chuck Lever
2012-03-01 22:01 ` [PATCH 12/15] NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS Chuck Lever
2012-03-01 22:02 ` [PATCH 13/15] NFS: Request fh_expire_type attribute in "server caps" operation Chuck Lever
2012-03-01 22:02 ` [PATCH 14/15] NFS: Fix some minor problems with nfs4_verifiers Chuck Lever
2012-03-01 22:35   ` Myklebust, Trond
2012-03-01 22:43     ` Myklebust, Trond
2012-03-01 22:02 ` [PATCH 15/15] NFS: Fix some minor problems with nfs4_deviceids Chuck Lever
2012-03-01 22:39   ` Myklebust, Trond
2012-03-01 22:55     ` Chuck Lever
2012-03-02 18:10       ` Chuck Lever
2012-03-02 21:58         ` Boaz Harrosh
2012-03-02 22:00           ` Boaz Harrosh
2012-03-02 22:03           ` Chuck Lever
2012-03-02 22:06             ` Boaz Harrosh
2012-03-02 22:11               ` Chuck Lever
2012-03-02 22:52                 ` Boaz Harrosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120301220918.GA3778@umich.edu \
    --to=rees@umich.edu \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@netapp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).