Commit f58851e6 authored by Talpey, Thomas's avatar Talpey, Thomas Committed by Trond Myklebust

RPCRDMA: rpc rdma transport switch

This implements the configuration and building of the core transport
switch implementation of the rpcrdma transport. Stubs are provided for
the rpcrdma protocol handling, and the infiniband/iwarp verbs interface.
These are provided in following patches.
Signed-off-by: default avatarTom Talpey <talpey@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 2cf7ff7a
......@@ -88,6 +88,11 @@ enum {
CTL_SLOTTABLE_TCP,
CTL_MIN_RESVPORT,
CTL_MAX_RESVPORT,
CTL_SLOTTABLE_RDMA,
CTL_RDMA_MAXINLINEREAD,
CTL_RDMA_MAXINLINEWRITE,
CTL_RDMA_WRITEPADDING,
CTL_RDMA_MEMREG,
};
#endif /* _LINUX_SUNRPC_DEBUG_H_ */
......@@ -5,6 +5,7 @@
obj-$(CONFIG_SUNRPC) += sunrpc.o
obj-$(CONFIG_SUNRPC_GSS) += auth_gss/
obj-$(CONFIG_SUNRPC_XPRT_RDMA) += xprtrdma/
sunrpc-y := clnt.o xprt.o socklib.o xprtsock.o sched.o \
auth.o auth_null.o auth_unix.o \
......
obj-$(CONFIG_SUNRPC_XPRT_RDMA) += xprtrdma.o
xprtrdma-y := transport.o rpc_rdma.o verbs.o
/*
* Placeholders for subsequent patches
*/
#include "xprt_rdma.h"
void rpcrdma_conn_func(struct rpcrdma_ep *a) { }
void rpcrdma_reply_handler(struct rpcrdma_rep *a) { }
int rpcrdma_marshal_req(struct rpc_rqst *a) { return EINVAL; }
This diff is collapsed.
/*
* Placeholders for subsequent patches
*/
#include "xprt_rdma.h"
int rpcrdma_ia_open(struct rpcrdma_xprt *a, struct sockaddr *b, int c)
{ return EINVAL; }
void rpcrdma_ia_close(struct rpcrdma_ia *a) { }
int rpcrdma_ep_create(struct rpcrdma_ep *a, struct rpcrdma_ia *b,
struct rpcrdma_create_data_internal *c) { return EINVAL; }
int rpcrdma_ep_destroy(struct rpcrdma_ep *a, struct rpcrdma_ia *b)
{ return EINVAL; }
int rpcrdma_ep_connect(struct rpcrdma_ep *a, struct rpcrdma_ia *b)
{ return EINVAL; }
int rpcrdma_ep_disconnect(struct rpcrdma_ep *a, struct rpcrdma_ia *b)
{ return EINVAL; }
int rpcrdma_ep_post(struct rpcrdma_ia *a, struct rpcrdma_ep *b,
struct rpcrdma_req *c) { return EINVAL; }
int rpcrdma_ep_post_recv(struct rpcrdma_ia *a, struct rpcrdma_ep *b,
struct rpcrdma_rep *c) { return EINVAL; }
int rpcrdma_buffer_create(struct rpcrdma_buffer *a, struct rpcrdma_ep *b,
struct rpcrdma_ia *c, struct rpcrdma_create_data_internal *d) { return EINVAL; }
void rpcrdma_buffer_destroy(struct rpcrdma_buffer *a) { }
struct rpcrdma_req *rpcrdma_buffer_get(struct rpcrdma_buffer *a)
{ return NULL; }
void rpcrdma_buffer_put(struct rpcrdma_req *a) { }
void rpcrdma_recv_buffer_get(struct rpcrdma_req *a) { }
void rpcrdma_recv_buffer_put(struct rpcrdma_rep *a) { }
int rpcrdma_register_internal(struct rpcrdma_ia *a, void *b, int c,
struct ib_mr **d, struct ib_sge *e) { return EINVAL; }
int rpcrdma_deregister_internal(struct rpcrdma_ia *a, struct ib_mr *b,
struct ib_sge *c) { return EINVAL; }
int rpcrdma_register_external(struct rpcrdma_mr_seg *a, int b, int c,
struct rpcrdma_xprt *d) { return EINVAL; }
int rpcrdma_deregister_external(struct rpcrdma_mr_seg *a,
struct rpcrdma_xprt *b, void *c) { return EINVAL; }
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment