Server operation

Learn about the basic operation that can be run for the passive or server communication.

A general connection flow follows:
rdma_create_event_channel
Creates a channel to receive events.
rdma_create_id
Allocates an rdma_cm_id identifier that is conceptually similar to a socket.
rdma_bind_addr
Sets the local port number on which the event listens.
rdma_listen
Starts listening to the connection requests.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_CONNECT_REQUEST event with a new rdma_cm_id identifier.
rdma_create_qp
Allocates a queue pair (QP) for the communication on the new rdma_cm_id identifier.
rdma_accept
Accepts the connection request.
rdma_ack_cm_event
Acknowledges the event.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_ESTABLISHED event.
rdma_ack_cm_event
Acknowledges the event.
ibv_post_send()
Performs the data transfer over the connection.
rdma_get_cm_event
Waits for the RDMA_CM_EVENT_DISCONNECTED event.
rdma_ack_cm_event
Acknowledges the event.
rdma_disconnect
Tears down the connection.
rdma_destroy_qp
Destroys the QP.
rdma_destroy_id
Releases the connected rdma_cm_id identifier.
rdma_destroy_id
Releases the listening rdma_cm_id identifier.
rdma_destroy_event_channel
Releases the event channel.