]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/ofed/libibverbs/man/ibv_create_xrc_rcv_qp.3
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / ofed / libibverbs / man / ibv_create_xrc_rcv_qp.3
1 .\" -*- nroff -*-
2 .\"
3 .TH IBV_CREATE_XRC_RCV_QP 3 2008-02-10 libibverbs "Libibverbs Programmer's Manual"
4 .SH "NAME"
5 ibv_create_xrc_rcv_qp \- create an XRC queue pair (QP) for serving as a receive-side only QP
6 .SH "SYNOPSIS"
7 .nf
8 .B #include <infiniband/verbs.h>
9 .sp
10 .BI "int ibv_create_xrc_rcv_qp(struct ibv_qp_init_attr " "*init_attr" ,
11 .BI "                          uint32_t " "*xrc_rcv_qpn" );
12 .fi
13 .SH "DESCRIPTION"
14 .B ibv_create_xrc_rcv_qp()
15 creates an XRC queue pair (QP) for serving as a receive-side only QP and returns its number through the pointer
16 .I xrc_rcv_qpn\fR.
17 This QP number should be passed to the remote node (sender).
18 The remote node will use 
19 .I xrc_rcv_qpn
20 in
21 .B ibv_post_send()
22 when sending to an XRC SRQ on this host in the same xrc domain as the XRC receive QP.
23 This QP is created in kernel space, and persists until the last process registered for the QP
24 calls 
25 .B ibv_unreg_xrc_rcv_qp()
26 (at which time the QP is destroyed).
27 .PP
28 The process which creates this QP is automatically registered for it, and should also call
29 .B ibv_unreg_xrc_rcv_qp()
30 at some point, to unregister.
31
32 Processes which wish to receive on an XRC SRQ via this QP should call
33 .B ibv_reg_xrc_rcv_qp()
34 for this QP, to guarantee that the QP will not be destroyed while they are still using it for receiving on the XRC SRQ.
35 .PP
36 The argument
37 .I qp_init_attr
38 is an ibv_qp_init_attr struct, as defined in <infiniband/verbs.h>.
39 .PP
40 .nf
41 struct ibv_qp_init_attr {
42 .in +8
43 void                   *qp_context;     /* value is being ignored */
44 struct ibv_cq          *send_cq;        /* value is being ignored */ 
45 struct ibv_cq          *recv_cq;        /* value is being ignored */
46 struct ibv_srq         *srq;            /* value is being ignored */
47 struct ibv_qp_cap       cap;            /* value is being ignored */
48 enum ibv_qp_type        qp_type;        /* value is being ignored */
49 int                     sq_sig_all;     /* value is being ignored */
50 struct ibv_xrc_domain  *xrc_domain;     /* XRC domain the QP will be associated with */
51 .in -8
52 };
53 .fi
54 .PP
55 Most of the attributes in
56 .I qp_init_attr
57 are being ignored because this QP is a receive only QP and all RR are being posted to an SRQ.
58 .SH "RETURN VALUE"
59 .B ibv_create_xrc_rcv_qp()
60 returns 0 on success, or the value of errno on failure (which indicates the failure reason).
61 .SH "SEE ALSO"
62 .BR ibv_open_xrc_domain (3),
63 .BR ibv_modify_xrc_rcv_qp (3),
64 .BR ibv_query_xrc_rcv_qp (3),
65 .BR ibv_reg_xrc_rcv_qp (3),
66 .BR ibv_unreg_xrc_rcv_qp (3),
67 .BR ibv_post_send (3)
68 .SH "AUTHORS"
69 .TP
70 Dotan Barak <dotanb@mellanox.co.il>