From patchwork Mon Aug 12 15:38:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 7982 Return-Path: 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 (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4WjJZW1Zd7z3wwl for ; Mon, 12 Aug 2024 15:38:27 +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 RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4WjJZR3917z5t3; Mon, 12 Aug 2024 15:38:23 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4WjJZR2cP1z341p; Mon, 12 Aug 2024 15:38:23 +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 (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4WjJZG5LnPz341y for ; Mon, 12 Aug 2024 15:38:14 +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 RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4WjJZG3q67z5M3; Mon, 12 Aug 2024 15:38:14 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1723477094; 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: in-reply-to:in-reply-to:references:references; bh=z4K51tCjuiZakAY3IWjXjhA57RpNM9pzgIqQLBMjTzg=; b=KhHiaRXdjoQ2pT47i8CPymWsa3AqKGGnOG10R6qGVwy5I92f6QWZ+NOzf7UlI5x6i/T/Dm IxeJDscjD28s65DQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1723477094; 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: in-reply-to:in-reply-to:references:references; bh=z4K51tCjuiZakAY3IWjXjhA57RpNM9pzgIqQLBMjTzg=; b=L+CX7wPvlNl0AAwUZNGqgnBg7zkN3yE538DdQE1shU3wIfLWm0h4+ddR8C+OQHRBHPzh2l 44t7oi7SOLxrRSGJiOJ3Kga7tZMKQjAbHX5qKKk2qohdTzt4IgxdNXHuwXrwPpa00crptp SDMvoQHsUquTH2L7q3VtXpD+/39K6w5OSdCmjPdqmpbCAoCsd4rb0G2ZMHSUXFc/ImRoqZ B983E9hImCSKn5WppIeEIbLLTPyYlRDeFxyEdor3gb0uay4UJLaMzkwk2Ju9KJS9wn5naF r0DV+2xcWeJ0CJxTPFj2CMj8ZPaT5e1e3rnKtsONbxngSzWwrCFiHcpA9whItw== From: Adolf Belka To: development@lists.ipfire.org Subject: [PATCH] iperf: Update to version 2.2.0 Date: Mon, 12 Aug 2024 17:38:03 +0200 Message-ID: <20240812153808.3944396-9-adolf.belka@ipfire.org> In-Reply-To: <20240812153808.3944396-1-adolf.belka@ipfire.org> References: <20240812153808.3944396-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Message-ID-Hash: OABXBWH7BZKCC7AX65BUTQVONFZNXOD5 X-Message-ID-Hash: OABXBWH7BZKCC7AX65BUTQVONFZNXOD5 X-MailFrom: adolf.belka@ipfire.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: IPFire development talk Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: - Update from version 2.1.8 to 2.2.0 - Update of rootfile not required - Changelog 2.2.0 o new ./configure --enable-summing-debug option to help with summing debug o select ahead of writes slow down UDP performance. support ./configure --disable-write-select o support fo -b 0 with UDP, unlimited load or no delay between writes o support for --sync-transfer-id so client and server will match the ids and give a remap message o support --dscp command line option o support for application level retries and minimum retry interval of the TCP connect() syscall via --connect-retry-time and --connect-retry-timer, repsectively o support for --ignore-shutdown so test will end on writes vs the BDP drain and TCP close/shutdown, recommended not to use this but in rare cases o support for --fq-rate-step and --fq-rate-step-interval o CCAs per --tcp-cca, --tcp-congestion, etc neeed to be case sensitive o support for both packets and bytes inflight taken from tcp_info struct amd pkt calc of (tcp_info_buf.tcpi_unacked - tcp_info_buf.tcpi_sacked - tcp_info_buf.tcpi_lost + tcp_info_buf.tcpi_retrans) o man page updates and -h to reflect new options, better descriptions o lots of work around summing with parallel threads, new implementation based on interval or slot counters, hopefully should work reliably o --bounceback tests are much more reliable and robust o Improve event handling around select timeouts, helps with larger -P values and summing o use the getsockopt IP_TOS for the displayed output, warn when set and get don't match o better tos byte output, include dscp and ecn fields individually o better tos setting code for both v6 and v4, so they behave the same around checks and warnings o much better NULL events to help with reporter processing even when traffic is not flowing o support for a new string report o python flows work around CDF based tests o rate limit fflush calls to a max of one every millisecond or 1000 per sec o remove superfulous fflush calls o reports when P = 1 and --sum-only need sum outputs o enable summing with --incr-dstip o add macro TIME_GET_NOW to set a struct timeval in a portable manner o code readability improvements with enums, bools, etc. o fix for TCP rate limited and -l less than min burst size o only use linux/tcp.h when absolutely needed, otherwise use netinet/tcp.h o print bounceback OWD tx/rx in interval reports o add flows Makefiles for tarball or make dist-all o support interval reports for bounceback histograms o support for TCP working loads and UDP primary flows, including UDP isochronous, per ticket 283 o fix working-load with isoch so working-load streams are capacity seeking o exit when CCA not supported or read of the current CCA doesn't match requested CCA o add more make check tests o add support for omit string (omit code not ready for this release) o pyflows qdisc settings and outputs o add first send pacing with --tx-starttime so listener threads udp_accept has time to perform udp_accept() between the client threads o adjust the sender time per the client delay and the client first write, i.e. subtract out this delay in the calculations o fixes for small packets and --tx-starttime o use more modern multicast socket options (now in src/iperf_multicast_api.c) o warn on bind port not sent with --incr-srcport o display fq-rate values in outputs when --fq-rate is used o add support for --test-exchange-timeout o fixes around wait_tick o add support for TCP_TX_DELAY via --tcp-tx-delay option on both client and server o pass the CCA from client to server o support burst-size with different write sizes and don't require --burst-period o output traffic thread send scheduling error stats in final ouput o output clock unsync stats with --bounceback o add warn message on MSG_CTRUNC o UDP select fixes o enable TCP_NOTSENTLOWAT and set to a default small value with --tcp-write-times o default histogram max binning to 10 seconds o add a max timestamp to histogram outputs so user can find packets in pcaps or equivalent o autoconf change for struct ip_mreqn o print errno on writen fail 2.1.9 o fixed traffic setitimer to use uintmax_t vs int, supporting large values o --bounceback officially supported (including Windows) for repsonsiveness test scenarios o deprecated --bounceback-congest introduced in 2.1.8, replaced by --working-loads o --working-loads support generalized; works with --bounceback, --connect-only & --burst-period o default TCP_NOTSENT_LOWAT with the --working-loads concurrent traffic o add support for GMT time formatting via --utc option o --trip-times will auto set TCP_NOTSENT_LOWAT o CSV output fixes for reverse o CSV output regressions fixed per sum outputs using negative transfer ids o CSV output support with --enhanced o Fix to isoch wait_tick with Windows o fix support for --txstart-time with --bounceback o Add support for summing histograms in histogram sum outputs o Multiple sum report fixes per threading & needing mutex protections o Jitter packet IPG calcluations ignore inter frame gaps o Isoch jitter output to use running value vs sampled value o Add support for --jitter-histograms o man page content updates o output isoch scheduling errors at end of isoch run o PRIdMAX fix for ARM systems o better work around in isochronous with Windows per early return of WaitForSingleObject() o fix SO_BINDTODEVICE regression o fix v6 source port parsing with -B and brackets o fix malloc error with --hideips o fixes for rate limited TCP with --trip-times o add support for TCL_NOTSENT_LOWAT with rate limited TCP o permit key now supports -P using listen() with a backlog, no longer single thread limited o fixes for zero valued permit-key o fixes for multiple permit-key regressions o fix token bucket delay with TCP await write o fix isMulticast test for ipv4 - previous logic indicate true for 240.x.x.x which is not multicast o fix regression on jitter calc - starts on second transit time o add cmsg for loop with UDP rx timestamp, cmsg processing best to use loop w/test o use stdout and exit(0) for -h and -v (vs stderr and exit(1)) o add python facetime scripts o Fix single thread compile breakage o fix windows cross compile o multiple spelling error fixes in comments and man page Signed-off-by: Adolf Belka --- lfs/iperf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lfs/iperf b/lfs/iperf index e3f78173f..31ea623a9 100644 --- a/lfs/iperf +++ b/lfs/iperf @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2023 IPFire Team # +# Copyright (C) 2007-2024 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config SUMMARY = A tool to measure network performance -VER = 2.1.8 +VER = 2.2.0 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 = 7 +PAK_VER = 8 DEPS = @@ -48,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = a3e9f214b4c00911d1d6221f17cf54602169f2787125b54b86486cb07e5dcc118c9a7c0ba743ae643e060a06316e1c4e85d349dd6b97263986e194115c924f0d +$(DL_FILE)_BLAKE2 = 9dacd6146ddff7eda2a3e9402c2d4be06b8793816f93064ada6ab1897ea0e89037ef104a445028376e7be556ea635ab6bea4329664846c8ceae8f221dc162ab8 install : $(TARGET) @@ -82,7 +82,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE) - cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && ./configure \ + --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP)