rdma_post_ud_send — post a work request to send a datagram.
Synopsis
#include <rdma/rdma_verbs.h>
int rdma_post_ud_send (struct rdma_cm_id *id, void *context, void *addr, size_t length, struct ibv_mr *mr, int flags, struct ibv_ah *ah, uint32_t remote_qpn);
Arguments
- id
A reference to a communication identifier where the message buffer will be posted.
- context
User-defined context associated with the request.
- addr
The address of the memory buffer to post.
- length
The length of the memory buffer.
- mr
Optional registered memory region associated with the posted buffer.
- flags
Optional flags used to control the send operation.
- ah
An address handle describing the address of the remote node.
- remote_qpn
The number of the destination queue pair.
Description
Posts a work request to the send queue of the queue pair associated with the rdma_cm_id. The contents of the posted buffer will be sent to the specified destination queue pair.
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 destination queue pair has queued a receive request before issuing the send operations. For a list of supported flags, see ibv_post_send. Unless the send request is using inline data, the message buffer must have been registered before being posted, with the mr parameter referencing the registration. The buffer must remain registered until the send completes.
The user-defined context associated with the send request will be returned to the user through the work completion wr_id, work request identifier, field.
See Also
rdma_cm(7), rdma_connect(3), rdma_accept(3), rdma_reg_msgs(3) ibv_post_send(3), rdma_post_recv(3)