blob: 42fb738fbc9d86208423976eaacdebd0ebd047a2 [file] [log] [blame] [view]
---
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 <infiniband/verbs.h>
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 <dotanba@gmail.com>