---
name: "fi_control"
section: "3"
platform: "linux"
package: "libfabric"
version: "2.7.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fi_control"
---

# fi\_control(3)

Perform an operation on a fabric resource.

## NAME

fi\_control - Perform an operation on a fabric resource.

## SYNOPSIS

-

  ```
  #include <rdma/fabric.h>
  int fi_control(struct fid *fid, int command, void *arg);
  int fi_alias(struct fid *fid, struct fid **alias_fid, uint64_t flags);
  int fi_get_val(struct fid *fid, int name, void *val);
  int fi_set_val(struct fid *fid, int name, void *val);
  ```

## ARGUMENTS

- *fid*

  Fabric resource

- *command*

  Operation to perform

- *arg*

  Optional argument to the command

## DESCRIPTION

The fi\_control operation is used to perform one or more operations on a fabric resource. Conceptually, fi\_control is similar to the POSIX fcntl routine. The exact behavior of using fi\_control depends on the fabric resource being operated on, the specified command, and any provided arguments for the command. For specific details, see the fabric resource specific help pages noted below.

fi\_alias, fi\_get\_val, and fi\_set\_val are wrappers for fi\_control with commands FI\_ALIAS, FI\_GET\_VAL, FI\_SET\_VAL, respectively. fi\_alias creates an alias of the specified fabric resource. fi\_get\_val reads the value of the named parameter associated with the fabric resource, while fi\_set\_val updates that value. Available parameter names depend on the type of the fabric resource and the provider in use. Providers may define provider specific names in the provider extension header files (’rdma/fi\_ext\_\*.h’). Please refer to the provider man pages for details.

## SEE ALSO

[fi\_endpoint(3)](/fi_endpoint/3.md), [fi\_cm(3)](/fi_cm/3.md), [fi\_cntr(3)](/fi_cntr/3.md), [fi\_cq(3)](/fi_cq/3.md), [fi\_eq(3)](/fi_eq/3.md),

## AUTHORS

OpenFabrics.
