esnet / iperf

iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
Other
6.81k stars 1.27k forks source link

Iperf3 sctp fails with Protocol not supported #1561

Open rbabtiwa opened 1 year ago

rbabtiwa commented 1 year ago

Iperf3 fails with "Protocol not supported" error while using sctp

On server: ~]# iperf3 -s -B 30.1.1.16

Server listening on 5201 (test #5)
-----------------------------------------------------------
iperf3: error - unable to start stream listener: Protocol not supported

Client: iperf3 -c 30.1.1.16 -t 30 -4 -B 30.1.1.17 -i 2 --sctp -V

Connecting to host 30.1.1.16, port 5201
      Cookie: utzaaryetouohvc6l4xnrk4z7sams674cfw7
iperf3: error - unable to start stream listener: Protocol not supported
davidBar-On commented 1 year ago

Do you know whether SCTP is supported on the server and client machines? In general, the --sctp option is not available when SCTP is not supported. The issue you see may happen if iperf3 was build on a machine that does support SCTP but is running on a machine that does not support SCTP.

If iper3 was build on the same machine (or at least the same environment) it is running on, can you send the full output of iperf3 -v, to understand the environment (OS, etc.) it was built and used in?

rbabtiwa commented 1 year ago
root@controller-0:~# iperf3 -v
iperf 3.9 (cJSON 1.7.13)
Linux controller-0 5.10.0-6-rt-amd64 #1 SMP PREEMPT_RT StarlingX Debian 5.10.177-1.stx.60 (2023-06-27 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, SCTP, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing, authentication

iper3 binary is already present. I did not compile it separately. I loaded sctp module using "modprobe -a sctp"

root@controller-0:~# lsmod | grep sctp
sctp                  430080  20
libcrc32c              16384  7 nf_conntrack,nf_nat,nf_tables,xfs,drbd,ip_vs,sctp
davidBar-On commented 1 year ago

From searching the internet, the following may help:

  1. Run checksctp to check whether the kernel supports sctp.
  2. SCTP module may have to be added to /etc/modules-load.d/modules.conf. See here. Note that if you add "sctp" to the file the system should be rebooted.
  3. Run sctp_test to make sure sctp is really active.