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)