---
name: "ibv_attach_mcast"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/ibv_attach_mcast"
---

# ibv\_attach\_mcast(3)

attach and detach a queue pair (QPs) to/from a multicast group

## NAME

ibv\_attach\_mcast, ibv\_detach\_mcast - attach and detach a queue pair (QPs) to/from a multicast group

## SYNOPSIS

```
#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)](/ibv_create_qp/3.md)

## AUTHORS

- Dotan Barak \<dotanba@gmail.com\>
