.\" Automatically generated by Pandoc 2.0.6
.\"
.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[]
.fi
.SH DESCRIPTION
.PP
Used by SW to reset an errored \f[I]stream_id\f[] 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's
still operational (in RTS state), which means that the specific
\f[I]stream_id\f[] that caused the completion with error is in error
state.
.PP
Errors which are stream related will cause only that
\f[I]stream_id's\f[] work request to be flushed as they are handled in
order in the send queue.
Once all \f[I]stream_id\f[] WR's are flushed, application should reset
the errored \f[I]stream_id\f[] by calling mlx5dv_dci_stream_id_reset().
Work requested for other \f[I]stream_id's\f[] 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[] in error reaches the DCI QP'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[] from it's private context.
.SH ARGUMENTS
.TP
.B \f[I]qp\f[]
The ibv_qp object to issue the action on.
.RS
.RE
.TP
.B \f[I]stream_id\f[]
The DCI stream channel id that need to be reset.
.RS
.RE
.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>
