Message ID | 20220708205511.2972699-1-adolf.belka@ipfire.org |
---|---|
State | Accepted |
Commit | 390a55dcfa263b103dece0ad613ae0442ce629b6 |
Headers |
Return-Path: <development-bounces@lists.ipfire.org> Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4Lflsg08XDz3wwD for <patchwork@web04.haj.ipfire.org>; Fri, 8 Jul 2022 20:55:19 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4Lflsf29qNz1Fg; Fri, 8 Jul 2022 20:55:18 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4Lflsf2C0fz2xqv; Fri, 8 Jul 2022 20:55:18 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4Lflsd0Mf6z2xMq for <development@lists.ipfire.org>; Fri, 8 Jul 2022 20:55:17 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4Lflsc5dSCzjC; Fri, 8 Jul 2022 20:55:16 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1657313716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=RES5/hJUxs80lFKJ2e1pegIJOM4GTAiQeO0cwGIsOfI=; b=Diyv2Y+LhS0CLNMNZTq6UC/SLA2pF1uf8NHfqm3NahdOcCwYeP8fvGXdyD0wxW66609MEg 6hm7u3rJpNBdk4Bg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1657313716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=RES5/hJUxs80lFKJ2e1pegIJOM4GTAiQeO0cwGIsOfI=; b=P4kfkAGIzp1IZpLc0BG1ZrjQAdkQGlF0BatgGL6awpX646T5FiXg28t6nfyaplHwqBcbUt YMOEqE/p3SkfyuDyBbLwKBEqLloI8oeM2XZLwapyaD4NJX2Q5ipPoIcFuLoMM+sAnEeH/C fmV5vUGpVLYSpqWe00SPMZ3F8R5XoK1ITNigEx2XZxDptvd7CFji1527pi408MQta3tIoF rd8RmHxBpCj0ZkXiiHMpi+tAz8fwTmPQ7Efq64clpQCi9eMEYmJ/vomYxkcWZZrQdy/+5b L6NMA3ldlQ2GZAc85t+x8QaU8b220Uc+JFQ+4WejXFqhqTTExObneaY6wApdmw== From: Adolf Belka <adolf.belka@ipfire.org> To: development@lists.ipfire.org Subject: [PATCH] iperf: Update to version 2.1.7 Date: Fri, 8 Jul 2022 22:55:11 +0200 Message-Id: <20220708205511.2972699-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk <development.lists.ipfire.org> List-Unsubscribe: <https://lists.ipfire.org/mailman/options/development>, <mailto:development-request@lists.ipfire.org?subject=unsubscribe> List-Archive: <http://lists.ipfire.org/pipermail/development/> List-Post: <mailto:development@lists.ipfire.org> List-Help: <mailto:development-request@lists.ipfire.org?subject=help> List-Subscribe: <https://lists.ipfire.org/mailman/listinfo/development>, <mailto:development-request@lists.ipfire.org?subject=subscribe> Errors-To: development-bounces@lists.ipfire.org Sender: "Development" <development-bounces@lists.ipfire.org> |
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
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) >
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)