summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog7
-rw-r--r--debian/control2
-rw-r--r--debian/copyright10
-rw-r--r--debian/patches/003-fix-hyphen-used-as-minus-sign.patch265
-rw-r--r--debian/patches/004-fix-man-break-lines.patch12
-rw-r--r--debian/patches/017-spelling-errors123
6 files changed, 305 insertions, 114 deletions
diff --git a/debian/changelog b/debian/changelog
index 63d7b1d..0871364 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+iperf (2.2.0+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Mon, 27 May 2024 16:50:00 +0200
+
iperf (2.1.9+dfsg-1~progress7.99u1) graograman-backports; urgency=low
* Initial reupload to graograman-backports.
diff --git a/debian/control b/debian/control
index 5569562..1db1179 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ XSBC-Uploaders: Daniel Baumann <daniel.baumann@progress-linux.org>
XSBC-Original-Maintainer: Roberto Lumbreras <rover@debian.org>
Bugs: mailto:maintainers@lists.progress-linux.org
Build-Depends: debhelper-compat (= 13)
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
Homepage: https://sourceforge.net/projects/iperf2/
Rules-Requires-Root: no
Vcs-Browser: https://git.progress-linux.org/packages/graograman-backports/iperf
diff --git a/debian/copyright b/debian/copyright
index 95345eb..afdeea8 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -10,7 +10,7 @@ Files: *
Copyright: 1999-2005 The Board of Trustees of the University of Illinois
License: BSD-3-clause
-Files: include/checksums.h include/histogram.h include/isochronous.hpp include/packet_ring.h include/payloads.h include/pdfs.h src/checkdelay.c src/checkisoch.cpp src/checkpdfs.c src/checksums.c src/histogram.c src/igmp_querier.c src/isochronous.cpp src/packet_ring.c src/pdfs.c src/ReportOutputs.c include/gettcpinfo.h compat/gettcpinfo.c include/dscp.h
+Files: include/checksums.h include/histogram.h include/isochronous.hpp include/packet_ring.h include/payloads.h include/pdfs.h src/checkdelay.c src/checkisoch.cpp src/checkpdfs.c src/checksums.c src/histogram.c src/igmp_querier.c src/isochronous.cpp src/packet_ring.c src/pdfs.c src/ReportOutputs.c include/gettcpinfo.h compat/gettcpinfo.c include/dscp.h flows/flows.py flows/ssh_nodes.py include/iperf_multicast_api.h src/iperf_multicast_api.c
Copyright: 2017-2023 Broadcom Corporation
License: BSD-3-clause
@@ -42,7 +42,7 @@ License: BSD-2-clause
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: aclocal.m4 Makefile.in */Makefile.in
-Copyright: 1994-2018 Free Software Foundation, Inc.
+Copyright: 1994-2021 Free Software Foundation, Inc.
License: FSF-something
This file is free software; the Free Software Foundation
gives unlimited permission to copy and/or distribute it,
@@ -65,6 +65,12 @@ Files: depcomp missing compile
Copyright: 1996-2018 Free Software Foundation, Inc.
License: GPL-2-WithACException
+Files: configure
+Copyright: 1992-2023 Free Software Foundation, Inc.
+License: FSF-permissive2
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+
Files: config.guess config.sub
Copyright: 1992-2021 Free Software Foundation, Inc.
License: GPL-3-WithACException
diff --git a/debian/patches/003-fix-hyphen-used-as-minus-sign.patch b/debian/patches/003-fix-hyphen-used-as-minus-sign.patch
index 22d0a90..1bd9f7d 100644
--- a/debian/patches/003-fix-hyphen-used-as-minus-sign.patch
+++ b/debian/patches/003-fix-hyphen-used-as-minus-sign.patch
@@ -2,10 +2,10 @@ Description: fix hyphen used as minus sign in manpages
Forwarded: not-needed
Author: Roberto Lumbreras <rover@debian.org>
-Index: iperf-2.1.9+dfsg/man/iperf.1
+Index: iperf-2.2.0+dfsg/man/iperf.1
===================================================================
---- iperf-2.1.9+dfsg.orig/man/iperf.1 2023-03-19 22:16:05.726999367 +0100
-+++ iperf-2.1.9+dfsg/man/iperf.1 2023-03-19 22:32:35.634065313 +0100
+--- iperf-2.2.0+dfsg.orig/man/iperf.1 2024-05-27 17:04:04.431662460 +0200
++++ iperf-2.2.0+dfsg/man/iperf.1 2024-05-27 17:15:59.540674747 +0200
@@ -2,13 +2,13 @@
.SH NAME
iperf \- perform network traffic tests using network sockets. Metrics include throughput and latency or link capacity and responsiveness.
@@ -35,14 +35,14 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
available metrics. Note: the metrics are at the socket level reads and writes. They do
not include the overhead associated with lower level protocol layer headers.
.LP
-@@ -28,301 +28,301 @@
+@@ -28,353 +28,353 @@
computers but need not be.
.SH "GENERAL OPTIONS"
.TP
-.BR -b ", " --bandwidth " "
+.BR \-b ", " \-\-bandwidth " "
set the target bandwidth and optional standard deviation per
- \fI<mean>\fR,\fI[<stdev>]\fR (See NOTES for suffixes)
+ \fI<mean>\fR,\fI[<stdev>]\fR (See NOTES for suffixes) Setting the target bitrate on the client to 0 will disable bitrate limits (particularly useful for UDP tests). Will limit the read rate on the server.
.TP
-.BR -e ", " --enhanced " "
+.BR \-e ", " \-\-enhanced " "
@@ -88,9 +88,9 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
output the report or error message to this specified file
.TP
-.BR " --permit-key [=" \fI<value>\fR "]"
--Set a key value that must match for the server to accept traffic on a connection. If the option is given without a value on the server a key value will be autogenerated and displayed in its initial settings report. The lifetime of the key is set using --permit-key-timeout and defaults to twenty seconds. The value is required on clients. The value will also be used as part of the transfer id in reports. The option set on the client but not the server will also cause the server to reject the client's traffic. TCP only, no UDP support.
+-Set a key value that must match for the server to accept traffic on a connection. If the option is given without a value on the server a key value will be autogenerated and displayed in its initial settings report. The lifetime of the key is set using --permit-key-timeout and defaults to twenty seconds. The value on clients required the use of '=', e.g. --permit-key=password (even though it's required command line option.) The server will auto-generate a value if '=password' is not given. The value will also be used as part of the transfer id in reports. The option set on the client but not the server will also cause the server to reject the client's traffic. TCP only, no UDP support.
+.BR " \-\-permit\-key [=" \fI<value>\fR "]"
-+Set a key value that must match for the server to accept traffic on a connection. If the option is given without a value on the server a key value will be autogenerated and displayed in its initial settings report. The lifetime of the key is set using \-\-permit\-key\-timeout and defaults to twenty seconds. The value is required on clients. The value will also be used as part of the transfer id in reports. The option set on the client but not the server will also cause the server to reject the client's traffic. TCP only, no UDP support.
++Set a key value that must match for the server to accept traffic on a connection. If the option is given without a value on the server a key value will be autogenerated and displayed in its initial settings report. The lifetime of the key is set using \-\-permit\-key\-timeout and defaults to twenty seconds. The value on clients required the use of '=', e.g. \-\-permit\-key=password (even though it's required command line option.) The server will auto\-generate a value if '=password' is not given. The value will also be used as part of the transfer id in reports. The option set on the client but not the server will also cause the server to reject the client's traffic. TCP only, no UDP support.
.TP
-.BR -p ", " --port " \fIm\fR[-\fIn\fR]"
-set client or server port(s) to send or listen on per \fIm\fR (default 5001) w/optional port range per m-n (e.g. -p 6002-6008) (see NOTES)
@@ -106,6 +106,10 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR " \-\-sum\-only "
+set the output to sum reports only. Useful for \-P at large values
.TP
+-.BR " --tcp-tx-delay " \fIn\fR,\fI[<prob>]\fR
++.BR " \-\-tcp\-tx\-delay " \fIn\fR,\fI[<prob>]\fR
+ Set TCP_TX_DELAY on the socket. Delay units are milliseconds and probability is prob >= 0 and prob <= 1. Values takes float. See Notes for qdisc requirements.
+ .TP
-.BR -t ", " --time " \fIn\fR"
+.BR \-t ", " \-\-time " \fIn\fR"
time in seconds to listen for new traffic connections, receive traffic or send traffic
@@ -155,10 +159,17 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR \-y ", " \-\-reportstyle " C|c"
if set to C or c report results as CSV (comma separated values)
.TP
+-.BR " --tcp-cca "
++.BR " \-\-tcp\-cca "
+ Set the congestion control algorithm to be used for TCP connections. See SPECIFIC OPTIONS for more
+ .TP
+-.BR " --working-load-cca "
++.BR " \-\-working\-load\-cca "
+ Set the congestion control algorithm to be used for TCP working loads. See SPECIFIC OPTIONS for more
+ .TP
-.BR -Z ", " --tcp-congestion " "
--Set the default congestion-control algorithm to be used for new connections. Platforms must support setsockopt's TCP_CONGESTION. (Notes: See sysctl and tcp_allowed_congestion_control for available options. May require root privileges.)
+.BR \-Z ", " \-\-tcp\-congestion " "
-+Set the default congestion\-control algorithm to be used for new connections. Platforms must support setsockopt's TCP_CONGESTION. (Notes: See sysctl and tcp_allowed_congestion_control for available options. May require root privileges.)
+ Set the default congestion control algorithm to be used for new connections. Platforms must support setsockopt's TCP_CONGESTION. (Notes: See sysctl and tcp_allowed_congestion_control for available options. May require root privileges.)
.SH "SERVER SPECIFIC OPTIONS"
.TP
-.BR -1 ", " --singleclient " "
@@ -200,6 +211,10 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR " \-\-tcp\-rx\-window\-clamp " \fIn\fR[kmKM]
Set the socket option of TCP_WINDOW_CLAMP, units is bytes.
.TP
+-.BR " --test-exchange-timeout " \fI<value>\fR
++.BR " \-\-test\-exchange\-timeout " \fI<value>\fR
+ Set the maximum wait time for a test excahnge in seconds. Defaults to 60 seconds if not set. A value of zero will disable the timeout.
+ .TP
-.BR -t ", " --time " \fIn\fR"
+.BR \-t ", " \-\-time " \fIn\fR"
time in seconds to listen for new traffic connections and/or receive traffic (defaults to infinite)
@@ -238,6 +253,20 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
-.BR -V ", " --ipv6_domain " "
+.BR \-V ", " \-\-ipv6_domain " "
Enable IPv6 reception by setting the domain and socket to AF_INET6 (Can receive on both IPv4 and IPv6)
+ .TP
+-.BR " --tcp-cca "
+-Set the congestion control algorithm to be used for TCP connections - will overide any client side settings (same as --tcp-congestion)
++.BR " \-\-tcp\-cca "
++Set the congestion control algorithm to be used for TCP connections \- will overide any client side settings (same as \-\-tcp\-congestion)
+ .TP
+-.BR " --working-load "
++.BR " \-\-working\-load "
+ Enable support for TCP working loads on UDP traffic streams
+ .TP
+-.BR " --working-load-cca "
+-Set the congestion control algorithm to be used for TCP working loads - will overide any client side settings
++.BR " \-\-working\-load\-cca "
++Set the congestion control algorithm to be used for TCP working loads \- will overide any client side settings
.SH "CLIENT SPECIFIC OPTIONS"
.TP
-.BR -b ", " --bandwidth " \fIn\fR[kmgKMG][,\fIn\fR[kmgKMG]] | \fIn\fR\fR[kmgKMG]pps"
@@ -246,21 +275,30 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
\fIn\fR packets per sec. This may be used with TCP or UDP. Optionally, for variable loads, use format of mean,standard deviation
.TP
-.BR " --bounceback[=" \fIn\fR "]"
--run a TCP bounceback or rps test with optional number writes in a burst per value of n. The default is ten writes every period and the default period is one second (Note: set size with -l or --len which defaults to 100 bytes)
+-run a TCP bounceback or rps test with optional number writes in a burst per value of n. The default is ten writes every period and the default period is one second (Note: set size with --bounceback-request). See NOTES on clock unsynchronized detections.
+.BR " \-\-bounceback[=" \fIn\fR "]"
-+run a TCP bounceback or rps test with optional number writes in a burst per value of n. The default is ten writes every period and the default period is one second (Note: set size with \-l or \-\-len which defaults to 100 bytes)
++run a TCP bounceback or rps test with optional number writes in a burst per value of n. The default is ten writes every period and the default period is one second (Note: set size with \-\-bounceback\-request). See NOTES on clock unsynchronized detections.
.TP
-.BR " --bounceback-hold " \fIn\fR
+.BR " \-\-bounceback\-hold " \fIn\fR
request the server to insert a delay of n milliseconds between its read and write (default is no delay)
.TP
+-.BR " --bounceback-no-quickack "
++.BR " \-\-bounceback\-no\-quickack "
+ request the server not set the TCP_QUICKACK socket option (disabling TCP ACK delays) during a bounceback test (see NOTES)
+ .TP
-.BR " --bounceback-period[=" \fIn\fR "]"
+.BR " \-\-bounceback\-period[=" \fIn\fR "]"
request the client schedule its send(s) every n seconds (default is one second, use zero value for immediate or continuous back to back)
.TP
--.BR " --bounceback-no-quickack "
-+.BR " \-\-bounceback\-no\-quickack "
- request the server not set the TCP_QUICKACK socket option (disabling TCP ACK delays) during a bounceback test (see NOTES)
+-.BR " --bounceback-request " \fIn\fR
++.BR " \-\-bounceback\-request " \fIn\fR
+ set the bounceback request size in units bytes. Default value is 100 bytes.
+ .TP
+-.BR " --bounceback-reply " \fIn\fR
+-set the bounceback reply size in units bytes. This supports asymmetric message sizes between the request and the reply. Default value is zero, which uses the value of --bounceback-request.
++.BR " \-\-bounceback\-reply " \fIn\fR
++set the bounceback reply size in units bytes. This supports asymmetric message sizes between the request and the reply. Default value is zero, which uses the value of \-\-bounceback\-request.
.TP
-.BR " --bounceback-txdelay " \fIn\fR
+.BR " \-\-bounceback\-txdelay " \fIn\fR
@@ -273,29 +311,50 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
-.BR " --burst-size " \fIn\fR
+.BR " \-\-burst\-size " \fIn\fR
Set the burst size in bytes. Defaults to 1M if no value is given.
+ .TP
-.BR -c ", " --client " \fI\fIhost\fR | \fIhost\fR%\fIdevice\fR"
+.BR \-c ", " \-\-client " \fI\fIhost\fR | \fIhost\fR%\fIdevice\fR"
run in client mode, connecting to \fIhost\fR where the optional %dev will SO_BINDTODEVICE that output interface (requires root and see NOTES)
.TP
- .TP
-.BR " --connect-only[=" \fIn\fR "]"
-only perform a TCP connect (or 3WHS) without any data transfer, useful to measure TCP connect() times. Optional value of n is the total number of connects to do (zero is run forever.) Note that -i will rate limit the connects where -P will create bursts and -t will end the client and hence end its connect attempts.
+.BR " \-\-connect\-only[=" \fIn\fR "]"
+only perform a TCP connect (or 3WHS) without any data transfer, useful to measure TCP connect() times. Optional value of n is the total number of connects to do (zero is run forever.) Note that \-i will rate limit the connects where \-P will create bursts and \-t will end the client and hence end its connect attempts.
.TP
--.BR " --connect-retries[= " \fIn\fR "]"
-+.BR " \-\-connect\-retries[= " \fIn\fR "]"
- number of times to retry a TCP connect at the application level. See operating system information on the details of TCP connect related settings.
+-.BR " --connect-retry-time " \fIn\fR
+-time value in seconds for application level retries of TCP connect(s). See --connect-retry-timer for the retry time interval. See operating system information for the details of system or kernel TCP connect related settings. This is an application level retry of the connect() call and not the system level connect.
++.BR " \-\-connect\-retry\-time " \fIn\fR
++time value in seconds for application level retries of TCP connect(s). See \-\-connect\-retry\-timer for the retry time interval. See operating system information for the details of system or kernel TCP connect related settings. This is an application level retry of the connect() call and not the system level connect.
+ .TP
+ .TP
+-.BR " --connect-retry-timer " \fIn\fR
++.BR " \-\-connect\-retry\-timer " \fIn\fR
+ The minimum time value in seconds to wait before retrying the connect. Note: This a minimum time to wait between retries and can be longer dependent upon the system connect time taken. See operating system information for the details of system or kernel TCP connect related settings.
+ .TP
+-.BR " --dscp"
++.BR " \-\-dscp"
+ set the DSCP field (masking ECN bits) in the TOS byte (used by IP_TOS & setsockopt)
+ .TP
.TP
-.BR -d ", " --dualtest " "
+.BR \-d ", " \-\-dualtest " "
Do a bidirectional test simultaneous test using two unidirectional sockets
.TP
--.BR " --fq-rate n[kmgKMG]"
+-.BR " --fq-rate \fIn\fR[kmgKMG]"
-Set a rate to be used with fair-queuing based socket-level pacing, in bytes or bits per second. Only available on platforms supporting the SO_MAX_PACING_RATE socket option. (Note: Here the suffixes indicate bytes/sec or bits/sec per use of uppercase or lowercase, respectively)
-+.BR " \-\-fq\-rate n[kmgKMG]"
++.BR " \-\-fq\-rate \fIn\fR[kmgKMG]"
+Set a rate to be used with fair\-queuing based socket\-level pacing, in bytes or bits per second. Only available on platforms supporting the SO_MAX_PACING_RATE socket option. (Note: Here the suffixes indicate bytes/sec or bits/sec per use of uppercase or lowercase, respectively)
.TP
+-.BR " --fq-rate-step \fIn\fR[kmgKMG]"
+-Set a step of rate to be used with fair-queuing based socket-level pacing, in bytes or bits per second. Step occurs every fq-rate-step-interval (defaults to one second)
++.BR " \-\-fq\-rate\-step \fIn\fR[kmgKMG]"
++Set a step of rate to be used with fair\-queuing based socket\-level pacing, in bytes or bits per second. Step occurs every fq\-rate\-step\-interval (defaults to one second)
+ .TP
+-.BR " --fq-rate-step-interval \fIn\fR"
+-Time in seconds before stepping the fq-rate
++.BR " \-\-fq\-rate\-step\-interval \fIn\fR"
++Time in seconds before stepping the fq\-rate
+ .TP
-.BR " --full-duplex"
+.BR " \-\-full\-duplex"
run a full duplex test, i.e. traffic in both transmit and receive directions using the \fBsame socket\fR
@@ -305,6 +364,10 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR " \-\-histograms[="\fIbinwidth\fR[u],\fIbincount\fR,[\fIlowerci\fR],[\fIupperci\fR] "]"
+enable select()/write() histograms with \-\-tcp\-write\-times or \-\-bounceback (these options are mutually exclusive.) The binning can be modified. Bin widths (default 100 microseconds, append u for microseconds, m for milliseconds) bincount is total bins (default 10000), ci is confidence interval between 0\-100% (default lower 5%, upper 95%, 3 stdev 99.7%)
.TP
+-.BR " --ignore-shutdown"
++.BR " \-\-ignore\-shutdown"
+ don't wait on the TCP shutdown or close (fin & finack) rather use the final write as the ending event
+ .TP
-.BR " --incr-dstip"
-increment the destination ip address when using the parallel (-P) or port range option
+.BR " \-\-incr\-dstip"
@@ -368,6 +431,10 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR " \-\-permit\-key [=" \fI<value>\fR "]"
+Set a key value that must match the server's value (also set with \-\-permit\-key) in order for the server to accept traffic from the client. TCP only, no UDP support.
.TP
+-.BR " --sync-transfer-id"
++.BR " \-\-sync\-transfer\-id"
+ Pass the clients' transfer id(s) to the server so both will use the same id in their respective outputs
+ .TP
-.BR -r ", " --tradeoff " "
-Do a bidirectional test individually - client-to-server, followed by
-a reversed test, server-to-client
@@ -375,6 +442,11 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+Do a bidirectional test individually \- client\-to\-server, followed by
+a reversed test, server\-to\-client
.TP
+-.BR " --tcp-cca "
+-Set the congestion control algorithm to be used for TCP connections & exchange with the server (same as --tcp-congestion)
++.BR " \-\-tcp\-cca "
++Set the congestion control algorithm to be used for TCP connections & exchange with the server (same as \-\-tcp\-congestion)
+ .TP
-.BR " --tcp-quickack "
+.BR " \-\-tcp\-quickack "
Set TCP_QUICKACK on the socket
@@ -444,6 +516,10 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+.BR " \-\-working\-load[="\fBup|down|bidir][\fR,\fIn\fR\fB]\fR
+request a concurrent working load, currently TCP stream(s), defaults to full duplex (or bidir) unless the \fBup\fR or \fBdown\fR option is provided. The number of TCP streams defaults to 1 and can be changed via the n value, e.g. \fB\-\-working\-load=down,4\fR 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.
.TP
+-.BR " --working-load-cca "
++.BR " \-\-working\-load\-cca "
+ Set the congestion control algorithm to be used for TCP working loads, exchange with the server
+ .TP
-.BR -V ", " --ipv6_domain " "
+.BR \-V ", " \-\-ipv6_domain " "
Set the domain to IPv6 (send packets over IPv6)
@@ -458,48 +534,51 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.SH EXAMPLES
.B TCP tests (client)
-
-.B iperf -c <host> -e -i 1
+.B iperf \-c <host> \-e \-i 1
.br
------------------------------------------------------------
.br
-@@ -338,35 +338,35 @@
+@@ -394,51 +394,51 @@
.br
- [ ID] Interval Transfer Bandwidth Write/Err Rtry Cwnd/RTT NetPwr
+ [ ID] Interval Transfer Bandwidth Write/Err Rtry InF(pkts)/Cwnd(pkts)/RTT(var) NetPwr
+ .br
+-[ 1] 0.00-1.00 sec 201 MBytes 1.68 Gbits/sec 1605/0 73 1531K(1083)/1566K(1108)/13336(112) us 15775
++[ 1] 0.00\-1.00 sec 201 MBytes 1.68 Gbits/sec 1605/0 73 1531K(1083)/1566K(1108)/13336(112) us 15775
.br
--[ 3] 0.00-1.00 sec 126 MBytes 1.05 Gbits/sec 1006/0 0 56K/626 us 210636.47
-+[ 3] 0.00\-1.00 sec 126 MBytes 1.05 Gbits/sec 1006/0 0 56K/626 us 210636.47
+-[ 1] 1.00-2.00 sec 101 MBytes 846 Mbits/sec 807/0 0 1670K(1181)/1689K(1195)/14429(83) us 7331
++[ 1] 1.00\-2.00 sec 101 MBytes 846 Mbits/sec 807/0 0 1670K(1181)/1689K(1195)/14429(83) us 7331
.br
--[ 3] 1.00-2.00 sec 138 MBytes 1.15 Gbits/sec 1100/0 299 483K/3884 us 37121.32
-+[ 3] 1.00\-2.00 sec 138 MBytes 1.15 Gbits/sec 1100/0 299 483K/3884 us 37121.32
+-[ 1] 2.00-3.00 sec 101 MBytes 847 Mbits/sec 808/0 0 1790K(1266)/1790K(1266)/15325(97) us 6911
++[ 1] 2.00\-3.00 sec 101 MBytes 847 Mbits/sec 808/0 0 1790K(1266)/1790K(1266)/15325(97) us 6911
.br
--[ 3] 2.00-3.00 sec 137 MBytes 1.15 Gbits/sec 1093/0 24 657K/5087 us 28162.31
-+[ 3] 2.00\-3.00 sec 137 MBytes 1.15 Gbits/sec 1093/0 24 657K/5087 us 28162.31
+-[ 1] 3.00-4.00 sec 134 MBytes 1.13 Gbits/sec 1075/0 0 1858K(1314)/1892K(1338)/16188(99) us 8704
++[ 1] 3.00\-4.00 sec 134 MBytes 1.13 Gbits/sec 1075/0 0 1858K(1314)/1892K(1338)/16188(99) us 8704
.br
--[ 3] 3.00-4.00 sec 126 MBytes 1.06 Gbits/sec 1010/0 284 294K/2528 us 52366.58
-+[ 3] 3.00\-4.00 sec 126 MBytes 1.06 Gbits/sec 1010/0 284 294K/2528 us 52366.58
+-[ 1] 4.00-5.00 sec 101 MBytes 846 Mbits/sec 807/0 1 1350K(955)/1370K(969)/11620(98) us 9103
++[ 1] 4.00\-5.00 sec 101 MBytes 846 Mbits/sec 807/0 1 1350K(955)/1370K(969)/11620(98) us 9103
.br
--[ 3] 4.00-5.00 sec 117 MBytes 980 Mbits/sec 935/0 373 487K/2025 us 60519.66
-+[ 3] 4.00\-5.00 sec 117 MBytes 980 Mbits/sec 935/0 373 487K/2025 us 60519.66
+-[ 1] 5.00-6.00 sec 121 MBytes 1.01 Gbits/sec 966/0 0 1422K(1006)/1453K(1028)/12405(118) us 10207
++[ 1] 5.00\-6.00 sec 121 MBytes 1.01 Gbits/sec 966/0 0 1422K(1006)/1453K(1028)/12405(118) us 10207
.br
--[ 3] 5.00-6.00 sec 144 MBytes 1.20 Gbits/sec 1149/0 2 644K/3570 us 42185.36
-+[ 3] 5.00\-6.00 sec 144 MBytes 1.20 Gbits/sec 1149/0 2 644K/3570 us 42185.36
+-[ 1] 6.00-7.00 sec 115 MBytes 962 Mbits/sec 917/0 0 1534K(1085)/1537K(1087)/13135(105) us 9151
++[ 1] 6.00\-7.00 sec 115 MBytes 962 Mbits/sec 917/0 0 1534K(1085)/1537K(1087)/13135(105) us 9151
.br
--[ 3] 6.00-7.00 sec 126 MBytes 1.06 Gbits/sec 1011/0 112 582K/5281 us 25092.56
-+[ 3] 6.00\-7.00 sec 126 MBytes 1.06 Gbits/sec 1011/0 112 582K/5281 us 25092.56
+-[ 1] 7.00-8.00 sec 101 MBytes 844 Mbits/sec 805/0 0 1532K(1084)/1580K(1118)/13582(136) us 7769
++[ 1] 7.00\-8.00 sec 101 MBytes 844 Mbits/sec 805/0 0 1532K(1084)/1580K(1118)/13582(136) us 7769
.br
--[ 3] 7.00-8.00 sec 110 MBytes 922 Mbits/sec 879/0 56 279K/1957 us 58871.89
-+[ 3] 7.00\-8.00 sec 110 MBytes 922 Mbits/sec 879/0 56 279K/1957 us 58871.89
+-[ 1] 8.00-9.00 sec 134 MBytes 1.13 Gbits/sec 1076/0 0 1603K(1134)/1619K(1145)/13858(105) us 10177
++[ 1] 8.00\-9.00 sec 134 MBytes 1.13 Gbits/sec 1076/0 0 1603K(1134)/1619K(1145)/13858(105) us 10177
.br
--[ 3] 8.00-9.00 sec 127 MBytes 1.06 Gbits/sec 1014/0 46 483K/3372 us 39414.89
-+[ 3] 8.00\-9.00 sec 127 MBytes 1.06 Gbits/sec 1014/0 46 483K/3372 us 39414.89
+-[ 1] 9.00-10.00 sec 101 MBytes 846 Mbits/sec 807/0 0 1602K(1133)/1650K(1167)/14113(105) us 7495
++[ 1] 9.00\-10.00 sec 101 MBytes 846 Mbits/sec 807/0 0 1602K(1133)/1650K(1167)/14113(105) us 7495
.br
--[ 3] 9.00-10.00 sec 132 MBytes 1.11 Gbits/sec 1054/0 0 654K/3380 us 40872.75
-+[ 3] 9.00\-10.00 sec 132 MBytes 1.11 Gbits/sec 1054/0 0 654K/3380 us 40872.75
+-[ 1] 10.00-10.78 sec 128 KBytes 1.34 Mbits/sec 1/0 0 0K(0)/1681K(1189)/14424(111) us 11.64
++[ 1] 10.00\-10.78 sec 128 KBytes 1.34 Mbits/sec 1/0 0 0K(0)/1681K(1189)/14424(111) us 11.64
+ .br
+-[ 1] 0.00-10.78 sec 1.18 GBytes 941 Mbits/sec 9674/0 74 0K(0)/1681K(1189)/14424(111) us 8154
++[ 1] 0.00\-10.78 sec 1.18 GBytes 941 Mbits/sec 9674/0 74 0K(0)/1681K(1189)/14424(111) us 8154
.br
--[ 3] 0.00-10.00 sec 1.25 GBytes 1.07 Gbits/sec 10251/0 1196 -1K/3170 us 42382.03
-+[ 3] 0.00\-10.00 sec 1.25 GBytes 1.07 Gbits/sec 10251/0 1196 \-1K/3170 us 42382.03
.TP
-.B where (per -e,)
@@ -513,16 +592,22 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.B Rtry
Total number of TCP retries
-@@ -379,7 +379,7 @@
+ .br
+ .B Inf(pkts)/Cwnd/RTT(var) (*nix only)
+-TCP byes and packets inflight, congestion window and round trip time (sampled where NA indicates no value). Infight is in units of Kbytes and packets where packets_in_flight = (tcp_info_buf.tcpi_unacked - tcp_info_buf.tcpi_sacked - tcp_info_buf.tcpi_lost + tcp_info_buf.tcpi_retrans) RTT (var) is RTT variance.
++TCP byes and packets inflight, congestion window and round trip time (sampled where NA indicates no value). Infight is in units of Kbytes and packets where packets_in_flight = (tcp_info_buf.tcpi_unacked \- tcp_info_buf.tcpi_sacked \- tcp_info_buf.tcpi_lost + tcp_info_buf.tcpi_retrans) RTT (var) is RTT variance.
+ .br
+ .B NetPwr (*nix only)
+ Network power defined as (throughput / RTT)
.PP
-
--.B iperf -c host.doamin.com -i 1 --bounceback --permit-key=mytest --hide-ips
-+.B iperf \-c host.doamin.com \-i 1 \-\-bounceback \-\-permit\-key=mytest \-\-hide\-ips
+ .TP
+-.B iperf -c host.domain.com -i 1 --bounceback --permit-key=mytest --hide-ips
++.B iperf \-c host.domain.com \-i 1 \-\-bounceback \-\-permit\-key=mytest \-\-hide\-ips
.br
------------------------------------------------------------
.br
-@@ -387,7 +387,7 @@
+@@ -446,7 +446,7 @@
.br
Bursting: 100 Byte writes 10 times every 1.00 second(s)
.br
@@ -531,7 +616,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
TCP window size: 16.0 KByte (default)
.br
-@@ -397,29 +397,29 @@
+@@ -456,29 +456,29 @@
.br
[ ID] Interval Transfer Bandwidth BB cnt=avg/min/max/stdev Rtry Cwnd/RTT RPS
.br
@@ -573,7 +658,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.TP
-@@ -441,7 +441,7 @@
+@@ -500,7 +500,7 @@
.B TCP tests (server)
.B
@@ -582,7 +667,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -457,43 +457,43 @@
+@@ -516,43 +516,43 @@
.br
[ ID] Interval Transfer Bandwidth Reads Dist(bin=1.0K)
.br
@@ -641,7 +726,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -503,35 +503,35 @@
+@@ -562,35 +562,35 @@
.br
------------------------------------------------------------
.br
@@ -691,7 +776,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.B Burst Latency
One way TCP write() to read() latency in mean/minimum/maximum/standard deviation format
(Note: requires the client's and server's system clocks to be
-@@ -546,16 +546,16 @@
+@@ -605,16 +605,16 @@
.br
.B inP
inP, short for in progress, is the average number of bytes in progress or in flight. This is taken from the application level write to read perspective. Note this is
@@ -711,7 +796,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -567,26 +567,26 @@
+@@ -626,26 +626,26 @@
.br
------------------------------------------------------------
.br
@@ -745,7 +830,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -602,36 +602,36 @@
+@@ -661,36 +661,36 @@
.br
[ ID] Interval Transfer Bandwidth Write/Err PPS
.br
@@ -795,7 +880,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.B PPS
Transmit packet rate in packets per second
-@@ -639,7 +639,7 @@
+@@ -698,7 +698,7 @@
.PP
.B UDP tests (server)
@@ -804,7 +889,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -651,37 +651,37 @@
+@@ -710,37 +710,37 @@
.br
------------------------------------------------------------
.br
@@ -856,7 +941,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.B Latency
End to end latency in mean/minimum/maximum/standard deviation format
(Note: requires the client's and server's system clocks to be
-@@ -692,7 +692,7 @@
+@@ -751,7 +751,7 @@
Received packet rate in packets per second
.br
.B inP
@@ -865,7 +950,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.B NetPwr
Network power defined as (throughput / latency)
-@@ -701,7 +701,7 @@
+@@ -760,7 +760,7 @@
.B Isochronous UDP tests (client)
@@ -874,7 +959,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -717,36 +717,36 @@
+@@ -776,36 +776,36 @@
.br
[ ID] Interval Transfer Bandwidth Write/Err PPS frames:tx/missed/slips
.br
@@ -924,7 +1009,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.B frames:tx/missed/slips
Total number of isochronous frames or bursts. Total number of frame ids not sent. Total number of frame slips
-@@ -754,7 +754,7 @@
+@@ -813,7 +813,7 @@
.B Isochronous UDP tests (server)
@@ -933,7 +1018,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
------------------------------------------------------------
.br
-@@ -766,26 +766,26 @@
+@@ -825,26 +825,26 @@
.br
------------------------------------------------------------
.br
@@ -967,18 +1052,17 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
Latency histogram for frames
-@@ -804,35 +804,35 @@
+@@ -863,36 +863,36 @@
based, e.g. 1k = 1000, 1K = 1024, 1m = 1,000,000 and 1M = 1,048,576
.P
.B Rate limiting:
-The -b option supports read and write rate limiting at the application level. The -b option
+The \-b option supports read and write rate limiting at the application level. The \-b option
on the client also supports variable offered loads through the <mean>,<standard deviation> format, e.g.
---b 100m,10m. The distribution used is log normal. Similar for the isochronous
+ -b 100m,10m. The distribution used is log normal. Similar for the isochronous
-option. The -b on the server rate limits the reads. Socket based pacing is also
-supported using the --fq-rate long option. This will work with the --reverse
-and --full-duplex options as well.
-+\-b 100m,10m. The distribution used is log normal. Similar for the isochronous
+option. The \-b on the server rate limits the reads. Socket based pacing is also
+supported using the \-\-fq\-rate long option. This will work with the \-\-reverse
+and \-\-full\-duplex options as well.
@@ -1010,6 +1094,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
Network Time Protocol (NTP) or Precision Time Protocol (PTP) are commonly used for
this. The reference clock(s) error and the synchronization protocols will affect
the accuracy of any end to end latency measurements.
+ .B See bounceback NOTES section on clock unsynchronized detections
.P
-.B Histograms and non-parametric statistics:
-The --histograms option provides the raw data where nothing is averaged. This is useful for non-parametric
@@ -1018,7 +1103,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
distributions, e.g. latency. The standard output does use the central limit theorem to produce average,
minimum, maximum and variation. This loses information when the underlining distribution is not Gaussian.
Histograms are supported so this information is made available.
-@@ -841,7 +841,7 @@
+@@ -901,7 +901,7 @@
Below is an example bounceback histogram and how to interpret it
.br
@@ -1027,7 +1112,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
bin(w=100us):cnt(50)=35:1,37:1,39:1,40:3,41:4,42:1,43:1,52:1,57:1,65:1,68:1,69:1,70:1,72:2,74:1,75:5,78:1,79:2,80:4,81:3,82:1,83:1,88:2,90:2,92:1,94:1,117:1,126:1,369:1,1000:1,1922:1,3710:1 (5.00/95.00/99.7%=39/1000/3710,Outliers=4,obl/obu=0/0)
.TP
-@@ -849,10 +849,10 @@
+@@ -909,10 +909,10 @@
.B [ 1]
The traffic thread number
.br
@@ -1040,7 +1125,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
BB8 is the histogram name and the PDF indicates a histogram raw output
.br
.B bin(w=100us)
-@@ -862,7 +862,7 @@
+@@ -922,7 +922,7 @@
provides the total number of samples in the histogram. There are 50 samples in this histogram
.br
.B 35:1
@@ -1049,7 +1134,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.B 5.00/95.00/99.7%=39/1000/3710
provides the bin confidence intervals (per the integrated cumulative distribution function.) 5% landed in 3.9 ms or better (recall bin number multiplies by bin width.) 95% landed in 10 ms or better. 99.7% or 3 standards of deviation landed in 37.1 ms or better
-@@ -876,87 +876,87 @@
+@@ -936,99 +936,99 @@
.P
.B
Binding
@@ -1062,10 +1147,9 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
let the operating system choose the source ip address use 0.0.0.0, e.g.
-\fB-B 0.0.0.0:6001\fR. On the client, the -B option affects the \fBbind\fR(2)
-system call, and will set the source ip address and the source port, e.g. iperf -c <host>
---B 192.168.100.2:6002. This controls the packet's source values but not routing.
+\fB\-B 0.0.0.0:6001\fR. On the client, the \-B option affects the \fBbind\fR(2)
+system call, and will set the source ip address and the source port, e.g. iperf \-c <host>
-+\-B 192.168.100.2:6002. This controls the packet's source values but not routing.
+ -B 192.168.100.2:6002. This controls the packet's source values but not routing.
These can be confusing in that a route or device lookup may not
be that of the device with the configured source IP.
-So, for example, if the IP address of eth0 is used for -B and the
@@ -1074,9 +1158,8 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
the output interface to be eth1, then the host will send the packet
out device eth1 while using the source IP address of eth0 in the packet.
To affect the physical output interface (e.g. dual homed systems) either use
---c <host>%<dev> (requires root) which bypasses this host route table lookup,
+ -c <host>%<dev> (requires root) which bypasses this host route table lookup,
-or configure policy routing per each -B source address and set the
-+\-c <host>%<dev> (requires root) which bypasses this host route table lookup,
+or configure policy routing per each \-B source address and set the
output interface appropriately in the policy routes. On the server or receive,
-only packets destined to -B IP address will be received. It's also useful
@@ -1142,6 +1225,21 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
+and before the hold delay call. It's also applied on the client. Use \-\-bounceback\-no\-quickack
to have TCP run in default mode per the socket (which is most likely TCP_QUICKACK being off.)
.P
+-.B Unsynchronized clock detections with --bounceback and --trip-times (as of March 19, 2023):
++.B Unsynchronized clock detections with \-\-bounceback and \-\-trip\-times (as of March 19, 2023):
+ Iperf 2 can detect when the clocks have synchronization errors larger than the bounceback RTT. This is done via the client's send timestamp (clock A),
+ the server's recieve timestamp (clock B) and the client's final receive timestamp (clock A.) The check, done on each bounceback, is
+ write(A) < read(B) < read(A). This is supported in bounceback tests with
+-a slight adjustment: clock write(A) < clock read(B) < clock read(A) - (clock write(B) - clock read(B)). All the
++a slight adjustment: clock write(A) < clock read(B) < clock read(A) \- (clock write(B) \- clock read(B)). All the
+ timestamps are sampled on the initial write or read (not the completion of.)
+ Error output looks as shown below and there is no output for a zero value.
+
+ .br
+-[ 1] 0.00-10.00 sec Clock sync error count = 100
++[ 1] 0.00\-10.00 sec Clock sync error count = 100
+ .br
+ .P
.B TCP Connect times:
The TCP connect time (or three way handshake) can be seen on the iperf
-client when the -e (--enhanced) option is set. Look for the
@@ -1171,7 +1269,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.P
\fBLittle's Law\fR in queuing theory is a theorem that determines the average number of items (L) in a stationary queuing system based on the average waiting time (W) of an item within a system and the average number of items arriving at the system per unit of time (lambda). Mathematically, it's L = lambda * W. As used here, the units are bytes. The arrival rate is taken from the writes.
.P
-@@ -968,23 +968,23 @@
+@@ -1040,21 +1040,21 @@
For UDP the delay is the end/end latency.
Don't confuse this with the physics definition of power (delta
energy/delta time) but more of a measure of a desirable property
@@ -1187,6 +1285,19 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.B TCP_QUICKACK:
The TCP_QUICKACK socket option will be applied after every read() on the server such that TCP acks are sent immediately, rather than possibly delayed.
.P
+-.B TCP_TX_DELAY (--tcp-tx-delay):
++.B TCP_TX_DELAY (\-\-tcp\-tx\-delay):
+ Iperf 2 flows can set different delays, simulating real world conditions. Units is microseconds.
+-This \fBrequires FQ packet scheduler\fR or a EDT-enabled NIC.
++This \fBrequires FQ packet scheduler\fR or a EDT\-enabled NIC.
+ Note that FQ packet scheduler limits might need some tweaking
+- man tc-fq
++ man tc\-fq
+ PARAMETERS
+ limit
+ Hard limit on the real queue size. When this limit is
+@@ -1073,11 +1073,11 @@
+ .P
.B Fast Sampling:
Use
-.B ./configure --enable-fastsampling
@@ -1200,7 +1311,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
and then compile from source to enable both asserts and advanced debugging of the tool itself.
.SH BUGS
See https://sourceforge.net/p/iperf2/tickets/
-@@ -996,7 +996,7 @@
+@@ -1089,7 +1089,7 @@
Kevin Gibbs,
John Estabrook <jestabro at ncsa.uiuc.edu>,
Andrew Gallatin <gallatin at gmail.com>,
diff --git a/debian/patches/004-fix-man-break-lines.patch b/debian/patches/004-fix-man-break-lines.patch
index fd329d1..1026b78 100644
--- a/debian/patches/004-fix-man-break-lines.patch
+++ b/debian/patches/004-fix-man-break-lines.patch
@@ -2,11 +2,11 @@ Description: fix cannot break lines error
Forwarded: not-needed
Author: Roberto Lumbreras <rover@debian.org>
-Index: iperf-2.1.9+dfsg/man/iperf.1
+Index: iperf-2.2.0+dfsg/man/iperf.1
===================================================================
---- iperf-2.1.9+dfsg.orig/man/iperf.1 2023-03-19 22:33:01.837934707 +0100
-+++ iperf-2.1.9+dfsg/man/iperf.1 2023-03-20 01:25:22.933621642 +0100
-@@ -419,7 +419,7 @@
+--- iperf-2.2.0+dfsg.orig/man/iperf.1 2024-05-27 17:16:10.304629523 +0200
++++ iperf-2.2.0+dfsg/man/iperf.1 2024-05-27 17:16:10.300629540 +0200
+@@ -478,7 +478,7 @@
.br
[mytest(1)] 0.00\-10.02 sec 19.5 KBytes 16.0 Kbits/sec 100=10.878/9.651/19.597/1.743 ms 0 14K/11676 us 91 rps
.br
@@ -15,7 +15,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.br
.TP
-@@ -772,9 +772,9 @@
+@@ -831,9 +831,9 @@
.br
[ 3] 0.00\-9.98 sec 120 MBytes 101 Mbits/sec 0.010 ms 196/85867 (0.23%) 0.665/ 0.083/ 1.318/ 0.284 ms 8585 pps 18903.85 601/1
.br
@@ -27,7 +27,7 @@ Index: iperf-2.1.9+dfsg/man/iperf.1
.TP
.B where,
-@@ -843,7 +843,7 @@
+@@ -903,7 +903,7 @@
.br
[ 1] 0.00\-5.10 sec BB8\-PDF:
.br
diff --git a/debian/patches/017-spelling-errors b/debian/patches/017-spelling-errors
index 5dafbfb..ace0914 100644
--- a/debian/patches/017-spelling-errors
+++ b/debian/patches/017-spelling-errors
@@ -2,26 +2,11 @@ Description: spelling errors in binary (lintian)
fix spelling errors / typos
Author: Roberto Lumbreras
-Index: iperf-2.1.9+dfsg/src/socket_io.c
+Index: iperf-2.2.0+dfsg/src/Client.cpp
===================================================================
---- iperf-2.1.9+dfsg.orig/src/socket_io.c 2023-03-19 22:35:11.629287791 +0100
-+++ iperf-2.1.9+dfsg/src/socket_io.c 2023-03-20 01:01:33.235639884 +0100
-@@ -212,8 +212,8 @@
- // check for a fatal error vs an error that should retry
- if ((errno != EINTR) && (errno != EAGAIN) && (errno != EWOULDBLOCK)) {
- nwritten = inLen - nleft;
-- fprintf(stdout, "FAIL: writen errno = %d\n", errno);
-- WARN_errno(1, "writen fatal");
-+ fprintf(stdout, "FAIL: written errno = %d\n", errno);
-+ WARN_errno(1, "written fatal");
- sInterupted = 1;
- goto DONE;
- }
-Index: iperf-2.1.9+dfsg/src/Client.cpp
-===================================================================
---- iperf-2.1.9+dfsg.orig/src/Client.cpp 2023-03-19 22:35:11.629287791 +0100
-+++ iperf-2.1.9+dfsg/src/Client.cpp 2023-03-19 23:20:45.991993974 +0100
-@@ -994,7 +994,7 @@
+--- iperf-2.2.0+dfsg.orig/src/Client.cpp 2024-05-27 17:19:13.547858514 +0200
++++ iperf-2.2.0+dfsg/src/Client.cpp 2024-05-27 17:19:13.547858514 +0200
+@@ -1157,7 +1157,7 @@
reportstruct->sentTime = reportstruct->packetTime;
reportstruct->packetLen = writen(mySocket, mSettings->mBuf, writelen, &reportstruct->writecnt);
if (reportstruct->packetLen <= 0) {
@@ -30,12 +15,94 @@ Index: iperf-2.1.9+dfsg/src/Client.cpp
if (reportstruct->packetLen == 0) {
peerclose = true;
}
-@@ -1076,7 +1076,7 @@
- } else if (reportstruct->packetLen == 0) {
- peerclose = true;
- } else if (reportstruct->packetLen != writelen) {
-- WARN_errno(1, "tcp bounceback writen incomplete");
-+ WARN_errno(1, "tcp bounceback written incomplete");
- peerclose = true;
- } else {
- // retry the write
+@@ -1261,7 +1261,7 @@
+ }
+ write_offset += n;
+ if ((write_offset < writelen) && InProgress()) {
+- WARN_errno(1, "tcp bounceback writen incomplete");
++ WARN_errno(1, "tcp bounceback written incomplete");
+ PostNullEvent(false,false);
+ goto RETRY_WRITE;
+ }
+Index: iperf-2.2.0+dfsg/src/socket_io.c
+===================================================================
+--- iperf-2.2.0+dfsg.orig/src/socket_io.c 2024-05-27 17:19:13.547858514 +0200
++++ iperf-2.2.0+dfsg/src/socket_io.c 2024-05-27 17:19:13.547858514 +0200
+@@ -211,7 +211,7 @@
+ // check for a fatal error vs an error that should retry
+ if ((errno != EINTR) && (errno != EAGAIN) && (errno != EWOULDBLOCK)) {
+ nwritten = inLen - nleft;
+- fprintf(stdout, "FAIL: writen errno = %d (bytes=%d)\n", errno, nwritten);
++ fprintf(stdout, "FAIL: written errno = %d (bytes=%d)\n", errno, nwritten);
+ // sInterupted = 1;
+ goto DONE;
+ }
+Index: iperf-2.2.0+dfsg/src/Server.cpp
+===================================================================
+--- iperf-2.2.0+dfsg.orig/src/Server.cpp 2024-04-07 05:47:17.000000000 +0200
++++ iperf-2.2.0+dfsg/src/Server.cpp 2024-05-27 17:23:21.590811724 +0200
+@@ -400,7 +400,7 @@
+ if (n < 0) {
+ if (FATALTCPWRITERR(errno)) {
+ reportstruct->err_readwrite=WriteErrFatal;
+- FAIL_errno(1, "tcp bounceback writen", mSettings);
++ FAIL_errno(1, "tcp bounceback written", mSettings);
+ peerclose = true;
+ break;
+ } else {
+@@ -410,7 +410,7 @@
+ }
+ write_offset += n;
+ if (write_offset < writelen) {
+- WARN_errno(1, "tcp bounceback writen incomplete");
++ WARN_errno(1, "tcp bounceback written incomplete");
+ PostNullEvent();
+ continue;
+ }
+@@ -782,7 +782,7 @@
+ }
+ }
+ } else if (ctrunc_warn_enable && mSettings->mTransferIDStr) {
+- fprintf(stderr, "%sWARN: recvmsg MSG_CTRUNC occured\n", mSettings->mTransferIDStr);
++ fprintf(stderr, "%sWARN: recvmsg MSG_CTRUNC occurred\n", mSettings->mTransferIDStr);
+ ctrunc_warn_enable = false;
+ }
+ }
+Index: iperf-2.2.0+dfsg/man/iperf.1
+===================================================================
+--- iperf-2.2.0+dfsg.orig/man/iperf.1 2024-05-27 17:19:11.407867525 +0200
++++ iperf-2.2.0+dfsg/man/iperf.1 2024-05-27 17:25:35.362245740 +0200
+@@ -153,7 +153,7 @@
+ Set the socket option of TCP_WINDOW_CLAMP, units is bytes.
+ .TP
+ .BR " \-\-test\-exchange\-timeout " \fI<value>\fR
+-Set the maximum wait time for a test excahnge in seconds. Defaults to 60 seconds if not set. A value of zero will disable the timeout.
++Set the maximum wait time for a test exchange in seconds. Defaults to 60 seconds if not set. A value of zero will disable the timeout.
+ .TP
+ .BR \-t ", " \-\-time " \fIn\fR"
+ time in seconds to listen for new traffic connections and/or receive traffic (defaults to infinite)
+@@ -184,13 +184,13 @@
+ Enable IPv6 reception by setting the domain and socket to AF_INET6 (Can receive on both IPv4 and IPv6)
+ .TP
+ .BR " \-\-tcp\-cca "
+-Set the congestion control algorithm to be used for TCP connections \- will overide any client side settings (same as \-\-tcp\-congestion)
++Set the congestion control algorithm to be used for TCP connections \- will override any client side settings (same as \-\-tcp\-congestion)
+ .TP
+ .BR " \-\-working\-load "
+ Enable support for TCP working loads on UDP traffic streams
+ .TP
+ .BR " \-\-working\-load\-cca "
+-Set the congestion control algorithm to be used for TCP working loads \- will overide any client side settings
++Set the congestion control algorithm to be used for TCP working loads \- will override any client side settings
+ .SH "CLIENT SPECIFIC OPTIONS"
+ .TP
+ .BR \-b ", " \-\-bandwidth " \fIn\fR[kmgKMG][,\fIn\fR[kmgKMG]] | \fIn\fR\fR[kmgKMG]pps"
+@@ -1000,7 +1000,7 @@
+ .P
+ .B Unsynchronized clock detections with \-\-bounceback and \-\-trip\-times (as of March 19, 2023):
+ Iperf 2 can detect when the clocks have synchronization errors larger than the bounceback RTT. This is done via the client's send timestamp (clock A),
+-the server's recieve timestamp (clock B) and the client's final receive timestamp (clock A.) The check, done on each bounceback, is
++the server's receive timestamp (clock B) and the client's final receive timestamp (clock A.) The check, done on each bounceback, is
+ write(A) < read(B) < read(A). This is supported in bounceback tests with
+ a slight adjustment: clock write(A) < clock read(B) < clock read(A) \- (clock write(B) \- clock read(B)). All the
+ timestamps are sampled on the initial write or read (not the completion of.)