iperf: Update to version 2.1.7

Message ID 20220708205511.2972699-1-adolf.belka@ipfire.org
State Accepted
Commit 390a55dcfa263b103dece0ad613ae0442ce629b6
Headers
Series iperf: Update to version 2.1.7 |

Commit Message

Adolf Belka July 8, 2022, 8:55 p.m. UTC
  - Update from version 2.0.14a to 2.1.7
- Update of rootfile not required
- Changelog
   2.1.7 (as of April 5th, 2022)
	o Support for tcp bounceback test
	o Code clean up
	o Regression fixes (see git-log)
   2.1.6
	o Fix to major 2.1.5 regeressions
   2.1.5 change set as of (December 3, 2021)
	o fix some HAVE_IPV6 conditional changes
	o fix SO_TIMEOUT regressiony
	o ren sockets.c to socket_io.c
	o fix compile breakage per abs() returning an int instead of float
	o support for gettcpinfo on Mac OS X (tested on both M1 and x86 silicon)
	o move setsock_blocking from sockets into PerfSocket.cpp
	o don't require -V for v6, instead try v6 when v4 hostname lookup fails, client only
	o add assert in writen
	o add tcp RTT variance to client output
	o use setsockopt to get the nagle status
	o show Nagle and TOS settings on client
	o more on connect-only testing
	o sample and output the initial rtt and cwnd in the connect report
	o fix multiple fullduplex regressions
	o fix for HAVE_TCP_STATS in configure, then linux compile
	o writen can have more than one write, fix accounting when this occurs
	o fix tos with --reverse and --full-duplex
	o add support for --tos-override <value> on server
	o add support for  --tcp-drain, add mmm stats, histograms - experimental feature
	o multiple man page updates
	o fix partial histogram print to not show (f)
	o some new scripts in python flows
	o fixes to incr-srcport
	o fixes for --incr-dstport
	o fix regression on very first UDP packet having transit latency of zero
	o fix --reverse and --isochronous when --trip-times not set
	o fix client_init regression, pull out tcp_shutdown
	o fix reporter startup race and one second delay by setting the threads ready predicate and issuing the signal under a lock
	o fix first send accounting for small -n
	o fix configure.ac to use '=' instead of '=='
   2.1.4 change set as of (August 12, 2021)
	o fix TCP isoch regression
	o fix regression in UDP header exchange for tests like --reverse
	o Add support for TCP_NOTSENT_LOWAT vi --tcp-write-prefetch and select() before write()
	o Add support for TCP_WINDOW_CLAMP
	o Rework recvn() and writen() for when SO_SNDTIMEO and SO_RCVTIMEO are enabled
	o Add support for --histograms on select with --tcp-write-prefetch
	o Add support for bind to device on the listener, i.e. iperf -s -i 1 -e -B 0.0.0.0%eth0, will only accept/receive on the eth0 interface
	o Add support for virtual/tap interfaces
	o Add support for --hide-ips (don't show the ip addresses in the report outputs)
	o Fix units of -pps with --reverse, --fullduplex, -r and -d
	o Remove use of MSG_PEEK by moving the mBuf buffer from client/server object to settings context
	o Use MSG_WAITALL in recvn (collided with MSG_PEEK on Windows)
   2.1.3 change set as of (July 13, 2021)
	o relax cli errors a bit to WARN instead of ERROR
	o fix TCP read fatal error macro
	o fix UDP server to not fatal error on EINTR, use macro
	o handle and warn on failed read of tcp test flags
	o redesign of tcp retry (2.1.2 fix was incomplete)
	o thread exit signals reporter thread condition var for timely exits of the tool
   2.1.2 change set (as of June 25th, 2021)
	o fix TCP retry regression per interval reporting
   2.1.1 change set (as of June 23rd, 2021)
	o isochronous bug fix
	o -P and -B src port will increment for unique quintuple
	o support for port ranges, e.g. -p 6000-6008
	o double free fix per memory corruption when -l is less than 244
	o don't use pthread_join on the client --reverse, symptom hung client
	o fixes for --trip-times and small 64 byte packets
	o udp fail on reverse should exit
	o support for low duty cycle bursts (--burst-period and --burst-size)
	o final report fixes
	o full duplex ouput fixex
	o support for --incr-scrip
	o multicast setsockopt fixes
   2.1.0 change set (as of January 5th, 2021)
	o scaling improvements for -P, i.e. improved support for large numbers of traffic threads
	o major code refactoring (see doc/DESIGN_NOTES) for maintainability, extensibilty, performance, scaling, memory usage
	o support for full duplex traffic using --full-duplex
	o support for reverse traffic using --reverse
	o support for role-reversal character of asterisk in the transfer id
	o transfer id now an incrementing integer and no longer the socket id
	o support for TCP connect only tests with --connect-only
	o isochronous support compiled in by default, must use config to disable
	o support --isochronous for both UDP or TCP traffic to simulate video streams
	o support for low duty cycle traffic patterns via --burst-period and --burst-size
	o use of clock_nanosleep when supported to schedule isochronous burst starts, otherwise use nanosleep delay
	o support for --trip-times indicating the client and server clocks are synchronized to an accuracy sufficient, note: consider the use of precision time protocol as well as ask your data center to provide access to a GPS disciplined reference time source
	o support for --trip-times with -d and -r bidirectional tests
	o output TCP connect times (3WHS) in connect reports
	o support for application level tcp connect retries via --connect-retries n
	o rate-limited options of -b and --fq-rate supported for unidirectional, full duplex and reverse traffic
	o reporter thread designed to automatically cause packet reports to aggregate - mitigating and hopefully removing thread thrashing
	o support for frame or burst based reporting or sampling vs time based via -i [f|F] (experimental)
	o support for UDP traffic only from client to server with --no-udp-fin
	o support for write to read latencies (UDP and TCP) with --trip-times
	o support for sum only outputs with --sum-only
	o support for little's law calculations in --trip-time outputs
	o support for --txstart-time <epoch-time> to schedule client traffic start, timestamp support microseconds, e.g. unix $(expr $(date +%s) + 1).$(date +%N)
	o support for --txdelay-time to insert delay between TCP three way handshake (3WHS) and data transfer
	o support for --no-connect-sync which disables transmit traffic start synchronization when -P is used, defaults to synchronized
	o option of --full-duplex implementation uses a barrier on the client side to synchronize full duplex traffic
	o no limits to group sum reports, i.e. all clients will get its own sum report per a server
	o improved report timestamps, e.g. end to end or client and server based timestamps with --trip-times
	o improved settings messaging
	o improved messaging for --tcp-congestion or -Z
	o re-implemented -U for single UDP server with minimal threading interactions
	o re-implemented -1 or --singleclient where server will serialize traffic runs
	o warning message if the test were likely CPU bound instead of network i/o bound
	o fix the case when -P <value> is set on the server such that summing output is displayed
	o multicast listener will autoset -U (single server), e.g -P > 1 not supported for multicast
	o multicast listener no longer busy drops multicast packets during traffic test, i.e. only server thread receives them
	o immediate bail out on mutually exclusive command line options
	o getaddrinfo bug with -static linkage workaround and DNS lookup one time in setttings context vs twice in Settings and client traffic thread
	o fix -o or --output using freopen to redirect stdout and stderr to a file
	o support for --local-only which sets SO_DONTROUTE on a socket to limit traffic to local hosts (default is off)
	o support compile time option of --local-only to set on by default via ./configure --enable-default-localonly
	o support for date and time of in connect messages,
	  e.g. [  0] local 192.168.1.108%eth0 port 5001 connected with 192.168.1.62 port 36724 (MSS=453) (sock=5) on 2020-12-22 19:43:42 (PST)
	o support for feature of --permit-key and permit-key-timeout (defaults to 20 seconds.) The permit-key must match for the server to accpet the client's traffic. It also sets the transfer id. TCP only.
	o support for experimental feature of --near-congestion (tcp only)
	o man page updates with examples
	o tested with 1000's of traffic streams, WiFi, 10G and 100G

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 lfs/iperf | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Peter Müller July 9, 2022, 9:04 a.m. UTC | #1
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>

> - Update from version 2.0.14a to 2.1.7
> - Update of rootfile not required
> - Changelog
>    2.1.7 (as of April 5th, 2022)
> 	o Support for tcp bounceback test
> 	o Code clean up
> 	o Regression fixes (see git-log)
>    2.1.6
> 	o Fix to major 2.1.5 regeressions
>    2.1.5 change set as of (December 3, 2021)
> 	o fix some HAVE_IPV6 conditional changes
> 	o fix SO_TIMEOUT regressiony
> 	o ren sockets.c to socket_io.c
> 	o fix compile breakage per abs() returning an int instead of float
> 	o support for gettcpinfo on Mac OS X (tested on both M1 and x86 silicon)
> 	o move setsock_blocking from sockets into PerfSocket.cpp
> 	o don't require -V for v6, instead try v6 when v4 hostname lookup fails, client only
> 	o add assert in writen
> 	o add tcp RTT variance to client output
> 	o use setsockopt to get the nagle status
> 	o show Nagle and TOS settings on client
> 	o more on connect-only testing
> 	o sample and output the initial rtt and cwnd in the connect report
> 	o fix multiple fullduplex regressions
> 	o fix for HAVE_TCP_STATS in configure, then linux compile
> 	o writen can have more than one write, fix accounting when this occurs
> 	o fix tos with --reverse and --full-duplex
> 	o add support for --tos-override <value> on server
> 	o add support for  --tcp-drain, add mmm stats, histograms - experimental feature
> 	o multiple man page updates
> 	o fix partial histogram print to not show (f)
> 	o some new scripts in python flows
> 	o fixes to incr-srcport
> 	o fixes for --incr-dstport
> 	o fix regression on very first UDP packet having transit latency of zero
> 	o fix --reverse and --isochronous when --trip-times not set
> 	o fix client_init regression, pull out tcp_shutdown
> 	o fix reporter startup race and one second delay by setting the threads ready predicate and issuing the signal under a lock
> 	o fix first send accounting for small -n
> 	o fix configure.ac to use '=' instead of '=='
>    2.1.4 change set as of (August 12, 2021)
> 	o fix TCP isoch regression
> 	o fix regression in UDP header exchange for tests like --reverse
> 	o Add support for TCP_NOTSENT_LOWAT vi --tcp-write-prefetch and select() before write()
> 	o Add support for TCP_WINDOW_CLAMP
> 	o Rework recvn() and writen() for when SO_SNDTIMEO and SO_RCVTIMEO are enabled
> 	o Add support for --histograms on select with --tcp-write-prefetch
> 	o Add support for bind to device on the listener, i.e. iperf -s -i 1 -e -B 0.0.0.0%eth0, will only accept/receive on the eth0 interface
> 	o Add support for virtual/tap interfaces
> 	o Add support for --hide-ips (don't show the ip addresses in the report outputs)
> 	o Fix units of -pps with --reverse, --fullduplex, -r and -d
> 	o Remove use of MSG_PEEK by moving the mBuf buffer from client/server object to settings context
> 	o Use MSG_WAITALL in recvn (collided with MSG_PEEK on Windows)
>    2.1.3 change set as of (July 13, 2021)
> 	o relax cli errors a bit to WARN instead of ERROR
> 	o fix TCP read fatal error macro
> 	o fix UDP server to not fatal error on EINTR, use macro
> 	o handle and warn on failed read of tcp test flags
> 	o redesign of tcp retry (2.1.2 fix was incomplete)
> 	o thread exit signals reporter thread condition var for timely exits of the tool
>    2.1.2 change set (as of June 25th, 2021)
> 	o fix TCP retry regression per interval reporting
>    2.1.1 change set (as of June 23rd, 2021)
> 	o isochronous bug fix
> 	o -P and -B src port will increment for unique quintuple
> 	o support for port ranges, e.g. -p 6000-6008
> 	o double free fix per memory corruption when -l is less than 244
> 	o don't use pthread_join on the client --reverse, symptom hung client
> 	o fixes for --trip-times and small 64 byte packets
> 	o udp fail on reverse should exit
> 	o support for low duty cycle bursts (--burst-period and --burst-size)
> 	o final report fixes
> 	o full duplex ouput fixex
> 	o support for --incr-scrip
> 	o multicast setsockopt fixes
>    2.1.0 change set (as of January 5th, 2021)
> 	o scaling improvements for -P, i.e. improved support for large numbers of traffic threads
> 	o major code refactoring (see doc/DESIGN_NOTES) for maintainability, extensibilty, performance, scaling, memory usage
> 	o support for full duplex traffic using --full-duplex
> 	o support for reverse traffic using --reverse
> 	o support for role-reversal character of asterisk in the transfer id
> 	o transfer id now an incrementing integer and no longer the socket id
> 	o support for TCP connect only tests with --connect-only
> 	o isochronous support compiled in by default, must use config to disable
> 	o support --isochronous for both UDP or TCP traffic to simulate video streams
> 	o support for low duty cycle traffic patterns via --burst-period and --burst-size
> 	o use of clock_nanosleep when supported to schedule isochronous burst starts, otherwise use nanosleep delay
> 	o support for --trip-times indicating the client and server clocks are synchronized to an accuracy sufficient, note: consider the use of precision time protocol as well as ask your data center to provide access to a GPS disciplined reference time source
> 	o support for --trip-times with -d and -r bidirectional tests
> 	o output TCP connect times (3WHS) in connect reports
> 	o support for application level tcp connect retries via --connect-retries n
> 	o rate-limited options of -b and --fq-rate supported for unidirectional, full duplex and reverse traffic
> 	o reporter thread designed to automatically cause packet reports to aggregate - mitigating and hopefully removing thread thrashing
> 	o support for frame or burst based reporting or sampling vs time based via -i [f|F] (experimental)
> 	o support for UDP traffic only from client to server with --no-udp-fin
> 	o support for write to read latencies (UDP and TCP) with --trip-times
> 	o support for sum only outputs with --sum-only
> 	o support for little's law calculations in --trip-time outputs
> 	o support for --txstart-time <epoch-time> to schedule client traffic start, timestamp support microseconds, e.g. unix $(expr $(date +%s) + 1).$(date +%N)
> 	o support for --txdelay-time to insert delay between TCP three way handshake (3WHS) and data transfer
> 	o support for --no-connect-sync which disables transmit traffic start synchronization when -P is used, defaults to synchronized
> 	o option of --full-duplex implementation uses a barrier on the client side to synchronize full duplex traffic
> 	o no limits to group sum reports, i.e. all clients will get its own sum report per a server
> 	o improved report timestamps, e.g. end to end or client and server based timestamps with --trip-times
> 	o improved settings messaging
> 	o improved messaging for --tcp-congestion or -Z
> 	o re-implemented -U for single UDP server with minimal threading interactions
> 	o re-implemented -1 or --singleclient where server will serialize traffic runs
> 	o warning message if the test were likely CPU bound instead of network i/o bound
> 	o fix the case when -P <value> is set on the server such that summing output is displayed
> 	o multicast listener will autoset -U (single server), e.g -P > 1 not supported for multicast
> 	o multicast listener no longer busy drops multicast packets during traffic test, i.e. only server thread receives them
> 	o immediate bail out on mutually exclusive command line options
> 	o getaddrinfo bug with -static linkage workaround and DNS lookup one time in setttings context vs twice in Settings and client traffic thread
> 	o fix -o or --output using freopen to redirect stdout and stderr to a file
> 	o support for --local-only which sets SO_DONTROUTE on a socket to limit traffic to local hosts (default is off)
> 	o support compile time option of --local-only to set on by default via ./configure --enable-default-localonly
> 	o support for date and time of in connect messages,
> 	  e.g. [  0] local 192.168.1.108%eth0 port 5001 connected with 192.168.1.62 port 36724 (MSS=453) (sock=5) on 2020-12-22 19:43:42 (PST)
> 	o support for feature of --permit-key and permit-key-timeout (defaults to 20 seconds.) The permit-key must match for the server to accpet the client's traffic. It also sets the transfer id. TCP only.
> 	o support for experimental feature of --near-congestion (tcp only)
> 	o man page updates with examples
> 	o tested with 1000's of traffic streams, WiFi, 10G and 100G
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
>  lfs/iperf | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lfs/iperf b/lfs/iperf
> index 10bdc61d3..ad4e9f374 100644
> --- a/lfs/iperf
> +++ b/lfs/iperf
> @@ -26,7 +26,7 @@ include Config
>  
>  SUMMARY    = A tool to measure network performance
>  
> -VER        = 2.0.14a
> +VER        = 2.1.7
>  
>  THISAPP    = iperf-$(VER)
>  DL_FILE    = $(THISAPP).tar.gz
> @@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
>  DIR_APP    = $(DIR_SRC)/$(THISAPP)
>  TARGET     = $(DIR_INFO)/$(THISAPP)
>  PROG       = iperf
> -PAK_VER    = 5
> +PAK_VER    = 6
>  
>  DEPS       =
>  
> @@ -48,7 +48,7 @@ objects = $(DL_FILE)
>  
>  $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>  
> -$(DL_FILE)_BLAKE2 = 8484e7514f9569499cd7e66fd778856fc88dd30cadac84e70e412d457b26ac681620f1e6d434d23a6739ec3132b5b41662c3340795679bf9a4fc709e84308f7f
> +$(DL_FILE)_BLAKE2 = 7540cc8e7229bb48ee0483c18c3a07ad4bbc63cf02e742d1b38ba703168013f30c47c2e37d856c06634c541ae0f7e7f11a08014ede233c1f6bcc7780ad528283
>  
>  install : $(TARGET)
>
  

Patch

diff --git a/lfs/iperf b/lfs/iperf
index 10bdc61d3..ad4e9f374 100644
--- a/lfs/iperf
+++ b/lfs/iperf
@@ -26,7 +26,7 @@  include Config
 
 SUMMARY    = A tool to measure network performance
 
-VER        = 2.0.14a
+VER        = 2.1.7
 
 THISAPP    = iperf-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@  DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = iperf
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       =
 
@@ -48,7 +48,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 8484e7514f9569499cd7e66fd778856fc88dd30cadac84e70e412d457b26ac681620f1e6d434d23a6739ec3132b5b41662c3340795679bf9a4fc709e84308f7f
+$(DL_FILE)_BLAKE2 = 7540cc8e7229bb48ee0483c18c3a07ad4bbc63cf02e742d1b38ba703168013f30c47c2e37d856c06634c541ae0f7e7f11a08014ede233c1f6bcc7780ad528283
 
 install : $(TARGET)