Man page - rdma_join_multicast_ex(3)
Packages contas this manual
- rdma_connect(3)
- rdma_resolve_addr(3)
- rdma_get_recv_comp(3)
- rdma_create_qp(3)
- rdma_bind_addr(3)
- rdma_create_srq(3)
- rdma_leave_multicast(3)
- rdma_establish(3)
- rdma_freeaddrinfo(3)
- rdma_reg_msgs(3)
- rdma_get_cm_event(3)
- rdma_post_readv(3)
- rdma_event_str(3)
- rdma_getaddrinfo(3)
- rdma_get_src_port(3)
- rdma_destroy_ep(3)
- rdma_notify(3)
- rdma_post_read(3)
- rdma_disconnect(3)
- rdma_destroy_srq(3)
- rdma_post_ud_send(3)
- rdma_reject(3)
- rdma_migrate_id(3)
- rdma_cm(7)
- rdma_post_recvv(3)
- rdma_get_local_addr(3)
- rdma_get_send_comp(3)
- rdma_accept(3)
- rdma_destroy_id(3)
- rdma_destroy_qp(3)
- rdma_create_id(3)
- rdma_reg_write(3)
- rdma_create_event_channel(3)
- rdma_get_devices(3)
- rdma_listen(3)
- rsocket(7)
- rdma_join_multicast(3)
- rdma_resolve_route(3)
- rdma_create_ep(3)
- rdma_post_writev(3)
- rdma_init_qp_attr(3)
- rdma_get_remote_ece(3)
- rdma_set_option(3)
- rdma_get_request(3)
- rdma_post_write(3)
- rdma_post_sendv(3)
- rdma_post_recv(3)
- rdma_get_dst_port(3)
- rdma_destroy_event_channel(3)
- rdma_dereg_mr(3)
- rdma_post_send(3)
- rdma_ack_cm_event(3)
- rdma_get_peer_addr(3)
- rdma_set_local_ece(3)
- rdma_free_devices(3)
- rdma_join_multicast_ex(3)
- rdma_reg_read(3)
apt-get install librdmacm-dev
Manual
| RDMA_JOIN_MULTICAST_EX(3) | Librdmacm Programmer's Manual | RDMA_JOIN_MULTICAST_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
| 2017-11-17 | librdmacm |