Open a shareable queue pair (qp)
#include <infiniband/verbs.h> struct ibv_qp *ibv_open_qp(struct ibv_context *context, struct ibv_qp_open_attr *qp_open_attr);
ibv_open_qp() opens an existing queue pair (QP) associated with the extended protection domain xrcd. The argument qp_open_attr is an ibv_qp_open_attr struct, as defined in <infiniband/verbs.h>.
struct ibv_qp_open_attr { uint32_t comp_mask; /* Identifies valid fields */ uint32_t qp_num; /* QP number */ struct *ibv_xrcd; /* XRC domain */ void *qp_context; /* User defined opaque value */ enum ibv_qp_type qp_type; /* QP transport service type */
ibv_destroy_qp() closes the opened QP and destroys the underlying QP if it has no other references. qp.
ibv_open_qp() returns a pointer to the opened QP, or NULL if the request fails. Check the QP number (qp_num) in the returned QP.
ibv_open_qp() will fail if a it is asked to open a QP that does not exist within the xrcd with the specified qp_num and qp_type.
Sean Hefty <[email protected]>