--- date: 2006-10-31 footer: libibverbs header: "Libibverbs Programmer's Manual" layout: page license: 'Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md' section: 3 title: IBV_ATTACH_MCAST --- # NAME ibv_attach_mcast, ibv_detach_mcast - attach and detach a queue pair (QPs) to/from a multicast group # SYNOPSIS ```c #include int ibv_attach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid); int ibv_detach_mcast(struct ibv_qp *qp, const union ibv_gid *gid, uint16_t lid); ``` # DESCRIPTION **ibv_attach_mcast()** attaches the QP *qp* to the multicast group having MGID *gid* and MLID *lid*. **ibv_detach_mcast()** detaches the QP *qp* to the multicast group having MGID *gid* and MLID *lid*. # RETURN VALUE **ibv_attach_mcast()** and **ibv_detach_mcast()** returns 0 on success, or the value of errno on failure (which indicates the failure reason). # NOTES Only QPs of Transport Service Type **IBV_QPT_UD** may be attached to multicast groups. If a QP is attached to the same multicast group multiple times, the QP will still receive a single copy of a multicast message. In order to receive multicast messages, a join request for the multicast group must be sent to the subnet administrator (SA), so that the fabric's multicast routing is configured to deliver messages to the local port. # SEE ALSO **ibv_create_qp**(3) # AUTHOR Dotan Barak