@@ -412,11 +412,17 @@ typedef enum {
412412 * @brief Flags used by @ref uct_ep_invalidate.
413413 */
414414typedef enum {
415+ /** Move the endpoint QP to the error state. */
416+ UCT_EP_INVALIDATE_FLAG_MODIFY_QP_TO_ERR = UCS_BIT (0 ),
417+
415418 /**
416- * Do not complete outstanding operations when the endpoint transitions to
417- * the error state. The caller is responsible for completing them.
419+ * Suppress completion of outstanding operations by the normal endpoint
420+ * error path. The caller transfers outstanding-operation ownership to an
421+ * external provider and is responsible for completing them. This state
422+ * remains active until endpoint cancellation or destruction. This flag
423+ * does not modify QP state.
418424 */
419- UCT_EP_INVALIDATE_FLAG_SUPPRESS_COMPLETIONS = UCS_BIT (0 )
425+ UCT_EP_INVALIDATE_FLAG_SUPPRESS_COMPLETIONS = UCS_BIT (1 )
420426} uct_ep_invalidate_flags_t ;
421427
422428
@@ -1372,10 +1378,11 @@ ucs_status_t uct_ep_query(uct_ep_h ep, uct_ep_attr_t *ep_attr);
13721378 * @ingroup UCT_RESOURCE
13731379 * @brief Invalidate the endpoint.
13741380 *
1375- * This routine invalidates the endpoint and moves it to the error state.
1376- * All the incomplete and subsequent operations on the endpoint will be
1377- * completed with error, unless
1378- * @ref UCT_EP_INVALIDATE_FLAG_SUPPRESS_COMPLETIONS is specified.
1381+ * This routine invalidates the endpoint according to the requested flags.
1382+ * @ref UCT_EP_INVALIDATE_FLAG_MODIFY_QP_TO_ERR moves a QP-based endpoint to
1383+ * the error state. Incomplete operations are completed with error unless
1384+ * @ref UCT_EP_INVALIDATE_FLAG_SUPPRESS_COMPLETIONS transfers their ownership
1385+ * to the caller.
13791386 *
13801387 * @param [in] ep Endpoint to invalidate.
13811388 * @param [in] params Operation parameters, see @ref
@@ -1893,8 +1900,7 @@ typedef void (*uct_ep_outstanding_purge_callback_t)(
18931900typedef enum {
18941901 UCT_EP_OUTSTANDING_FIELD_RX_TOKEN = UCS_BIT (0 ),
18951902 UCT_EP_OUTSTANDING_FIELD_CB = UCS_BIT (1 ),
1896- UCT_EP_OUTSTANDING_FIELD_ARG = UCS_BIT (2 ),
1897- UCT_EP_OUTSTANDING_FIELD_STATUS = UCS_BIT (3 )
1903+ UCT_EP_OUTSTANDING_FIELD_ARG = UCS_BIT (2 )
18981904} uct_ep_outstanding_purge_field_t ;
18991905
19001906
@@ -1922,20 +1928,18 @@ typedef struct {
19221928 * Valid when @ref UCT_EP_OUTSTANDING_FIELD_ARG is set.
19231929 */
19241930 void * arg ;
1925-
1926- /** Completion status for purging all outstanding operations. */
1927- ucs_status_t status ;
19281931} uct_ep_outstanding_purge_params_t ;
19291932
19301933
19311934/**
19321935 * @ingroup UCT_RESOURCE
19331936 * @brief Purge outstanding (undelivered) operations from an endpoint.
19341937 *
1935- * If only @ref UCT_EP_OUTSTANDING_FIELD_STATUS is specified, all outstanding
1936- * operations are completed with the supplied error status. Otherwise,
1937- * @ref uct_ep_outstanding_purge_params_t::cb is invoked once for each
1938- * undelivered outstanding operation, in the original endpoint posting order.
1938+ * The transport delegates outstanding-operation classification to its
1939+ * external provider. The provider invokes @ref
1940+ * uct_ep_outstanding_purge_params_t::cb once for each undelivered operation,
1941+ * in the original endpoint posting order. No transport-local status purge is
1942+ * provided by this API.
19391943 */
19401944ucs_status_t
19411945uct_ep_outstanding_purge (uct_ep_h ep ,
0 commit comments