---
name: "ibv_set_ece"
section: "3"
platform: "linux"
package: "rdma-core"
version: "65.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ibv_set_ece"
---

# ibv\_set\_ece(3)

set ECE options and use them for QP configuration stage.

## NAME

ibv\_set\_ece - set ECE options and use them for QP configuration stage.

## SYNOPSIS

-

  ```
  #include <infiniband/verbs.h>
  int ibv_set_ece(struct ibv_qp *qp, struct ibv_ece *ece);
  ```

## DESCRIPTION

**ibv\_set\_ece()** set ECE options and use them for QP configuration stage.

The desired ECE options will be used during various modify QP stages based on supported options in relevant QP state.

## ARGUMENTS

- *qp*

  The queue pair (QP) associated with the ECE options.

- \## *ece* Argument

  The requested ECE values. This is IN/OUT field, the accepted options will be returned in this field.

-

  ```
  struct ibv_ece {
      uint32_t vendor_id;
      uint32_t options;
      uint32_t comp_mask;
  };
  ```

- *vendor\_id*

  Unique identifier of the provider vendor on the network. The providers will set IEEE OUI here to distinguish itself in non-homogenius network.

- *options*

  Provider specific attributes which are supported or needed to be enabled by ECE users.

- *comp\_mask*

  Bitmask specifying what fields in the structure are valid.

## RETURN VALUE

**ibv\_set\_ece()** returns 0 when the call was successful, or the errno value which indicates the failure reason.

- *EOPNOTSUPP*

  libibverbs or provider driver doesn’t support the ibv\_set\_ece() verb.

- *EINVAL*

  In one of the following: o The QP is invalid. o The ECE options are invalid.

## SEE ALSO

[**ibv\_query\_ece**(3)](/ibv_query_ece/3.md),

## AUTHOR

Leon Romanovsky ⟨leonro@mellanox.com⟩\\c
