---
name: "rdma_create_event_channel"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/rdma_create_event_channel"
---

# rdma\_create\_event\_channel(3)

Open a channel used to report communication events.

## NAME

rdma\_create\_event\_channel - Open a channel used to report communication events.

## SYNOPSIS

**#include \<rdma/rdma\_cma.h\>**

**struct rdma\_event\_channel \* rdma\_create\_event\_channel** **(***void***);**

## ARGUMENTS

- void

  no arguments

## DESCRIPTION

Asynchronous events are reported to users through event channels.

## RETURN VALUE

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

## NOTES

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\_id's, users may find it useful to direct events for different cm\_id's 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(7)](/rdma_cm/7.md), [rdma\_get\_cm\_event(3)](/rdma_get_cm_event/3.md), [rdma\_destroy\_event\_channel(3)](/rdma_destroy_event_channel/3.md)
