getport: Recognize "rdma" and "rdma6" netid
authorChuck Lever <chuck.lever@oracle.com>
Wed, 8 Sep 2010 17:25:56 +0000 (13:25 -0400)
committerSteve Dickson <steved@redhat.com>
Thu, 9 Sep 2010 14:38:47 +0000 (10:38 -0400)
commita77ca5c6a79486dc8c5a4c327fe5310f5d497766
treec34c92b04334515d98ec540d9ef04441a5e42b09
parent57f36cd692c56b3b62705b5fafef4c25561a39ff
getport: Recognize "rdma" and "rdma6" netid

The mount.nfs command must recognize the values of "rdma" and "rdma6"
with the "proto=" mount option.  Typically the mount.nfs command
relies on libtirpc or getprotobyname(3) to recognize netids and
translate them to protocol numbers.

RFCs 5665 and 5666 define the "rdma" and "rdma6" netids.  IANA defines
a specific port number for NFS over RDMA (20049), but has not provided
a protocol name and number for RDMA transports, and is not expected
to.  The best we can do is translate these by hand, as needed, to get
RDMA mount requests to the kernel without erroring out.

Only the forward translation is needed until such time that "rdma" and
"rdma6" start to appear in rpcbind registries.  For now, the version
and transport negotiation logic is skipped, avoiding rpcbind queries
for RDMA mounts.

Note: As of kernel 2.6.36, the kernel's NFS over RDMA transport
capability does not support IPv6.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
support/include/nfsrpc.h
support/nfs/getport.c