NAME
atm_connect - establish a connection with another ATM end-
point
SYNOPSIS
#include <fore_atm/fore_atm_user.h>
atm_connect(fd, dest, qos, sel, aal, dataflow)
int fd;
Atm_endpoint *dest;
Atm_qos *qos;
Atm_qos_sel *sel;
Aal_type aal;
Atm_dataflow dataflow;
DESCRIPTION
atm_connect() is used to establish a connection with a
remote ATM end-point. fd identifies the file descriptor
over which communication will be established.
dest specifies the destination ATM end-point address.
qos (Quality Of Service) argument specifies the caller's
requested target and minimum acceptable network bandwidth
requirements. The ATM network uses this information to allo-
cate network bandwidth during connection establishment.
The sel argument is returned to the caller and specifies the
bandwidth resources actually allocated for the connection.
The target bandwidth values may have been adjusted downward
by the network.
The aal argument specifies the ATM Adaptation Layer (AAL) to
be used for data exchange. Three AAL types are supported:
AAL 3/4, AAL 5, and a null AAL. The AAL 3/4 and AAL 5 types
allow the application to send and receive data with the ATM
device driver handling all segmentation of the data into ATM
cells and the reassembly of ATM cells back into application
data. The null AAL allows applications to exchange ATM
cells. Cells buffered for transmission and reception are
encoded as per FORE Systems' ATM Computer Interface cell
format (see the appropriate ATM Computer Interface User's
Manual for details).
The dataflow argument is used to specify simplex, duplex, or
multicast communication. When simplex communication is
selected the caller blocks until an ATM connection is esta-
blished to the destination. If a duplex connection is
requested the caller blocks until an ATM connection is esta-
blished in both directions. If a multicast connection is
specified the caller blocks until the destination has been
added to the unidirectional multicast connection tree rooted
at the sender. Subsequent calls to atm_connect() can be
used to add additional destinations. Applications must
agree on simplex, duplex, or multicast communication before-
hand.
See atm_client(4N) for usage of atm_connect().
RETURN VALUES
atm_connect() returns 0 on success. On failure, it returns
-1 and sets atm_errno to indicate the error. atm_error(4N)
can be used to print a text description of errors returned
by atm_connect().
ERRORS
DL_NOTINIT The network has not been initialized by
the ATM switch.
DL_OUTSTATE Connection already exists for the file
descriptor or file descriptor not bound.
DL_UNSUPPORTED An attempt was made to establish an AAL
NULL connection with an SBA-200 involved
(currently unsupported).
ECONNREFUSED Connection failed because the destina-
tion ATM end-point did not respond. Will
also fail if the minimum requested
bandwidth could not be allocated.
atm_connect() also can fail with errors returned from the
getmsg(2) and putmsg(2) system calls on the SunOS and IRIX
platforms.
On ULTRIX platforms, atm_connect() on a closed connection
may cause a SIGPIPE signal to be sent to the calling pro-
cess. Unless caught or ignored, this terminates the pro-
cess.
SEE ALSO
atm_intro(4N)