GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
IBV_CREATE_QP(3) Libibverbs Programmer's Manual IBV_CREATE_QP(3)

ibv_create_qp, ibv_destroy_qp - create or destroy a queue pair (QP)

#include <infiniband/verbs.h>

struct ibv_qp *ibv_create_qp(struct ibv_pd *pd,
                             struct ibv_qp_init_attr *qp_init_attr);

int ibv_destroy_qp(struct ibv_qp *qp);

ibv_create_qp() creates a queue pair (QP) associated with the protection domain pd. The argument qp_init_attr is an ibv_qp_init_attr struct, as defined in <infiniband/verbs.h>.

struct ibv_qp_init_attr {

void *qp_context; /* Associated context of the QP */ struct ibv_cq *send_cq; /* CQ to be associated with the Send Queue (SQ) */ struct ibv_cq *recv_cq; /* CQ to be associated with the Receive Queue (RQ) */ struct ibv_srq *srq; /* SRQ handle if QP is to be associated with an SRQ, otherwise NULL */ struct ibv_qp_cap cap; /* QP capabilities */ enum ibv_qp_type qp_type; /* QP Transport Service Type: IBV_QPT_RC, IBV_QPT_UC, IBV_QPT_UD or IBV_QPT_RAW_PACKET */ int sq_sig_all; /* If set, each Work Request (WR) submitted to the SQ generates a completion entry */
};
struct ibv_qp_cap {
uint32_t max_send_wr; /* Requested max number of outstanding WRs in the SQ */ uint32_t max_recv_wr; /* Requested max number of outstanding WRs in the RQ */ uint32_t max_send_sge; /* Requested max number of scatter/gather (s/g) elements in a WR in the SQ */ uint32_t max_recv_sge; /* Requested max number of s/g elements in a WR in the SQ */ uint32_t max_inline_data;/* Requested max number of data (bytes) that can be posted inline to the SQ, otherwise 0 */
};

The function ibv_create_qp() will update the qp_init_attr->cap struct with the actual QP values of the QP that was created; the values will be greater than or equal to the values requested.

ibv_destroy_qp() destroys the QP qp.

ibv_create_qp() returns a pointer to the created QP, or NULL if the request fails. Check the QP number (qp_num) in the returned QP.

ibv_destroy_qp() returns 0 on success, or the value of errno on failure (which indicates the failure reason).

ibv_create_qp() will fail if a it is asked to create QP of a type other than IBV_QPT_RC or IBV_QPT_UD associated with an SRQ.

The attributes max_recv_wr and max_recv_sge are ignored by ibv_create_qp() if the QP is to be associated with an SRQ.

ibv_destroy_qp() fails if the QP is attached to a multicast group.

ibv_alloc_pd(3), ibv_modify_qp(3), ibv_query_qp(3)

Dotan Barak <dotanba@gmail.com>
2006-10-31 libibverbs

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.