Lines Matching refs:con

70 int rtrs_iu_post_recv(struct rtrs_con *con, struct rtrs_iu *iu)  in rtrs_iu_post_recv()  argument
72 struct rtrs_sess *sess = con->sess; in rtrs_iu_post_recv()
81 rtrs_wrn(con->sess, in rtrs_iu_post_recv()
91 return ib_post_recv(con->qp, &wr, NULL); in rtrs_iu_post_recv()
95 int rtrs_post_recv_empty(struct rtrs_con *con, struct ib_cqe *cqe) in rtrs_post_recv_empty() argument
103 return ib_post_recv(con->qp, &wr, NULL); in rtrs_post_recv_empty()
123 int rtrs_iu_post_send(struct rtrs_con *con, struct rtrs_iu *iu, size_t size, in rtrs_iu_post_send() argument
126 struct rtrs_sess *sess = con->sess; in rtrs_iu_post_send()
145 return rtrs_post_send(con->qp, head, &wr); in rtrs_iu_post_send()
149 int rtrs_iu_post_rdma_write_imm(struct rtrs_con *con, struct rtrs_iu *iu, in rtrs_iu_post_rdma_write_imm() argument
177 return rtrs_post_send(con->qp, head, &wr.wr); in rtrs_iu_post_rdma_write_imm()
181 int rtrs_post_rdma_write_imm_empty(struct rtrs_con *con, struct ib_cqe *cqe, in rtrs_post_rdma_write_imm_empty() argument
194 return rtrs_post_send(con->qp, head, &wr.wr); in rtrs_post_rdma_write_imm_empty()
200 struct rtrs_con *con = ctx; in qp_event_handler() local
204 rtrs_info(con->sess, "QP event %s (%d) received\n", in qp_event_handler()
206 rdma_notify(con->cm_id, IB_EVENT_COMM_EST); in qp_event_handler()
209 rtrs_info(con->sess, "Unhandled QP event %s (%d) received\n", in qp_event_handler()
215 static int create_cq(struct rtrs_con *con, int cq_vector, u16 cq_size, in create_cq() argument
218 struct rdma_cm_id *cm_id = con->cm_id; in create_cq()
221 cq = ib_alloc_cq(cm_id->device, con, cq_size, in create_cq()
224 rtrs_err(con->sess, "Creating completion queue failed, errno: %ld\n", in create_cq()
228 con->cq = cq; in create_cq()
233 static int create_qp(struct rtrs_con *con, struct ib_pd *pd, in create_qp() argument
237 struct rdma_cm_id *cm_id = con->cm_id; in create_qp()
244 init_attr.qp_context = con; in create_qp()
248 init_attr.send_cq = con->cq; in create_qp()
249 init_attr.recv_cq = con->cq; in create_qp()
254 rtrs_err(con->sess, "Creating QP failed, err: %d\n", ret); in create_qp()
257 con->qp = cm_id->qp; in create_qp()
262 int rtrs_cq_qp_create(struct rtrs_sess *sess, struct rtrs_con *con, in rtrs_cq_qp_create() argument
269 err = create_cq(con, cq_vector, cq_size, poll_ctx); in rtrs_cq_qp_create()
273 err = create_qp(con, sess->dev->ib_pd, max_send_wr, max_recv_wr, in rtrs_cq_qp_create()
276 ib_free_cq(con->cq); in rtrs_cq_qp_create()
277 con->cq = NULL; in rtrs_cq_qp_create()
280 con->sess = sess; in rtrs_cq_qp_create()
286 void rtrs_cq_qp_destroy(struct rtrs_con *con) in rtrs_cq_qp_destroy() argument
288 if (con->qp) { in rtrs_cq_qp_destroy()
289 rdma_destroy_qp(con->cm_id); in rtrs_cq_qp_destroy()
290 con->qp = NULL; in rtrs_cq_qp_destroy()
292 if (con->cq) { in rtrs_cq_qp_destroy()
293 ib_free_cq(con->cq); in rtrs_cq_qp_destroy()
294 con->cq = NULL; in rtrs_cq_qp_destroy()
307 struct rtrs_con *usr_con = sess->con[0]; in rtrs_send_hb_ack()
329 usr_con = sess->con[0]; in hb_work()
353 void (*err_handler)(struct rtrs_con *con), in rtrs_init_hb() argument