rdma_create_id(3) — Linux manual page
RDMA_CREATE_ID(3) Librdmacm Programmer's Manual RDMA_CREATE_ID(3)
NAME
rdma_create_id - Allocate a communication identifier.
SYNOPSIS
#include <rdma/rdma_cma.h>
int rdma_create_id (struct rdma_event_channel *channel, struct
rdma_cm_id **id, void *context, enum rdma_port_space ps);
ARGUMENTS
channel The communication channel that events associated with
the allocated rdma_cm_id will be reported on. This
may be NULL.
id A reference where the allocated communication
identifier will be returned.
context User specified context associated with the
rdma_cm_id.
ps RDMA port space.
DESCRIPTION
Creates an identifier that is used to track communication
information.
RETURN VALUE
Returns 0 on success, or -1 on error. If an error occurs, errno
will be set to indicate the failure reason.
NOTES
Rdma_cm_id's are conceptually equivalent to a socket for RDMA
communication. The difference is that RDMA communication
requires explicitly binding to a specified RDMA device before
communication can occur, and most operations are asynchronous in
nature. Asynchronous communication events on an rdma_cm_id are
reported through the associated event channel. If the channel
parameter is NULL, the rdma_cm_id will be placed into synchronous
operation. While operating synchronously, calls that result in
an event will block until the operation completes. The event
will be returned to the user through the rdma_cm_id structure,
and be available for access until another rdma_cm call is made.
Users must release the rdma_cm_id by calling rdma_destroy_id.
PORT SPACE
Details of the services provided by the different port spaces are
outlined below.
RDMA_PS_TCP
Provides reliable, connection-oriented QP communication.
Unlike TCP, the RDMA port space provides message, not
stream, based communication.
RDMA_PS_UDP
Provides unreliable, connectionless QP communication.
Supports both datagram and multicast communication.
RDMA_PS_IB
Provides for any IB services (UD, UC, RC, XRC, etc.).
SEE ALSO
rdma_cm(7), rdma_create_event_channel(3), rdma_destroy_id(3),
rdma_get_devices(3), rdma_bind_addr(3), rdma_resolve_addr(3),
rdma_connect(3), rdma_listen(3), rdma_set_option(3)
COLOPHON
This page is part of the rdma-core (RDMA Core Userspace Libraries
and Daemons) project. Information about the project can be found
at ⟨https://github.com/linux-rdma/rdma-core⟩. If you have a bug
report for this manual page, send it to
linux-rdma@vger.kernel.org. This page was obtained from the
project's upstream Git repository
⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2024-06-14. (At
that time, the date of the most recent commit that was found in
the repository was 2024-06-10.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org
librdmacm 2010-07-19 RDMA_CREATE_ID(3)
Pages that refer to this page: rdma_bind_addr(3), rdma_connect(3), rdma_dereg_mr(3), rdma_destroy_id(3), rdma_getaddrinfo(3), rdma_migrate_id(3), rdma_post_recv(3), rdma_post_recvv(3), rdma_reg_msgs(3), rdma_reg_read(3), rdma_reg_write(3), rdma_resolve_addr(3), rdma_set_option(3), rdma_cm(7)