rdma_join_multicast_ex(3) — Linux manual page
RDMA_JO...CAST_EX(3) Librdmacm Programmer's Manual RDMA_JO...CAST_EX(3)
NAME
rdma_join_multicast_ex - Joins a multicast group with extended
options.
SYNOPSIS
#include <rdma/rdma_cma.h>
int rdma_join_multicast_ex (struct rdma_cm_id *id, struct
rdma_cm_join_mc_attr_ex *mc_join_attr, void *context);
ARGUMENTS
id Communication identifier associated with the
request.
mc_join_attr Is an rdma_cm_join_mc_attr_ex struct, as
defined in <rdma/rdma_cma.h>.
context User-defined context associated with the join
request.
DESCRIPTION
Joins a multicast group (MCG) with extended options. Currently
supporting MC join with a specified join flag.
struct rdma_cm_join_mc_attr_ex {
uint32_t comp_mask; /* Bitwise OR between "rdma_cm_join_mc_attr_mask" enum */
uint32_t join_flags; /* Use a single flag from "rdma_cm_mc_join_flags" enum */
struct sockaddr *addr; /* Multicast address identifying the group to join */
};
The supported join flags are:
RDMA_MC_JOIN_FLAG_FULLMEMBER - Create multicast group, Send
multicast messages to MCG, Receive multicast messages from MCG.
RDMA_MC_JOIN_FLAG_SENDONLY_FULLMEMBER - Create multicast group,
Send multicast messages to MCG, Don't receive multicast messages
from MCG (send-only).
Initiating a MC join as "Send Only Full Member" on InfiniBand
requires SM support, otherwise joining will fail.
Initiating a MC join as "Send Only Full Member" on RoCEv2/ETH
will not send any IGMP messages unlike a Full Member MC join.
When "Send Only Full Member" is used the QP will not be attached
to the MCG.
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_join_multicast(3), rdma_leave_multicast(3),
rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_qp(3),
rdma_get_cm_event(3)
AUTHORS
Alex Vesker <valex@mellanox.com>
COLOPHON
This page is part of the rdma-core (RDMA Core Userspace Libraries
and Daemons) project. Information about the project can be found
at ⟨https://github.com/linux-rdma/rdma-core⟩. If you have a bug
report for this manual page, send it to
linux-rdma@vger.kernel.org. This page was obtained from the
project's upstream Git repository
⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2024-06-14. (At
that time, the date of the most recent commit that was found in
the repository was 2024-06-10.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org