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

# mlx5dv\_dci\_stream\_id\_reset(3)

Reset stream\_id of a given DCI QP

## NAME

mlx5dv\_dci\_stream\_id\_reset - Reset stream\_id of a given DCI QP

## SYNOPSIS

-

  ```
  #include <infiniband/mlx5dv.h>
  int mlx5dv_dci_stream_id_reset(struct ibv_qp *qp, uint16_t stream_id);
  ```

## DESCRIPTION

Used by SW to reset an errored *stream\_id* in the HW DCI context.

On work completion with error, the application should call ibv\_query\_qp() to check if the QP was moved to an error state, or it’s still operational (in RTS state), which means that the specific *stream\_id* that caused the completion with error is in error state.

Errors which are stream related will cause only that *stream\_id’s* work request to be flushed as they are handled in order in the send queue. Once all *stream\_id* WR’s are flushed, application should reset the errored *stream\_id* by calling mlx5dv\_dci\_stream\_id\_reset(). Work requested for other *stream\_id’s* will continue to be processed by the QP. The DCI QP will move to an error state and stop operating once the number of unique *stream\_id* in error reaches the DCI QP’s \`log\_num\_errored' streams defined by SW.

Application should use the \`wr\_id' in the ibv\_wc to find the *stream\_id* from it’s private context.

## ARGUMENTS

- *qp*

  The ibv\_qp object to issue the action on.

- *stream\_id*

  The DCI stream channel id that need to be reset.

## RETURN VALUE

Returns 0 on success, or the value of errno on failure (which indicates the failure reason).

## AUTHOR

Lior Nahmanson ⟨liorna@nvidia.com⟩\\c
