SUNRPC: Support for RPC over AF_LOCAL transports
authorChuck Lever <chuck.lever@ORACLE.COM>
Mon, 9 May 2011 19:22:44 +0000 (15:22 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 27 May 2011 21:42:47 +0000 (17:42 -0400)
commit176e21ee2ec89cae8d45cf1a850ea45a45428fb8
tree4e1231617d193b3fe62ea5bd4df5e4d8fe8b9e80
parent559649efb9b0d248541933197bdf7b75529da457
SUNRPC: Support for RPC over AF_LOCAL transports

TI-RPC introduces the capability of performing RPC over AF_LOCAL
sockets.  It uses this mainly for registering and unregistering
local RPC services securely with the local rpcbind, but we could
also conceivably use it as a generic upcall mechanism.

This patch provides a client-side only implementation for the moment.
We might also consider a server-side implementation to provide
AF_LOCAL access to NLM (for statd downcalls, and such like).

Autobinding is not supported on kernel AF_LOCAL transports at this
time.  Kernel ULPs must specify the pathname of the remote endpoint
when an AF_LOCAL transport is created.  rpcbind supports registering
services available via AF_LOCAL, so the kernel could handle it with
some adjustment to ->rpcbind and ->set_port.  But we don't need this
feature for doing upcalls via well-known named sockets.

This has not been tested with ULPs that move a substantial amount of
data.  Thus, I can't attest to how robust the write_space and
congestion management logic is.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
include/linux/sunrpc/msg_prot.h
include/linux/sunrpc/xprt.h
net/sunrpc/clnt.c
net/sunrpc/xprtsock.c