Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   rdma_join_multicast_ex    ( 3 )

присоединяется к группе многоадресной рассылки с расширенными параметрами (Joins a multicast group with extended options.)

Имя (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.

Примечание (Note)

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)