'\" te .\" This manual page is derived from the DAT/uDAPL 1.2 specification. .\" Portions Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved. .TH dat_ep_disconnect 3DAT "16 Jul 2004" "SunOS 5.11" "Direct Access Transport Library Functions" .SH NAME dat_ep_disconnect \- terminate a connection or a connection establishment .SH SYNOPSIS .LP .nf cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-ldat\fR [ \fIlibrary\fR\&.\|.\|. ] #include <\fBdat/udat.h\fR> DAT_RETURN dat_ep_disconnect ( IN DAT_EP_HANDLE ep_handle, IN DAT_CLOSE_FLAGS disconnect_flags ) .fi .SH PARAMETERS .sp .ne 2 .mk .na \fB\fIep_handle\fR\fR .ad .RS 20n .rt Handle for an instance of Endpoint. .RE .sp .ne 2 .mk .na \fB\fIdisconnect_flags\fR\fR .ad .RS 20n .rt Flags for disconnect. Flag values are as follows: .sp .ne 2 .mk .na \fB\fBDAT_CLOSE_ABRUPT_FLAG\fR\fR .ad .RS 27n .rt Abrupt close. This is the default value. .RE .sp .ne 2 .mk .na \fB\fBDAT_CLOSE_GRACEFUL_FLAG\fR\fR .ad .RS 27n .rt Graceful close. .RE .RE .SH DESCRIPTION .sp .LP The \fBdat_ep_disconnect()\fR 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. .sp .LP The \fIdisconnect_flags\fR 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. .sp .LP 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 \fIrecv_evd_handle\fR and and \fIrequest_evd_handle\fR of the Endpoint. .sp .LP 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 \fBDAT_EP_DISCONNECT_PENDING\fR state. .sp .LP The Consumer can call abrupt \fBdat_ep_disconnect()\fR when the local Endpoint is in the \fBDAT_EP_DISCONNECT_PENDING\fR state. This causes the Endpoint to transition into \fBDAT_EP_STATE_DISCONNECTED\fR without waiting for outstanding and in-progress request DTOs and RMR Binds to successfully complete. The graceful \fBdat_ep_disconnect()\fR call when the local Endpoint is in the \fBDAT_EP_DISCONNECT_PENDING\fR state has no effect. .sp .LP If the Endpoint is not in \fBDAT_EP_STATE_CONNECTED\fR, the semantic of the operation is the same for graceful or abrupt \fIdisconnect_flags\fR value. .sp .LP 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 \fBDAT_EP_DISCONNECT_PENDING\fR state. .sp .LP The successful completion of the disconnect is reported to the Consumer through a \fBDAT_CONNECTION_EVENT_DISCONNECTED\fR event on \fIconnect_evd_handle\fR of the Endpoint. The Endpoint is automatically transitioned into a \fBDAT_EP_STATE_DISCONNECTED\fR state upon successful asynchronous completion. If the same EVD is used for \fIconnect_evd_handle\fR and any \fIrecv_evd_handle\fR and request_evd_handle, all successful Completion events of in-progress DTOs precede the Disconnect Completion event. .sp .LP Disconnecting an unconnected Disconnected Endpoint is no-op. Disconnecting an Endpoint in \fBDAT_EP_STATE_UNCONNECTED\fR, \fBDAT_EP_STATE_RESERVED\fR, \fBDAT_EP_STATE_PASSIVE_CONNECTION_PENDING\fR, and \fBDAT_EP_STATE_TENTATIVE_CONNECTION_PENDING\fR is disallowed. .sp .LP Both abrupt and graceful disconnect of the Endpoint during connection establishment, \fBDAT_EP_STATE_ACTIVE_CONNECTION_PENDING\fR and \fBDAT_EP_STATE_COMPLETION_PENDING\fR, "aborts" the connection establishment and transitions the local Endpoint into \fBDAT_EP_STATE_DISCONNECTED\fR. That causes preposted Recv DTOs to be flushed to \fIrecv_evd_handle\fR. .SH RETURN VALUES .sp .ne 2 .mk .na \fB\fBDAT_SUCCESS\fR\fR .ad .RS 30n .rt The operation was successful. .RE .sp .ne 2 .mk .na \fB\fBDAT_INVALID_HANDLE\fR\fR .ad .RS 30n .rt The \fIep_handle\fR parameter is invalid. .RE .sp .ne 2 .mk .na \fB\fBDAT_INSUFFICIENT_RESOURCES\fR\fR .ad .RS 30n .rt The operation failed due to resource limitations. .RE .sp .ne 2 .mk .na \fB\fBDAT_INVALID_PARAMETER\fR\fR .ad .RS 30n .rt The \fIdisconnect_flags\fR parameter is invalid. .RE .sp .ne 2 .mk .na \fB\fBDAT_INVALID_STATE\fR\fR .ad .RS 30n .rt A parameter is in an invalid state. Endpoint is not in the valid state for disconnect. .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ Interface StabilityCommitted _ MT-Level Unsafe _ StandarduDAPL, 1.1, 1.2 .TE .SH SEE ALSO .sp .LP \fBlibdat\fR(3LIB), \fBattributes\fR(5)