NAME¶
rdma_post_recvv - post a work request to receive incoming messages.
SYNOPSIS¶
#include <rdma/rdma_verbs.h>
int rdma_post_recvv (struct rdma_cm_id *id, void
*context, struct ibv_sge *sgl, int
nsge);
ARGUMENTS¶
- id
- A reference to a communication identifier where the message
buffer(s) will be posted.
- context
- User-defined context associated with the request.
- sgl
- A scatter-gather list of memory buffers posted as a single
request.
- nsge
- The number of scatter-gather entries in the sgl array.
DESCRIPTION¶
Posts a single work request to the receive queue of the queue pair associated
with the rdma_cm_id. The posted buffers will be queued to receive an incoming
message sent by the remote peer.
RETURN VALUE¶
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to
indicate the failure reason.
NOTES¶
The user is responsible for ensuring that the receive is posted, and the total
buffer space is large enough to contain all sent data before the peer posts
the corresponding send message. The message buffers must have been registered
before being posted, and the buffers must remain registered until the receive
completes.
Messages may be posted to an rdma_cm_id only after a queue pair has been
associated with it. A queue pair is bound to an rdma_cm_id after calling
rdma_create_ep or rdma_create_qp, if the rdma_cm_id is allocated using
rdma_create_id.
The user-defined context associated with the receive request will be returned to
the user through the work completion wr_id, work request identifier, field.
SEE ALSO¶
rdma_cm(7),
rdma_create_id(3),
rdma_create_ep(3),
rdma_create_qp(3),
rdma_reg_read(3), ibv_reg_mr(3), ibv_dereg_mr(3),
rdma_post_recv(3),
rdma_post_send(3)