1
1

88 Коммитов

Автор SHA1 Сообщение Дата
a1346054
e919e8c21b trim excess whitespace 2021-09-03 14:11:16 +00:00
a1346054
50d6cce65c fix spelling 2021-09-03 14:11:16 +00:00
Mark Feit
775341de11
Exit if idle time expires waiting for a connection in one-off mode. #1187 (#1197) 2021-09-02 14:20:26 -07:00
Bruce A. Mah
26fd923448 docs: Update documentation for -w to reflect what it actually does.
Fixes #1175.
2021-07-08 19:52:08 -07:00
Bruce A. Mah
de006004d4
enh: Wording fixes in various messages, document --rcv-timeout in manpage.
Follow-up to #1123.

Pet copyrights where appropriate.
2021-02-26 13:49:00 -08:00
David Bar-On
49a5771af1
IP don't fragment support (#1119)
Adds an --dont-fragment flag that sets the DF flag in the header for UDP/IPv4 tests.

Co-authored-by: root <root@DESKTOP-L81E90U.localdomain>
Co-authored-by: Bruce A. Mah <bmah@es.net>
2021-02-16 14:28:54 -08:00
Wojciech Jowsa
fab96c1d96
Enable writing to pidfile in client mode (#1110) 2021-02-04 08:30:47 -08:00
Bruce A. Mah
21581a7216
enh: Support SO_BINDTODEVICE (#1097)
This lets iperf work better with multi-homed machines and
VRF.

Fixes #1089.

Based on a patch by Ben Greear <greearb@candelatech.com> via PR #817.

Co-authored-by: Ben Greear <greearb@candelatech.com>
2020-12-22 15:52:24 -08:00
Bruce A. Mah
d2a68e0896
Issue 1079 (#1091)
* docs: Add a few notes about RSA key formats used for auth.

* enh(auth): If we can't read key files, emit appropriate OpenSSL error.

Fixes #1079.
2020-12-07 14:10:56 -08:00
ralcini
bd1437791a
Configurable value for time drift between client/server for authentication request issue1065 (#1070)
* Issue 1065

* feat: Allow to configure a custom value for time drift between client/server for authentication

The use case is to support scenarios where it's not possible to enforce sync between client and server times.

* enh: drift redefined with skew

Co-authored-by: Francesco Marino <francesco.marino@cybaze.it>
2020-11-11 17:27:47 -08:00
Bruce A. Mah
46047be9c2
Issue 1055 (#1057)
* docs:  Clarify the optional argument to the --timestamps option.

Fixes #1055.
2020-09-30 14:30:45 -07:00
Bruce A. Mah
1a908ce13e
feat: Add a --timestamps flag to prepend a timestamp per output line. (#1028)
This flag takes an optional argument, which is a format specification to strftime(3)...this allows for custom timestamp formats.  Based on a suggested implementation by @davidBar-On.  Towards #909.
2020-07-23 07:52:46 -07:00
Bruce A. Mah
223da98090
Issue 999 follow up (#1025)
* doc: Add manpage text for --server-bitrate-limit.

While here, normalize the manpage text for all command-line options
that take [KMGT] scaling suffixes (there were about three different
strings in use).

* doc: Bump manpage date.

* fix: Fix printf format string warnings on macOS.

* fix: Fix compatibility definition of PRIu64 in iperf_udp.c to match iperf.h.
2020-07-10 15:29:47 -07:00
Bruce A. Mah
f95924ddcf
chore: iperf-3.8 release engineering changes (#1012)
Updates version numbers, release notes, etc.
2020-06-08 13:12:36 -07:00
Bruce A. Mah
c47e43d5a3
doc: Document --bidir option in manpage. (#893)
Fixes #890.
2019-06-24 17:37:32 -07:00
Bruce A. Mah
c9bb46938c
Partially revert documentated added in 0c4d599 to reflect reality. (#866)
The bug reported in #505 seems to not exist at this time, and
the text added in this manpage change caused some other problems,
a la perfsonar/pscheduler#819.

Fixes #860.
2019-05-14 14:41:22 -07:00
Matt Pelland
40e7c05440 implement providing password via environment variable (#815) 2019-02-01 14:39:43 -08:00
Bruce A. Mah
d95891b812
Document --udp-counters-64bit in manual page. (#796)
Fixes #791.
2018-09-17 13:32:15 -07:00
Bruce A. Mah
964f106a98
Change applicable http:// URLs to https://. Fix a bad URL in RPM spec. (#759) 2018-06-22 14:09:01 -07:00
Bruce A. Mah
829d619ab4
First try at implementing --extra-data. (#729)
Towards #600.
2018-05-09 17:42:17 -07:00
edupont
48a65ff76e Adding missing word (#736) 2018-05-09 17:41:58 -07:00
Phil Levchenko
cbea72b6ee Add --repeating-payload option to the client side (#726)
This option simulates payload in iperf2, which is just repetitive pattern
(ASCII '0..9' repeating), as opposed to iperf3 where payload is random.
It might help in testing and reveal problems in networking gear with hardware
compression (including WiFi access points), where iperf2 and iperf3 perform
differently, just based on payload entropy.
2018-04-20 07:25:24 -07:00
Bruce A. Mah
6731b2152a
Version number bumps for iperf-3.5. Also fix a typo in release notes.
Towards #707.
2018-02-28 13:21:59 -08:00
Jason Leschnik
a6123ce7fb Change the wording on bind parameter documentation for clarity (#702) 2018-02-21 12:23:36 -08:00
Bruce A. Mah
e147de5387
Version number bumps for iperf-3.4. 2018-02-12 14:08:45 -08:00
Tobias Klausmann
f61355e3e1 Make help and manpage a bit clearer about TOS and DSCP values (#670)
Since iperf3 uses strtol() to parse these values, the user can specify
them with 0 prefix for octals and 0x for hex values.
2017-11-16 09:18:40 -08:00
Bruce A. Mah
222da46ba9
Follow-on to pull-request #665...update manpage and comments.
These reflect support for -A on Windows.
2017-11-13 13:00:10 -08:00
Bruce A. Mah
dadbd25838
Fix spelling mistake in manpage.
Fixes #610, pointed out by @borenius-dfn-de.
2017-07-17 08:22:45 -07:00
Bruce A. Mah
4f3a7a5403
Greatly expand description section.
Based on text by @eriitguy, fixes #480.
2017-06-20 15:04:30 -07:00
Bruce A. Mah
c458a115b7 Fix -F problems (#588)
Attempt to fix some brokenness in -F from #301.

In some work related to #125, we introduced a bug in which
chunks of a file being read for the -F option were not
completely sent, particularly with TCP sockets.  We attempt
to fix this by detecting cases in which not all data passed
to a socket could be actually sent (for example due to full
socket buffers) and preserving that data for future send
iterations.

The ending statistics in the "diskfile" JSON structure were
wrong, and did not properly distinguish between sender-side
and receiver-side statistics.  This has been fixed (at least
for the client side).

Specifically mention in the manpage that "iperf -F" is not
a file transfer tool.
2017-05-30 14:15:28 -07:00
Bruce A. Mah
0f081b7b2e Issue 583 (#586)
* s/bandwidth/bitrate/ in user-facing places.  Towards #583.

iperf3 has long misused terminology; bandwidth is a measure of
capacity.  iperf3 measures bitrate or throughput.  We standardize
on "bitrate" because it begins with the same letter as "bandwidth"
(to match the -b command-line option).

User-facing output mentioning "bandwidth" now uses "bitrate".
The long command-line option for -b (--bandwidth) is now --bitrate
(--bandwidth is transparently accepted for backward compatibility).
A few places in documentation that talk about bandwidth as a
measured value have been reworded to use bitrate or throughput.

There are a number of places in code where variables are still
called "bandwidth".  We leave these alone for now.

A mention of "bandwidth" in the test parameters JSON also needs
to remain unchanged to avoid breaking compatibility.  However,
the test results JSON never used the term "bandwidth" in
the first place.

* s/bandwidth/throughput in one place in RPM description.  Towards #583.
2017-05-24 10:50:44 -07:00
Bruce A. Mah
2541b86174
Bump manpage date. 2017-05-18 16:39:55 -07:00
Brian Tierney
0c4d5992fd clarified a couple options 2017-05-18 11:43:50 -07:00
Bruce A. Mah
9d7d60aca1 Issue 216 (#581)
* Add configurable timeout for the setup of the control connection.
This is specified using the new --connect-timeout option, with an
integer parameter in ms.  The iperf3 client will wait for this
amount of time for the setup of the control connection to the
server.  If this option is not given, the OS default for TCP
connection setup is used.  Specifying a smaller connection timeout
allows faster detection of a down / unresponsive iperf3 server.

The implementation uses a variation on the timeout_connect()
function from OpenBSD's netcat utility.

Fixes #216.
2017-05-17 12:50:50 -07:00
Bruce A. Mah
37d913dfcc Improve error handling and documentation for -f/--format. (#568)
We now reject all invalid format characters given as the
argument to the -f/--format flag.  All valid characters are now
documented in the usage message and manual page.

Towards #566.
2017-05-08 10:01:15 -07:00
Bruce A. Mah
cba8584b2d Pacing timer (#563)
* Add --pacing-timer option to allow tuning of -b timers.
These control the granularity of the timer and hence burstiness
of iperf3's sends.  The default is 1ms (1000), which is the default
starting with iperf 3.2.  Follow-on to the commit in #460.

* Update manpage and release notes for --pacing-timer.
2017-05-03 16:18:32 -07:00
Bruce A. Mah
89e97f05e0
Manpage fixups. Follow-up to #517. 2017-04-20 17:48:22 -07:00
ralcini
a51045de19 Service Authentication (#517)
Add an optional mode that requires clients to authenticate with the server.

In this mode, clients need to provide a username and a password, which are checked against a password file on the server.  The authentication credentials are protected by an RSA public keypair...the encrypted credentials are sent along with the test parameters.

Operationally the use of this feature places the following additional requirements on the build and installation of iperf3:

o The presence of the OpenSSL headers and libraries to build iperf3, and the libraries available on the client and server at runtime.

o Generation of an RSA public keypair; the private part is used by the server and the public part must be distributed to the clients.

o Username/password pairs for all authorized users, to be stored in a file on the server.

o Loose time synchronization between the server and clients (to within approximately 30 seconds).

o Appropriate command-line flags given on the client and server.

Note that iperf3 can be built and run as before, without fulfilling any of these requirements.

Partial documentation for this feature is included in this commit.  It is anticipated that additional documentation text and editing will follow this merge.

Submitted by @ralcini.  First suggested by @codyhanson in pull request #242.
2017-04-20 10:01:08 -07:00
Bruce A. Mah
05600c201a
Minor follow-ups to #508.
Change the internal command-line option code for --dscp from the literal
'5' to a constant defined as OPT_DSCP.

Add manpage text for --dscp option.

Tweak help text for --dscp (while here, fix problem in --tos text).
2017-04-14 13:44:32 -07:00
Bruce A. Mah
b07ed14dae
Be more explicit about the direction of data during tests.
Documentation change only, no functional change.
Fixes #384.
2017-04-14 12:36:47 -07:00
Bruce A. Mah
0fd60a3686 Issue 496 (#498)
* Dynamically determine an appropriate default UDP send size.

We use the TCP MSS for the control connection as the default UDP
sending length, if the --length parameter is not specified for a
UDP test.  This computation replaces the former hard-coded 8K
default, which was way too large for non-jumbo-frame Ethernet
networks.

The concept for this solution was adapted from nuttcp.  The
iperf3 implementation is pretty easy since we already were
getting the MSS for the control connection anyway (although we
needed to get it slightly earlier in the setup process to be
useful).

Towards issue #496.

While here, s/int/socklen_t/ in one place to fix a compile warning,
and bump a few copyright dates.

* Warn if doing a UDP test and the socket buffer isn't big enough.

This is surprisingly an issue on FreeBSD and macOS, where the MTU
over the loopback interface is actually larger than the default
UDP socket buffer size.  In these cases, doing a UDP test over the
loopback interface (with the new UDP defaults) will fail unless a
smaller --length or a larger --window size is set explicitly.

Linux has larger UDP socket buffers by default (much larger than the
largest possible MTU), but even in the case that the socket buffers
are too small to hold an MTU-sized send, the kernel seems to do the
send correctly anyway.

Still working towards a good solution for issue #496.

* Further refinement on UDP buffer size settings.

If the default buffer size on a UDP test can't hold a packet,
then increase the buffer size to be large enough to hold one
packet payload.  (If the buffer size was explicitly set, but too
small to hold a packet payload, then warn but don't change the
buffer size.)

Minor code refactoring to...factor out some common code into
a new iperf_udp_buffercheck() function.

Still working towards issue #496.
2017-01-10 09:13:57 -08:00
Bruce A. Mah
a094d9feef Separate out application-level and fair-queueing-based pacing (#488)
* First try to fix pacing issues.  Code compiles, lightly run-tested.

Make --bandwidth only control application-level pacing, refecting
behavior of iperf 3.1.2 and earlier.

Add a new --fq-rate that controls only FQ-based per-socket pacing.
A given test can use application-level pacing, FQ pacing, both,
or neither.

Deprecate the --no-fq-socket-pacing option; specifying this generates
a warning and is equivalent to --fq-rate=0.

Towards issue #467 and related to issue #325.

* Move --fq-rate in the help text to be just below --b, tweak wording.

* Sigh.  One more tweak on help text.

Some day I probably need to review and rewrite the whole thing.

Still working towards #467.
2016-12-12 13:47:53 -08:00
Bruce A. Mah
6aff679e96
Fix executable name and date in the manpage heading. 2016-11-10 13:49:44 -08:00
Bruce A. Mah
9915746a8b
Squashed commit of the following:
commit 2dc03630a736be2ae9f64823aabb5776e7074c2a
Merge: 61e325c 0da552c
Author: Bruce A. Mah <bmah@es.net>
Date:   Thu May 26 09:40:58 2016 -0700

    Merge branch 'master' into issue-325

commit 61e325c5d0a4e7a9823221ce507db0f478fc98b5
Merge: 227992f ccbcee6
Author: Bruce A. Mah <bmah@es.net>
Date:   Thu May 26 11:09:54 2016 -0400

    Merge branch 'issue-325' of github.com:esnet/iperf into issue-325

    Conflicts:
    	src/iperf3.1

commit 227992f366e7f4895b6762011576ba22a42a752e
Author: Bruce A. Mah <bmah@es.net>
Date:   Thu May 26 11:07:01 2016 -0400

    Don't set SO_MAX_PACING_RATE if the rate is 0.  Also tweak some help text.

    Towards #325, in response to feedback from @bltierney.

commit ccbcee6366d50ec632fc00eb11fde8a886f8febe
Author: Bruce A. Mah <bmah@es.net>
Date:   Tue May 24 09:19:41 2016 -0700

    Fix manpage formatting for consistency.

commit 90ac5a9ce09bd746ca5f943a8226ab864da3ebf8
Author: Bruce A. Mah <bmah@es.net>
Date:   Tue May 24 12:14:16 2016 -0400

    Add some documentation for fair-queueing per-socket pacing.

    For #325.

commit 5571059870f7aefefb574816de70b6406848888f
Author: Bruce A. Mah <bmah@es.net>
Date:   Tue May 24 11:55:44 2016 -0400

    Change the fair-queueing socket pacing logic in response to feedback.

    By default, on platforms where per-socket pacing is available, it
    will be used.  If not available, iperf3 will fall back to application-
    level pacing.

    The --no-fq-socket-pacing option can be used to forcibly disable
    fair-queueing per-socket pacing.  (The earlier --socket-pacing option
    has been removed.)

    Tested on CentOS 7, more testing on other platforms is required to
    be sure it didn't break the old application-level pacing behavior.

    For #325.

commit 3e3f506fe9f375a5771c9e3ddfe8677c1a7146e7
Merge: 50a379e 3b23112
Author: Bruce A. Mah <bmah@es.net>
Date:   Tue May 24 09:54:39 2016 -0400

    Merge branch 'master' into issue-325

commit 50a379eddfa89d1313d2aeeb62a6fbc82f00ea17
Author: Bruce A. Mah <bmah@es.net>
Date:   Sat Apr 16 02:55:42 2016 -0400

    Regen.

commit 200d3fe3917b3d298bdf52a0bde32c47cf2727b0
Author: Bruce A. Mah <bmah@es.net>
Date:   Sat Apr 16 02:41:32 2016 -0400

    Checkpoint for initial work on #325 to add socket pacing.

    This works only on Linux and depends on the availability of
    the SO_MAX_PACING_RATE socket option and the fq queue discipline.
    Use --socket-pacing to use SO_MAX_PACING_RATE instead of the
    default iperf3 user-level rate limiting; in either case, the
    --bandwidth parameter controls the desired rate.

    Lightly tested with both --tcp and --udp, normal and --reverse.
    Real testing requires analysis of packet timestamps between
    multiple hosts.
2016-05-26 09:47:48 -07:00
QuaSoft
08a2de459b Add command line option --forceflush to allow user to request flushing of output at the end of each interval.
Fixes #299
2016-03-06 16:47:02 +02:00
Bruce A. Mah
6e48bb2a5d
Markup fixes in manpages for Debian compatibility.
Fixes #291.

Merge candidate for 3.1 stable release if applicable.
2015-11-16 12:00:36 -08:00
Bruce A. Mah
8774140404 Bump version numbers and dates for iperf 3.1. 2015-10-16 10:00:30 -07:00
Bruce A. Mah
b6a2021c0b
Bump version number and manpage rev dates for 3.1b1. 2015-06-19 11:27:16 -07:00
Bruce A. Mah
e142062572
Add -X to restrict SCTP binding to a subset of interfaces.
Contains an alternate implementation of previously-submitted patches
to set the maximum segment size and no-delay options.

As a result of this change, SCTP functionality on Linux will generally
require the libsctp library (on CentOS and similar distributions this
is provided by the lksctp-tools RPM).

Part of #131.

Submitted by:	Bruce Simpson <bs48@st-andrews.ac.uk>
2015-01-05 15:19:57 -08:00
Bruce A. Mah
dba611dbe4 Add one-off mode, where the server serves exactly one request.
Primarily useful for bwctl integration, this is enabled with the -1
and/or --one-off flags.

Fixes #230, based on a patch by @i2aaron.

Signed-off-by: Bruce A. Mah <bmah@es.net>
2014-12-22 14:45:40 -08:00