Client Operation

The client operation section provides a general overview of the basic operation for the active, or client side of communication. A general connection flow is described in the following:
rdma_create_event_channel
Creates a channel to receive events.
rdma_create_id
Allocates an rdma_cm_id that is conceptually similar to a socket.
rdma_resolve_addr
Obtains a local RDMA device to reach the remote address.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_ADDR_RESOLVED event.
rdma_ack_cm_event
Acknowledges the received event.
rdma_create_qp
Allocates a QP for the communication.
rdma_resolve_route
Determines the route to the remote address.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_ROUTE_RESOLVED event.
rdma_ack_cm_event
Acknowledges the received event.
rdma_connect
Connects to the remote server.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_ESTABLISHED event.
rdma_ack_cm_event
Acknowledges the received event.
Performs data transfer over the connection.
rdma_disconnect
Tears down the connection.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_DISCONNECTED event.
rdma_ack_cm_event
Acknowledges the event.
rdma_destroy_qp
Destroys the QP.
rdma_destroy_id
Releases the rdma_cm_id.
rdma_destroy_event_channel
Releases the event channel.
Note: The example shows the client initiating the disconnect, but either side of a connection might initiate the disconnect process.
[ Feedback ]