Subject: [nfsv4] Troublesome bugs in RPC/RDMA implementations

From: David Noveck <[email-masked]>
Date: Thu, 10 Mar 2016 07:23:31 -0500

As originally conceived, the idea of rfc5666bis was to document the
behavior of current implementations of RPC/RDMA Version One.

In a number of cases, we have found behavior, that is not something that we
would want to mandate or allow future implementations to adopt, but new
implementations need to be aware of, if they are to interoperate with
existing implementations. Also, if we want V2 implementations to
interoperate with these existing V1 implementations, they have to be aware
of these these (mis)behaviors as well.

1. Server Implementations which treat every unknown header message type as
if it were RDMA_MSG.  This is a problem for many extension approaches.

2. Implementations which do not return an error if they get a message with
an incorrect (i.e. other than one) version number.  This is a problem for
any V2,, if cross-version  interoperability is needed.

3. Client implementations which can't support cases in which the request is
longer than 1K and the reply could possibly be longer than 1K. That's OK
for NFSv3,using AUTH_SYS, but can be a problem otherwise.

For 3, the effect is local and it is a case of "if it hurts when you do
that, don't do that".

For 1 and 2, any extension approach, whether version-number-based or not,
has to deal with the existence of such implementations.