summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:20:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:20:56 +0000
commitae5ccfbacfb28412677c8cbacdf756247128d96b (patch)
tree66235d2361a30d1b43182f13ee431f20be8dd30f /debian
parentAdding upstream version 2.1.9+dfsg. (diff)
downloadiperf-ae5ccfbacfb28412677c8cbacdf756247128d96b.tar.xz
iperf-ae5ccfbacfb28412677c8cbacdf756247128d96b.zip
Adding debian version 2.1.9+dfsg-1.debian/2.1.9+dfsg-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog247
-rw-r--r--debian/clean1
-rw-r--r--debian/control33
-rw-r--r--debian/copyright203
-rw-r--r--debian/iperf.dirs1
-rw-r--r--debian/iperf.doc-base10
-rw-r--r--debian/iperf.docs1
-rw-r--r--debian/iperf.install4
-rw-r--r--debian/iperf.lintian-overrides1
-rw-r--r--debian/patches/003-fix-hyphen-used-as-minus-sign.patch1211
-rw-r--r--debian/patches/004-fix-man-break-lines.patch38
-rw-r--r--debian/patches/013-delete-service.patch20
-rw-r--r--debian/patches/017-spelling-errors41
-rw-r--r--debian/patches/series4
-rwxr-xr-xdebian/rules11
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/lintian-overrides2
-rw-r--r--debian/ufw/iperf4
-rw-r--r--debian/watch3
19 files changed, 1836 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..07745a5
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,247 @@
+iperf (2.1.9+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ * Closes: #1028318
+
+ -- Roberto Lumbreras <rover@debian.org> Sun, 28 May 2023 11:08:43 +0200
+
+iperf (2.1.8+dfsg-1) unstable; urgency=low
+
+ * New upstream version.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Wed, 04 Jan 2023 12:07:46 +0100
+
+iperf (2.1.7+dfsg1-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Roberto Lumbreras <rover@debian.org> Wed, 27 Apr 2022 17:00:23 +0200
+
+iperf (2.1.5+dfsg1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 10 Dec 2021 00:47:56 +0100
+
+iperf (2.1.2+dfsg1-1) unstable; urgency=low
+
+ * New upstream version. (Closes: #983201)
+ * Updated standards.
+ * Add ufw profile. (Closes: #990045)
+ * Old bugs fixed by this / previous versions:
+ (Closes: #776282, #760590, #759225, #965974, #687424, #267592)
+
+ -- Roberto Lumbreras <rover@debian.org> Sat, 26 Jun 2021 13:06:35 +0200
+
+iperf (2.0.14a+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Sun, 04 Oct 2020 17:35:02 +0200
+
+iperf (2.0.13+dfsg1-1) unstable; urgency=low
+
+ * New upstream version. (Closes: #930386, #930390)
+ * Updated standards.
+ * Use upstream fix for compilation on kfreebsd-amd64.
+ * Use only debhelper, compat 11.
+ * Fix building without -g flag.
+ * Updated debian/copyright.
+
+ -- Roberto Lumbreras <rover@debian.org> Sat, 15 Jun 2019 23:18:33 +0200
+
+iperf (2.0.12+dfsg1-2) unstable; urgency=low
+
+ * Fix compilation on kfreebsd-amd64.
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 13 Jul 2018 08:48:41 +0200
+
+iperf (2.0.12+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 12 Jul 2018 21:18:53 +0200
+
+iperf (2.0.10+dfsg1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Fixed homepage in copyright file.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 17 Aug 2017 17:08:16 +0200
+
+iperf (2.0.9+dfsg1-1) unstable; urgency=low
+
+ * New upstream version, including fix for FTBFS with gcc 6. (Closes: #831180)
+ * Updated standards.
+ * Updated homepage and watch file.
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 15 Jul 2016 13:05:06 +0200
+
+iperf (2.0.5+dfsg1-2) unstable; urgency=low
+
+ * Fix hardening building.
+
+ -- Roberto Lumbreras <rover@debian.org> Tue, 15 Jul 2014 08:29:54 +0200
+
+iperf (2.0.5+dfsg1-1) unstable; urgency=low
+
+ * Repackaged tarball to delete */service.[ch] (unused) files with
+ restrictive copyright.
+ * Machine readable debian/copyright.
+ * Updated standards.
+ * Fix 100% CPU consumption bug in daemon mode.
+ * Set traffic class for IPv6.
+
+ -- Roberto Lumbreras <rover@debian.org> Sun, 13 Jul 2014 23:56:57 +0200
+
+iperf (2.0.5-3) unstable; urgency=low
+
+ * ACK NMU.
+ * Fix improper check for IPv6 family when sending multicast
+ (Closes: #674288).
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 24 May 2012 19:00:01 +0200
+
+iperf (2.0.5-2.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fix FTBFS -Werror=format-security (Closes: #643408)
+
+ -- Simon Paillard <spaillard@debian.org> Tue, 15 Nov 2011 19:42:14 +0100
+
+iperf (2.0.5-2) unstable; urgency=low
+
+ * Fix server mode exiting after TCP bidirectional test.
+
+ -- Roberto Lumbreras <rover@debian.org> Sat, 08 Jan 2011 21:24:28 +0100
+
+iperf (2.0.5-1) unstable; urgency=low
+
+ * New upstream version.
+ * Updated standards.
+ * Deleted patches merged by upstream:
+ 000-Iperf_Fix-CPU-Usage.diff
+ 004-svn-r43-ro.patch
+ 006-iperf-die-on-connect-fail.patch
+ * Dropped probably unnecesary patches:
+ 008-numofreport.patch
+ 009-delayloop.patch
+ * Fix 'recieve' spelling-error-in-binary (lintian).
+
+ -- Roberto Lumbreras <rover@debian.org> Sun, 26 Dec 2010 16:29:07 +0100
+
+iperf (2.0.4-5) unstable; urgency=low
+
+ * Fix deadlock while acting as server with multiple clients (thanks Kirby
+ Zhou). Add patches: 007-iperf-reporter-deadlock, 008-numofreport,
+ 009-delayloop, modify 004-svn-r43.patch deleting the nanonsleep() bits.
+ (Closes: #533592)
+
+ -- Roberto Lumbreras <rover@debian.org> Mon, 06 Jul 2009 12:32:03 +0200
+
+iperf (2.0.4-4) unstable; urgency=low
+
+ * Die instead of warn on bind/connect fatal errors (thanks to Deny IP Any
+ Any). (closes: #517239, #518033)
+ * Add missing comma after ${shlibs:Depends} in the control file. Add
+ Homepage in control file. (thanks to lintian).
+
+ -- Roberto Lumbreras <rover@debian.org> Wed, 04 Mar 2009 12:46:12 +0100
+
+iperf (2.0.4-3) unstable; urgency=low
+
+ * Merged in svn r43 including the following changes:
+ - print report headers only once
+ ==> drop debian/patches/002-*.patch doing the same.
+ - replace costly gettimeofday() with nanosleep()
+ ==> should lower the CPU usage in UDP mode.
+ * Re-added the Ingo Molnar patch changing thread_rest for Condition_Wait.
+ * With these two patches the 100% cpu usage in UDP mode is fixed.
+ (closes: #496865)
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 28 Aug 2008 16:17:46 +0200
+
+iperf (2.0.4-2) unstable; urgency=low
+
+ * Updated standards. Set debhelper compatibility level to 7.
+ * iperf.1: fix minus/hyphen issues.
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 21 Aug 2008 00:38:16 +0200
+
+iperf (2.0.4-1) unstable; urgency=low
+
+ * New upstream version. (closes: #480000)
+ * Deleted performance problem patch, it is now fixed upstream.
+ * Deleted debian specific manpage, the package has one now. Fix several
+ hyphen-used-as-minus-sign in the new manpage. Add lintian overrides as
+ it still thinks there are hyphens used as minus sign but there are not.
+ * Fix bw-header being printed each time.
+ * The following bugs are also fixed now: (closes: #356448, #400662, #353037)
+
+ -- Roberto Lumbreras <rover@debian.org> Thu, 08 May 2008 00:45:51 +0200
+
+iperf (2.0.2-4) unstable; urgency=low
+
+ * Reverted patch to fix bug #431366; added proper patch for performance
+ problem with kernels using CFS (>= 2.6.23) (closes: #444277).
+ * debian/rules: using simple-patchsys from cdbs.
+ * Standards 3.7.3 (no changes).
+ * doc-base: changed section to Network/Monitoring section.
+
+ -- Roberto Lumbreras <rover@debian.org> Tue, 18 Mar 2008 09:12:52 +0100
+
+iperf (2.0.2-3) unstable; urgency=low
+
+ * Added patch to fix poor performance with >= 2.6.21 kernels
+ (closes: #431666).
+ * Fix -t: cast to max_size_t instead of int (closes: #346099).
+ Updated auto-makefiles and autoconf.
+ * debian/rules: now using cdbs.
+
+ -- Roberto Lumbreras <rover@debian.org> Tue, 17 Jul 2007 15:16:00 +0200
+
+iperf (2.0.2-2) unstable; urgency=low
+
+ * Add PTHREAD_LIBS to iperf_LDADD and regenerate configure, hopefully
+ will fix #314383: FTBFS on hurd-i386.
+ * Updated standards (no changes).
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 12 May 2006 16:49:36 +0200
+
+iperf (2.0.2-1) unstable; urgency=low
+
+ * New upstream version (closes: #312300).
+
+ -- Roberto Lumbreras <rover@debian.org> Tue, 07 Jun 2005 16:42:55 +0200
+
+iperf (2.0.1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Added watch file.
+ * Updated standards.
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 04 Feb 2005 02:38:36 +0100
+
+iperf (1.7.0-1) unstable; urgency=low
+
+ * New upstream version.
+ * Use config.sub and config.guess symlinks from autotools-dev
+ (closes: #190015, #189673).
+ * Changed short description (closes: #188476).
+
+ -- Roberto Lumbreras <rover@debian.org> Tue, 22 Apr 2003 01:48:12 +0200
+
+iperf (1.6.5-1) unstable; urgency=low
+
+ * Initial Release (closes: #186418).
+ * Do not include getopt functions in libdast (they are provided by libc6).
+ * Send --help and --version outputs to stdout and exit success, to make
+ help2man happy (GNU standards, see bug #138752).
+
+ -- Roberto Lumbreras <rover@debian.org> Fri, 28 Mar 2003 19:07:09 +0100
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..d4ab335
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1 @@
+debian/*.debhelper.log
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..0ccb903
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,33 @@
+Source: iperf
+Section: net
+Priority: optional
+Maintainer: Roberto Lumbreras <rover@debian.org>
+Build-Depends: debhelper-compat (= 13)
+Standards-Version: 4.6.2
+Homepage: https://sourceforge.net/projects/iperf2/
+Rules-Requires-Root: no
+
+Package: iperf
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Internet Protocol bandwidth measuring tool
+ Iperf is a modern alternative for measuring TCP and UDP bandwidth performance,
+ allowing the tuning of various parameters and characteristics.
+ .
+ Features:
+ * Measure bandwidth, packet loss, delay jitter
+ * Report MSS/MTU size and observed read sizes.
+ * Support for TCP window size via socket buffers.
+ * Multi-threaded. Client and server can have multiple simultaneous
+ connections.
+ * Client can create UDP streams of specified bandwidth.
+ * Multicast and IPv6 capable.
+ * Options can be specified with K (kilo-) and M (mega-) suffices.
+ * Can run for specified time, rather than a set amount of data to transfer.
+ * Picks the best units for the size of data being reported.
+ * Server handles multiple connections.
+ * Print periodic, intermediate bandwidth, jitter, and loss reports at
+ specified intervals.
+ * Server can be run as a daemon.
+ * Use representative streams to test out how link layer compression affects
+ your achievable bandwidth.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..95345eb
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,203 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: iperf
+Source: https://sourceforge.net/projects/iperf2/
+Files-Excluded: include/service.h src/service.c
+Comment:
+ These files are deleted from the Debian distributed sources because
+ they hold a restrictive copyright and are only used in Windows.
+
+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
+Copyright: 2017-2023 Broadcom Corporation
+License: BSD-3-clause
+
+Files: include/iperf_formattime.h src/iperf_formattime.c
+Copyright: 2023 Broadcom Corporation
+License: BSD-3-clause
+
+Files: src/dscp.c
+Copyright: 2000 Markus Friedl, 2005,2006 Damien Miller, 2022 Robert McMahon
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ 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.
+License: FSF-something
+ This file is free software; the Free Software Foundation
+ gives unlimited permission to copy and/or distribute it,
+ with or without modifications, as long as this notice is preserved.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE.
+
+Files: m4/ax_create_stdint_h.m4
+Copyright: 2003 Guido Draheim <guidod@gmx.de>
+License: GPL-2-WithACException
+
+Files: m4/ax_pthread.m4
+Copyright: 2008 Steven G. Johnson <stevenj@alum.mit.edu>, 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
+License: GPL-2-WithACException
+
+Files: depcomp missing compile
+Copyright: 1996-2018 Free Software Foundation, Inc.
+License: GPL-2-WithACException
+
+Files: config.guess config.sub
+Copyright: 1992-2021 Free Software Foundation, Inc.
+License: GPL-3-WithACException
+ This file is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+ .
+ On Debian systems, the complete text of version 3 of the GNU Library
+ General Public License can be found in `/usr/share/common-licenses/GPL-3'.
+ .
+ As a special exception to the GNU General Public License, if you
+ distribute this file as part of a program that contains a
+ configuration script generated by Autoconf, you may include it under
+ the same distribution terms that you use for the rest of that
+ program. This Exception is an additional permission under section 7
+ of the GNU General Public License, version 3 ("GPLv3").
+
+Files: install-sh
+Copyright: 1994 X Consortium
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+ TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ .
+ Except as contained in this notice, the name of the X Consortium shall not
+ be used in advertising or otherwise to promote the sale, use or other deal-
+ ings in this Software without prior written authorization from the X Consor-
+ tium.
+ .
+ FSF changes to this file are in the public domain.
+
+Files: compat/inet_ntop.*
+Copyright: 1996-2001 Internet Software Consortium
+License: ISC
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Files: include/gnu_getopt.h src/gnu_getopt.c src/gnu_getopt_long.c
+Copyright: 1989-1997 Free Software Foundation, Inc.
+License: LGPL-2+
+ This file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
+ .
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+ .
+ On Debian systems, the complete text of version 2 of the GNU Library
+ General Public License can be found in `/usr/share/common-licenses/LGPL-2'.
+
+Files: debian/*
+Copyright: 1998-2014 Roberto Lumbreras <rover@debian.org>
+License: GPL-2+
+ 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ On Debian systems, the complete text of version 2 of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: BSD-3-clause
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimers.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimers in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the names of the copyright holder, nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this Software without specific prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE CONTIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License: GPL-2-WithACException
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ On Debian systems, the complete text of version 2 of the GNU Library
+ General Public License can be found in `/usr/share/common-licenses/GPL-2'.
+ .
+ As a special exception to the GNU General Public License, if you
+ distribute this file as part of a program that contains a
+ configuration script generated by Autoconf, you may include it under
+ the same distribution terms that you use for the rest of that program.
diff --git a/debian/iperf.dirs b/debian/iperf.dirs
new file mode 100644
index 0000000..e772481
--- /dev/null
+++ b/debian/iperf.dirs
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/iperf.doc-base b/debian/iperf.doc-base
new file mode 100644
index 0000000..1d9bf06
--- /dev/null
+++ b/debian/iperf.doc-base
@@ -0,0 +1,10 @@
+Document: iperf
+Title: iperf Manual
+Author: The Board of Trustees of the University of Illinois
+Abstract: Internet bandwidth measuring tool
+Section: Network/Monitoring
+
+Format: HTML
+Index: /usr/share/doc/iperf/html/index.html
+Files: /usr/share/doc/iperf/html/*.html
+
diff --git a/debian/iperf.docs b/debian/iperf.docs
new file mode 100644
index 0000000..e845566
--- /dev/null
+++ b/debian/iperf.docs
@@ -0,0 +1 @@
+README
diff --git a/debian/iperf.install b/debian/iperf.install
new file mode 100644
index 0000000..6ce4464
--- /dev/null
+++ b/debian/iperf.install
@@ -0,0 +1,4 @@
+doc/dast.gif usr/share/doc/iperf/html
+doc/*.html usr/share/doc/iperf/html
+src/iperf usr/bin
+debian/ufw/iperf etc/ufw/applications.d
diff --git a/debian/iperf.lintian-overrides b/debian/iperf.lintian-overrides
new file mode 100644
index 0000000..3d6ca7e
--- /dev/null
+++ b/debian/iperf.lintian-overrides
@@ -0,0 +1 @@
+iperf: groff-message
diff --git a/debian/patches/003-fix-hyphen-used-as-minus-sign.patch b/debian/patches/003-fix-hyphen-used-as-minus-sign.patch
new file mode 100644
index 0000000..22d0a90
--- /dev/null
+++ b/debian/patches/003-fix-hyphen-used-as-minus-sign.patch
@@ -0,0 +1,1211 @@
+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
+===================================================================
+--- 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
+@@ -2,13 +2,13 @@
+ .SH NAME
+ iperf \- perform network traffic tests using network sockets. Metrics include throughput and latency or link capacity and responsiveness.
+ .SH SYNOPSIS
+-.BI "iperf -s [" options ]
++.BI "iperf \-s [" options ]
+
+-.BI "iperf -c " server " [" options ]
++.BI "iperf \-c " server " [" options ]
+
+-.BI "iperf -u -s [" options ]
++.BI "iperf \-u \-s [" options ]
+
+-.BI "iperf -u -c " server " [" options ]
++.BI "iperf \-u \-c " server " [" options ]
+
+ .SH DESCRIPTION
+ .LP
+@@ -17,8 +17,8 @@
+ both one way delay (OWD) and round trip times (RTTs.) Iperf can use both TCP and UDP sockets (or
+ protocols.) It supports unidirectional, full duplex (same socket) and bidirectional traffic, and supports
+ multiple, simultaneous traffic streams. It supports multicast traffic including source specific
+-multicast (SSM) joins. Its multi-threaded design allows for peak performance. Metrics displayed help to
+-characterize host to host network performance. Setting the enhanced (-e) option provides all
++multicast (SSM) joins. Its multi\-threaded design allows for peak performance. Metrics displayed help to
++characterize host to host network performance. Setting the enhanced (\-e) option provides all
+ 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 @@
+ 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)
+ .TP
+-.BR -e ", " --enhanced " "
++.BR \-e ", " \-\-enhanced " "
+ Display enhanced output in reports otherwise use legacy report (ver
+ 2.0.5) formatting (see NOTES)
+ .TP
+-.BR -f ", " --format " " [abkmgBKMG]
++.BR \-f ", " \-\-format " " [abkmgBKMG]
+ format to report: adaptive, bits, Bytes, Kbits, Mbits, Gbits, KBytes,
+ MBytes, GBytes (see NOTES for more)
+ .TP
+-.BR -h ", " --help " "
++.BR \-h ", " \-\-help " "
+ print a help synopsis
+ .TP
+-.BR " --hide-ips "
++.BR " \-\-hide\-ips "
+ obscure ip addresses in output (useful when wanting to publish results and not display the full ip addresses. v4 only)
+ .TP
+-.BR -i ", " --interval " < \fIt\fR | f >"
+-sample or display interval reports every \fIt\fR seconds (default) or every frame or burst, i.e. if f is used then the interval will be each frame or burst. The frame interval reporting is experimental. Also suggest a compile with fast-sampling, i.e. ./configure --enable-fastsampling
++.BR \-i ", " \-\-interval " < \fIt\fR | f >"
++sample or display interval reports every \fIt\fR seconds (default) or every frame or burst, i.e. if f is used then the interval will be each frame or burst. The frame interval reporting is experimental. Also suggest a compile with fast\-sampling, i.e. ./configure \-\-enable\-fastsampling
+ .TP
+-.BR -l ", " --len " \fIn\fR[kmKM]"
++.BR \-l ", " \-\-len " \fIn\fR[kmKM]"
+ set read/write buffer size (TCP) or length (UDP) to \fIn\fR (TCP default 128K, UDP default 1470)
+ .TP
+-.BR " --l2checks "
++.BR " \-\-l2checks "
+ perform layer 2 length checks on received UDP packets (requires systems that support packet sockets, e.g. Linux)
+ .TP
+-.BR -m ", " --print_mss " "
++.BR \-m ", " \-\-print_mss " "
+ print TCP maximum segment size
+ .TP
+-.BR " --NUM_REPORT_STRUCTS " \fI<count>\fR
++.BR " \-\-NUM_REPORT_STRUCTS " \fI<count>\fR
+ Override the default shared memory size between the traffic thread(s) and reporter thread in order to mitigate mutex lock contentions. The default value of 5000 should be sufficient for 1Gb/s networks. Increase this upon seeing the Warning message of reporter thread too slow. If the Warning message isn't seen, then increasing this won't have any significant effect (other than to use some additional memory.)
+ .TP
+-.BR -o ", " --output " \fIfilename\fR"
++.BR \-o ", " \-\-output " \fIfilename\fR"
+ 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.
++.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.
+ .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)
++.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)
+ .TP
+-.BR " --sum-dstip"
++.BR " \-\-sum\-dstip"
+ sum traffic threads based upon the destination IP address (default is source ip address)
+ .TP
+-.BR " --sum-only "
+-set the output to sum reports only. Useful for -P at large values
++.BR " \-\-sum\-only "
++set the output to sum reports only. Useful for \-P at large values
+ .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
+ .TP
+-.BR -u ", " --udp " "
++.BR \-u ", " \-\-udp " "
+ use UDP rather than TCP
+ .TP
+-.BR " --utc"
++.BR " \-\-utc"
+ use coordinated universal time (UTC) when outputting time (otherwise use local time)
+ .TP
+-.BR -w ", " --window " \fIn\fR[kmKM]"
++.BR \-w ", " \-\-window " \fIn\fR[kmKM]"
+ TCP window size (socket buffer size)
+ .TP
+-.BR -z ", " --realtime " "
+-Request real-time scheduler, if supported.
++.BR \-z ", " \-\-realtime " "
++Request real\-time scheduler, if supported.
+ .TP
+-.BR -B ", " --bind " \fIhost\fR[:\fIport\fR][%\fIdev\fR]"
++.BR \-B ", " \-\-bind " \fIhost\fR[:\fIport\fR][%\fIdev\fR]"
+ bind to \fIhost\fR, ip address or multicast address, optional port or device (see NOTES)
+ .TP
+-.BR -C ", " --compatibility " "
++.BR \-C ", " \-\-compatibility " "
+ for use with older versions does not sent extra msgs
+ .TP
+-.BR -M ", " --mss " \fIn\fR"
++.BR \-M ", " \-\-mss " \fIn\fR"
+ set TCP maximum segment size using TCP_MAXSEG
+ .TP
+-.BR -N ", " --nodelay " "
++.BR \-N ", " \-\-nodelay " "
+ set TCP no delay, disabling Nagle's Algorithm
+ .TP
+-.BR -v ", " --version " "
++.BR \-v ", " \-\-version " "
+ print version information and quit
+ .TP
+-.BR -x ", " --reportexclude " [CDMSV]"
++.BR \-x ", " \-\-reportexclude " [CDMSV]"
+ exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
+ .TP
+-.BR -y ", " --reportstyle " C|c"
++.BR \-y ", " \-\-reportstyle " C|c"
+ if set to C or c report results as CSV (comma separated values)
+ .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.)
+ .SH "SERVER SPECIFIC OPTIONS"
+ .TP
+-.BR -1 ", " --singleclient " "
++.BR \-1 ", " \-\-singleclient " "
+ set the server to process only one client at a time
+ .TP
+-.BR -b ", " --bandwidth " \fIn\fR[kmgKMG]"
++.BR \-b ", " \-\-bandwidth " \fIn\fR[kmgKMG]"
+ set target read rate to \fIn\fR bits/sec. TCP only for the server.
+ .TP
+-.BR -s ", " --server " "
++.BR \-s ", " \-\-server " "
+ run in server mode
+ .TP
+-.BR " --histograms[="\fIbinwidth\fR[u],\fIbincount\fR,[\fIlowerci\fR],[\fIupperci\fR] "]"
+-enable latency histograms for udp packets (-u), for tcp writes (with --trip-times), or for either udp or tcp with --isochronous clients, or for --bounceback. The binning can be modified. Bin widths (default 1 millisecond, append u for microseconds, m for milliseconds) bincount is total bins (default 1000), ci is confidence interval between 0-100% (default lower 5%, upper 95%, 3 stdev 99.7%)
++.BR " \-\-histograms[="\fIbinwidth\fR[u],\fIbincount\fR,[\fIlowerci\fR],[\fIupperci\fR] "]"
++enable latency histograms for udp packets (\-u), for tcp writes (with \-\-trip\-times), or for either udp or tcp with \-\-isochronous clients, or for \-\-bounceback. The binning can be modified. Bin widths (default 1 millisecond, append u for microseconds, m for milliseconds) bincount is total bins (default 1000), ci is confidence interval between 0\-100% (default lower 5%, upper 95%, 3 stdev 99.7%)
+ .TP
+-.BR " --jitter-histograms[=" \fI<binwidth>\fR "]"
+-enable jitter histograms for udp packets (-u). Optional value is the bin width where units are microseconds and defaults to 100 usecs
++.BR " \-\-jitter\-histograms[=" \fI<binwidth>\fR "]"
++enable jitter histograms for udp packets (\-u). Optional value is the bin width where units are microseconds and defaults to 100 usecs
+ .TP
+-.BR " --permit-key [=" \fI<value>\fR "]"
+-Set a key value that must match for the server to accept traffic from a client (also set with --permit-key.) The server will auto-generate a globally unique key when the option is given without a value. This value will be displayed in the server's initial settings report. The lifetime of the key is set using --permit-key-timeout and defaults to twenty seconds. TCP only, no UDP support.
++.BR " \-\-permit\-key [=" \fI<value>\fR "]"
++Set a key value that must match for the server to accept traffic from a client (also set with \-\-permit\-key.) The server will auto\-generate a globally unique key when the option is given without a value. This value will be displayed in the server's initial settings report. The lifetime of the key is set using \-\-permit\-key\-timeout and defaults to twenty seconds. TCP only, no UDP support.
+ .TP
+-.BR " --permit-key-timeout " \fI<value>\fR
++.BR " \-\-permit\-key\-timeout " \fI<value>\fR
+ Set the lifetime of the permit key in seconds. Defaults to 20 seconds if not set. A value of zero will disable the timer.
+ .TP
+-.BR " --tap-dev " \fI<dev>\fR
++.BR " \-\-tap\-dev " \fI<dev>\fR
+ Set the receive interface to the TAP device as specified.
+ .TP
+-.BR " --tcp-rx-window-clamp " \fIn\fR[kmKM]
++.BR " \-\-tcp\-rx\-window\-clamp " \fIn\fR[kmKM]
+ Set the socket option of TCP_WINDOW_CLAMP, units is bytes.
+ .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)
+ .TP
+-.BR " --tos-override " \fI<val>\fR
++.BR " \-\-tos\-override " \fI<val>\fR
+ set the socket's IP_TOS value for reverse or full duplex traffic. Supported in versions 2.1.5 or greater. Previous versions won't set IP_TOS on reverse traffic. See NOTES for values.
+ .TP
+-.BR -B ", " --bind " \fIip\fR | \fIip\fR%\fIdevice\fR"
++.BR \-B ", " \-\-bind " \fIip\fR | \fIip\fR%\fIdevice\fR"
+ bind src ip addr and optional src device for receiving
+ .TP
+-.BR -D ", " --daemon " "
++.BR \-D ", " \-\-daemon " "
+ run the server as a daemon. On Windows this will run the specified
+-command-line under the IPerfService, installing the service if
+-necessary. Note the service is not configured to auto-start or
+-restart - if you need a self-starting service you will need to create
++command\-line under the IPerfService, installing the service if
++necessary. Note the service is not configured to auto\-start or
++restart \- if you need a self\-starting service you will need to create
+ an init script or use Windows "sc" commands.
+ .TP
+-.BR -H ", " --ssm-host " \fIhost\fR"
++.BR \-H ", " \-\-ssm\-host " \fIhost\fR"
+ Set the source host (ip addr) per SSM multicast, i.e. the S of the S,G
+ .TP
+-.BR -R ", " --remove " "
++.BR \-R ", " \-\-remove " "
+ remove the IPerfService (Windows only).
+ .TP
+-.BR -U ", " --single_udp " "
++.BR \-U ", " \-\-single_udp " "
+ run in single threaded UDP mode
+ .TP
+-.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)
+ .SH "CLIENT SPECIFIC OPTIONS"
+ .TP
+-.BR -b ", " --bandwidth " \fIn\fR[kmgKMG][,\fIn\fR[kmgKMG]] | \fIn\fR\fR[kmgKMG]pps"
++.BR \-b ", " \-\-bandwidth " \fIn\fR[kmgKMG][,\fIn\fR[kmgKMG]] | \fIn\fR\fR[kmgKMG]pps"
+ set target bandwidth to \fIn\fR bits/sec (default 1 Mbit/sec) or
+ \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)
++.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)
+ .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-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)
+ .TP
+-.BR " --bounceback-txdelay " \fIn\fR
++.BR " \-\-bounceback\-txdelay " \fIn\fR
+ request the client to delay n seconds between the start of the working load and the bounceback traffic (default is no delay)
+ .TP
+-.BR " --burst-period " \fIn\fR
++.BR " \-\-burst\-period " \fIn\fR
+ Set the burst period in seconds. Defaults to one second. (Note: assumed use case is low duty cycle traffic bursts)
+ .TP
+-.BR " --burst-size " \fIn\fR
++.BR " \-\-burst\-size " \fIn\fR
+ Set the burst size in bytes. Defaults to 1M if no value is given.
+-.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.
+ .TP
+-.BR -d ", " --dualtest " "
++.BR \-d ", " \-\-dualtest " "
+ Do a bidirectional test simultaneous test using two unidirectional sockets
+ .TP
+-.BR " --fq-rate n[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]"
++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 " --full-duplex"
++.BR " \-\-full\-duplex"
+ run a full duplex test, i.e. traffic in both transmit and receive directions using the \fBsame socket\fR
+ .TP
+-.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%)
++.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 " --incr-dstip"
+-increment the destination ip address when using the parallel (-P) or port range option
++.BR " \-\-incr\-dstip"
++increment the destination ip address when using the parallel (\-P) or port range option
+ .TP
+-.BR " --incr-dstport"
+-increment the destination port when using the parallel (-P) or port range option
++.BR " \-\-incr\-dstport"
++increment the destination port when using the parallel (\-P) or port range option
+ .TP
+-.BR " --incr-srcip"
+-increment the source ip address when using the parallel (-P) or port range option
++.BR " \-\-incr\-srcip"
++increment the source ip address when using the parallel (\-P) or port range option
+ .TP
+-.BR " --incr-srcport"
+-increment the source ip address when using the parallel (-P) or port range option, requires -B to set the src port
++.BR " \-\-incr\-srcport"
++increment the source ip address when using the parallel (\-P) or port range option, requires \-B to set the src port
+ .TP
+-.BR " --ipg "\fIn\fR
+-set the inter-packet gap to \fIn\fR (units of seconds) for packets or within a frame/burst when --isochronous is set
++.BR " \-\-ipg "\fIn\fR
++set the inter\-packet gap to \fIn\fR (units of seconds) for packets or within a frame/burst when \-\-isochronous is set
+ .TP
+-.BR " --isochronous[=" \fIfps\fR:\fImean\fR,\fIstdev\fR "]"
++.BR " \-\-isochronous[=" \fIfps\fR:\fImean\fR,\fIstdev\fR "]"
+ send isochronous traffic with frequency frames per second and load defined by mean and standard deviation using a log normal distribution, defaults to 60:20m,0. (Note: Here the suffixes indicate bytes/sec or bits/sec per use of uppercase or lowercase, respectively. Also the p suffix is supported to set the burst size in packets, e.g. isochronous=2:25p will send two 25 packet bursts every second, or one 25 packet burst every 0.5 seconds.)
+ .TP
+-.BR " --local-only[=\fI1\fR|\fI0\fR]"
+-Set 1 to limit traffic to the local network only (through the use of SO_DONTROUTE) set to zero otherwise with optional override of compile time default (see configure --default-localonly)
++.BR " \-\-local\-only[=\fI1\fR|\fI0\fR]"
++Set 1 to limit traffic to the local network only (through the use of SO_DONTROUTE) set to zero otherwise with optional override of compile time default (see configure \-\-default\-localonly)
+ .TP
+-.BR " --near-congestion[=\fIn\fR]"
+-Enable TCP write rate limiting per the sampled RTT. The delay is applied after the -l number of bytes have completed. The optional value is the multiplier to the RTT and defines the time delay. This value defaults to 0.5 if it is not set. Values less than 1 are supported but the value cannot be negative. This is an experimental feature. It is not likely stable on live networks. Suggested use is over controlled test networks.
++.BR " \-\-near\-congestion[=\fIn\fR]"
++Enable TCP write rate limiting per the sampled RTT. The delay is applied after the \-l number of bytes have completed. The optional value is the multiplier to the RTT and defines the time delay. This value defaults to 0.5 if it is not set. Values less than 1 are supported but the value cannot be negative. This is an experimental feature. It is not likely stable on live networks. Suggested use is over controlled test networks.
+ .TP
+-.BR " --no-connect-sync "
+-By default, parallel traffic threads (per -P greater than 1) will synchronize after their TCP connects and prior to each sending traffic, i.e. all the threads first complete (or error) the TCP 3WHS before any traffic thread will start sending. This option disables that synchronization such that each traffic thread will start sending immediately after completing its successful connect.
++.BR " \-\-no\-connect\-sync "
++By default, parallel traffic threads (per \-P greater than 1) will synchronize after their TCP connects and prior to each sending traffic, i.e. all the threads first complete (or error) the TCP 3WHS before any traffic thread will start sending. This option disables that synchronization such that each traffic thread will start sending immediately after completing its successful connect.
+ .TP
+-.BR " --no-udp-fin "
++.BR " \-\-no\-udp\-fin "
+ Don't perform the UDP final server to client exchange which means there won't be a final server report displayed on the client. All packets per the test will be from the client to the server and no packets should be sent in the other direction.
+-.B It's highly suggested that -t be set on the server if this option is being used.
++.B It's highly suggested that \-t be set on the server if this option is being used.
+ This is because there will be
+ .B only one trigger ending packet
+ sent from client to server and if it's lost then the server will continue to run. (Requires ver 2.0.14 or better)
+ .TP
+-.BR -n ", " --num " \fIn\fR[kmKM]"
+-number of bytes to transmit (instead of -t)
++.BR \-n ", " \-\-num " \fIn\fR[kmKM]"
++number of bytes to transmit (instead of \-t)
+ .TP
+-.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.
++.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 -r ", " --tradeoff " "
+-Do a bidirectional test individually - client-to-server, followed by
+-a reversed test, server-to-client
++.BR \-r ", " \-\-tradeoff " "
++Do a bidirectional test individually \- client\-to\-server, followed by
++a reversed test, server\-to\-client
+ .TP
+-.BR " --tcp-quickack "
++.BR " \-\-tcp\-quickack "
+ Set TCP_QUICKACK on the socket
+ .TP
+-.BR " --tcp-write-prefetch " \fIn\fR[kmKM]
++.BR " \-\-tcp\-write\-prefetch " \fIn\fR[kmKM]
+ Set TCP_NOTSENT_LOWAT on the socket and use event based writes per select() on the socket.
+ .TP
+-.BR " --tcp-write-times "
++.BR " \-\-tcp\-write\-times "
+ Measure the socket write times
+ .TP
+-.BR -t ", " --time " \fIn\fR" | "\fI0\fR"
++.BR \-t ", " \-\-time " \fIn\fR" | "\fI0\fR"
+ time in seconds to transmit traffic, use zero for infinite (default is 10 secs)
+ .TP
+-.BR " --trip-times "
+-enable the measurement of end to end write to read latencies (client and server clocks must be synchronized.) See notes about tcp-write-prefetch being enabled.
++.BR " \-\-trip\-times "
++enable the measurement of end to end write to read latencies (client and server clocks must be synchronized.) See notes about tcp\-write\-prefetch being enabled.
+ .TP
+-.BR " --txdelay-time "
++.BR " \-\-txdelay\-time "
+ time in seconds to hold back or delay after the TCP connect and prior to the socket writes. For UDP it's the delay between the traffic thread starting and the first write.
+ .TP
+-.BR " --txstart-time "\fIn\fR.\fIn\fR
+-set the txstart-time to \fIn\fR.\fIn\fR using unix or epoch time format (supports microsecond resolution, e.g 1536014418.123456) An example to delay one second using command substitution is iperf -c 192.168.1.10 --txstart-time $(expr $(date +%s) + 1).$(date +%N)
++.BR " \-\-txstart\-time "\fIn\fR.\fIn\fR
++set the txstart\-time to \fIn\fR.\fIn\fR using unix or epoch time format (supports microsecond resolution, e.g 1536014418.123456) An example to delay one second using command substitution is iperf \-c 192.168.1.10 \-\-txstart\-time $(expr $(date +%s) + 1).$(date +%N)
+ .TP
+-.BR -B ", " --bind " \fIip\fR | \fIip\fR:\fIport\fR | \fIipv6 -V\fR | \fI[ipv6]\fR:\fIport -V\fR"
++.BR \-B ", " \-\-bind " \fIip\fR | \fIip\fR:\fIport\fR | \fIipv6 \-V\fR | \fI[ipv6]\fR:\fIport \-V\fR"
+ bind src ip addr and optional port as the source of traffic (see NOTES)
+ .TP
+-.BR -F ", " --fileinput " \fIname\fR"
++.BR \-F ", " \-\-fileinput " \fIname\fR"
+ input the data to be transmitted from a file
+ .TP
+-.BR -I ", " --stdin " "
++.BR \-I ", " \-\-stdin " "
+ input the data to be transmitted from stdin
+ .TP
+-.BR -L ", " --listenport " \fIn\fR"
++.BR \-L ", " \-\-listenport " \fIn\fR"
+ port to receive bidirectional tests back on
+ .TP
+-.BR -P ", " --parallel " \fIn\fR"
++.BR \-P ", " \-\-parallel " \fIn\fR"
+ number of parallel client threads to run
+ .TP
+-.BR -R ", " --reverse " "
++.BR \-R ", " \-\-reverse " "
+ reverse the traffic flow (useful for testing through firewalls, see NOTES)
+ .TP
+-.BR -S ", " --tos " \fI<val>\fR"
+-set the socket's IP_TOS value. Versions 2.1.5 or greater will reflect this tos setting back with --reverse or --full-duplex option. (Previous versions won't set tos on the reverse traffic.) Note: use server side --tos-override to override. See NOTES for values.
++.BR \-S ", " \-\-tos " \fI<val>\fR"
++set the socket's IP_TOS value. Versions 2.1.5 or greater will reflect this tos setting back with \-\-reverse or \-\-full\-duplex option. (Previous versions won't set tos on the reverse traffic.) Note: use server side \-\-tos\-override to override. See NOTES for values.
+ .TP
+-.BR -T ", " --ttl " \fIn\fR"
+-time-to-live, for multicast (default 1)
++.BR \-T ", " \-\-ttl " \fIn\fR"
++time\-to\-live, for multicast (default 1)
+ .TP
+-.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.
++.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 -V ", " --ipv6_domain " "
++.BR \-V ", " \-\-ipv6_domain " "
+ Set the domain to IPv6 (send packets over IPv6)
+ .TP
+-.BR -X ", " --peerdetect " "
++.BR \-X ", " \-\-peerdetect " "
+ run peer version detection prior to traffic.
+ .TP
+-.BR -Z ", " --linux-congestion " \fIalgo\fR"
++.BR \-Z ", " \-\-linux\-congestion " \fIalgo\fR"
+ set TCP congestion control algorithm (Linux only)
+ .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 @@
+ .br
+ [ ID] Interval Transfer Bandwidth Write/Err Rtry Cwnd/RTT NetPwr
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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
+ .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,)
++.B where (per \-e,)
+ .B ct=
+ TCP connect time (or three way handshake time 3WHS)
+ .br
+ .B Write/Err
+-Total number of successful socket writes. Total number of non-fatal socket write errors
++Total number of successful socket writes. Total number of non\-fatal socket write errors
+ .br
+ .B Rtry
+ Total number of TCP retries
+@@ -379,7 +379,7 @@
+
+ .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
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -387,7 +387,7 @@
+ .br
+ Bursting: 100 Byte writes 10 times every 1.00 second(s)
+ .br
+-Bounce-back test (size= 100 Byte) (server hold req=0 usecs)
++Bounce\-back test (size= 100 Byte) (server hold req=0 usecs)
+ .br
+ TCP window size: 16.0 KByte (default)
+ .br
+@@ -397,29 +397,29 @@
+ .br
+ [ ID] Interval Transfer Bandwidth BB cnt=avg/min/max/stdev Rtry Cwnd/RTT RPS
+ .br
+-[mytest(1)] 0.00-1.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.949/9.662/19.597/3.127 ms 0 14K/10930 us 83 rps
++[mytest(1)] 0.00\-1.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.949/9.662/19.597/3.127 ms 0 14K/10930 us 83 rps
+ .br
+-[mytest(1)] 1.00-2.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.004/9.651/10.322/0.232 ms 0 14K/10244 us 99 rps
++[mytest(1)] 1.00\-2.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.004/9.651/10.322/0.232 ms 0 14K/10244 us 99 rps
+ .br
+-[mytest(1)] 2.00-3.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.582/9.720/14.831/1.573 ms 0 14K/10352 us 94 rps
++[mytest(1)] 2.00\-3.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.582/9.720/14.831/1.573 ms 0 14K/10352 us 94 rps
+ .br
+-[mytest(1)] 3.00-4.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.303/9.940/15.114/2.026 ms 0 14K/10832 us 88 rps
++[mytest(1)] 3.00\-4.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.303/9.940/15.114/2.026 ms 0 14K/10832 us 88 rps
+ .br
+-[mytest(1)] 4.00-5.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.148/9.671/14.803/1.837 ms 0 14K/10858 us 89 rps
++[mytest(1)] 4.00\-5.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.148/9.671/14.803/1.837 ms 0 14K/10858 us 89 rps
+ .br
+-[mytest(1)] 5.00-6.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.207/9.695/10.729/0.356 ms 0 14K/10390 us 97 rps
++[mytest(1)] 5.00\-6.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.207/9.695/10.729/0.356 ms 0 14K/10390 us 97 rps
+ .br
+-[mytest(1)] 6.00-7.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.871/9.770/14.387/1.547 ms 0 14K/10660 us 91 rps
++[mytest(1)] 6.00\-7.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.871/9.770/14.387/1.547 ms 0 14K/10660 us 91 rps
+ .br
+-[mytest(1)] 7.00-8.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.224/9.760/14.993/1.837 ms 0 14K/11027 us 89 rps
++[mytest(1)] 7.00\-8.00 sec 1.95 KBytes 16.0 Kbits/sec 10=11.224/9.760/14.993/1.837 ms 0 14K/11027 us 89 rps
+ .br
+-[mytest(1)] 8.00-9.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.719/9.887/14.553/1.455 ms 0 14K/10620 us 93 rps
++[mytest(1)] 8.00\-9.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.719/9.887/14.553/1.455 ms 0 14K/10620 us 93 rps
+ .br
+-[mytest(1)] 9.00-10.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.775/9.689/14.746/1.562 ms 0 14K/10596 us 92 rps
++[mytest(1)] 9.00\-10.00 sec 1.95 KBytes 16.0 Kbits/sec 10=10.775/9.689/14.746/1.562 ms 0 14K/10596 us 92 rps
+ .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
++[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
+-[ 1] 0.00-10.02 sec BB8(f)-PDF: bin(w=100us):cnt(100)=97:5,98:8,99:10,100:8,101:12,102:10,103:6,104:7,105:2,106:2,107:3,108:3,109:2,110:1,114:1,115:1,118:1,120:2,121:1,124:1,125:1,128:1,140:1,143:1,144:1,146:2,148:1,149:2,150:1,151:1,152:1,196:1 (5.00/95.00/99.7%=97/149/196,Outliers=0,obl/obu=0/0)
++[ 1] 0.00\-10.02 sec BB8(f)\-PDF: bin(w=100us):cnt(100)=97:5,98:8,99:10,100:8,101:12,102:10,103:6,104:7,105:2,106:2,107:3,108:3,109:2,110:1,114:1,115:1,118:1,120:2,121:1,124:1,125:1,128:1,140:1,143:1,144:1,146:2,148:1,149:2,150:1,151:1,152:1,196:1 (5.00/95.00/99.7%=97/149/196,Outliers=0,obl/obu=0/0)
+ .br
+
+ .TP
+@@ -441,7 +441,7 @@
+ .B TCP tests (server)
+
+ .B
+-iperf -s -e -i 1 -l 8K
++iperf \-s \-e \-i 1 \-l 8K
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -457,43 +457,43 @@
+ .br
+ [ ID] Interval Transfer Bandwidth Reads Dist(bin=1.0K)
+ .br
+-[ 4] 0.00-1.00 sec 124 MBytes 1.04 Gbits/sec 22249 798:2637:2061:767:2165:1563:589:11669
++[ 4] 0.00\-1.00 sec 124 MBytes 1.04 Gbits/sec 22249 798:2637:2061:767:2165:1563:589:11669
+ .br
+-[ 4] 1.00-2.00 sec 136 MBytes 1.14 Gbits/sec 24780 946:3227:2227:790:2427:1888:641:12634
++[ 4] 1.00\-2.00 sec 136 MBytes 1.14 Gbits/sec 24780 946:3227:2227:790:2427:1888:641:12634
+ .br
+-[ 4] 2.00-3.00 sec 137 MBytes 1.15 Gbits/sec 24484 1047:2686:2218:810:2195:1819:728:12981
++[ 4] 2.00\-3.00 sec 137 MBytes 1.15 Gbits/sec 24484 1047:2686:2218:810:2195:1819:728:12981
+ .br
+-[ 4] 3.00-4.00 sec 126 MBytes 1.06 Gbits/sec 20812 863:1353:1546:614:1712:1298:547:12879
++[ 4] 3.00\-4.00 sec 126 MBytes 1.06 Gbits/sec 20812 863:1353:1546:614:1712:1298:547:12879
+ .br
+-[ 4] 4.00-5.00 sec 117 MBytes 984 Mbits/sec 20266 769:1886:1828:589:1866:1350:476:11502
++[ 4] 4.00\-5.00 sec 117 MBytes 984 Mbits/sec 20266 769:1886:1828:589:1866:1350:476:11502
+ .br
+-[ 4] 5.00-6.00 sec 143 MBytes 1.20 Gbits/sec 24603 1066:1925:2139:822:2237:1827:744:13843
++[ 4] 5.00\-6.00 sec 143 MBytes 1.20 Gbits/sec 24603 1066:1925:2139:822:2237:1827:744:13843
+ .br
+-[ 4] 6.00-7.00 sec 126 MBytes 1.06 Gbits/sec 22635 834:2464:2249:724:2269:1646:608:11841
++[ 4] 6.00\-7.00 sec 126 MBytes 1.06 Gbits/sec 22635 834:2464:2249:724:2269:1646:608:11841
+ .br
+-[ 4] 7.00-8.00 sec 110 MBytes 921 Mbits/sec 21107 842:2437:2747:592:2871:1903:496:9219
++[ 4] 7.00\-8.00 sec 110 MBytes 921 Mbits/sec 21107 842:2437:2747:592:2871:1903:496:9219
+ .br
+-[ 4] 8.00-9.00 sec 126 MBytes 1.06 Gbits/sec 22804 1038:1784:2639:656:2738:1927:573:11449
++[ 4] 8.00\-9.00 sec 126 MBytes 1.06 Gbits/sec 22804 1038:1784:2639:656:2738:1927:573:11449
+ .br
+-[ 4] 9.00-10.00 sec 133 MBytes 1.11 Gbits/sec 23091 1088:1654:2105:710:2333:1928:723:12550
++[ 4] 9.00\-10.00 sec 133 MBytes 1.11 Gbits/sec 23091 1088:1654:2105:710:2333:1928:723:12550
+ .br
+-[ 4] 0.00-10.02 sec 1.25 GBytes 1.07 Gbits/sec 227306 9316:22088:21792:7096:22893:17193:6138:120790
++[ 4] 0.00\-10.02 sec 1.25 GBytes 1.07 Gbits/sec 227306 9316:22088:21792:7096:22893:17193:6138:120790
+ .br
+ .TP
+-.B where (per -e,)
++.B where (per \-e,)
+ .B Reads
+ Total number of socket reads
+ .br
+ .B Dist(bin=size)
+ Eight bin histogram of the socket reads returned byte count. Bin
+ width is set per size. Bins are separated by a colon. In the
+-example, the bins are 0-1K, 1K-2K, .., 7K-8K.
++example, the bins are 0\-1K, 1K\-2K, .., 7K\-8K.
+
+ .PP
+
+-.B TCP tests (server with --trip-times on client)
++.B TCP tests (server with \-\-trip\-times on client)
+ .B
+-iperf -s -i 1 -w 4M
++iperf \-s \-i 1 \-w 4M
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -503,35 +503,35 @@
+ .br
+ ------------------------------------------------------------
+ .br
+-[ 4] local 192.168.1.4%eth0 port 5001 connected with 192.168.1.7 port 44798 (trip-times) (MSS=1448) (peer 2.0.14-alpha)
++[ 4] local 192.168.1.4%eth0 port 5001 connected with 192.168.1.7 port 44798 (trip\-times) (MSS=1448) (peer 2.0.14\-alpha)
+ .br
+ [ ID] Interval Transfer Bandwidth Burst Latency avg/min/max/stdev (cnt/size) inP NetPwr Reads=Dist
+ .br
+-[ 4] 0.00-1.00 sec 19.0 MBytes 159 Mbits/sec 52.314/10.238/117.155/19.779 ms (151/131717) 1.05 MByte 380.19 781=306:253:129:48:18:15:8:4
++[ 4] 0.00\-1.00 sec 19.0 MBytes 159 Mbits/sec 52.314/10.238/117.155/19.779 ms (151/131717) 1.05 MByte 380.19 781=306:253:129:48:18:15:8:4
+ .br
+-[ 4] 1.00-2.00 sec 20.0 MBytes 168 Mbits/sec 53.863/21.264/79.252/12.277 ms (160/131080) 1.08 MByte 389.38 771=294:236:126:60:18:24:10:3
++[ 4] 1.00\-2.00 sec 20.0 MBytes 168 Mbits/sec 53.863/21.264/79.252/12.277 ms (160/131080) 1.08 MByte 389.38 771=294:236:126:60:18:24:10:3
+ .br
+-[ 4] 2.00-3.00 sec 18.2 MBytes 153 Mbits/sec 58.718/22.000/137.944/20.397 ms (146/130964) 1.06 MByte 325.64 732=299:231:98:52:18:19:10:5
++[ 4] 2.00\-3.00 sec 18.2 MBytes 153 Mbits/sec 58.718/22.000/137.944/20.397 ms (146/130964) 1.06 MByte 325.64 732=299:231:98:52:18:19:10:5
+ .br
+-[ 4] 3.00-4.00 sec 19.7 MBytes 165 Mbits/sec 50.448/ 8.921/82.728/14.627 ms (158/130588) 997 KByte 409.00 780=300:255:121:58:15:18:7:6
++[ 4] 3.00\-4.00 sec 19.7 MBytes 165 Mbits/sec 50.448/ 8.921/82.728/14.627 ms (158/130588) 997 KByte 409.00 780=300:255:121:58:15:18:7:6
+ .br
+-[ 4] 4.00-5.00 sec 18.8 MBytes 158 Mbits/sec 53.826/11.169/115.316/15.541 ms (150/131420) 1.02 MByte 366.24 761=302:226:134:52:22:17:7:1
++[ 4] 4.00\-5.00 sec 18.8 MBytes 158 Mbits/sec 53.826/11.169/115.316/15.541 ms (150/131420) 1.02 MByte 366.24 761=302:226:134:52:22:17:7:1
+ .br
+-[ 4] 5.00-6.00 sec 19.5 MBytes 164 Mbits/sec 50.943/11.922/76.134/14.053 ms (156/131276) 1.03 MByte 402.00 759=273:246:149:45:16:18:4:8
++[ 4] 5.00\-6.00 sec 19.5 MBytes 164 Mbits/sec 50.943/11.922/76.134/14.053 ms (156/131276) 1.03 MByte 402.00 759=273:246:149:45:16:18:4:8
+ .br
+-[ 4] 6.00-7.00 sec 18.5 MBytes 155 Mbits/sec 57.643/10.039/127.850/18.950 ms (148/130926) 1.05 MByte 336.16 710=262:228:133:37:16:20:8:6
++[ 4] 6.00\-7.00 sec 18.5 MBytes 155 Mbits/sec 57.643/10.039/127.850/18.950 ms (148/130926) 1.05 MByte 336.16 710=262:228:133:37:16:20:8:6
+ .br
+-[ 4] 7.00-8.00 sec 19.6 MBytes 165 Mbits/sec 52.498/12.900/77.045/12.979 ms (157/131003) 1.00 MByte 391.78 742=288:200:135:68:16:23:4:8
++[ 4] 7.00\-8.00 sec 19.6 MBytes 165 Mbits/sec 52.498/12.900/77.045/12.979 ms (157/131003) 1.00 MByte 391.78 742=288:200:135:68:16:23:4:8
+ .br
+-[ 4] 8.00-9.00 sec 18.0 MBytes 151 Mbits/sec 58.370/ 8.026/150.243/21.445 ms (144/131255) 1.06 MByte 323.81 716=268:241:108:51:20:17:8:3
++[ 4] 8.00\-9.00 sec 18.0 MBytes 151 Mbits/sec 58.370/ 8.026/150.243/21.445 ms (144/131255) 1.06 MByte 323.81 716=268:241:108:51:20:17:8:3
+ .br
+-[ 4] 9.00-10.00 sec 18.4 MBytes 154 Mbits/sec 56.112/12.419/79.790/13.668 ms (147/131194) 1.05 MByte 343.70 822=330:303:120:26:16:14:9:4
++[ 4] 9.00\-10.00 sec 18.4 MBytes 154 Mbits/sec 56.112/12.419/79.790/13.668 ms (147/131194) 1.05 MByte 343.70 822=330:303:120:26:16:14:9:4
+ .br
+-[ 4] 10.00-10.06 sec 1.03 MBytes 146 Mbits/sec 69.880/45.175/78.754/10.823 ms (9/119632) 1.74 MByte 260.40 62=26:30:5:1:0:0:0:0
++[ 4] 10.00\-10.06 sec 1.03 MBytes 146 Mbits/sec 69.880/45.175/78.754/10.823 ms (9/119632) 1.74 MByte 260.40 62=26:30:5:1:0:0:0:0
+ .br
+-[ 4] 0.00-10.06 sec 191 MBytes 159 Mbits/sec 54.183/ 8.026/150.243/16.781 ms (1526/131072) 1.03 MByte 366.98 7636=2948:2449:1258:498:175:185:75:48
++[ 4] 0.00\-10.06 sec 191 MBytes 159 Mbits/sec 54.183/ 8.026/150.243/16.781 ms (1526/131072) 1.03 MByte 366.98 7636=2948:2449:1258:498:175:185:75:48
+ .TP
+-.B where (per -e,)
++.B where (per \-e,)
+ .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 @@
+ .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
+-a mean value. The parenthesis value is the standard deviation from the mean. (Requires --trip-times on client. See Little's law in NOTES.)
++a mean value. The parenthesis value is the standard deviation from the mean. (Requires \-\-trip\-times on client. See Little's law in NOTES.)
+ .br
+ .B NetPwr
+ Network power defined as (throughput / one way latency)
+
+ .PP
+
+-.B TCP tests (with one way delay sync check -X and --trip-times on the client)
++.B TCP tests (with one way delay sync check \-X and \-\-trip\-times on the client)
+
+-.B iperf -c 192.168.1.4 -X -e --trip-times -i 1 -t 2
++.B iperf \-c 192.168.1.4 \-X \-e \-\-trip\-times \-i 1 \-t 2
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -567,26 +567,26 @@
+ .br
+ ------------------------------------------------------------
+ .br
+-.B [ 1] Clock sync check (ms): RTT/Half=(3.361/1.680) OWD-send/ack/asym=(2.246/1.115/1.131)
++.B [ 1] Clock sync check (ms): RTT/Half=(3.361/1.680) OWD\-send/ack/asym=(2.246/1.115/1.131)
+ .br
+-[ 1] local 192.168.1.1%ap0 port 47466 connected with 192.168.1.4 port 5001 (MSS=1448) (trip-times) (sock=3) (peer 2.1.4-master)
++[ 1] local 192.168.1.1%ap0 port 47466 connected with 192.168.1.4 port 5001 (MSS=1448) (trip\-times) (sock=3) (peer 2.1.4\-master)
+ .br
+ [ ID] Interval Transfer Bandwidth Write/Err Rtry Cwnd/RTT NetPwr
+ .br
+-[ 1] 0.00-1.00 sec 9.50 MBytes 79.7 Mbits/sec 77/0 0 2309K/113914 us 87
++[ 1] 0.00\-1.00 sec 9.50 MBytes 79.7 Mbits/sec 77/0 0 2309K/113914 us 87
+ .br
+-[ 1] 1.00-2.00 sec 7.12 MBytes 59.8 Mbits/sec 57/0 0 2492K/126113 us 59
++[ 1] 1.00\-2.00 sec 7.12 MBytes 59.8 Mbits/sec 57/0 0 2492K/126113 us 59
+ .br
+-[ 1] 2.00-2.42 sec 128 KBytes 2.47 Mbits/sec 2/0 0 2492K/126113 us 2
++[ 1] 2.00\-2.42 sec 128 KBytes 2.47 Mbits/sec 2/0 0 2492K/126113 us 2
+ .br
+-[ 1] 0.00-2.42 sec 16.8 MBytes 58.0 Mbits/sec 136/0 0 2492K/126113 us 57
++[ 1] 0.00\-2.42 sec 16.8 MBytes 58.0 Mbits/sec 136/0 0 2492K/126113 us 57
+ .br
+
+ .PP
+
+ .B UDP tests (client)
+
+-.B iperf -c <host> -e -i 1 -u -b 10m
++.B iperf \-c <host> \-e \-i 1 \-u \-b 10m
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -602,36 +602,36 @@
+ .br
+ [ ID] Interval Transfer Bandwidth Write/Err PPS
+ .br
+-[ 3] 0.00-1.00 sec 1.19 MBytes 10.0 Mbits/sec 852/0 851 pps
++[ 3] 0.00\-1.00 sec 1.19 MBytes 10.0 Mbits/sec 852/0 851 pps
+ .br
+-[ 3] 1.00-2.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
++[ 3] 1.00\-2.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
+ .br
+-[ 3] 2.00-3.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
++[ 3] 2.00\-3.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
+ .br
+-[ 3] 3.00-4.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
++[ 3] 3.00\-4.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
+ .br
+-[ 3] 4.00-5.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
++[ 3] 4.00\-5.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
+ .br
+-[ 3] 5.00-6.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
++[ 3] 5.00\-6.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
+ .br
+-[ 3] 6.00-7.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
++[ 3] 6.00\-7.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
+ .br
+-[ 3] 7.00-8.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
++[ 3] 7.00\-8.00 sec 1.19 MBytes 10.0 Mbits/sec 850/0 850 pps
+ .br
+-[ 3] 8.00-9.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
++[ 3] 8.00\-9.00 sec 1.19 MBytes 10.0 Mbits/sec 851/0 850 pps
+ .br
+-[ 3] 0.00-10.00 sec 11.9 MBytes 10.0 Mbits/sec 8504/0 850 pps
++[ 3] 0.00\-10.00 sec 11.9 MBytes 10.0 Mbits/sec 8504/0 850 pps
+ .br
+ [ 3] Sent 8504 datagrams
+ .br
+ [ 3] Server Report:
+ .br
+-[ 3] 0.00-10.00 sec 11.9 MBytes 10.0 Mbits/sec 0.047 ms 0/ 8504 (0%) 0.537/ 0.392/23.657/ 0.497 ms 850 pps 2329.37
++[ 3] 0.00\-10.00 sec 11.9 MBytes 10.0 Mbits/sec 0.047 ms 0/ 8504 (0%) 0.537/ 0.392/23.657/ 0.497 ms 850 pps 2329.37
+ .br
+ .TP
+-.B where (per -e,)
++.B where (per \-e,)
+ .B Write/Err
+-Total number of successful socket writes. Total number of non-fatal socket write errors
++Total number of successful socket writes. Total number of non\-fatal socket write errors
+ .br
+ .B PPS
+ Transmit packet rate in packets per second
+@@ -639,7 +639,7 @@
+ .PP
+
+ .B UDP tests (server)
+-.B iperf -s -i 1 -w 4M -u
++.B iperf \-s \-i 1 \-w 4M \-u
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -651,37 +651,37 @@
+ .br
+ ------------------------------------------------------------
+ .br
+-[ 3] local 192.168.1.4 port 5001 connected with 192.168.1.1 port 60027 (WARN: winsize=8.00 MByte req=4.00 MByte) (trip-times) (0.0) (peer 2.0.14-alpha)
++[ 3] local 192.168.1.4 port 5001 connected with 192.168.1.1 port 60027 (WARN: winsize=8.00 MByte req=4.00 MByte) (trip\-times) (0.0) (peer 2.0.14\-alpha)
+ .br
+ [ ID] Interval Transfer Bandwidth Jitter Lost/Total Latency avg/min/max/stdev PPS inP NetPwr
+ .br
+-[ 3] 0.00-1.00 sec 44.5 MBytes 373 Mbits/sec 0.071 ms 52198/83938 (62%) 75.185/ 2.367/85.189/14.430 ms 31854 pps 3.64 MByte 620.58
++[ 3] 0.00\-1.00 sec 44.5 MBytes 373 Mbits/sec 0.071 ms 52198/83938 (62%) 75.185/ 2.367/85.189/14.430 ms 31854 pps 3.64 MByte 620.58
+ .br
+-[ 3] 1.00-2.00 sec 44.8 MBytes 376 Mbits/sec 0.015 ms 59549/143701 (41%) 79.609/75.603/85.757/ 1.454 ms 31954 pps 3.56 MByte 590.04
++[ 3] 1.00\-2.00 sec 44.8 MBytes 376 Mbits/sec 0.015 ms 59549/143701 (41%) 79.609/75.603/85.757/ 1.454 ms 31954 pps 3.56 MByte 590.04
+ .br
+-[ 3] 2.00-3.00 sec 44.5 MBytes 373 Mbits/sec 0.017 ms 59494/202975 (29%) 80.006/75.951/88.198/ 1.638 ms 31733 pps 3.56 MByte 583.07
++[ 3] 2.00\-3.00 sec 44.5 MBytes 373 Mbits/sec 0.017 ms 59494/202975 (29%) 80.006/75.951/88.198/ 1.638 ms 31733 pps 3.56 MByte 583.07
+ .br
+-[ 3] 3.00-4.00 sec 44.5 MBytes 373 Mbits/sec 0.019 ms 59586/262562 (23%) 79.939/75.667/83.857/ 1.145 ms 31767 pps 3.56 MByte 583.57
++[ 3] 3.00\-4.00 sec 44.5 MBytes 373 Mbits/sec 0.019 ms 59586/262562 (23%) 79.939/75.667/83.857/ 1.145 ms 31767 pps 3.56 MByte 583.57
+ .br
+-[ 3] 4.00-5.00 sec 44.5 MBytes 373 Mbits/sec 0.081 ms 59612/322196 (19%) 79.882/75.400/86.618/ 1.666 ms 31755 pps 3.55 MByte 584.40
++[ 3] 4.00\-5.00 sec 44.5 MBytes 373 Mbits/sec 0.081 ms 59612/322196 (19%) 79.882/75.400/86.618/ 1.666 ms 31755 pps 3.55 MByte 584.40
+ .br
+-[ 3] 5.00-6.00 sec 44.7 MBytes 375 Mbits/sec 0.064 ms 59571/381918 (16%) 79.767/75.571/85.339/ 1.556 ms 31879 pps 3.56 MByte 588.02
++[ 3] 5.00\-6.00 sec 44.7 MBytes 375 Mbits/sec 0.064 ms 59571/381918 (16%) 79.767/75.571/85.339/ 1.556 ms 31879 pps 3.56 MByte 588.02
+ .br
+-[ 3] 6.00-7.00 sec 44.6 MBytes 374 Mbits/sec 0.041 ms 58990/440820 (13%) 79.722/75.662/85.938/ 1.087 ms 31820 pps 3.58 MByte 586.73
++[ 3] 6.00\-7.00 sec 44.6 MBytes 374 Mbits/sec 0.041 ms 58990/440820 (13%) 79.722/75.662/85.938/ 1.087 ms 31820 pps 3.58 MByte 586.73
+ .br
+-[ 3] 7.00-8.00 sec 44.7 MBytes 375 Mbits/sec 0.027 ms 59679/500548 (12%) 79.745/75.704/84.731/ 1.094 ms 31869 pps 3.55 MByte 587.46
++[ 3] 7.00\-8.00 sec 44.7 MBytes 375 Mbits/sec 0.027 ms 59679/500548 (12%) 79.745/75.704/84.731/ 1.094 ms 31869 pps 3.55 MByte 587.46
+ .br
+-[ 3] 8.00-9.00 sec 44.3 MBytes 371 Mbits/sec 0.078 ms 59230/559499 (11%) 80.346/75.514/94.293/ 2.858 ms 31590 pps 3.58 MByte 577.97
++[ 3] 8.00\-9.00 sec 44.3 MBytes 371 Mbits/sec 0.078 ms 59230/559499 (11%) 80.346/75.514/94.293/ 2.858 ms 31590 pps 3.58 MByte 577.97
+ .br
+-[ 3] 9.00-10.00 sec 44.4 MBytes 373 Mbits/sec 0.073 ms 58782/618394 (9.5%) 79.125/75.511/93.638/ 1.643 ms 31702 pps 3.55 MByte 588.99
++[ 3] 9.00\-10.00 sec 44.4 MBytes 373 Mbits/sec 0.073 ms 58782/618394 (9.5%) 79.125/75.511/93.638/ 1.643 ms 31702 pps 3.55 MByte 588.99
+ .br
+-[ 3] 10.00-10.08 sec 3.53 MBytes 367 Mbits/sec 0.129 ms 6026/595236 (1%) 94.967/80.709/99.685/ 3.560 ms 31107 pps 3.58 MByte 483.12
++[ 3] 10.00\-10.08 sec 3.53 MBytes 367 Mbits/sec 0.129 ms 6026/595236 (1%) 94.967/80.709/99.685/ 3.560 ms 31107 pps 3.58 MByte 483.12
+ .br
+-[ 3] 0.00-10.08 sec 449 MBytes 374 Mbits/sec 0.129 ms 592717/913046 (65%) 79.453/ 2.367/99.685/ 5.200 ms 31776 pps (null) 587.91
++[ 3] 0.00\-10.08 sec 449 MBytes 374 Mbits/sec 0.129 ms 592717/913046 (65%) 79.453/ 2.367/99.685/ 5.200 ms 31776 pps (null) 587.91
+ .br
+
+ .TP
+-.B where (per -e,)
++.B where (per \-e,)
+ .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 @@
+ Received packet rate in packets per second
+ .br
+ .B inP
+-inP, short for in progress, is the average number of bytes in progress or in flight. This is taken from an application write to read perspective. (Requires --trip-times on client. See Little's law in NOTES.)
++inP, short for in progress, is the average number of bytes in progress or in flight. This is taken from an application write to read perspective. (Requires \-\-trip\-times on client. See Little's law in NOTES.)
+ .br
+ .B NetPwr
+ Network power defined as (throughput / latency)
+@@ -701,7 +701,7 @@
+
+ .B Isochronous UDP tests (client)
+
+-.B iperf -c 192.168.100.33 -u -e -i 1 --isochronous=60:100m,10m --realtime
++.B iperf \-c 192.168.100.33 \-u \-e \-i 1 \-\-isochronous=60:100m,10m \-\-realtime
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -717,36 +717,36 @@
+ .br
+ [ ID] Interval Transfer Bandwidth Write/Err PPS frames:tx/missed/slips
+ .br
+-[ 3] 0.00-1.00 sec 12.0 MBytes 101 Mbits/sec 8615/0 8493 pps 62/0/0
++[ 3] 0.00\-1.00 sec 12.0 MBytes 101 Mbits/sec 8615/0 8493 pps 62/0/0
+ .br
+-[ 3] 1.00-2.00 sec 12.0 MBytes 100 Mbits/sec 8556/0 8557 pps 60/0/0
++[ 3] 1.00\-2.00 sec 12.0 MBytes 100 Mbits/sec 8556/0 8557 pps 60/0/0
+ .br
+-[ 3] 2.00-3.00 sec 12.0 MBytes 101 Mbits/sec 8586/0 8586 pps 60/0/0
++[ 3] 2.00\-3.00 sec 12.0 MBytes 101 Mbits/sec 8586/0 8586 pps 60/0/0
+ .br
+-[ 3] 3.00-4.00 sec 12.1 MBytes 102 Mbits/sec 8687/0 8687 pps 60/0/0
++[ 3] 3.00\-4.00 sec 12.1 MBytes 102 Mbits/sec 8687/0 8687 pps 60/0/0
+ .br
+-[ 3] 4.00-5.00 sec 11.8 MBytes 99.2 Mbits/sec 8468/0 8468 pps 60/0/0
++[ 3] 4.00\-5.00 sec 11.8 MBytes 99.2 Mbits/sec 8468/0 8468 pps 60/0/0
+ .br
+-[ 3] 5.00-6.00 sec 11.9 MBytes 99.8 Mbits/sec 8519/0 8520 pps 60/0/0
++[ 3] 5.00\-6.00 sec 11.9 MBytes 99.8 Mbits/sec 8519/0 8520 pps 60/0/0
+ .br
+-[ 3] 6.00-7.00 sec 12.1 MBytes 102 Mbits/sec 8694/0 8694 pps 60/0/0
++[ 3] 6.00\-7.00 sec 12.1 MBytes 102 Mbits/sec 8694/0 8694 pps 60/0/0
+ .br
+-[ 3] 7.00-8.00 sec 12.1 MBytes 102 Mbits/sec 8692/0 8692 pps 60/0/0
++[ 3] 7.00\-8.00 sec 12.1 MBytes 102 Mbits/sec 8692/0 8692 pps 60/0/0
+ .br
+-[ 3] 8.00-9.00 sec 11.9 MBytes 100 Mbits/sec 8537/0 8537 pps 60/0/0
++[ 3] 8.00\-9.00 sec 11.9 MBytes 100 Mbits/sec 8537/0 8537 pps 60/0/0
+ .br
+-[ 3] 9.00-10.00 sec 11.8 MBytes 99.0 Mbits/sec 8450/0 8450 pps 60/0/0
++[ 3] 9.00\-10.00 sec 11.8 MBytes 99.0 Mbits/sec 8450/0 8450 pps 60/0/0
+ .br
+-[ 3] 0.00-10.01 sec 120 MBytes 100 Mbits/sec 85867/0 8574 pps 602/0/0
++[ 3] 0.00\-10.01 sec 120 MBytes 100 Mbits/sec 85867/0 8574 pps 602/0/0
+ .br
+ [ 3] Sent 85867 datagrams
+ .br
+ [ 3] Server Report:
+ .br
+-[ 3] 0.00-9.98 sec 120 MBytes 101 Mbits/sec 0.009 ms 196/85867 (0.23%) 0.665/ 0.083/ 1.318/ 0.174 ms 8605 pps 18903.85
++[ 3] 0.00\-9.98 sec 120 MBytes 101 Mbits/sec 0.009 ms 196/85867 (0.23%) 0.665/ 0.083/ 1.318/ 0.174 ms 8605 pps 18903.85
+ .br
+ .TP
+-.B where (per -e,)
++.B where (per \-e,)
+ .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 @@
+
+ .B Isochronous UDP tests (server)
+
+-.B iperf -s -e -u --udp-histogram=100u,2000 --realtime
++.B iperf \-s \-e \-u \-\-udp\-histogram=100u,2000 \-\-realtime
+ .br
+ ------------------------------------------------------------
+ .br
+@@ -766,26 +766,26 @@
+ .br
+ ------------------------------------------------------------
+ .br
+-[ 3] local 192.168.100.33 port 5001 connected with 192.168.100.76 port 42928 isoch (peer 2.0.13-alpha)
++[ 3] local 192.168.100.33 port 5001 connected with 192.168.100.76 port 42928 isoch (peer 2.0.13\-alpha)
+ .br
+ [ ID] Interval Transfer Bandwidth Jitter Lost/Total Latency avg/min/max/stdev PPS NetPwr Frames/Lost
+ .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
++[ 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
+-[ 3] 0.00-9.98 sec T8(f)-PDF: bin(w=100us):cnt(85671)=1:2,2:844,3:10034,4:8493,5:8967,6:8733,7:8823,8:9023,9:8901,10:8816,11:7730,12:4563,13:741,14:1 (5.00/95.00%=3/12,Outliers=0,obl/obu=0/0)
++[ 3] 0.00\-9.98 sec T8(f)\-PDF: bin(w=100us):cnt(85671)=1:2,2:844,3:10034,4:8493,5:8967,6:8733,7:8823,8:9023,9:8901,10:8816,11:7730,12:4563,13:741,14:1 (5.00/95.00%=3/12,Outliers=0,obl/obu=0/0)
+ .br
+-[ 3] 0.00-9.98 sec F8(f)-PDF: bin(w=100us):cnt(598)=15:2,16:1,17:27,18:68,19:125,20:136,21:103,22:83,23:22,24:23,25:5,26:3 (5.00/95.00%=17/24,Outliers=0,obl/obu=0/0)
++[ 3] 0.00\-9.98 sec F8(f)\-PDF: bin(w=100us):cnt(598)=15:2,16:1,17:27,18:68,19:125,20:136,21:103,22:83,23:22,24:23,25:5,26:3 (5.00/95.00%=17/24,Outliers=0,obl/obu=0/0)
+
+ .TP
+ .B where,
+ .B Frames/lost
+-Total number of frames (or bursts) received. Total number of bursts lost or error-ed
++Total number of frames (or bursts) received. Total number of bursts lost or error\-ed
+ .br
+ .B
+-T8-PDF(f)
++T8\-PDF(f)
+ Latency histogram for packets
+ .br
+-.B F8-PDF(f)
++.B F8\-PDF(f)
+ Latency histogram for frames
+
+
+@@ -804,35 +804,35 @@
+ 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
+-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.
+ .P
+ .B
+ IP tos:
+-Specifies the type-of-service or DSCP class for connections. Accepted values are \fBaf11, af12, af13, af21,
++Specifies the type\-of\-service or DSCP class for connections. Accepted values are \fBaf11, af12, af13, af21,
+ af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, ef, le, nqb, nqb2,
+ ac_be, ac_bk, ac_vi, ac_vo, lowdelay, throughput, reliability\fR, a numeric value, or none to use the operating system default.
+-The ac_xx values are the four access categories defined in WMM for Wi-Fi, and they are aliases for DSCP values that will be mapped
+-to the corresponding ACs under the assumption that the device uses the DSCP-to-UP mapping table specified in IETF RFC 8325.
++The ac_xx values are the four access categories defined in WMM for Wi\-Fi, and they are aliases for DSCP values that will be mapped
++to the corresponding ACs under the assumption that the device uses the DSCP\-to\-UP mapping table specified in IETF RFC 8325.
+ .P
+-.B --trip-times
+-The --trip-times option enables many one way delay (OWD) metrics. Also note that using --trip-times on a TCP client
+-will cause --tcp-write-prefetch to be set to a small value if tcp-write-prefetch hasn't hasn't also been set. This is
+-done to reduce send side bloat latency (which is unrelated to network induced latency.) Set --tcp-write-prefetch
++.B \-\-trip\-times
++The \-\-trip\-times option enables many one way delay (OWD) metrics. Also note that using \-\-trip\-times on a TCP client
++will cause \-\-tcp\-write\-prefetch to be set to a small value if tcp\-write\-prefetch hasn't hasn't also been set. This is
++done to reduce send side bloat latency (which is unrelated to network induced latency.) Set \-\-tcp\-write\-prefetch
+ to zero to disable this (which will disable TCP_NOTSENT_LOWAT) and will allow for send side bloat.
+ .P
+ .B Synchronized clocks:
+-The --trip-times option indicates that the client's and server's clocks are synchronized to a common reference.
++The \-\-trip\-times option indicates that the client's and server's clocks are synchronized to a common reference.
+ 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.
+ .P
+-.B Histograms and non-parametric statistics:
+-The --histograms option provides the raw data where nothing is averaged. This is useful for non-parametric
++.B Histograms and non\-parametric statistics:
++The \-\-histograms option provides the raw data where nothing is averaged. This is useful for non\-parametric
+ 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 @@
+ Below is an example bounceback histogram and how to interpret it
+
+ .br
+-[ 1] 0.00-5.10 sec BB8-PDF:
++[ 1] 0.00\-5.10 sec BB8\-PDF:
+ .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 @@
+ .B [ 1]
+ The traffic thread number
+ .br
+-.B 0.00-5.10 sec
++.B 0.00\-5.10 sec
+ The time interval of the histogram
+ .br
+-.B BB8-PDF
++.B BB8\-PDF
+ BB8 is the histogram name and the PDF indicates a histogram raw output
+ .br
+ .B bin(w=100us)
+@@ -862,7 +862,7 @@
+ provides the total number of samples in the histogram. There are 50 samples in this histogram
+ .br
+ .B 35:1
+-provides the bin no then the number of samples in that bin. Bin 35 with bin width 100us is 3.4 ms - 3.5 ms and there was one sample that landed there
++provides the bin no then the number of samples in that bin. Bin 35 with bin width 100us is 3.4 ms \- 3.5 ms and there was one sample that landed there
+ .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 @@
+ .P
+ .B
+ Binding
+-is done at the logical level of port and ip address (or layer 3) using the -B option
++is done at the logical level of port and ip address (or layer 3) using the \-B option
+ and a colon as the separator between port and the ip addr. Binding at the
+ device (or layer 2) level requires the percent (%) as the delimiter (for both the client and the server.)
+-An example for src port and ip address is -B 192.168.1.1:6001. To \fBbind the src port only\fR and
++An example for src port and ip address is \-B 192.168.1.1:6001. To \fBbind the src port only\fR and
+ 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.
+ 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
++So, for example, if the IP address of eth0 is used for \-B and the
+ routing table for the destination IP address resolves
+ 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,
+-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
+-for multicast. For example, iperf -s -B 224.0.0.1\fB%eth0\fR
++only packets destined to \-B IP address will be received. It's also useful
++for multicast. For example, iperf \-s \-B 224.0.0.1\fB%eth0\fR
+ will only accept ip multicast packets with dest ip 224.0.0.1 that are
+-received on the eth0 interface, while iperf -s -B 224.0.0.1 will
++received on the eth0 interface, while iperf \-s \-B 224.0.0.1 will
+ receive those packets on any interface,
+-Finally, the device specifier is required for v6 link-local,
+-e.g. -c [v6addr]%<dev> -V, to select the output interface.
++Finally, the device specifier is required for v6 link\-local,
++e.g. \-c [v6addr]%<dev> \-V, to select the output interface.
+ .P
+-.B Reverse, full-duplex, dualtest (-d) and tradeoff (-r):
+-The \fB--reverse\fR (-R) and \fB--full-duplex\fR options can be confusing when compared to the
+-older options of \fB--dualtest (-d)\fR and \fB--tradeoff (-r)\fR. The newer options of \fB--reverse\fR and \fB--full-duplex\fR only
+-open one socket and read and write to the \fBsame socket descriptor\fR, i.e. use the socket in full duplex mode. The older -d and -r open
++.B Reverse, full\-duplex, dualtest (\-d) and tradeoff (\-r):
++The \fB\-\-reverse\fR (\-R) and \fB\-\-full\-duplex\fR options can be confusing when compared to the
++older options of \fB\-\-dualtest (\-d)\fR and \fB\-\-tradeoff (\-r)\fR. The newer options of \fB\-\-reverse\fR and \fB\-\-full\-duplex\fR only
++open one socket and read and write to the \fBsame socket descriptor\fR, i.e. use the socket in full duplex mode. The older \-d and \-r open
+ second sockets in the opposite direction and do not use a socket in full duplex mode. Note that full duplex applies to the socket
+ and not to the network devices and that full duplex sockets are supported by the
+ operating systems regardless if an underlying network supports full duplex transmission and reception.
+-It's \fBsuggested to use --reverse\fR if you
+-want to \fBtest through a NAT firewall\fR (or -R on non-windows systems). This applies
+-role reversal of the test after opening the full duplex socket. (Note: Firewall piercing may be required to use -d and -r
++It's \fBsuggested to use \-\-reverse\fR if you
++want to \fBtest through a NAT firewall\fR (or \-R on non\-windows systems). This applies
++role reversal of the test after opening the full duplex socket. (Note: Firewall piercing may be required to use \-d and \-r
+ if a NAT gateway is in the path.)
+ .P
+-Also, the --reverse -b <rate> setting behaves differently for TCP and UDP. For
++Also, the \-\-reverse \-b <rate> setting behaves differently for TCP and UDP. For
+ TCP it will rate limit the read side, i.e. the iperf client
+ (role reversed to act as a server) reading from the full duplex socket.
+ This will in turn flow control the reverse traffic per standard TCP
+-congestion control. The --reverse -b <rate> will be applied on
++congestion control. The \-\-reverse \-b <rate> will be applied on
+ transmit (i.e. the server role reversed to act as a client) for UDP
+ since there is no flow control with UDP. There is no option to
+-directly rate limit the writes with TCP testing when using --reverse.
++directly rate limit the writes with TCP testing when using \-\-reverse.
+ .P
+ .B Bounceback
+ The bounceback test allows one to measure network responsiveness (which, in this test, is an inverse of latency.)
+ The units are responses per second or rps. Latency is merely delay in units of time. Latency metrics require one
+ to know the delay of what's being measured. For bounceback it's a client write to a server read followed by a server
+ write and then the client read. The original write is bounce backed. Iperf 2 sets up the socket with TCP_NODELAY
+-and possibly TCP_QUICKACK (unless disabled). The client sends a small write (which defaults to 100 bytes unless -l is set)
++and possibly TCP_QUICKACK (unless disabled). The client sends a small write (which defaults to 100 bytes unless \-l is set)
+ and issues a read waiting for the "bounceback" from the server. The server waits for a read and then
+ optionally delays before sending the payload back. This repeats until the traffic ends. Results
+ are shown in units of rps and time delays.
+ .P
+-The TCP_QUICKACK socket option will be enabled during bounceback tests when the bounceback-hold
+-is set to a non-zero value. The socket option is applied after every read() on the server
+-and before the hold delay call. It's also applied on the client. Use --bounceback-no-quickack
++The TCP_QUICKACK socket option will be enabled during bounceback tests when the bounceback\-hold
++is set to a non\-zero value. The socket option is applied after every read() on the server
++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 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
++client when the \-e (\-\-enhanced) option is set. Look for the
+ ct=<value> in the connected message, e.g.in '[ 3] local 192.168.1.4
+ port 48736 connected with 192.168.1.1 port 5001 \fB(ct=1.84 ms)\fR'
+ shows the 3WHS took 1.84 milliseconds.
+ .P
+-.B Port-range
+-Port ranges are supported using the hyphen notation, e.g. 6001-6009. This will cause multiple threads, one per port, on either the listener/server or the client. The user needs to take care that the ports in the port range are available and not already in use per the operating system. The -P is supported on the client and will apply to each destination port within the port range.
+-Finally, this can be used for a workaround for Windows UDP and -P > 1 as Windows doesn't dispatch UDP per a server's connect and the quintuple.
++.B Port\-range
++Port ranges are supported using the hyphen notation, e.g. 6001\-6009. This will cause multiple threads, one per port, on either the listener/server or the client. The user needs to take care that the ports in the port range are available and not already in use per the operating system. The \-P is supported on the client and will apply to each destination port within the port range.
++Finally, this can be used for a workaround for Windows UDP and \-P > 1 as Windows doesn't dispatch UDP per a server's connect and the quintuple.
+ .P
+ .B Packet per second (pps) calculation
+ The packets per second calculation is done as a derivative, i.e. number of packets divided by
+ time. The time is taken from the previous last packet to the current last packet. It is not
+ the sample interval time. The last packet can land at different times within an interval.
+ This means that pps does not have to match rx bytes divided by the sample interval.
+-Also, with --trip-times set, the packet time on receive is set by the sender's write
+-time so pps indicates the end to end pps with --trip-times. The RX pps calculation is receive
+-side only when -e is set and --trip-times is not set.
++Also, with \-\-trip\-times set, the packet time on receive is set by the sender's write
++time so pps indicates the end to end pps with \-\-trip\-times. The RX pps calculation is receive
++side only when \-e is set and \-\-trip\-times is not set.
+ .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 @@
+ 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
+-divided by an undesirable property. Also note, one must use -i
++divided by an undesirable property. Also note, one must use \-i
+ interval with TCP to get this as that's what sets the RTT sampling
+ rate. The metric is scaled to assist with human readability.
+ .P
+ .B Multicast:
+-Iperf 2 supports multicast with a couple of caveats. First, multicast streams cannot take advantage of the -P option. The server will serialize multicast streams. Also, it's highly encouraged to use a -t on a server that will be used for multicast clients. That is because the single end of traffic packet sent from client to server may get lost and there are no redundant end of traffic packets. Setting -t on the server will kill the server thread in the event this packet is indeed lost.
++Iperf 2 supports multicast with a couple of caveats. First, multicast streams cannot take advantage of the \-P option. The server will serialize multicast streams. Also, it's highly encouraged to use a \-t on a server that will be used for multicast clients. That is because the single end of traffic packet sent from client to server may get lost and there are no redundant end of traffic packets. Setting \-t on the server will kill the server thread in the event this packet is indeed lost.
+ .P
+ .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 Fast Sampling:
+ Use
+-.B ./configure --enable-fastsampling
+-and then compile from source to enable four digit (e.g. 1.0000) precision in reports' timestamps. Useful for sub-millisecond sampling.
++.B ./configure \-\-enable\-fastsampling
++and then compile from source to enable four digit (e.g. 1.0000) precision in reports' timestamps. Useful for sub\-millisecond sampling.
+ .SH DIAGNOSTICS
+ Use
+-.B ./configure --enable-thread-debug
++.B ./configure \-\-enable\-thread\-debug
+ 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 @@
+ Kevin Gibbs,
+ John Estabrook <jestabro at ncsa.uiuc.edu>,
+ Andrew Gallatin <gallatin at gmail.com>,
+-Stephen Hemminger <shemminger at linux-foundation.org>,
++Stephen Hemminger <shemminger at linux\-foundation.org>,
+ Tim Auckland <tim.auckland at gmail.com>,
+ Robert J. McMahon <rjmcmahon at rjmcmahon.com>
+ .SH "SEE ALSO"
diff --git a/debian/patches/004-fix-man-break-lines.patch b/debian/patches/004-fix-man-break-lines.patch
new file mode 100644
index 0000000..fd329d1
--- /dev/null
+++ b/debian/patches/004-fix-man-break-lines.patch
@@ -0,0 +1,38 @@
+Description: fix cannot break lines error
+Forwarded: not-needed
+Author: Roberto Lumbreras <rover@debian.org>
+
+Index: iperf-2.1.9+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 @@
+ .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
+-[ 1] 0.00\-10.02 sec BB8(f)\-PDF: bin(w=100us):cnt(100)=97:5,98:8,99:10,100:8,101:12,102:10,103:6,104:7,105:2,106:2,107:3,108:3,109:2,110:1,114:1,115:1,118:1,120:2,121:1,124:1,125:1,128:1,140:1,143:1,144:1,146:2,148:1,149:2,150:1,151:1,152:1,196:1 (5.00/95.00/99.7%=97/149/196,Outliers=0,obl/obu=0/0)
++[ 1] 0.00\-10.02 sec BB8(f)\-PDF: bin(w=100us): cnt(100)=97: 5,98: 8,99: 10,100: 8,101: 12,102: 10,103: 6,104: 7,105: 2,106: 2,107: 3,108: 3,109: 2,110: 1,114: 1,115: 1,118: 1,120: 2,121: 1,124: 1,125: 1,128: 1,140: 1,143: 1,144: 1,146: 2,148: 1,149: 2,150: 1,151: 1,152: 1,196: 1 (5.00/95.00/99.7%=97/149/196,Outliers=0,obl/obu=0/0)
+ .br
+
+ .TP
+@@ -772,9 +772,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
+-[ 3] 0.00\-9.98 sec T8(f)\-PDF: bin(w=100us):cnt(85671)=1:2,2:844,3:10034,4:8493,5:8967,6:8733,7:8823,8:9023,9:8901,10:8816,11:7730,12:4563,13:741,14:1 (5.00/95.00%=3/12,Outliers=0,obl/obu=0/0)
++[ 3] 0.00\-9.98 sec T8(f)\-PDF: bin(w=100us): cnt(85671)= 1:2,2:844,3: 10034,4: 8493,5: 8967,6: 8733,7: 8823,8: 9023,9: 8901,10: 8816,11: 7730,12: 4563,13: 741,14:1 (5.00/95.00%=3/12,Outliers=0,obl/obu=0/0)
+ .br
+-[ 3] 0.00\-9.98 sec F8(f)\-PDF: bin(w=100us):cnt(598)=15:2,16:1,17:27,18:68,19:125,20:136,21:103,22:83,23:22,24:23,25:5,26:3 (5.00/95.00%=17/24,Outliers=0,obl/obu=0/0)
++[ 3] 0.00\-9.98 sec F8(f)\-PDF: bin(w=100us): cnt(598)= 15:2,16:1,17: 27,18: 68,19: 125,20: 136,21: 103,22: 83,23: 22,24: 23,25: 5,26: 3 (5.00/95.00%=17/24,Outliers=0,obl/obu=0/0)
+
+ .TP
+ .B where,
+@@ -843,7 +843,7 @@
+ .br
+ [ 1] 0.00\-5.10 sec BB8\-PDF:
+ .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)
++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
+ .B where,
+ .B [ 1]
diff --git a/debian/patches/013-delete-service.patch b/debian/patches/013-delete-service.patch
new file mode 100644
index 0000000..e69f8c6
--- /dev/null
+++ b/debian/patches/013-delete-service.patch
@@ -0,0 +1,20 @@
+Description: delete unused service.[ch] files with restrictive license
+ include/service.h and src/service.c files are copyrighted by Microsoft
+ with just a 'All Rights Reserved' message as license. Supposedly iperf
+ is distributed under NCSA license, but licensing information in this
+ file should be changed. In the meantime, and as these files are only used
+ for compiling the windows iperf binary, I'm deleting them from the Debian
+ version.
+Forwarded: not-needed
+Author: Roberto Lumbreras <rover@debian.org>
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -42,7 +42,6 @@
+ gnu_getopt_long.c \
+ histogram.c \
+ main.cpp \
+- service.c \
+ socket_io.c \
+ stdio.c \
+ packet_ring.c \
diff --git a/debian/patches/017-spelling-errors b/debian/patches/017-spelling-errors
new file mode 100644
index 0000000..5dafbfb
--- /dev/null
+++ b/debian/patches/017-spelling-errors
@@ -0,0 +1,41 @@
+Description: spelling errors in binary (lintian)
+ fix spelling errors / typos
+Author: Roberto Lumbreras
+
+Index: iperf-2.1.9+dfsg/src/socket_io.c
+===================================================================
+--- 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 @@
+ reportstruct->sentTime = reportstruct->packetTime;
+ reportstruct->packetLen = writen(mySocket, mSettings->mBuf, writelen, &reportstruct->writecnt);
+ if (reportstruct->packetLen <= 0) {
+- WARN_errno((reportstruct->packetLen < 0), "event writen()");
++ WARN_errno((reportstruct->packetLen < 0), "event written()");
+ 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
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..7620e0b
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,4 @@
+003-fix-hyphen-used-as-minus-sign.patch
+004-fix-man-break-lines.patch
+013-delete-service.patch
+017-spelling-errors
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..bb3b096
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,11 @@
+#!/usr/bin/make -f
+
+export DH_OPTIONS
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+override_dh_auto_configure:
+ dh_auto_configure -- --enable-fastsampling
+%:
+ dh $@
+override_dh_auto_test:
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..2f41178
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,2 @@
+# Upstream does not provide a cryptographic signature
+iperf source: debian-watch-does-not-check-openpgp-signature
diff --git a/debian/ufw/iperf b/debian/ufw/iperf
new file mode 100644
index 0000000..94fbada
--- /dev/null
+++ b/debian/ufw/iperf
@@ -0,0 +1,4 @@
+[iperf]
+title=iperf
+description=Network performance measurement tool
+ports=5001
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..1d675bb
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,3 @@
+version=4
+opts="uversionmangle=s/b\d$//,dversionmangle=s/\+dfsg\d*$//" \
+ http://sf.net/iperf2/iperf-?_?([\w+\d+\.]+|\d+)(?:\.tar|\.tgz)(?:\.gz|\.bz2|)