---
name: "ibv_attach_mcast"
section: "3"
platform: "linux"
package: "rdma-core"
version: "65.0-1"
release: "Arch Linux 2026-11-01"
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)

## AUTHOR

Dotan Barak ⟨dotanba@gmail.com⟩\\c
