rdma_join_multicast — Joins a multicast group.

Synopsis

#include <rdma/rdma_cma.h>

int rdma_join_multicast (struct rdma_cm_id *id, struct sockaddr *addr, void *context);

Arguments

id

Communication identifier associated with the request.

addr

Multicast address identifying the group to join.

context

User-defined context associated with the join request.

Description

Joins a multicast group and attaches an associated QP to the group.

Return Value

Returns 0 on success, or -1 on error.  If an error occurs, errno will be set to indicate the failure reason.

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.

See Also

rdma_leave_multicast(3), rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_qp(3), rdma_get_cm_event(3)

Referenced By

rdma_cm(7), rdma_get_cm_event(3), rdma_join_multicast_ex(3), rdma_leave_multicast(3).

2008-01-02 Librdmacm Programmer's Manual