.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "mlx5dv_dci_stream_id_reset" "3" "" "" ""
.hy
.SH NAME
.PP
mlx5dv_dci_stream_id_reset - Reset stream_id of a given DCI QP
.SH SYNOPSIS
.IP
.nf
\f[C]
#include <infiniband/mlx5dv.h>

int mlx5dv_dci_stream_id_reset(struct ibv_qp *qp, uint16_t stream_id);
\f[R]
.fi
.SH DESCRIPTION
.PP
Used by SW to reset an errored \f[I]stream_id\f[R] in the HW DCI
context.
.PP
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\[cq]s still operational (in RTS state), which means that the specific
\f[I]stream_id\f[R] that caused the completion with error is in error
state.
.PP
Errors which are stream related will cause only that
\f[I]stream_id\[cq]s\f[R] work request to be flushed as they are handled
in order in the send queue.
Once all \f[I]stream_id\f[R] WR\[cq]s are flushed, application should
reset the errored \f[I]stream_id\f[R] by calling
mlx5dv_dci_stream_id_reset().
Work requested for other \f[I]stream_id\[cq]s\f[R] 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 \f[I]stream_id\f[R] in error reaches the DCI QP\[cq]s
`log_num_errored' streams defined by SW.
.PP
Application should use the `wr_id' in the ibv_wc to find the
\f[I]stream_id\f[R] from it\[cq]s private context.
.SH ARGUMENTS
.TP
\f[I]qp\f[R]
The ibv_qp object to issue the action on.
.TP
\f[I]stream_id\f[R]
The DCI stream channel id that need to be reset.
.SH RETURN VALUE
.PP
Returns 0 on success, or the value of errno on failure (which indicates
the failure reason).
.SH AUTHOR
.PP
Lior Nahmanson <liorna@nvidia.com>
