| .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md |
| .TH "RDMA_CREATE_EP" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm |
| .SH NAME |
| rdma_create_ep \- Allocate a communication identifier and optional QP. |
| .SH SYNOPSIS |
| .B "#include <rdma/rdma_cma.h>" |
| .P |
| .B "int" rdma_create_ep |
| .BI "(struct rdma_cm_id **" id "," |
| .BI "struct rdma_addrinfo *" res "," |
| .BI "struct ibv_pd *" pd "," |
| .BI "struct ibv_qp_init_attr *" qp_init_attr ");" |
| .SH ARGUMENTS |
| .IP "id" 12 |
| A reference where the allocated communication identifier will be |
| returned. |
| .IP "res" 12 |
| Address information associated with the rdma_cm_id returned from |
| rdma_getaddrinfo. |
| .IP "pd" 12 |
| Optional protection domain if a QP is associated with the rdma_cm_id. |
| .IP "qp_init_attr" 12 |
| Optional initial QP attributes. |
| .SH "DESCRIPTION" |
| Creates an identifier that is used to track communication information. |
| .SH "RETURN VALUE" |
| Returns 0 on success, or -1 on error. If an error occurs, errno will be |
| set to indicate the failure reason. |
| .SH "NOTES" |
| After resolving address information using rdma_getaddrinfo, a user |
| may use this call to allocate an rdma_cm_id based on the results. |
| .P |
| If the rdma_cm_id will be used on the active side of a connection, |
| meaning that res->ai_flag does not have RAI_PASSIVE set, rdma_create_ep |
| will automatically create a QP on the rdma_cm_id if qp_init_attr is |
| not NULL. The QP will be associated with the specified protection |
| domain, if provided, or a default protection domain if not. Users |
| should see rdma_create_qp for details on the use of the pd and |
| qp_init_attr parameters. After calling rdma_create_ep, the returned |
| rdma_cm_id may be connected by calling rdma_connect. The active side |
| calls rdma_resolve_addr and rdma_resolve_route are not necessary. |
| .P |
| If the rdma_cm_id will be used on the passive side of a connection, |
| indicated by having res->ai_flag RAI_PASSIVE set, this call will save |
| the provided pd and qp_init_attr parameters. When a new connection |
| request is retrieved by calling rdma_get_request, the rdma_cm_id |
| associated with the new connection will automatically be associated |
| with a QP using the pd and qp_init_attr parameters. After calling |
| rdma_create_ep, the returned rdma_cm_id may be placed into a listening |
| state by immediately calling rdma_listen. The passive side call |
| rdma_bind_addr is not necessary. Connection requests may then be |
| retrieved by calling rdma_get_request. |
| .P |
| The newly created rdma_cm_id will be set to use synchronous operation. |
| Users that wish asynchronous operation must migrate the rdma_cm_id |
| to a user created event channel using rdma_migrate_id. |
| .P |
| Users must release the created rdma_cm_id by calling rdma_destroy_ep. |
| .SH "SEE ALSO" |
| rdma_cm(7), rdma_getaddrinfo(3), rdma_create_event_channel(3), |
| rdma_connect(3), rdma_listen(3), rdma_destroy_ep(3), rdma_migrate_id(3) |