svc: Add an svc transport class
authorTom Tucker <tom@opengridcomputing.com>
Mon, 31 Dec 2007 03:07:15 +0000 (21:07 -0600)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 1 Feb 2008 21:42:07 +0000 (16:42 -0500)
commit1d8206b97a09e7ff2fbef17d8d1ea008d764eeaa
tree0975483e82fab57c25fdbb19a9946985659a8ca2
parentcb5c7d668e1af269a9409721268f027b86abf29c
svc: Add an svc transport class

The transport class (svc_xprt_class) represents a type of transport, e.g.
udp, tcp, rdma.  A transport class has a unique name and a set of transport
operations kept in the svc_xprt_ops structure.

A transport class can be dynamically registered and unregisterd. The
svc_xprt_class represents the module that implements the transport
type and keeps reference counts on the module to avoid unloading while
there are active users.

The endpoint (svc_xprt) is a generic, transport independent endpoint that can
be used to send and receive data for an RPC service. It inherits it's
operations from the transport class.

A transport driver module registers and unregisters itself with svc sunrpc
by calling svc_reg_xprt_class, and svc_unreg_xprt_class respectively.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Acked-by: Neil Brown <neilb@suse.de>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Greg Banks <gnb@sgi.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
include/linux/sunrpc/debug.h
include/linux/sunrpc/svc_xprt.h [new file with mode: 0644]
net/sunrpc/Makefile
net/sunrpc/svc_xprt.c [new file with mode: 0644]