Lines Matching defs:node

85 static int create_message(struct cmatest_node *node)
93 node->mem = malloc(message_size + sizeof(struct ibv_grh));
94 if (!node->mem) {
98 node->mr = ibv_reg_mr(node->pd, node->mem,
101 if (!node->mr) {
107 free(node->mem);
111 static int verify_test_params(struct cmatest_node *node)
116 ret = ibv_query_port(node->cma_id->verbs, node->cma_id->port_num,
130 static int init_node(struct cmatest_node *node)
135 node->pd = ibv_alloc_pd(node->cma_id->verbs);
136 if (!node->pd) {
143 node->cq = ibv_create_cq(node->cma_id->verbs, cqe, node, NULL, 0);
144 if (!node->cq) {
155 init_qp_attr.qp_context = node;
158 init_qp_attr.send_cq = node->cq;
159 init_qp_attr.recv_cq = node->cq;
160 ret = rdma_create_qp(node->cma_id, node->pd, &init_qp_attr);
166 ret = create_message(node);
175 static int post_recvs(struct cmatest_node *node)
187 recv_wr.wr_id = (uintptr_t) node;
190 sge.lkey = node->mr->lkey;
191 sge.addr = (uintptr_t) node->mem;
194 ret = ibv_post_recv(node->cma_id->qp, &recv_wr, &recv_failure);
203 static int post_sends(struct cmatest_node *node, int signal_flag)
209 if (!node->connected || !message_count)
217 send_wr.wr_id = (unsigned long)node;
218 send_wr.imm_data = htobe32(node->cma_id->qp->qp_num);
220 send_wr.wr.ud.ah = node->ah;
221 send_wr.wr.ud.remote_qpn = node->remote_qpn;
222 send_wr.wr.ud.remote_qkey = node->remote_qkey;
225 sge.lkey = node->mr->lkey;
226 sge.addr = (uintptr_t) node->mem;
229 ret = ibv_post_send(node->cma_id->qp, &send_wr, &bad_send_wr);
241 static int addr_handler(struct cmatest_node *node)
245 ret = verify_test_params(node);
249 ret = init_node(node);
254 ret = post_recvs(node);
259 ret = rdma_join_multicast(node->cma_id, test.dst_addr, node);
270 static int join_handler(struct cmatest_node *node,
279 node->remote_qpn = param->qp_num;
280 node->remote_qkey = param->qkey;
281 node->ah = ibv_create_ah(node->pd, &param->ah_attr);
282 if (!node->ah) {
287 node->connected = 1;
350 static void destroy_node(struct cmatest_node *node)
352 if (!node->cma_id)
355 if (node->ah)
356 ibv_destroy_ah(node->ah);
358 if (node->cma_id->qp)
359 rdma_destroy_qp(node->cma_id);
361 if (node->cq)
362 ibv_destroy_cq(node->cq);
364 if (node->mem) {
365 ibv_dereg_mr(node->mr);
366 free(node->mem);
369 if (node->pd)
370 ibv_dealloc_pd(node->pd);
373 rdma_destroy_id(node->cma_id);