rdma_join_multicast - Joins a multicast group.
#include <rdma/rdma_cma.h>
int rdma_join_multicast (struct rdma_cm_id
*id, struct sockaddr *addr, void
*context);
- id
- Communication identifier associated with the request.
- addr
- Multicast address identifying the group to join.
- context
- User-defined context associated with the join request.
Joins a multicast group and attaches an associated QP to the group.
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to
indicate the failure reason.
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.
rdma_leave_multicast(3), rdma_bind_addr(3), rdma_resolve_addr(3),
rdma_create_qp(3), rdma_get_cm_event(3)