Skip to content

Posts Tagged ‘QP ’

int ibv_detach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid);int ibv_detach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid); Description ibv_detach_mcast() detaches a Queue Pair from a multicast group. After the detachment completes, this QP won't get a copy of...

int ibv_attach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid);int ibv_attach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid); Description ibv_attach_mcast() attaches a Queue Pair to a multicast group. After the attachment completes, this QP will be provided with a...

int ibv_post_recv(struct ibv_qp *qp, struct ibv_recv_wr *wr, struct ibv_recv_wr **bad_wr);int ibv_post_recv(struct ibv_qp *qp, struct ibv_recv_wr *wr, struct ibv_recv_wr **bad_wr); Description ibv_post_recv() posts a linked list of Work Requests (WRs) to the Receive Queue of a Queue Pair (QP). ibv_post_recv() go...

int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr, struct ibv_send_wr **bad_wr);int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr, struct ibv_send_wr **bad_wr); Description ibv_post_send() posts a linked list of Work Requests (WRs) to the Send Queue of a Queue Pair (QP). ibv_post_send() go...

int ibv_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, enum ibv_qp_attr_mask attr_mask, struct ibv_qp_init_attr *init_attr);int ibv_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, enum ibv_qp_attr_mask attr_mask, struct ibv_qp_init_attr *init_attr); Description ibv_query_qp() returns the attributes and current values of a Queue Pair. struct ibv_qp_attr describes...

int ibv_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask);int ibv_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask); Description ibv_modify_qp() modifies the attributes of a Queue Pair. The changed attributes describe the send and receive attributes of the QP. In UC...

int ibv_destroy_qp(struct ibv_qp *qp);int ibv_destroy_qp(struct ibv_qp *qp); Description ibv_destroy_qp() destroys a Queue Pair. When a QP is destroyed any outstanding Work Requests, in either the Send or Receive Queues, won't be processed anymore by the RDMA device and Work Completions...

struct ibv_qp *ibv_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr);struct ibv_qp *ibv_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr); Description ibv_create_qp() creates a Queue Pair (QP) associated with a Protection Domain. The user can define the minimum attributes to the QP: number of Work...

In the last post we discuss the various QP states. In this post I will try to explain why those states are needed and how to use the QP in each state. Reset state A QP can get to the...

Since a QP is one of the important objects in of RDMA, I will handle it in the next few posts. QP State transitions In a QP lifetime, the possible states can be: Reset Initialize (Init) Ready To Receive (RTR)...