Event Channel Operations

Template: struct rdma_event_channel * rdma_create_event_channel (void)

Input Parameters:

void no arguments

Output Parameters:

none

Return Value:

A pointer to the created event channel, or NULL if the request fails. On failure, errno will be set to indicate the failure reason.

Description:

Opens an event channel used to report communication events. Asynchronous events are reported to users through event channels.

Warning

Event channels are used to direct all events on an rdma_cm_id. For many clients, a single event channel may be sufficient, however, when managing a large number of connections or cm_ids, users may find it useful to direct events for different cm_ids to different channels for processing.

All created event channels must be destroyed by calling rdma_destroy_event_channel. Users should call rdma_get_cm_event to retrieve events on an event channel.

Each event channel is mapped to a file descriptor. The associated file descriptor can be used and manipulated like any other fd to change its behavior. Users may make the fd non-blocking, poll or select the fd, etc.

See Also: rdma_cm, rdma_get_cm_event, rdma_destroy_event_channel

Template: void rdma_destroy_event_channel (struct rdma_event_channel *channel)

Input Parameters:

channel The communication channel to destroy.

Output Parameters:

none

Return Value:

none

Description: Close an event communication channel. Release all resources associated with an event channel and closes the associated file descriptor.

Warning

All rdma_cm_id's associated with the event channel must be destroyed, and all returned events must be acked before calling this function.

See Also: rdma_create_event_channel, rdma_get_cm_event, rdma_ack_cm_event

© Copyright 2023, NVIDIA. Last updated on May 23, 2023.