DAT_EP_DISCONNECT(3DAT) Direct Access Transport Library Functions
dat_ep_disconnect - terminate a connection or a connection
establishment
cc [ flag... ] file... -ldat [ library... ]
#include <dat/udat.h>
DAT_RETURN
dat_ep_disconnect (
IN DAT_EP_HANDLE ep_handle,
IN DAT_CLOSE_FLAGS disconnect_flags
)
ep_handle
Handle for an instance of Endpoint.
disconnect_flags
Flags for disconnect. Flag values are as follows:
DAT_CLOSE_ABRUPT_FLAG
Abrupt close. This is
the default value.
DAT_CLOSE_GRACEFUL_FLAG
Graceful close.
The dat_ep_disconnect() function requests a termination of a
connection or connection establishment. This operation is used by the
active/client or a passive/server side Consumer of the connection
model.
The disconnect_flags parameter allows Consumers to specify whether
they want graceful or abrupt disconnect. Upon disconnect, all
outstanding and in-progress DTOs and RMR Binds must be completed.
For abrupt disconnect, all outstanding DTOs and RMR Binds are
completed unsuccessfully, and in-progress DTOs and RMR Binds can be
completed successfully or unsuccessfully. If an in-progress DTO is
completed unsuccessfully, all follow on in-progress DTOs in the same
direction also must be completed unsuccessfully. This order is
presented to the Consumer through a DTO completion Event Stream of
the recv_evd_handle and request_evd_handle of the Endpoint.
For graceful disconnect, all outstanding and in-progress request DTOs
and RMR Binds must try to be completed successfully first, before
disconnect proceeds. During that time, the local Endpoint is in a
DAT_EP_DISCONNECT_PENDING state.
The Consumer can call abrupt dat_ep_disconnect() when the local
Endpoint is in the DAT_EP_DISCONNECT_PENDING state. This causes the
Endpoint to transition into DAT_EP_STATE_DISCONNECTED without waiting
for outstanding and in-progress request DTOs and RMR Binds to
successfully complete. The graceful dat_ep_disconnect() call when the
local Endpoint is in the DAT_EP_DISCONNECT_PENDING state has no
effect.
If the Endpoint is not in DAT_EP_STATE_CONNECTED, the semantic of the
operation is the same for graceful or abrupt disconnect_flags value.
No new Send, RDMA Read, and RDMA Write DTOs, or RMR Binds can be
posted to the Endpoint when the local Endpoint is in the
DAT_EP_DISCONNECT_PENDING state.
The successful completion of the disconnect is reported to the
Consumer through a DAT_CONNECTION_EVENT_DISCONNECTED event on
connect_evd_handle of the Endpoint. The Endpoint is automatically
transitioned into a DAT_EP_STATE_DISCONNECTED state upon successful
asynchronous completion. If the same EVD is used for
connect_evd_handle and any recv_evd_handle and request_evd_handle,
all successful Completion events of in-progress DTOs precede the
Disconnect Completion event.
Disconnecting an unconnected Disconnected Endpoint is no-op.
Disconnecting an Endpoint in DAT_EP_STATE_UNCONNECTED,
DAT_EP_STATE_RESERVED, DAT_EP_STATE_PASSIVE_CONNECTION_PENDING, and
DAT_EP_STATE_TENTATIVE_CONNECTION_PENDING is disallowed.
Both abrupt and graceful disconnect of the Endpoint during connection
establishment, DAT_EP_STATE_ACTIVE_CONNECTION_PENDING and
DAT_EP_STATE_COMPLETION_PENDING, "aborts" the connection
establishment and transitions the local Endpoint into
DAT_EP_STATE_DISCONNECTED. That causes preposted Recv DTOs to be
flushed to recv_evd_handle.
DAT_SUCCESS
The operation was successful.
DAT_INVALID_HANDLE
The ep_handle parameter is invalid.
DAT_INSUFFICIENT_RESOURCES
The operation failed due to resource
limitations.
DAT_INVALID_PARAMETER
The disconnect_flags parameter is
invalid.
DAT_INVALID_STATE
A parameter is in an invalid state.
Endpoint is not in the valid state for
disconnect.
See attributes(7) for descriptions of the following attributes:
+--------------------+---------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+---------------------------+
|Interface Stability | Standard: uDAPL, 1.1, 1.2 |
+--------------------+---------------------------+
|MT-Level | Unsafe |
+--------------------+---------------------------+
libdat(3LIB), attributes(7)
April 9, 2016 DAT_EP_DISCONNECT(3DAT)
NAME
dat_ep_disconnect - terminate a connection or a connection
establishment
SYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include <dat/udat.h>
DAT_RETURN
dat_ep_disconnect (
IN DAT_EP_HANDLE ep_handle,
IN DAT_CLOSE_FLAGS disconnect_flags
)
PARAMETERS
ep_handle
Handle for an instance of Endpoint.
disconnect_flags
Flags for disconnect. Flag values are as follows:
DAT_CLOSE_ABRUPT_FLAG
Abrupt close. This is
the default value.
DAT_CLOSE_GRACEFUL_FLAG
Graceful close.
DESCRIPTION
The dat_ep_disconnect() function requests a termination of a
connection or connection establishment. This operation is used by the
active/client or a passive/server side Consumer of the connection
model.
The disconnect_flags parameter allows Consumers to specify whether
they want graceful or abrupt disconnect. Upon disconnect, all
outstanding and in-progress DTOs and RMR Binds must be completed.
For abrupt disconnect, all outstanding DTOs and RMR Binds are
completed unsuccessfully, and in-progress DTOs and RMR Binds can be
completed successfully or unsuccessfully. If an in-progress DTO is
completed unsuccessfully, all follow on in-progress DTOs in the same
direction also must be completed unsuccessfully. This order is
presented to the Consumer through a DTO completion Event Stream of
the recv_evd_handle and request_evd_handle of the Endpoint.
For graceful disconnect, all outstanding and in-progress request DTOs
and RMR Binds must try to be completed successfully first, before
disconnect proceeds. During that time, the local Endpoint is in a
DAT_EP_DISCONNECT_PENDING state.
The Consumer can call abrupt dat_ep_disconnect() when the local
Endpoint is in the DAT_EP_DISCONNECT_PENDING state. This causes the
Endpoint to transition into DAT_EP_STATE_DISCONNECTED without waiting
for outstanding and in-progress request DTOs and RMR Binds to
successfully complete. The graceful dat_ep_disconnect() call when the
local Endpoint is in the DAT_EP_DISCONNECT_PENDING state has no
effect.
If the Endpoint is not in DAT_EP_STATE_CONNECTED, the semantic of the
operation is the same for graceful or abrupt disconnect_flags value.
No new Send, RDMA Read, and RDMA Write DTOs, or RMR Binds can be
posted to the Endpoint when the local Endpoint is in the
DAT_EP_DISCONNECT_PENDING state.
The successful completion of the disconnect is reported to the
Consumer through a DAT_CONNECTION_EVENT_DISCONNECTED event on
connect_evd_handle of the Endpoint. The Endpoint is automatically
transitioned into a DAT_EP_STATE_DISCONNECTED state upon successful
asynchronous completion. If the same EVD is used for
connect_evd_handle and any recv_evd_handle and request_evd_handle,
all successful Completion events of in-progress DTOs precede the
Disconnect Completion event.
Disconnecting an unconnected Disconnected Endpoint is no-op.
Disconnecting an Endpoint in DAT_EP_STATE_UNCONNECTED,
DAT_EP_STATE_RESERVED, DAT_EP_STATE_PASSIVE_CONNECTION_PENDING, and
DAT_EP_STATE_TENTATIVE_CONNECTION_PENDING is disallowed.
Both abrupt and graceful disconnect of the Endpoint during connection
establishment, DAT_EP_STATE_ACTIVE_CONNECTION_PENDING and
DAT_EP_STATE_COMPLETION_PENDING, "aborts" the connection
establishment and transitions the local Endpoint into
DAT_EP_STATE_DISCONNECTED. That causes preposted Recv DTOs to be
flushed to recv_evd_handle.
RETURN VALUES
DAT_SUCCESS
The operation was successful.
DAT_INVALID_HANDLE
The ep_handle parameter is invalid.
DAT_INSUFFICIENT_RESOURCES
The operation failed due to resource
limitations.
DAT_INVALID_PARAMETER
The disconnect_flags parameter is
invalid.
DAT_INVALID_STATE
A parameter is in an invalid state.
Endpoint is not in the valid state for
disconnect.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+---------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+---------------------------+
|Interface Stability | Standard: uDAPL, 1.1, 1.2 |
+--------------------+---------------------------+
|MT-Level | Unsafe |
+--------------------+---------------------------+
SEE ALSO
libdat(3LIB), attributes(7)
April 9, 2016 DAT_EP_DISCONNECT(3DAT)