MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Devices                                                   sdp(7D)



NAME
     sdp - Sockets Direct Protocol driver

SYNOPSIS
     #include 


     #include 


     s = socket(AFINET, SOCKSTREAM, PROTOSDP);


     s = socket(AFINET6, SOCKSTREAM, PROTOSDP);


DESCRIPTION
     The Sockets Direct Protocol (SDP) is  a  transport  protocol
     layered  over the Infiniband Transport Framework (IBTF). SDP
     is a standard implementation based on Annex 4 of the Infini-
     band  Architecture Specification Vol 1 and provides reliable
     byte-stream, flow controlled two-way data transmission  that
     closely mimics the Transmission Control Protocol (TCP).


     SDP supports a sockets-based SOCKSTREAM interface to appli-
     cation  programs. It also supports graceful close (including
     half-closed sockets), IP  addressing  (IPv4  or  IPv6),  the
     connecting/accepting  connect  model, out-of-band (OB) data
     and common socket options. The SDP  protocol  also  supports
     kernel  bypass  data transfers and data transfers from send-
     upper-layer-protocol (ULP) buffers to receive ULP buffers. A
     SDP message includes a BSDH header followed by data. (A BSDH
     header advertises the amount of  available  buffers  on  the
     local side).


     SDP networking functionality is broken into the  sdp  driver
     and  a function call-based sockfs implementation. A new pro-
     tocol family of PROTOSDP is introduced to use the SDP tran-
     sport provided by the driver.


     Sockets utilizing SDP are either active or  passive.  Active
     sockets initiate connections to passive sockets. Both active
     and passive sockets must have their local IP or IPv6 address
     and SDP port number bound with the bind(3SOCKET) system call
     after the socket is created. By  default,  SDP  sockets  are
     active.   A   passive  socket  is  created  by  calling  the
     listen(3SOCKET) system call after binding  the  socket  with
     bind().  This  process  establishes a queueing parameter for
     the passive socket. Connections to the passive   socket  can



SunOS 5.11          Last change: 13 Nov 2006                    1






Devices                                                   sdp(7D)



     be  received  with  the  accept(3SOCKET) system call. Active
     sockets use the connect(3SOCKET) call after binding to  ini-
     tiate connections.


     In most cases, SDP sends data when  it  is  presented.  When
     outstanding  data is not yet acknowledged, SDP gathers small
     amounts of output to be sent in a  single   packet  once  an
     acknowledgement  is  received. For a small number of clients
     this packetization may cause significant delays. To  circum-
     vent  this  problem,   SDP  provided  by the driver supplies
     SDPNODELAY, a socket-level boolean option. Note  that  this
     behavior is similar to the TCPNODELAY option.


     SDP provides an urgent data mechanism that  can  be  invoked
     using  the  out-of-band  provisions  of   send(3SOCKET). The
     out-of-band delivery  behavior  is  identical  to  TCP.  The
     caller may mark one byte as "urgent" with the  MSGOB  flag
     to send(3SOCKET). This sets an "urgent pointer" pointing  to
     the  byte  in  the SDP stream. The receiver of the stream is
     notified of the urgent data by a SIGURG signal. The  SIOCAT-
     MARK   ioctl(2)  request  returns a value indicating whether
     the stream is at the urgent mark. Because the  system  never
     returns  data  across  the  urgent  mark in a single read(2)
     call, it is possible to advance to the urgent data in a sim-
     ple  loop  which  reads  data, testing  the  socket with the
     SIOCATMARK  ioctl() request until it reaches the mark.

ADRES FORMATS
     SDP uses  IP/IPv6  addresses to refer to  local  and  remote
     devices and opens a reliable connected IB connection between
     two end points. The sdp  driver  supports  a  point-to-point
     connection,  however  broadcasting  and multicasting are not
     supported.

SOCKET OPTIONS
     SDP supports setsockopt  and  getsockopt  to  set  and  read
     socket  options. Very few socket options affect SDP protocol
     operations. Other common socket options are   processed  but
     do  not affect  SDP  protocol  operation. All socket options
     are checked for validity. A getsockopt  returns  the  values
     set  or  toggled  by  setsockopt. Socket options that affect
     protocol operations are  SOLINGER,  SODEBUG,  SOREUSEADR
     and SOBINLINE.

ERORS
     EISCON                     A   connect()   operation    was
                                 attempted on a socket on which a
                                 connect() operation had  already
                                 been performed.




SunOS 5.11          Last change: 13 Nov 2006                    2






Devices                                                   sdp(7D)



     ECONRESET                  The remote peer forced the  con-
                                 nection  to be closed. This usu-
                                 ally  occurs  when  the   remote
                                 machine  loses state information
                                 about the connection  due  to  a
                                 crash.


     ECONREFUSED                The remote peer actively refused
                                 connection  establishment.  This
                                 usually occurs because  no  pro-
                                 cess is listening to the port.


     EADRINUSE                  A bind() operation was attempted
                                 on   a  socket  with  a  network
                                 address/port   pair   that   has
                                 already  been  bound  to another
                                 socket.


     EADRNOTAVAIL               A bind() operation was attempted
                                 on   a  socket  with  a  network
                                 address  for  which  no  network
                                 interface exists.


     EACES                      A bind() operation was attempted
                                 with  a reserved port number and
                                 the effective  user  ID  of  the
                                 process  was  not the privileged
                                 user.


     ENOBUFS                     The system ran out of memory for
                                 internal data structures.


FILES
     /kernel/drv/sdp

         32-bit ELF kernel module (x86).


     /kernel/drv/amd64/sdp

         64-bit ELF kernel module (x86).


     /kernel/drv/sparcv9/sdp

         64-bit ELF kernel module (SPARC).



SunOS 5.11          Last change: 13 Nov 2006                    3






Devices                                                   sdp(7D)



     /kernel/drv/sdpib

         32-bit ELF kernel module (x86).


     /kernel/drv/amd64/sdpib

         64-bit ELF kernel module (x86).


     /kernel/drv/sparcv9/sdpib

         64-bit ELF kernel module (SPARC).


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



     
          ATRIBUTE TYPE               ATRIBUTE VALUE        
    
     Architecture              x86, SPARC                     
    
     Availability              SUNWibsdp, SUNWibsdp           
    


SEE ALSO
     read(2),         getsockopt(3XNET),         socket.h(3HEAD),
     accept(3SOCKET),       bind(3SOCKET),      connect(3SOCKET),
     send(3SOCKET), attributes(5), standards(5)


     Infiniband Architecture  Specification  Vol  1-  Annex  4  -
     November, 2002

















SunOS 5.11          Last change: 13 Nov 2006                    4



OpenSolaris man pages main menu

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