Subject: [nfsv4] NFSv4 and callbacks

From: Marcel Telka <[email-masked]>
Date: Fri, 6 Jan 2012 18:35:56 +0100

Hi all,

Let's assume I have a NFSv4 client. The client knows for sure he is not able to
receive/handle callbacks. What exactly the client should pass in the
SETCLIENTID4args.callback field of the SETCLIENTID operation?

I found this paragraph in 15.35.4. of the rfc3530bis-16:

   The callback information provided in this operation will be used if
   the client is provided an open delegation at a future point.
   Therefore, the client must correctly reflect the program and port
   numbers for the callback program at the time SETCLIENTID is used.

But it does not answer my question, I think.

Thank you.

-- 
Marcel Telka
RPE, Systems

---

From: Trond Myklebust <[email-masked]>
Date: Fri, 06 Jan 2012 13:46:22 -0500

> But it does not answer my question, I think.

Since RFC3530 just specifies that it needs to be a legal netid+uaddr,
one solution might be to just use the NC_NOPROTO netid (see RFC5665 and
RFC1833).

I wonder how many servers would crash if you do. :-)

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
[email-masked]
www.netapp.com

---

From: Marcel Telka <[email-masked]>
Date: Sat, 7 Jan 2012 00:13:38 +0100

> one solution might be to just use the NC_NOPROTO netid (see RFC5665 and

Good idea! Thank you!

> I wonder how many servers would crash if you do. :-)

We will see :-).

-- 
Marcel Telka
RPE, Systems

---

From: Rick Macklem <[email-masked]>
Date: Fri, 6 Jan 2012 21:39:01 -0500 (EST)

> I wonder how many servers would crash if you do. :-)
Btw, there was a previous thread on this (started by me). I don't recall
it resolved to one solution. Suggestions included zero length strings and
a uaddr of all 0s, like "0.0.0.0.0.0". My experience was that none of these
variants caused crashes, but they also didn't necessarily achieve the desired
result of the server not issuing delegations.

The previous thread is:
  http://www.ietf.org/mail-archive/web/nfsv4/current/msg09793.html

Currently, the FreeBSD client uses "tcp", "0.0.0.0.0.0" for this, rick

---

From: Marcel Telka <[email-masked]>
Date: Mon, 23 Jan 2012 16:16:31 +0100

> Currently, the FreeBSD client uses "tcp", "0.0.0.0.0.0" for this, rick

Thanks for the pointer, Rick.

While RFC 5665 considered zero length netid as Reserved then I'd say that NFSv4
clients should not sent zero lenght netid/uaddr. This means that when an NFSv4
client sends zero length netid, then it is a bug at the NFSv4 client side.

So the correct option for a client seems to be netid "-" and uaddr whatever.
I am not sure about tcp/0.0.0.0.0.0 as FreeBSD uses...

Thanks.

-- 
Marcel Telka
RPE, Systems