[openib-general] [PATCH 6/6] librdmacm examples changes.
Krishna Kumar
krkumar2 at in.ibm.com
Thu Jul 27 21:50:41 PDT 2006
Convert librdmacm examples to use the new API.
Signed-off-by: Krishna Kumar <krkumar2 at in.ibm.com>
diff -ruNp ORG/librdmacm/examples/cmatose.c NEW/librdmacm/examples/cmatose.c
--- ORG/librdmacm/examples/cmatose.c 2006-07-27 15:34:18.000000000 +0530
+++ NEW/librdmacm/examples/cmatose.c 2006-07-27 15:34:44.000000000 +0530
@@ -62,9 +62,9 @@ struct cmatest_node {
int id;
struct rdma_cm_id *cma_id;
int connected;
- struct ibv_pd *pd;
- struct ibv_cq *cq;
- struct ibv_mr *mr;
+ struct rdma_pd *pd;
+ struct rdma_cq *cq;
+ struct rdma_mr *mr;
void *mem;
};
@@ -100,8 +100,8 @@ static int create_message(struct cmatest
printf("failed message allocation\n");
return -1;
}
- node->mr = ibv_reg_mr(node->pd, node->mem, message_size,
- IBV_ACCESS_LOCAL_WRITE);
+ node->mr = rdma_reg_mr(node->pd, node->mem, message_size,
+ RDMA_ACCESS_LOCAL_WRITE);
if (!node->mr) {
printf("failed to reg MR\n");
goto err;
@@ -114,10 +114,10 @@ err:
static int init_node(struct cmatest_node *node)
{
- struct ibv_qp_init_attr init_qp_attr;
+ struct rdma_qp_init_attr init_qp_attr;
int cqe, ret;
- node->pd = ibv_alloc_pd(node->cma_id->verbs);
+ node->pd = rdma_alloc_pd(node->cma_id->verbs);
if (!node->pd) {
ret = -ENOMEM;
printf("cmatose: unable to allocate PD\n");
@@ -125,7 +125,7 @@ static int init_node(struct cmatest_node
}
cqe = message_count ? message_count * 2 : 2;
- node->cq = ibv_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
+ node->cq = rdma_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
if (!node->cq) {
ret = -ENOMEM;
printf("cmatose: unable to create CQ\n");
@@ -139,7 +139,7 @@ static int init_node(struct cmatest_node
init_qp_attr.cap.max_recv_sge = 1;
init_qp_attr.qp_context = node;
init_qp_attr.sq_sig_all = 1;
- init_qp_attr.qp_type = IBV_QPT_RC;
+ init_qp_attr.qp_type = RDMA_QPT_RC;
init_qp_attr.send_cq = node->cq;
init_qp_attr.recv_cq = node->cq;
ret = rdma_create_qp(node->cma_id, node->pd, &init_qp_attr);
@@ -159,8 +159,8 @@ out:
static int post_recvs(struct cmatest_node *node)
{
- struct ibv_recv_wr recv_wr, *recv_failure;
- struct ibv_sge sge;
+ struct rdma_recv_wr recv_wr, *recv_failure;
+ struct rdma_sge sge;
int i, ret = 0;
if (!message_count)
@@ -176,7 +176,7 @@ static int post_recvs(struct cmatest_nod
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++ ) {
- ret = ibv_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
+ ret = rdma_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
if (ret) {
printf("failed to post receives: %d\n", ret);
break;
@@ -187,8 +187,8 @@ static int post_recvs(struct cmatest_nod
static int post_sends(struct cmatest_node *node)
{
- struct ibv_send_wr send_wr, *bad_send_wr;
- struct ibv_sge sge;
+ struct rdma_send_wr send_wr, *bad_send_wr;
+ struct rdma_sge sge;
int i, ret = 0;
if (!node->connected || !message_count)
@@ -197,7 +197,7 @@ static int post_sends(struct cmatest_nod
send_wr.next = NULL;
send_wr.sg_list = &sge;
send_wr.num_sge = 1;
- send_wr.opcode = IBV_WR_SEND;
+ send_wr.opcode = RDMA_WR_SEND;
send_wr.send_flags = 0;
send_wr.wr_id = (unsigned long)node;
@@ -206,7 +206,7 @@ static int post_sends(struct cmatest_nod
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++) {
- ret = ibv_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
+ ret = rdma_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
if (ret)
printf("failed to post sends: %d\n", ret);
}
@@ -350,15 +350,15 @@ static void destroy_node(struct cmatest_
rdma_destroy_qp(node->cma_id);
if (node->cq)
- ibv_destroy_cq(node->cq);
+ rdma_destroy_cq(node->cq);
if (node->mem) {
- ibv_dereg_mr(node->mr);
+ rdma_dereg_mr(node->mr);
free(node->mem);
}
if (node->pd)
- ibv_dealloc_pd(node->pd);
+ rdma_dealloc_pd(node->pd);
/* Destroy the RDMA ID after all device resources */
rdma_destroy_id(node->cma_id);
@@ -404,7 +404,7 @@ static void destroy_nodes(void)
static int poll_cqs(void)
{
- struct ibv_wc wc[8];
+ struct rdma_wc wc[8];
int done, i, ret;
for (i = 0; i < connections; i++) {
@@ -412,7 +412,7 @@ static int poll_cqs(void)
continue;
for (done = 0; done < message_count; done += ret) {
- ret = ibv_poll_cq(test.nodes[i].cq, 8, wc);
+ ret = rdma_poll_cq(test.nodes[i].cq, 8, wc);
if (ret < 0) {
printf("cmatose: failed polling CQ: %d\n", ret);
return ret;
diff -ruNp ORG/librdmacm/examples/mckey.c NEW/librdmacm/examples/mckey.c
--- ORG/librdmacm/examples/mckey.c 2006-07-27 15:34:18.000000000 +0530
+++ NEW/librdmacm/examples/mckey.c 2006-07-27 15:34:44.000000000 +0530
@@ -50,10 +50,10 @@ struct cmatest_node {
int id;
struct rdma_cm_id *cma_id;
int connected;
- struct ibv_pd *pd;
- struct ibv_cq *cq;
- struct ibv_mr *mr;
- struct ibv_ah *ah;
+ struct rdma_pd *pd;
+ struct rdma_cq *cq;
+ struct rdma_mr *mr;
+ struct rdma_ah *ah;
uint32_t remote_qpn;
uint32_t remote_qkey;
void *mem;
@@ -85,14 +85,14 @@ static int create_message(struct cmatest
if (!message_count)
return 0;
- node->mem = malloc(message_size + sizeof(struct ibv_grh));
+ node->mem = malloc(message_size + sizeof(struct rdma_grh));
if (!node->mem) {
printf("failed message allocation\n");
return -1;
}
- node->mr = ibv_reg_mr(node->pd, node->mem,
- message_size + sizeof(struct ibv_grh),
- IBV_ACCESS_LOCAL_WRITE);
+ node->mr = rdma_reg_mr(node->pd, node->mem,
+ message_size + sizeof(struct rdma_grh),
+ RDMA_ACCESS_LOCAL_WRITE);
if (!node->mr) {
printf("failed to reg MR\n");
goto err;
@@ -105,10 +105,10 @@ err:
static int init_node(struct cmatest_node *node)
{
- struct ibv_qp_init_attr init_qp_attr;
+ struct rdma_qp_init_attr init_qp_attr;
int cqe, ret;
- node->pd = ibv_alloc_pd(node->cma_id->verbs);
+ node->pd = rdma_alloc_pd(node->cma_id->verbs);
if (!node->pd) {
ret = -ENOMEM;
printf("mckey: unable to allocate PD\n");
@@ -116,7 +116,7 @@ static int init_node(struct cmatest_node
}
cqe = message_count ? message_count * 2 : 2;
- node->cq = ibv_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
+ node->cq = rdma_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
if (!node->cq) {
ret = -ENOMEM;
printf("mckey: unable to create CQ\n");
@@ -130,7 +130,7 @@ static int init_node(struct cmatest_node
init_qp_attr.cap.max_recv_sge = 1;
init_qp_attr.qp_context = node;
init_qp_attr.sq_sig_all = 0;
- init_qp_attr.qp_type = IBV_QPT_UD;
+ init_qp_attr.qp_type = RDMA_QPT_UD;
init_qp_attr.send_cq = node->cq;
init_qp_attr.recv_cq = node->cq;
ret = rdma_create_qp(node->cma_id, node->pd, &init_qp_attr);
@@ -150,8 +150,8 @@ out:
static int post_recvs(struct cmatest_node *node)
{
- struct ibv_recv_wr recv_wr, *recv_failure;
- struct ibv_sge sge;
+ struct rdma_recv_wr recv_wr, *recv_failure;
+ struct rdma_sge sge;
int i, ret = 0;
if (!message_count)
@@ -162,12 +162,12 @@ static int post_recvs(struct cmatest_nod
recv_wr.num_sge = 1;
recv_wr.wr_id = (uintptr_t) node;
- sge.length = message_size + sizeof(struct ibv_grh);
+ sge.length = message_size + sizeof(struct rdma_grh);
sge.lkey = node->mr->lkey;
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++ ) {
- ret = ibv_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
+ ret = rdma_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
if (ret) {
printf("failed to post receives: %d\n", ret);
break;
@@ -178,8 +178,8 @@ static int post_recvs(struct cmatest_nod
static int post_sends(struct cmatest_node *node, int signal_flag)
{
- struct ibv_send_wr send_wr, *bad_send_wr;
- struct ibv_sge sge;
+ struct rdma_send_wr send_wr, *bad_send_wr;
+ struct rdma_sge sge;
int i, ret = 0;
if (!node->connected || !message_count)
@@ -188,8 +188,8 @@ static int post_sends(struct cmatest_nod
send_wr.next = NULL;
send_wr.sg_list = &sge;
send_wr.num_sge = 1;
- send_wr.opcode = IBV_WR_SEND_WITH_IMM;
- send_wr.send_flags = IBV_SEND_INLINE | signal_flag;
+ send_wr.opcode = RDMA_WR_SEND_WITH_IMM;
+ send_wr.send_flags = RDMA_SEND_INLINE | signal_flag;
send_wr.wr_id = (unsigned long)node;
send_wr.imm_data = htonl(node->cma_id->qp->qp_num);
@@ -197,12 +197,12 @@ static int post_sends(struct cmatest_nod
send_wr.wr.ud.remote_qpn = node->remote_qpn;
send_wr.wr.ud.remote_qkey = node->remote_qkey;
- sge.length = message_size - sizeof(struct ibv_grh);
+ sge.length = message_size - sizeof(struct rdma_grh);
sge.lkey = node->mr->lkey;
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++) {
- ret = ibv_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
+ ret = rdma_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
if (ret)
printf("failed to post sends: %d\n", ret);
}
@@ -241,7 +241,7 @@ err:
static int join_handler(struct cmatest_node *node)
{
- struct ibv_ah_attr ah_attr;
+ struct rdma_ah_attr ah_attr;
int ret;
ret = rdma_get_dst_attr(node->cma_id, test.dst_addr, &ah_attr,
@@ -251,7 +251,7 @@ static int join_handler(struct cmatest_n
goto err;
}
- node->ah = ibv_create_ah(node->pd, &ah_attr);
+ node->ah = rdma_create_ah(node->pd, &ah_attr);
if (!node->ah) {
printf("mckey: failure creating address handle\n");
goto err;
@@ -299,21 +299,21 @@ static void destroy_node(struct cmatest_
return;
if (node->ah)
- ibv_destroy_ah(node->ah);
+ rdma_destroy_ah(node->ah);
if (node->cma_id->qp)
rdma_destroy_qp(node->cma_id);
if (node->cq)
- ibv_destroy_cq(node->cq);
+ rdma_destroy_cq(node->cq);
if (node->mem) {
- ibv_dereg_mr(node->mr);
+ rdma_dereg_mr(node->mr);
free(node->mem);
}
if (node->pd)
- ibv_dealloc_pd(node->pd);
+ rdma_dealloc_pd(node->pd);
/* Destroy the RDMA ID after all device resources */
rdma_destroy_id(node->cma_id);
@@ -356,7 +356,7 @@ static void destroy_nodes(void)
static int poll_cqs(void)
{
- struct ibv_wc wc[8];
+ struct rdma_wc wc[8];
int done, i, ret;
for (i = 0; i < connections; i++) {
@@ -364,7 +364,7 @@ static int poll_cqs(void)
continue;
for (done = 0; done < message_count; done += ret) {
- ret = ibv_poll_cq(test.nodes[i].cq, 8, wc);
+ ret = rdma_poll_cq(test.nodes[i].cq, 8, wc);
if (ret < 0) {
printf("mckey: failed polling CQ: %d\n", ret);
return ret;
diff -ruNp ORG/librdmacm/examples/rping.c NEW/librdmacm/examples/rping.c
--- ORG/librdmacm/examples/rping.c 2006-07-27 15:34:18.000000000 +0530
+++ NEW/librdmacm/examples/rping.c 2006-07-27 15:34:44.000000000 +0530
@@ -111,32 +111,32 @@ struct rping_rdma_info {
struct rping_cb {
int server; /* 0 iff client */
pthread_t cqthread;
- struct ibv_comp_channel *channel;
- struct ibv_cq *cq;
- struct ibv_pd *pd;
- struct ibv_qp *qp;
+ struct rdma_comp_channel *channel;
+ struct rdma_cq *cq;
+ struct rdma_pd *pd;
+ struct rdma_qp *qp;
- struct ibv_recv_wr rq_wr; /* recv work request record */
- struct ibv_sge recv_sgl; /* recv single SGE */
+ struct rdma_recv_wr rq_wr; /* recv work request record */
+ struct rdma_sge recv_sgl; /* recv single SGE */
struct rping_rdma_info recv_buf;/* malloc'd buffer */
- struct ibv_mr *recv_mr; /* MR associated with this buffer */
+ struct rdma_mr *recv_mr; /* MR associated with this buffer */
- struct ibv_send_wr sq_wr; /* send work requrest record */
- struct ibv_sge send_sgl;
+ struct rdma_send_wr sq_wr; /* send work requrest record */
+ struct rdma_sge send_sgl;
struct rping_rdma_info send_buf;/* single send buf */
- struct ibv_mr *send_mr;
+ struct rdma_mr *send_mr;
- struct ibv_send_wr rdma_sq_wr; /* rdma work request record */
- struct ibv_sge rdma_sgl; /* rdma single SGE */
+ struct rdma_send_wr rdma_sq_wr; /* rdma work request record */
+ struct rdma_sge rdma_sgl; /* rdma single SGE */
char *rdma_buf; /* used as rdma sink */
- struct ibv_mr *rdma_mr;
+ struct rdma_mr *rdma_mr;
uint32_t remote_rkey; /* remote guys RKEY */
uint64_t remote_addr; /* remote guys TO */
uint32_t remote_len; /* remote guys LEN */
char *start_buf; /* rdma read src */
- struct ibv_mr *start_mr;
+ struct rdma_mr *start_mr;
enum test_state state; /* used for cond/signalling */
sem_t sem;
@@ -232,7 +232,7 @@ static int rping_cma_event_handler(struc
return ret;
}
-static int server_recv(struct rping_cb *cb, struct ibv_wc *wc)
+static int server_recv(struct rping_cb *cb, struct rdma_wc *wc)
{
if (wc->byte_len != sizeof(cb->recv_buf)) {
fprintf(stderr, "Received bogus data, size %d\n", wc->byte_len);
@@ -253,7 +253,7 @@ static int server_recv(struct rping_cb *
return 0;
}
-static int client_recv(struct rping_cb *cb, struct ibv_wc *wc)
+static int client_recv(struct rping_cb *cb, struct rdma_wc *wc)
{
if (wc->byte_len != sizeof(cb->recv_buf)) {
fprintf(stderr, "Received bogus data, size %d\n", wc->byte_len);
@@ -270,39 +270,39 @@ static int client_recv(struct rping_cb *
static int rping_cq_event_handler(struct rping_cb *cb)
{
- struct ibv_wc wc;
- struct ibv_recv_wr *bad_wr;
+ struct rdma_wc wc;
+ struct rdma_recv_wr *bad_wr;
int ret;
- while ((ret = ibv_poll_cq(cb->cq, 1, &wc)) == 1) {
+ while ((ret = rdma_poll_cq(cb->cq, 1, &wc)) == 1) {
ret = 0;
if (wc.status) {
fprintf(stderr, "cq completion failed status %d\n",
wc.status);
- if (wc.status != IBV_WC_WR_FLUSH_ERR)
+ if (wc.status != RDMA_WC_WR_FLUSH_ERR)
ret = -1;
goto error;
}
switch (wc.opcode) {
- case IBV_WC_SEND:
+ case RDMA_WC_SEND:
DEBUG_LOG("send completion\n");
break;
- case IBV_WC_RDMA_WRITE:
+ case RDMA_WC_RDMA_WRITE:
DEBUG_LOG("rdma write completion\n");
cb->state = RDMA_WRITE_COMPLETE;
sem_post(&cb->sem);
break;
- case IBV_WC_RDMA_READ:
+ case RDMA_WC_RDMA_READ:
DEBUG_LOG("rdma read completion\n");
cb->state = RDMA_READ_COMPLETE;
sem_post(&cb->sem);
break;
- case IBV_WC_RECV:
+ case RDMA_WC_RECV:
DEBUG_LOG("recv completion\n");
ret = cb->server ? server_recv(cb, &wc) :
client_recv(cb, &wc);
@@ -311,7 +311,7 @@ static int rping_cq_event_handler(struct
goto error;
}
- ret = ibv_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
+ ret = rdma_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post recv error: %d\n", ret);
goto error;
@@ -374,14 +374,14 @@ static void rping_setup_wr(struct rping_
cb->send_sgl.length = sizeof cb->send_buf;
cb->send_sgl.lkey = cb->send_mr->lkey;
- cb->sq_wr.opcode = IBV_WR_SEND;
- cb->sq_wr.send_flags = IBV_SEND_SIGNALED;
+ cb->sq_wr.opcode = RDMA_WR_SEND;
+ cb->sq_wr.send_flags = RDMA_SEND_SIGNALED;
cb->sq_wr.sg_list = &cb->send_sgl;
cb->sq_wr.num_sge = 1;
cb->rdma_sgl.addr = (uint64_t) (unsigned long) cb->rdma_buf;
cb->rdma_sgl.lkey = cb->rdma_mr->lkey;
- cb->rdma_sq_wr.send_flags = IBV_SEND_SIGNALED;
+ cb->rdma_sq_wr.send_flags = RDMA_SEND_SIGNALED;
cb->rdma_sq_wr.sg_list = &cb->rdma_sgl;
cb->rdma_sq_wr.num_sge = 1;
}
@@ -392,14 +392,14 @@ static int rping_setup_buffers(struct rp
DEBUG_LOG("rping_setup_buffers called on cb %p\n", cb);
- cb->recv_mr = ibv_reg_mr(cb->pd, &cb->recv_buf, sizeof cb->recv_buf,
- IBV_ACCESS_LOCAL_WRITE);
+ cb->recv_mr = rdma_reg_mr(cb->pd, &cb->recv_buf, sizeof cb->recv_buf,
+ RDMA_ACCESS_LOCAL_WRITE);
if (!cb->recv_mr) {
fprintf(stderr, "recv_buf reg_mr failed\n");
return errno;
}
- cb->send_mr = ibv_reg_mr(cb->pd, &cb->send_buf, sizeof cb->send_buf, 0);
+ cb->send_mr = rdma_reg_mr(cb->pd, &cb->send_buf, sizeof cb->send_buf, 0);
if (!cb->send_mr) {
fprintf(stderr, "send_buf reg_mr failed\n");
ret = errno;
@@ -413,10 +413,10 @@ static int rping_setup_buffers(struct rp
goto err2;
}
- cb->rdma_mr = ibv_reg_mr(cb->pd, cb->rdma_buf, cb->size,
- IBV_ACCESS_LOCAL_WRITE |
- IBV_ACCESS_REMOTE_READ |
- IBV_ACCESS_REMOTE_WRITE);
+ cb->rdma_mr = rdma_reg_mr(cb->pd, cb->rdma_buf, cb->size,
+ RDMA_ACCESS_LOCAL_WRITE |
+ RDMA_ACCESS_REMOTE_READ |
+ RDMA_ACCESS_REMOTE_WRITE);
if (!cb->rdma_mr) {
fprintf(stderr, "rdma_buf reg_mr failed\n");
ret = errno;
@@ -431,10 +431,10 @@ static int rping_setup_buffers(struct rp
goto err4;
}
- cb->start_mr = ibv_reg_mr(cb->pd, cb->start_buf, cb->size,
- IBV_ACCESS_LOCAL_WRITE |
- IBV_ACCESS_REMOTE_READ |
- IBV_ACCESS_REMOTE_WRITE);
+ cb->start_mr = rdma_reg_mr(cb->pd, cb->start_buf, cb->size,
+ RDMA_ACCESS_LOCAL_WRITE |
+ RDMA_ACCESS_REMOTE_READ |
+ RDMA_ACCESS_REMOTE_WRITE);
if (!cb->start_mr) {
fprintf(stderr, "start_buf reg_mr failed\n");
ret = errno;
@@ -449,32 +449,32 @@ static int rping_setup_buffers(struct rp
err5:
free(cb->start_buf);
err4:
- ibv_dereg_mr(cb->rdma_mr);
+ rdma_dereg_mr(cb->rdma_mr);
err3:
free(cb->rdma_buf);
err2:
- ibv_dereg_mr(cb->send_mr);
+ rdma_dereg_mr(cb->send_mr);
err1:
- ibv_dereg_mr(cb->recv_mr);
+ rdma_dereg_mr(cb->recv_mr);
return ret;
}
static void rping_free_buffers(struct rping_cb *cb)
{
DEBUG_LOG("rping_free_buffers called on cb %p\n", cb);
- ibv_dereg_mr(cb->recv_mr);
- ibv_dereg_mr(cb->send_mr);
- ibv_dereg_mr(cb->rdma_mr);
+ rdma_dereg_mr(cb->recv_mr);
+ rdma_dereg_mr(cb->send_mr);
+ rdma_dereg_mr(cb->rdma_mr);
free(cb->rdma_buf);
if (!cb->server) {
- ibv_dereg_mr(cb->start_mr);
+ rdma_dereg_mr(cb->start_mr);
free(cb->start_buf);
}
}
static int rping_create_qp(struct rping_cb *cb)
{
- struct ibv_qp_init_attr init_attr;
+ struct rdma_qp_init_attr init_attr;
int ret;
memset(&init_attr, 0, sizeof(init_attr));
@@ -482,7 +482,7 @@ static int rping_create_qp(struct rping_
init_attr.cap.max_recv_wr = 2;
init_attr.cap.max_recv_sge = 1;
init_attr.cap.max_send_sge = 1;
- init_attr.qp_type = IBV_QPT_RC;
+ init_attr.qp_type = RDMA_QPT_RC;
init_attr.send_cq = cb->cq;
init_attr.recv_cq = cb->cq;
@@ -501,43 +501,43 @@ static int rping_create_qp(struct rping_
static void rping_free_qp(struct rping_cb *cb)
{
- ibv_destroy_qp(cb->qp);
- ibv_destroy_cq(cb->cq);
- ibv_destroy_comp_channel(cb->channel);
- ibv_dealloc_pd(cb->pd);
+ rdmav_destroy_qp(cb->qp);
+ rdma_destroy_cq(cb->cq);
+ rdma_destroy_comp_channel(cb->channel);
+ rdma_dealloc_pd(cb->pd);
}
static int rping_setup_qp(struct rping_cb *cb, struct rdma_cm_id *cm_id)
{
int ret;
- cb->pd = ibv_alloc_pd(cm_id->verbs);
+ cb->pd = rdma_alloc_pd(cm_id->verbs);
if (!cb->pd) {
- fprintf(stderr, "ibv_alloc_pd failed\n");
+ fprintf(stderr, "rdma_alloc_pd failed\n");
return errno;
}
DEBUG_LOG("created pd %p\n", cb->pd);
- cb->channel = ibv_create_comp_channel(cm_id->verbs);
+ cb->channel = rdma_create_comp_channel(cm_id->verbs);
if (!cb->channel) {
- fprintf(stderr, "ibv_create_comp_channel failed\n");
+ fprintf(stderr, "rdma_create_comp_channel failed\n");
ret = errno;
goto err1;
}
DEBUG_LOG("created channel %p\n", cb->channel);
- cb->cq = ibv_create_cq(cm_id->verbs, RPING_SQ_DEPTH * 2, cb,
+ cb->cq = rdma_create_cq(cm_id->verbs, RPING_SQ_DEPTH * 2, cb,
cb->channel, 0);
if (!cb->cq) {
- fprintf(stderr, "ibv_create_cq failed\n");
+ fprintf(stderr, "rdma_create_cq failed\n");
ret = errno;
goto err2;
}
DEBUG_LOG("created cq %p\n", cb->cq);
- ret = ibv_req_notify_cq(cb->cq, 0);
+ ret = rdma_req_notify_cq(cb->cq, 0);
if (ret) {
- fprintf(stderr, "ibv_create_cq failed\n");
+ fprintf(stderr, "rdma_create_cq failed\n");
ret = errno;
goto err3;
}
@@ -551,11 +551,11 @@ static int rping_setup_qp(struct rping_c
return 0;
err3:
- ibv_destroy_cq(cb->cq);
+ rdma_destroy_cq(cb->cq);
err2:
- ibv_destroy_comp_channel(cb->channel);
+ rdma_destroy_comp_channel(cb->channel);
err1:
- ibv_dealloc_pd(cb->pd);
+ rdma_dealloc_pd(cb->pd);
return ret;
}
@@ -581,14 +581,14 @@ static void *cm_thread(void *arg)
static void *cq_thread(void *arg)
{
struct rping_cb *cb = arg;
- struct ibv_cq *ev_cq;
+ struct rdma_cq *ev_cq;
void *ev_ctx;
int ret;
DEBUG_LOG("cq_thread started.\n");
while (1) {
- ret = ibv_get_cq_event(cb->channel, &ev_cq, &ev_ctx);
+ ret = rdma_get_cq_event(cb->channel, &ev_cq, &ev_ctx);
if (ret) {
fprintf(stderr, "Failed to get cq event!\n");
exit(ret);
@@ -597,19 +597,19 @@ static void *cq_thread(void *arg)
fprintf(stderr, "Unkown CQ!\n");
exit(-1);
}
- ret = ibv_req_notify_cq(cb->cq, 0);
+ ret = rdma_req_notify_cq(cb->cq, 0);
if (ret) {
fprintf(stderr, "Failed to set notify!\n");
exit(ret);
}
ret = rping_cq_event_handler(cb);
- ibv_ack_cq_events(cb->cq, 1);
+ rdma_ack_cq_events(cb->cq, 1);
if (ret)
exit(ret);
}
}
-static void rping_format_send(struct rping_cb *cb, char *buf, struct ibv_mr *mr)
+static void rping_format_send(struct rping_cb *cb, char *buf, struct rdma_mr *mr)
{
struct rping_rdma_info *info = &cb->send_buf;
@@ -623,7 +623,7 @@ static void rping_format_send(struct rpi
static int rping_test_server(struct rping_cb *cb)
{
- struct ibv_send_wr *bad_wr;
+ struct rdma_send_wr *bad_wr;
int ret;
while (1) {
@@ -639,12 +639,12 @@ static int rping_test_server(struct rpin
DEBUG_LOG("server received sink adv\n");
/* Issue RDMA Read. */
- cb->rdma_sq_wr.opcode = IBV_WR_RDMA_READ;
+ cb->rdma_sq_wr.opcode = RDMA_WR_RDMA_READ;
cb->rdma_sq_wr.wr.rdma.rkey = cb->remote_rkey;
cb->rdma_sq_wr.wr.rdma.remote_addr = cb->remote_addr;
cb->rdma_sq_wr.sg_list->length = cb->remote_len;
- ret = ibv_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -666,7 +666,7 @@ static int rping_test_server(struct rpin
printf("server ping data: %s\n", cb->rdma_buf);
/* Tell client to continue */
- ret = ibv_post_send(cb->qp, &cb->sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -684,7 +684,7 @@ static int rping_test_server(struct rpin
DEBUG_LOG("server received sink adv\n");
/* RDMA Write echo data */
- cb->rdma_sq_wr.opcode = IBV_WR_RDMA_WRITE;
+ cb->rdma_sq_wr.opcode = RDMA_WR_RDMA_WRITE;
cb->rdma_sq_wr.wr.rdma.rkey = cb->remote_rkey;
cb->rdma_sq_wr.wr.rdma.remote_addr = cb->remote_addr;
cb->rdma_sq_wr.sg_list->length = strlen(cb->rdma_buf) + 1;
@@ -693,7 +693,7 @@ static int rping_test_server(struct rpin
cb->rdma_sq_wr.sg_list->addr,
cb->rdma_sq_wr.sg_list->length);
- ret = ibv_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -710,7 +710,7 @@ static int rping_test_server(struct rpin
DEBUG_LOG("server rdma write complete \n");
/* Tell client to begin again */
- ret = ibv_post_send(cb->qp, &cb->sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -757,7 +757,7 @@ static int rping_bind_server(struct rpin
static int rping_run_server(struct rping_cb *cb)
{
- struct ibv_recv_wr *bad_wr;
+ struct rdma_recv_wr *bad_wr;
int ret;
ret = rping_bind_server(cb);
@@ -776,9 +776,9 @@ static int rping_run_server(struct rping
goto err1;
}
- ret = ibv_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
+ ret = rdma_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
if (ret) {
- fprintf(stderr, "ibv_post_recv failed: %d\n", ret);
+ fprintf(stderr, "rdma_post_recv failed: %d\n", ret);
goto err2;
}
@@ -804,7 +804,7 @@ err1:
static int rping_test_client(struct rping_cb *cb)
{
int ping, start, cc, i, ret = 0;
- struct ibv_send_wr *bad_wr;
+ struct rdma_send_wr *bad_wr;
unsigned char c;
start = 65;
@@ -825,7 +825,7 @@ static int rping_test_client(struct rpin
cb->start_buf[cb->size - 1] = 0;
rping_format_send(cb, cb->start_buf, cb->start_mr);
- ret = ibv_post_send(cb->qp, &cb->sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -841,7 +841,7 @@ static int rping_test_client(struct rpin
}
rping_format_send(cb, cb->rdma_buf, cb->rdma_mr);
- ret = ibv_post_send(cb->qp, &cb->sq_wr, &bad_wr);
+ ret = rdma_post_send(cb->qp, &cb->sq_wr, &bad_wr);
if (ret) {
fprintf(stderr, "post send error %d\n", ret);
break;
@@ -926,7 +926,7 @@ static int rping_bind_client(struct rpin
static int rping_run_client(struct rping_cb *cb)
{
- struct ibv_recv_wr *bad_wr;
+ struct rdma_recv_wr *bad_wr;
int ret;
ret = rping_bind_client(cb);
@@ -945,9 +945,9 @@ static int rping_run_client(struct rping
goto err1;
}
- ret = ibv_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
+ ret = rdma_post_recv(cb->qp, &cb->rq_wr, &bad_wr);
if (ret) {
- fprintf(stderr, "ibv_post_recv failed: %d\n", ret);
+ fprintf(stderr, "rdma_post_recv failed: %d\n", ret);
goto err2;
}
diff -ruNp ORG/librdmacm/examples/udaddy.c NEW/librdmacm/examples/udaddy.c
--- ORG/librdmacm/examples/udaddy.c 2006-07-27 15:34:18.000000000 +0530
+++ NEW/librdmacm/examples/udaddy.c 2006-07-27 15:34:44.000000000 +0530
@@ -55,10 +55,10 @@ struct cmatest_node {
int id;
struct rdma_cm_id *cma_id;
int connected;
- struct ibv_pd *pd;
- struct ibv_cq *cq;
- struct ibv_mr *mr;
- struct ibv_ah *ah;
+ struct rdma_pd *pd;
+ struct rdma_cq *cq;
+ struct rdma_mr *mr;
+ struct rdma_ah *ah;
uint32_t remote_qpn;
uint32_t remote_qkey;
void *mem;
@@ -90,14 +90,14 @@ static int create_message(struct cmatest
if (!message_count)
return 0;
- node->mem = malloc(message_size + sizeof(struct ibv_grh));
+ node->mem = malloc(message_size + sizeof(struct rdma_grh));
if (!node->mem) {
printf("failed message allocation\n");
return -1;
}
- node->mr = ibv_reg_mr(node->pd, node->mem,
- message_size + sizeof(struct ibv_grh),
- IBV_ACCESS_LOCAL_WRITE);
+ node->mr = rdma_reg_mr(node->pd, node->mem,
+ message_size + sizeof(struct rdma_grh),
+ RDMA_ACCESS_LOCAL_WRITE);
if (!node->mr) {
printf("failed to reg MR\n");
goto err;
@@ -110,10 +110,10 @@ err:
static int init_node(struct cmatest_node *node)
{
- struct ibv_qp_init_attr init_qp_attr;
+ struct rdma_qp_init_attr init_qp_attr;
int cqe, ret;
- node->pd = ibv_alloc_pd(node->cma_id->verbs);
+ node->pd = rdma_alloc_pd(node->cma_id->verbs);
if (!node->pd) {
ret = -ENOMEM;
printf("udaddy: unable to allocate PD\n");
@@ -121,7 +121,7 @@ static int init_node(struct cmatest_node
}
cqe = message_count ? message_count * 2 : 2;
- node->cq = ibv_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
+ node->cq = rdma_create_cq(node->cma_id->verbs, cqe, node, 0, 0);
if (!node->cq) {
ret = -ENOMEM;
printf("udaddy: unable to create CQ\n");
@@ -135,7 +135,7 @@ static int init_node(struct cmatest_node
init_qp_attr.cap.max_recv_sge = 1;
init_qp_attr.qp_context = node;
init_qp_attr.sq_sig_all = 0;
- init_qp_attr.qp_type = IBV_QPT_UD;
+ init_qp_attr.qp_type = RDMA_QPT_UD;
init_qp_attr.send_cq = node->cq;
init_qp_attr.recv_cq = node->cq;
ret = rdma_create_qp(node->cma_id, node->pd, &init_qp_attr);
@@ -155,8 +155,8 @@ out:
static int post_recvs(struct cmatest_node *node)
{
- struct ibv_recv_wr recv_wr, *recv_failure;
- struct ibv_sge sge;
+ struct rdma_recv_wr recv_wr, *recv_failure;
+ struct rdma_sge sge;
int i, ret = 0;
if (!message_count)
@@ -167,12 +167,12 @@ static int post_recvs(struct cmatest_nod
recv_wr.num_sge = 1;
recv_wr.wr_id = (uintptr_t) node;
- sge.length = message_size + sizeof(struct ibv_grh);
+ sge.length = message_size + sizeof(struct rdma_grh);
sge.lkey = node->mr->lkey;
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++ ) {
- ret = ibv_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
+ ret = rdma_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
if (ret) {
printf("failed to post receives: %d\n", ret);
break;
@@ -183,8 +183,8 @@ static int post_recvs(struct cmatest_nod
static int post_sends(struct cmatest_node *node, int signal_flag)
{
- struct ibv_send_wr send_wr, *bad_send_wr;
- struct ibv_sge sge;
+ struct rdma_send_wr send_wr, *bad_send_wr;
+ struct rdma_sge sge;
int i, ret = 0;
if (!node->connected || !message_count)
@@ -193,8 +193,8 @@ static int post_sends(struct cmatest_nod
send_wr.next = NULL;
send_wr.sg_list = &sge;
send_wr.num_sge = 1;
- send_wr.opcode = IBV_WR_SEND_WITH_IMM;
- send_wr.send_flags = IBV_SEND_INLINE | signal_flag;
+ send_wr.opcode = RDMA_WR_SEND_WITH_IMM;
+ send_wr.send_flags = RDMA_SEND_INLINE | signal_flag;
send_wr.wr_id = (unsigned long)node;
send_wr.imm_data = htonl(node->cma_id->qp->qp_num);
@@ -202,12 +202,12 @@ static int post_sends(struct cmatest_nod
send_wr.wr.ud.remote_qpn = node->remote_qpn;
send_wr.wr.ud.remote_qkey = node->remote_qkey;
- sge.length = message_size - sizeof(struct ibv_grh);
+ sge.length = message_size - sizeof(struct rdma_grh);
sge.lkey = node->mr->lkey;
sge.addr = (uintptr_t) node->mem;
for (i = 0; i < message_count && !ret; i++) {
- ret = ibv_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
+ ret = rdma_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
if (ret)
printf("failed to post sends: %d\n", ret);
}
@@ -305,7 +305,7 @@ err1:
static int resolved_handler(struct cmatest_node *node)
{
- struct ibv_ah_attr ah_attr;
+ struct rdma_ah_attr ah_attr;
int ret;
ret = rdma_get_dst_attr(node->cma_id, test.dst_addr, &ah_attr,
@@ -315,7 +315,7 @@ static int resolved_handler(struct cmate
goto err;
}
- node->ah = ibv_create_ah(node->pd, &ah_attr);
+ node->ah = rdma_create_ah(node->pd, &ah_attr);
if (!node->ah) {
printf("udaddy: failure creating address handle\n");
goto err;
@@ -371,21 +371,21 @@ static void destroy_node(struct cmatest_
return;
if (node->ah)
- ibv_destroy_ah(node->ah);
+ rdma_destroy_ah(node->ah);
if (node->cma_id->qp)
rdma_destroy_qp(node->cma_id);
if (node->cq)
- ibv_destroy_cq(node->cq);
+ rdma_destroy_cq(node->cq);
if (node->mem) {
- ibv_dereg_mr(node->mr);
+ rdma_dereg_mr(node->mr);
free(node->mem);
}
if (node->pd)
- ibv_dealloc_pd(node->pd);
+ rdma_dealloc_pd(node->pd);
/* Destroy the RDMA ID after all device resources */
rdma_destroy_id(node->cma_id);
@@ -429,9 +429,9 @@ static void destroy_nodes(void)
free(test.nodes);
}
-static void create_reply_ah(struct cmatest_node *node, struct ibv_wc *wc)
+static void create_reply_ah(struct cmatest_node *node, struct rdma_wc *wc)
{
- node->ah = ibv_create_ah_from_wc(node->pd, wc, node->mem,
+ node->ah = rdma_create_ah_from_wc(node->pd, wc, node->mem,
node->cma_id->port_num);
node->remote_qpn = ntohl(wc->imm_data);
node->remote_qkey = ntohs(rdma_get_dst_port(node->cma_id));
@@ -439,7 +439,7 @@ static void create_reply_ah(struct cmate
static int poll_cqs(void)
{
- struct ibv_wc wc[8];
+ struct rdma_wc wc[8];
int done, i, ret;
for (i = 0; i < connections; i++) {
@@ -447,7 +447,7 @@ static int poll_cqs(void)
continue;
for (done = 0; done < message_count; done += ret) {
- ret = ibv_poll_cq(test.nodes[i].cq, 8, wc);
+ ret = rdma_poll_cq(test.nodes[i].cq, 8, wc);
if (ret < 0) {
printf("udaddy: failed polling CQ: %d\n", ret);
return ret;
@@ -511,7 +511,7 @@ static int run_server(void)
printf("sending replies\n");
for (i = 0; i < connections; i++) {
- ret = post_sends(&test.nodes[i], IBV_SEND_SIGNALED);
+ ret = post_sends(&test.nodes[i], RDMA_SEND_SIGNALED);
if (ret)
goto out;
}
More information about the general
mailing list