Simula Research Laboratory /
Center for Resilient Networks and Applications /
NorNet
Homepage of Thomas Dreibholz /
TSCTP Homepage
New release: tsctp-0.8.7. This version provides some build improvements and fixes, particularly for NetBSD, and Solaris.
New release: tsctp-0.8.6. This version provides some build improvements, including builds for NetBSD.
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.
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.
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
echo 'sctp_load="YES"' | sudo tee --append /boot/loader.conf
sudo kldload sctp
kldstat | grep sctp
NetBSD provides SCTP support, but it must be compiled into the kernel.
Solaris provides out-of-the-box SCTP support.
Server mode: bind to all IPv4 and IPv6 addresses, listen on port 1234.
tsctp -L :: -L 0.0.0.0 -p 1234
Client mode: bind to all IPv4 and IPv6 addresses, connect to localhost (127.0.0.1) on port 1234, send unlimited number of messages of 4096 bytes each, stop after 10 s.
tsctp -L :: -L 0.0.0.0 -n 10 -l 1000 -p 1234 127.0.0.1
Client mode: bind to all IPv4 and IPv6 addresses, connect to localhost (127.0.0.1) on port 1234, send unlimited number of messages of 4096 bytes each, stop after 10 s.
tsctp -L :: -L 0.0.0.0 -n 0 -T 10 -l 4096 -p 1234 127.0.0.1
Please use the issue tracker at https://github.com/dreibh/tsctp/issues to report bugs and issues!
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
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
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
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
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
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
TSCTP supports NetBSD. However, there is no NetBSD packaging yet. Just build from sources!
TSCTP supports Solaris (OpenIndiana). However, there is no Solaris packaging yet. Just build from sources!
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
TSCTP is released under the BSD License.
Please use the issue tracker at https://github.com/dreibh/tsctp/issues to report bugs and issues!
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:
debian/control (Debian/Ubuntu Linux),tsctp.spec (Fedora Linux, OpenSUSE Linux),APKBUILD (Alpine Linux),Makefile (FreeBSD), andtsctp.rb (Homebrew).Contributions:
Issue tracker: https://github.com/dreibh/tsctp/issues. Please submit bug reports, issues, questions, etc. in the issue tracker!
Pull Requests for TSCTP: https://github.com/dreibh/tsctp/pulls. Your contributions to TSCTP are always welcome!
CI build tests of TSCTP: https://github.com/dreibh/tsctp/actions.
Coverity Scan analysis of TSCTP: https://scan.coverity.com/projects/dreibh-tsctp.
The tarball has been signed with my GnuPG key 21412672518D8B2D1862EFEF5CD5D12AA0877B49. 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
The tarballs have been signed with my GnuPG key 21412672518D8B2D1862EFEF5CD5D12AA0877B49. 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