Current File : //usr/share/man/man3dat/dat_ep_disconnect.3dat
'\" 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)