1RDMA_POST_RECV(3) Librdmacm Programmer's Manual RDMA_POST_RECV(3)
2
3
4
6 rdma_post_recv - post a work request to receive an incoming message.
7
9 #include <rdma/rdma_verbs.h>
10
11 int rdma_post_recv (struct rdma_cm_id *id, void *context, void *addr,
12 size_t length, struct ibv_mr *mr);
13
15 id A reference to a communication identifier where the message
16 buffer will be posted.
17
18 context User-defined context associated with the request.
19
20 addr The address of the memory buffer to post.
21
22 length The length of the memory buffer.
23
24 mr A registered memory region associated with the posted buf‐
25 fer.
26
28 Posts a work request to the receive queue of the queue pair associated
29 with the rdma_cm_id. The posted buffer will be queued to receive an
30 incoming message sent by the remote peer.
31
33 Returns 0 on success, or -1 on error. If an error occurs, errno will
34 be set to indicate the failure reason.
35
37 The user is responsible for ensuring that a receive buffer is posted
38 and large enough to contain all sent data before the peer posts the
39 corresponding send message. The message buffer must have been regis‐
40 tered before being posted, with the mr parameter referencing the regis‐
41 tration. The buffer must remain registered until the receive com‐
42 pletes.
43
44 Messages may be posted to an rdma_cm_id only after a queue pair has
45 been associated with it. A queue pair is bound to an rdma_cm_id after
46 calling rdma_create_ep or rdma_create_qp, if the rdma_cm_id is allo‐
47 cated using rdma_create_id.
48
49 The user-defined context associated with the receive request will be
50 returned to the user through the work completion wr_id, work request
51 identifier, field.
52
54 rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), rdma_create_qp(3),
55 rdma_reg_read(3), ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_recvv(3),
56 rdma_post_send(3)
57
58
59
60librdmacm 2010-07-19 RDMA_POST_RECV(3)