There is a L4S option of --udp-l4s. It's in the master branch. L4S support
is not enabled by default per compile breakages with some very old
distributions that still need Wi-Fi testing support.
Use ./configure --enable-udp-l4s to get it.
The use the command line option to run it:
--udp-l4srun an l4s traffic load (requires a iperf server that supports
l4s)
Prague CCA can be used too, but that's not totally an iperf thing like
--udp-l4s, rather a TCP CCA option which iperf supports via --tcp-cca
command line options. Note that iperf will pass the CCA to the server so
each side will use the same CCA when the CCA is only set on the client
side. The 3WHS will not be prague per the server though. I was informed
that changing the CCA after the TCP connect() should work fine. One can
always set the server side's CCA too.
--tcp-ccaSet the congestion control algorithm to be used for TCP
connections & exchange with the server (same as --tcp-congestion)
Check for CCA availability with sysctl
Finally, it's expected that many l4s flows will have classic flows going
concurrently. The working-load option apply here:
--working-load[=up|down|bidir][,n**]request a concurrent working load,
currently TCP stream(s), defaults to full duplex (or bidir) unless the up
or down option is provided. The number of TCP streams defaults to 1 and
can be changed via the n value, e.g. --working-load=down,4 will use four
TCP streams from server to the client as the working load. The IP ToS will
be BE (0x0) for working load traffic.--working-load-ccaSet the congestion
control algorithm to be used for TCP working loads, exchange with the server
Bob
Is L4S supported in iperf2? I presume I would have to have Prague which is in kernel 5.15 onwards.
Steve
+l4s-discuss list per ietf engineers
There is a L4S option of --udp-l4s. It's in the master branch. L4S support
is not enabled by default per compile breakages with some very old
distributions that still need Wi-Fi testing support.
Use ./configure --enable-udp-l4s to get it.
The use the command line option to run it:
--udp-l4srun an l4s traffic load (requires a iperf server that supports
l4s)
Prague CCA can be used too, but that's not totally an iperf thing like
--udp-l4s, rather a TCP CCA option which iperf supports via --tcp-cca
command line options. Note that iperf will pass the CCA to the server so
each side will use the same CCA when the CCA is only set on the client
side. The 3WHS will not be prague per the server though. I was informed
that changing the CCA after the TCP connect() should work fine. One can
always set the server side's CCA too.
--tcp-ccaSet the congestion control algorithm to be used for TCP
connections & exchange with the server (same as --tcp-congestion)
Check for CCA availability with sysctl
rjmcmahon@rpi5-34:~ $ sudo sysctl -a | grep avail
kernel.random.entropy_avail = 256
kernel.seccomp.actions_avail = kill_process kill_thread trap errno
user_notif trace log allow
net.ipv4.tcp_available_congestion_control = reno bbr cubic dctcp
praguenet.ipv4.tcp_available_ulp
= mptcp
I tend to use raspberry pi 5's now. More on rpi support here
https://www.l4sgear.com/.
Finally, it's expected that many l4s flows will have classic flows going
concurrently. The working-load option apply here:
--working-load[=up|down|bidir][,n**]request a concurrent working load,
currently TCP stream(s), defaults to full duplex (or bidir) unless the up
or down option is provided. The number of TCP streams defaults to 1 and
can be changed via the n value, e.g. --working-load=down,4 will use four
TCP streams from server to the client as the working load. The IP ToS will
be BE (0x0) for working load traffic.--working-load-ccaSet the congestion
control algorithm to be used for TCP working loads, exchange with the server
Bob
On Tue, Apr 1, 2025 at 11:49 AM Steve Shearer steveshearer@users.sourceforge.net wrote: