1RDMA_JOIN_MULTICAST_EX(3)Librdmacm Programmer's ManualRDMA_JOIN_MULTICAST_EX(3)
2
3
4
6 rdma_join_multicast_ex - Joins a multicast group with extended options.
7
9 #include <rdma/rdma_cma.h>
10
11 int rdma_join_multicast_ex (struct rdma_cm_id *id, struct
12 rdma_cm_join_mc_attr_ex *mc_join_attr, void *context);
13
15 id Communication identifier associated with the
16 request.
17
18 mc_join_attr Is an rdma_cm_join_mc_attr_ex struct, as defined in
19 <rdma/rdma_cma.h>.
20
21 context User-defined context associated with the join
22 request.
23
25 Joins a multicast group (MCG) with extended options. Currently sup‐
26 porting MC join with a specified join flag.
27
28 struct rdma_cm_join_mc_attr_ex {
29 uint32_t comp_mask; /* Bitwise OR between "rdma_cm_join_mc_attr_mask" enum */
30 uint32_t join_flags; /* Use a single flag from "rdma_cm_mc_join_flags" enum */
31 struct sockaddr *addr; /* Multicast address identifying the group to join */
32 };
33
34 The supported join flags are:
35
36 RDMA_MC_JOIN_FLAG_FULLMEMBER - Create multicast group, Send multicast
37 messages to MCG, Receive multicast messages from MCG.
38
39 RDMA_MC_JOIN_FLAG_SENDONLY_FULLMEMBER - Create multicast group, Send
40 multicast messages to MCG, Don't receive multicast messages from MCG
41 (send-only).
42
43 Initiating a MC join as "Send Only Full Member" on InfiniBand requires
44 SM support, otherwise joining will fail.
45
46 Initiating a MC join as "Send Only Full Member" on RoCEv2/ETH will not
47 send any IGMP messages unlike a Full Member MC join. When "Send Only
48 Full Member" is used the QP will not be attached to the MCG.
49
51 Returns 0 on success, or -1 on error. If an error occurs, errno will
52 be set to indicate the failure reason.
53
55 Before joining a multicast group, the rdma_cm_id must be bound to an
56 RDMA device by calling rdma_bind_addr or rdma_resolve_addr. Use of
57 rdma_resolve_addr requires the local routing tables to resolve the mul‐
58 ticast address to an RDMA device, unless a specific source address is
59 provided. The user must call rdma_leave_multicast to leave the multi‐
60 cast group and release any multicast resources. After the join opera‐
61 tion completes, if a QP is associated with the rdma_cm_id, it is auto‐
62 matically attached to the multicast group when the multicast event is
63 retrieved by the user. Otherwise, the user is responsible for calling
64 ibv_attach_mcast to bind the QP to the multicast group. The join con‐
65 text is returned to the user through the private_data field in the
66 rdma_cm_event.
67
69 rdma_join_multicast(3), rdma_leave_multicast(3), rdma_bind_addr(3),
70 rdma_resolve_addr(3), rdma_create_qp(3), rdma_get_cm_event(3)
71
73 Alex Vesker <valex@mellanox.com>
74
75
76
77librdmacm 2017-11-17 RDMA_JOIN_MULTICAST_EX(3)