]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/ofed/librdmacm/man/rdma_create_id.3
Merge ^/vendor/llvm-project/release-10.x up to its last change (upstream
[FreeBSD/FreeBSD.git] / contrib / ofed / librdmacm / man / rdma_create_id.3
1 .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
2 .TH "RDMA_CREATE_ID" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm
3 .SH NAME
4 rdma_create_id \- Allocate a communication identifier.
5 .SH SYNOPSIS
6 .B "#include <rdma/rdma_cma.h>"
7 .P
8 .B "int" rdma_create_id
9 .BI "(struct rdma_event_channel *" channel ","
10 .BI "struct rdma_cm_id **" id ","
11 .BI "void *" context ","
12 .BI "enum rdma_port_space " ps ");"
13 .SH ARGUMENTS
14 .IP "channel" 12
15 The communication channel that events associated with the
16 allocated rdma_cm_id will be reported on.  This may be NULL.
17 .IP "id" 12
18 A reference where the allocated communication identifier will be
19 returned.
20 .IP "context" 12
21 User specified context associated with the rdma_cm_id.
22 .IP "ps" 12
23 RDMA port space.
24 .SH "DESCRIPTION"
25 Creates an identifier that is used to track communication information.
26 .SH "RETURN VALUE"
27 Returns 0 on success, or -1 on error.  If an error occurs, errno will be
28 set to indicate the failure reason.
29 .SH "NOTES"
30 Rdma_cm_id's are conceptually equivalent to a socket for RDMA
31 communication.  The difference is that RDMA communication requires
32 explicitly binding to a specified RDMA device before communication
33 can occur, and most operations are asynchronous in nature.  Asynchronous
34 communication events on an rdma_cm_id are reported through the associated
35 event channel.  If the channel parameter is NULL, the rdma_cm_id will
36 be placed into synchronous operation.  While operating synchronously,
37 calls that result in an event will block until the operation completes.
38 The event will be returned to the user through the rdma_cm_id structure,
39 and be available for access until another rdma_cm call is made.
40 .P
41 Users must release the rdma_cm_id by calling rdma_destroy_id.
42 .SH "PORT SPACE"
43 Details of the services provided by the different port spaces are outlined
44 below.
45 .IP RDMA_PS_TCP
46 Provides reliable, connection-oriented QP communication.  Unlike TCP, the RDMA
47 port space provides message, not stream, based communication.
48 .IP RDMA_PS_UDP
49 Provides unreliable, connectionless QP communication.  Supports both datagram
50 and multicast communication.
51 .IP RDMA_PS_IB
52 Provides for any IB services (UD, UC, RC, XRC, etc.).
53 .SH "SEE ALSO"
54 rdma_cm(7), rdma_create_event_channel(3), rdma_destroy_id(3), rdma_get_devices(3),
55 rdma_bind_addr(3), rdma_resolve_addr(3), rdma_connect(3), rdma_listen(3),
56 rdma_set_option(3)