.\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md .TH "RDMA_JOIN_MULTICAST" 3 "2008-01-02" "librdmacm" "Librdmacm Programmer's Manual" librdmacm .SH NAME rdma_join_multicast \- Joins a multicast group. .SH SYNOPSIS .B "#include " .P .B "int" rdma_join_multicast .BI "(struct rdma_cm_id *" id "," .BI "struct sockaddr *" addr "," .BI "void *" context ");" .SH ARGUMENTS .IP "id" 12 Communication identifier associated with the request. .IP "addr" 12 Multicast address identifying the group to join. .IP "context" 12 User-defined context associated with the join request. .SH "DESCRIPTION" Joins a multicast group and attaches an associated QP to the group. .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" Before joining a multicast group, the rdma_cm_id must be bound to an RDMA device by calling rdma_bind_addr or rdma_resolve_addr. Use of rdma_resolve_addr requires the local routing tables to resolve the multicast address to an RDMA device, unless a specific source address is provided. The user must call rdma_leave_multicast to leave the multicast group and release any multicast resources. After the join operation completes, if a QP is associated with the rdma_cm_id, it is automatically attached to the multicast group when the multicast event is retrieved by the user. Otherwise, the user is responsible for calling ibv_attach_mcast to bind the QP to the multicast group. The join context is returned to the user through the private_data field in the rdma_cm_event. .SH "SEE ALSO" rdma_leave_multicast(3), rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_qp(3), rdma_get_cm_event(3)