Simula Research Laboratory / Center for Resilient Networks and Applications / NorNet
Homepage of Thomas Dreibholz / TSCTP Homepage


TSCTP
An SCTP Test Tool
SCTP Project Logo


πŸ“‘ Quick Navigation


πŸ“° Latest News


πŸ’‘ What is TSCTP?

TSCTP is an SCTP test tool. Its purpose is to perform basic SCTP functionality tests to check implementations interoperability and to verify that the SCTP stack is working.


πŸ˜€ Examples

Preparations

TSCTP uses the SCTP protocol, i.e., sockets with protocol IPPROTO_SCTP. It may be necessary to allow loading the SCTP kernel module first, if not already enabled. The following code blocks show how to enable it permanently.

SCTP on Linux

echo "sctp" | sudo tee /etc/modules-load.d/sctp.conf
if [ -e /etc/modprobe.d/sctp-blacklist.conf ] ; then
   sudo sed -e 's/^blacklist sctp/# blacklist sctp/g' -i /etc/modprobe.d/sctp-blacklist.conf
fi
sudo modprobe sctp
lsmod | grep sctp

SCTP on FreeBSD

echo 'sctp_load="YES"' | sudo tee --append /boot/loader.conf
sudo kldload sctp
kldstat | grep sctp

SCTP on NetBSD

NetBSD provides SCTP support, but it must be compiled into the kernel.

SCTP on Solaris

Solaris provides out-of-the-box SCTP support.

TSCTP Server Mode

Server mode: bind to all IPv4 and IPv6 addresses, listen on port 1234.

tsctp -L :: -L 0.0.0.0 -p 1234

TSCTP Client Mode


πŸ“¦ Binary Package Installation

Please use the issue tracker at https://github.com/dreibh/tsctp/issues to report bugs and issues!

Ubuntu Linux

For ready-to-install Ubuntu Linux packages of TSCTP, see the Launchpad PPA for Thomas Dreibholz!

sudo apt-add-repository -sy ppa:dreibh/ppa
sudo apt-get update
sudo apt-get install tsctp

Debian Linux

For ready-to-install Debian Linux packages of TSCTP, see the Open Build Service PPA for Thomas Dreibholz!

Add the PPA repository:

. /etc/os-release
DISTRIBUTION="Debian_${VERSION_ID:-$([ "${VERSION_CODENAME:-}" = sid ] && echo Unstable || echo Testing)}"
URL="https://download.opensuse.org/repositories/home:/dreibh/${DISTRIBUTION}"
KEY="/etc/apt/keyrings/dreibh-obs.gpg"

curl -fsSL "${URL}/Release.key" | sudo gpg --batch --yes --dearmor -o "${KEY}"
printf "deb [signed-by=%s] %s/ /\ndeb-src [signed-by=%s] %s/ /\n" "${KEY}" "${URL}" "${KEY}" "${URL}" | \
   sudo tee /etc/apt/sources.list.d/obs-dreibh.list
sudo apt update

Then, install TSCTP:

sudo apt-get install tsctp

Fedora Linux

For ready-to-install Fedora Linux packages of TSCTP, see the COPR PPA for Thomas Dreibholz!

sudo dnf copr enable -y dreibh/ppa
sudo dnf install tsctp

OpenSUSE Linux

For ready-to-install OpenSUSE Linux packages of TSCTP, see the Open Build Service PPA for Thomas Dreibholz!

Add the PPA repository:

. /etc/os-release
[[ $VERSION_ID =~ ^[0-9]+\.[0-9]+$ ]] && DISTRIBUTION="${VERSION_ID}" || DISTRIBUTION="${NAME// /_}"
URL="https://download.opensuse.org/repositories/home:/dreibh/${DISTRIBUTION}"
rpm --import "${URL}/repodata/repomd.xml.key"
zypper addrepo -f "${URL}/" dreibh-obs

Then, install TSCTP:

sudo zypper install tsctp

Alpine Linux

For ready-to-install Alpine Linux packages of TSCTP, see the Open Build Service PPA for Thomas Dreibholz!

Add the PPA repository:

DISTRIBUTION="Alpine_Latest_community"
URL="https://download.opensuse.org/repositories/home:/dreibh"
wget -O \
   /etc/apk/keys/home:dreibh@build.opensuse.org-527a4e72.rsa.pub \
   "${URL}/${DISTRIBUTION}/x86_64/home:dreibh%40build.opensuse.org-527a4e72.rsa.pub"
if ! grep -q "^${URL}/${DISTRIBUTION}" /etc/apk/repositories ; then
   echo "${URL}/${DISTRIBUTION}" | sudo tee -a /etc/apk/repositories
fi

Then, install TSCTP:

sudo apk add tsctp

FreeBSD

For ready-to-install FreeBSD packages of TSCTP, it is included in the ports collection; see FreeBSD ports tree index of net/tsctp/!

sudo pkg install tsctp

Alternatively, to compile it from the ports sources:

cd /usr/ports/net/tsctp
make
sudo make install

NetBSD

TSCTP supports NetBSD. However, there is no NetBSD packaging yet. Just build from sources!

Solaris (OpenIndiana)

TSCTP supports Solaris (OpenIndiana). However, there is no Solaris packaging yet. Just build from sources!

Homebrew (Linux only)

For the Homebrew formula of TSCTP, see Thomas Dreibholz’s Homebrew Tap!

Add tap:

brew tap dreibh/tap
brew trust dreibh/tap

Then, install TSCTP:

brew install tsctp

πŸ’Ύ Build from Sources

TSCTP is released under the BSD License.

Please use the issue tracker at https://github.com/dreibh/tsctp/issues to report bugs and issues!

Development Version

The Git repository of the TSCTP sources can be found at https://github.com/dreibh/tsctp:

git clone https://github.com/dreibh/tsctp
cd tsctp
sudo ci/get-dependencies --install
cmake .
make

Optionally, for installation to the standard paths (usually under /usr/local):

sudo make install

Note: The script ci/get-dependencies automatically installs the build dependencies under Debian/Ubuntu Linux, Fedora Linux, OpenSUSE Linux, Alpine Linux, FreeBSD, and Homebrew. For manual handling of the build dependencies, take a look at the packaging configuration files:

Contributions:

Current Stable Release

The tarball has been signed with my GnuPG key 21412672­518D8B2D­1862EFEF­5CD5D12A­A0877B49. Its authenticity and integrity can be verified by:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49
gpg --verify tsctp-<VERSION>.tar.xz.asc tsctp-<VERSION>.tar.xz

Old Stable Releases

The tarballs have been signed with my GnuPG key 21412672­518D8B2D­1862EFEF­5CD5D12A­A0877B49. Its authenticity and integrity can be verified by:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49
gpg --verify tsctp-<VERSION>.tar.xz.asc tsctp-<VERSION>.tar.xz