# ident "@(#)README 1.7 04/11/29 SMI" This README file is for the Solaris[tm] Operating Environment SCTP package. The SCTP package contains the full implementation of all features mandated in RFC2960[1], including also: - Changes discussed in SCTP Implementer's Guide[2] and RFC3309[3]. - [*]SCTP dynamic address reconfiguration[4]. - Sockets API Extensions for SCTP[5]. - Stream Control Transmission Protocol (SCTP) Partial Reliability Extension[6] [*]Dynamic addition/deletion of IP addresses: This feature is switched off by default for security reasons. To enable this feature type the following: # ndd -set /dev/sctp sctp_addip_enabled 1 To disable this feature type the following: # ndd -set /dev/sctp sctp_addip_enabled 0 The SCTP package is provided for experimental use only, DO NOT use it in a production environment. SYSTEM REQUIREMENT __________________ To use SCTP, your system must run Solaris 9, Update 7, which was released in August 2004. Verify that Solaris 9, Update 7 is installed by typing the following: # cat /etc/release On a SPARC system, the output should resemble: Solaris 9 9/04 s9s_u7wos_09 SPARC Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 29 June 2004 On an Intel system, the output should resemble: Solaris 9 9/04 s9x_u7wos_09 x86 Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 28 June 2004 The system MUST NOT have any patches installed on top of Solaris 9, Update 7. INSTALLATION NOTES ___________________ SCTP is delivered in the following SVR4 package: SUNWsctp Root/Usr filesystem 32-bit/64-bit The package is included in the gzip'ed tar file sctp_solaris.tar.gz Follow the next instructions to install SUNWsctp. 1. Determine the architecture of your system by using the uname(1) command. # uname -m Output from a SPARC based system should resemble the following: sun4u Output from an Intel based system should resemble the following: i86pc 2. Download the sctp_solaris.tar.gz tar file into [+]/download_dir. ([+]/download_dir can be any directory on the system.) 3. Extract the package as follows: # cd /download_dir # gzcat sctp_solaris.tar.gz | tar xvf - # ls sctp_solaris README examples intel sparc # ls sctp_solaris/sparc SUNWsctp # ls sctp_solaris/intel SUNWsctp 4. Install the package for the appropriate architecture by either: o Type the following on a SPARC system: # pkgadd -d sctp_solaris/sparc SUNWsctp o Type the following on an Intel system: # pkgadd -d sctp_solaris/intel SUNWsctp 5. Go through the installation process, answering "y" to all questions. 6. Reboot after the installation completes. 7. Verify that the SCTP modules have been loaded by using modinfo as follows. # modinfo | grep SCTP 42 11f4da7 2fd 209 1 sctp (SCTP device) 43 11f4f3c 2fe 210 1 sctp6 (SCTP6 device) PACKAGE CONTENTS ________________ - IP STREAMS kernel modules - SCTP kernel drivers - sockfs kernel modules - modified kernel - updated inetd, netstat and snoop binaries - updated MDB module - updated adb macros and kadb built with these macros - new libsctp and modified libsocket libraries - /usr/include/netinet/in.h - /usr/include/netinet/sctp.h - /usr/include/inet/sctp_itf.h SOCKET INTERFACE ________________ Both one-to-one and one-to-many socket styles, as defined in [5], are fully supported. Notes: - On one-to-many sockets, an association is identified by the association ID instead of the address of its peer. Thus, the ancillary data passed to sendmsg() must include the association ID. Additionally, send() and sendto() cannot be used with one-to-many sockets. - The address list parameter for sctp_bindx(), sctp_getpaddrs(), and sctp_getladdrs() is not a packed array. It is an array of struct sockaddr_in if the socket is for IPv4. It is an array of struct sockaddr_in6 if the socket is for IPv6. In the case of IPv6, IPv4 address is represented as mapped address. PR-SCTP ("timed reliability") support is made available by adding a new socket option - SCTP_PRSCTP. By default PR-SCTP is disabled on SCTP sockets; an endpoint can enable PR-SCTP by setting the SCTP_PRSCTP (on/off) socket option *before* doing a listen() or connect(). An application can specify a message as partially reliable by setting the flag 'MSG_PR_SCTP' in the sinfo_flags field of the sctp_sndrcvinfo ancillary data accompanying the message; the sinfo_timetolive field specifies the time in millisecs. Additionally, if an application has subscribed to sctp_association_event, then sac_flags in the sctp_assoc_change notification will have 'SCTP_PRSCTP_CAPABLE' set if the association is PR-SCTP enabled. PR-SCTP is enabled on the association only if both endpoints enable SCTP_PRSCTP before establishing the association. KERNEL INTERFACE ________________ Please send queries to sctp-questions@sun.com LINKING WITH libsctp ____________________ An application needs to link with libsctp (-lsctp) in order to use any of the following: - sctp_bindx() - sctp_getpaddrs() - sctp_getladdrs() - sctp_opt_info() - sctp_peeloff() - sctp_recvmsg() - sctp_sendmsg() Notes: The syntax for sctp_recvmsg() changed between version 7 and 8 of the Sockets API Extensions for SCTP draft. The syntax for sctp_recvmsg() in this package conforms to the syntax defined in version 8 of the Sockets API Extensions for SCTP draft. REPORTING PROBLEMS etc. _______________________ Please provide the following information to sctp-questions@sun.com - Version string of SCTP package, using: # pkginfo -l SUNWsctp - Snoop trace, if available. - Crash dump, if available. - Exactly what were you doing. Additionally, any comments, etc. can be mailed to the sctp-questions@sun.com alias. REVISION HISTORY _______________ The VERSION string for version 2.0 of the download packages are: - SUNWsctp (SPARC) : 11.9.0,REV=2004.11.17.12.28 - SUNWsctp (Intel) : 11.9.0,REV=2004.11.17.10.35 _______________________________________________________________________________ REFERENCES [1] Stream Control Transmission Protocol http://www.ietf.org/rfc/rfc2960.txt [2] Stream Control Transmission Protocol (SCTP) Implementer's Guide draft-ietf-tsvwg-sctpimpguide-10.txt (Work in progress) [3] Stream Control Transmission Protocol (SCTP) Checksum Change http://www.ietf.org/rfc/rfc3309.txt [4] Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration draft-ietf-tsvwg-addip-sctp-08.txt (Work in Progress) [5] Sockets API Extensions for Stream Control Transmission Protocol draft-ietf-tsvwg-sctpsocket-09.txt (Work in Progress) [6] Stream Control Transmission Protocol (SCTP) Partial Reliability Extension http://www.ietf.org/rfc/rfc3758.txt --------- X ---------