.\" Automatically generated by Pandoc 1.16.0.2
.\"
.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\[aq]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\[aq]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\[aq]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\[aq]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\[aq]s
\[aq]log_num_errored\[aq] streams defined by SW.
.PP
Application should use the \[aq]wr_id\[aq] 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>
