MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Networking Services Library Functions                topen(3NSL)



NAME
     topen - establish a transport endpoint

SYNOPSIS
     #include 
     #include 




     int topen(const char *name, int oflag, struct tinfo *info);


DESCRIPTION
     This routine is part of the  XTI  interfaces  which  evolved
     from the TLI interfaces. XTI represents the future evolution
     of these interfaces. However, TLI interfaces  are  supported
     for  compatibility.  When  using  a TLI routine that has the
     same name as an XTI routine, the  tiuser.h header file  must
     be  used.   Refer  to  the   TLI COMPATIBILITY section for a
     description of differences between the two interfaces.


     The topen() function must be called as the  first  step  in
     the  initialization  of  a transport endpoint. This function
     establishes a transport endpoint by  supplying  a  transport
     provider  identifier  that  indicates a particular transport
     provider, that is, transport protocol, and returning a  file
     descriptor that identifies that endpoint.


     The argument name points to a transport provider  identifier
     and  oflag  identifies  any  open  flags, as in open(2). The
     argument oflag is constructed from  ORDWR  optionally  bit-
     wise  inclusive-OR'ed  with   ONONBLOCK.  These  flags  are
     defined  by  the  header  .  The  file   descriptor
     returned  by  topen()  will be used by all subsequent func-
     tions to identify the particular local transport endpoint.


     This function also returns various  default  characteristics
     of  the  underlying  transport protocol by setting fields in
     the tinfo structure. This argument points to a tinfo which
     contains the following members:

       tscalart addr;        /* max size of the transport protocol address */
       tscalart options;     /* max number of bytes of  */
                                    /* protocol-specific options  */
       tscalart tsdu;        /* max size of a transport service data  */
                                    /* unit (TSDU)  */
       tscalart etsdu;       /* max size of an expedited transport  */
                                    /* service data unit (ETSDU)  */



SunOS 5.11           Last change: 7 May 1998                    1






Networking Services Library Functions                topen(3NSL)



       tscalart connect;     /* max amount of data allowed on  */
                               /* connection establishment functions  */
       tscalart discon;      /* max amount of data allowed on  */
                               /* tsnddis() and trcvdis() functions  */
       tscalart servtype;    /* service type supported by the  */
                                    /* transport provider  */
       tscalart flags;       /* other info about the transport provider  */



     The values of the fields have the following meanings:

     addr        A value greater than zero (TNUL) indicates the
                 maximum size of a transport protocol address and
                 a value of -2  (TINVALID)  specifies  that  the
                 transport  provider does not provide user access
                 to transport protocol addresses.


     options     A value greater than zero (TNUL) indicates the
                 maximum  number  of  bytes  of protocol-specific
                 options supported by the provider, and  a  value
                 of  -2  (TINVALID) specifies that the transport
                 provider does not support user-settable options.


     tsdu        A value greater than zero (TNUL specifies  the
                 maximum  size  of  a transport service data unit
                 (TSDU); a value of zero (TNUL) specifies  that
                 the transport provider does not support the con-
                 cept of TSDU, although it does support the send-
                 ing  of a data stream with no logical boundaries
                 preserved across a connection;  a  value  of  -1
                 (TINFINITE) specifies that there is no limit to
                 the  size  of  a  TSDU;  and  a  value   of   -2
                 (TINVALID)  specifies that the transfer of nor-
                 mal data is not supported by the transport  pro-
                 vider.


     etsdu       A value greater than zero (TNUL) specifies the
                 maximum  size  of an expedited transport service
                 data unit (ETSDU);  a  value  of  zero  (TNUL)
                 specifies  that  the transport provider does not
                 support the concept of ETSDU, although  it  does
                 support  the sending of an expedited data stream
                 with no logical boundaries  preserved  across  a
                 connection;  a  value of -1 (TINFINITE)  speci-
                 fies that there is no limit on the  size  of  an
                 ETSDU;  and  a value of -2 (TINVALID) specifies
                 that the transfer of expedited data is not  sup-
                 ported  by the transport provider. Note that the



SunOS 5.11           Last change: 7 May 1998                    2






Networking Services Library Functions                topen(3NSL)



                 semantics of expedited data may  be  quite  dif-
                 ferent for different transport providers.


     connect     A value greater than zero (TNUL) specifies the
                 maximum  amount  of  data that may be associated
                 with connection establishment functions,  and  a
                 value of -2 (TINVALID) specifies that the tran-
                 sport provider does not allow data  to  be  sent
                 with connection establishment functions.


     discon      If the  TORDRELDATA bit in flags  is  clear,  a
                 value  greater  than zero (TNUL) specifies the
                 maximum amount of data that  may  be  associated
                 with the tsnddis(3NSL) and trcvdis(3NSL) func-
                 tions, and a value of -2  (TINVALID)  specifies
                 that  the transport provider does not allow data
                 to be sent with the abortive release  functions.
                 If  the   TORDRELDATA  bit  is  set in flags, a
                 value greater than zero (TNUL)  specifies  the
                 maximum  number of octets that may be associated
                 with   the    tsndreldata(),    trcvreldata(),
                 tsnddis(3NSL) and  trcvdis(3NSL) functions.


     servtype    This field specifies the service type  supported
                 by the transport provider, as described below.


     flags       This is a bit field used to specify other infor-
                 mation  about  the  communications provider.  If
                 the  TORDRELDATA bit is set, the communications
                 provider  supports  user data to be sent with an
                 orderly release. If the  TSENDZERO bit  is  set
                 in  flags,  this  indicates the underlying tran-
                 sport provider supports  the  sending  of  zero-
                 length TSDUs.



     If a transport user is concerned with protocol independence,
     the  above  sizes may be accessed to determine how large the
     buffers must be to hold each piece of information.  Alterna-
     tively,  the  talloc(3NSL) function may be used to allocate
     these buffers. An error will  result  if  a  transport  user
     exceeds the allowed data size on any function.


     The servtype field of info specifies one  of  the  following
     values on return:




SunOS 5.11           Last change: 7 May 1998                    3






Networking Services Library Functions                topen(3NSL)



     TCOTS         The    transport    provider    supports    a
                    connection-mode  service but does not support
                    the optional orderly release facility.


     TCOTSORD     The    transport    provider    supports    a
                    connection-mode  service  with  the  optional
                    orderly release facility.


     TCLTS         The    transport    provider    supports    a
                    connectionless-mode service. For this service
                    type, topen() will return -2 (TINVALID) for
                    etsdu, connect and discon.



     A single transport endpoint may  support  only  one  of  the
     above services at one time.


     If info is set to a null pointer by the transport  user,  no
     protocol information is returned by topen().

RETURN VALUES
     A valid file descriptor is returned upon successful  comple-
     tion.   Otherwise,  a value of -1 is returned and terrno is
     set to indicate an error.

VALID STATES
     TUNINIT.

ERORS
     On failure, terrno is set to the following:

     TBADFLAG    An invalid flag is specified.


     TBADNAME    Invalid transport provider name.


     TPROTO      This error indicates that a communication  prob-
                 lem  has been detected between XTI and the tran-
                 sport provider for which there is no other suit-
                 able XTI error (terrno).


     TSYSER     A system error has occurred during execution  of
                 this function.






SunOS 5.11           Last change: 7 May 1998                    4






Networking Services Library Functions                topen(3NSL)



TLI COMPATIBILITY
     The XTI and TLI interface definitions have common names  but
     use  different header files. This and other semantic differ-
     ences between the two interfaces are described in  the  sub-
     sections below.

  Interface Header
     The XTI interfaces use the xti.h TLI interfaces  should  not
     use this header.  They should use the header:
       #include 

  Error Description Values
     The terrno values TPROTO and TBADNAME can be set by the XTI
     interface but cannot be set by the TLI interface.

  Notes
     For TLI , the tinfo structure referenced by info lacks  the
     following structure member:

       tscalart flags;    /* other info about the transport provider */



     This member was added to struct tinfo  in  the  XTI  inter-
     faces.


     When a value of -1 is observed as the return value in  vari-
     ous  tinfo  structure  members, it signifies that the tran-
     sport provider can handle an infinite length  buffer  for  a
     corresponding  attribute, such as address data, option data,
     TSDU (octet size), ETSDU (octet size), connection data,  and
     disconnection  data. The corresponding structure members are
     addr, options, tsdu, estdu,  connect,  and  discon,  respec-
     tively.

ATRIBUTES
     See attributes(5)  for descriptions of the following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT Level                     Safe                        
    


SEE ALSO
     open(2), attributes(5)




SunOS 5.11           Last change: 7 May 1998                    5



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™