MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Networking Services Library Functions            tsndudata(3NSL)



NAME
     tsndudata - send a data unit

SYNOPSIS
     #include 




     int tsndudata(int fd, const struct tunitdata *unitdata);


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.


     This function is used in connectionless-mode to send a  data
     unit  to  another transport user. The argument fd identifies
     the local transport endpoint  through  which  data  will  be
     sent, and unitdata points to a tunitdata structure contain-
     ing the following members:

       struct netbuf addr;
       struct netbuf opt;
       struct netbuf udata;



     In unitdata, addr specifies the protocol address of the des-
     tination  user,  opt  identifies options that the user wants
     associated with this request, and udata specifies  the  user
     data  to  be  sent.  The user may choose not to specify what
     protocol options are associated with the transfer by setting
     the  len  field  of  opt to zero. In this case, the provider
     uses the option values currently set for the  communications
     endpoint.


     If the len field of udata  is  zero,  and  sending  of  zero
     octets is not supported by the underlying transport service,
     the tsndudata() will return  -1 with terrno set  to  TBAD-
     DATA.


     By default, tsndudata() operates in  synchronous  mode  and
     may  wait if flow control restrictions prevent the data from



SunOS 5.11           Last change: 7 May 1998                    1






Networking Services Library Functions            tsndudata(3NSL)



     being accepted by the local transport provider at  the  time
     the  call  is made.  However, if  ONONBLOCK is set by means
     of topen(3NSL) or fcntl(2), tsndudata()  will  execute  in
     asynchronous  mode  and will fail under such conditions. The
     process can arrange to be notified of  the  clearance  of  a
     flow  control restriction by means of either tlook(3NSL) or
     the EM interface.


     If the amount of data specified in udata  exceeds  the  TSDU
     size  as  returned in the tsdu field of the info argument of
     topen(3NSL) or tgetinfo(3NSL), a TBADATA  error  will  be
     generated.  If tsndudata() is called before the destination
     user   has   activated   its   transport    endpoint    (see
     tbind(3NSL)), the data unit may be discarded.


     If it is not possible for the transport provider to  immedi-
     ately  detect the conditions that cause the errors TBADADR
     and TBADOPT, these errors will alternatively be returned  by
     trcvuderr.  Therefore,  an  application must be prepared to
     receive these errors in both of these ways.


     If the call is interrupted, tsndudata() will  return  EINTR
     and the datagram will not be sent.

RETURN VALUES
     Upon successful completion, a value of  0 is returned.  Oth-
     erwise,  a  value  of   -1 is returned and terrno is set to
     indicate an error.

VALID STATES
     TIDLE.

ERORS
     On failure, terrno is set to one of the following:

     TBADADR       The specified  protocol  address  was  in  an
                    incorrect  format or contained illegal infor-
                    mation.


     TBADATA       Illegal amount of data.  A  single  send  was
                    attempted specifying a TSDU greater than that
                    specified in the info argument, or a send  of
                    a zero byte TSDU is not supported by the pro-
                    vider.


     TBADF          The specified file descriptor does not  refer
                    to a transport endpoint.



SunOS 5.11           Last change: 7 May 1998                    2






Networking Services Library Functions            tsndudata(3NSL)



     TBADOPT        The specified options were  in  an  incorrect
                    format or contained illegal information.


     TFLOW          ONONBLOCK was  set,  but  the  flow  control
                    mechanism  prevented  the  transport provider
                    from accepting any data at this time.


     TLOK          An asynchronous event has  occurred  on  this
                    transport endpoint.


     TNOTSUPORT    This function is not supported by the  under-
                    lying transport provider.


     TOUTSTATE      The communications endpoint referenced by  fd
                    is  not  in one of the states in which a call
                    to this function is valid.


     TPROTO         This error  indicates  that  a  communication
                    problem has been detected between XTI and the
                    transport provider  for  which  there  is  no
                    other suitable XTI error (terrno).


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


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 header file,  xti.h.  TLI  inter-
     faces  should  not  use  this  header.   They should use the
     header:
       #include 

  Error Description Values
     The terrno values that can be set by the XTI interface  and
     cannot be set by the TLI interface are:
       TPROTO
       TBADADR
       TBADOPT
       TLOK
       TOUTSTATE



SunOS 5.11           Last change: 7 May 1998                    3






Networking Services Library Functions            tsndudata(3NSL)



  Notes
     Whenever this function fails  with  terror  set  to  TFLOW,
     ONONBLOCK must have been set.

  Option Buffers
     The format of the options in an opt buffer  is  dictated  by
     the  transport  provider.  Unlike the XTI interface, the TLI
     interface does not fix the buffer format.

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



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT Level                     Safe                        
    


SEE ALSO
     fcntl(2),   talloc(3NSL),   tbind(3NSL),    terror(3NSL),
     tgetinfo(3NSL),         tlook(3NSL),         topen(3NSL),
     trcvudata(3NSL), trcvuderr(3NSL), attributes(5)





























SunOS 5.11           Last change: 7 May 1998                    4



OpenSolaris man pages main menu

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