---
name: "ibv_open_xrcd"
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_open_xrcd"
---

# ibv\_open\_xrcd(3)

open or close an XRC protection domain (XRCDs)

## NAME

ibv\_open\_xrcd, ibv\_close\_xrcd - open or close an XRC protection domain (XRCDs)

## SYNOPSIS

```
#include <infiniband/verbs.h>

struct ibv_xrcd *ibv_open_xrcd(struct ibv_context *context,
                               struct ibv_xrcd_init_attr *xrcd_init_attr);

int ibv_close_xrcd(struct ibv_xrcd *xrcd);
```

## DESCRIPTION

**ibv\_open\_xrcd()** open an XRC domain for the RDMA device context *context* *xrcd\_init\_attr* is an ibv\_xrcd\_init\_attr struct, as defined in \<infiniband/verbs.h\>.

```
struct ibv_xrcd_init_attr {
uint32_t         comp_mask;  /* Identifies valid fields */
int              fd;
int              oflag;
```

*fd* is the file descriptor to associate with the XRCD. *oflag* describes the desired creation attributes.  It is a bitwise OR of zero or more of the following flags:

- **O\_CREAT**

  Indicates that an XRCD should be created and associated with the inode referenced by the given fd.  If the XRCD exists, this flag has no effect except as noted under **O\_EXCL** below.

- **O\_EXCL**

  If **O\_EXCL** and **O\_CREAT** are set, open will fail if an XRCD associated with the inode exists.

If *fd* equals -1, no inode is associated with the XRCD. To indicate that XRCD should be created, use *oflag* = **O\_CREAT.**

**ibv\_close\_xrcd()** closes the XRCD *xrcd.* If this is the last reference, the XRCD will be destroyed.

## RETURN VALUE

**ibv\_open\_xrcd()** returns a pointer to the opened XRCD, or NULL if the request fails.

**ibv\_close\_xrcd()** returns 0 on success, or the value of errno on failure (which indicates the failure reason).

## NOTES

**ibv\_close\_xrcd()** may fail if any other resource is still associated with the XRCD being closed.

## SEE ALSO

[**ibv\_create\_srq\_ex**(3)](/ibv_create_srq_ex/3.md), [**ibv\_create\_qp\_ex**(3)](/ibv_create_qp_ex/3.md),

## AUTHORS

- Sean Hefty \<sean.hefty@intel.com\>
