1
1
Граф коммитов

875 Коммитов

Автор SHA1 Сообщение Дата
Bruce A. Mah
d51501ef83
Make explicitly requested usage output (--help) go to stdout.
Also in this case make the process exit code 0.

Fixes #405.
2017-04-14 12:45:24 -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
08758a16d2 More gracefully handle the case where a congestion control
algorithm isn't available on the server.  This can happen
if the client and server machines have different sets of
congestion control algorithms loaded in kernel modules, etc.
If the requested algorithm isn't available on the server, then
print a warning on the server side, but otherwise continue to
run the test.

Towards #549.
2017-04-11 15:11:17 -07:00
Bruce A. Mah
6f414a0408
Ignore SIGPIPE signals to simplify error handling.
This is an attempt to avoid server-side crashes/exits when the
client abruptly closes its control connection, as found in some
testing for #549.

Fixes #550.
2017-04-11 15:06:01 -07:00
Bruce A. Mah
03224c9f56 Prevent specifying a UDP send size that's too small.
We need at least 16 bytes to hold counters and timestamps.
Avoids a problem noted in issue #390.
2017-04-11 09:43:41 -07:00
Brian Tierney
f66b42d536 more updates to FAQ 2017-04-10 18:09:32 -07:00
Brian Tierney
e739c776b3 removed UDP issue, as this was fixed in 3.1.5 2017-04-10 17:39:04 -07:00
Brian Tierney
75ba6f108d updating answers for couple questions based on recent test results 2017-04-10 14:19:43 -07:00
Bruce A. Mah
03ba9b06f0
First cut at an FAQ for iperf3.
Most of the text contributed by @bltierney.
2017-04-10 10:47:33 -07:00
Tran Viet Hoang
5d14d10697 add tcp rttvar to stream info (#534)
Fixes #525.
2017-03-30 16:29:16 -07:00
Bruce A. Mah
8066a1d222
Fix divide-by-zero / weird output with -F and a zero-length file.
Fixes #361.
2017-03-30 15:33:20 -07:00
f1rebird
a8ee9c650b Fix header includes and build failures on musl (#518)
* Include stdint.h in files where its types are used

Signed-off-by: Moritz Kick <f1rebird@users.noreply.github.com>

* Fix type of len parameter passed to getsockopt

getsockopt expects socklen_t instead of int as its fifth argument

Signed-off-by: Moritz Kick <f1rebird@users.noreply.github.com>

* Remove unnecassary includes of netinet/tcp.h

also cleanup the second include of stdint.h in main.c

This commit fixes #331 and is a replacement for #344.

Signed-off-by: Moritz Kick <f1rebird@users.noreply.github.com>
2017-03-22 12:00:08 -07:00
Bruce A. Mah
b3828fed23
Change "iperf" to "iperf3" in usage strings. Fixes #529. 2017-03-17 07:59:15 -07:00
Bruce A. Mah
59a11c6236
Add missing word. Fixes #527. 2017-03-14 14:58:22 -07:00
ShaunCurrier
9f28b247ba Remove unused hstrerror(), bad nanosleep() message in configure.ac (#503) (#523)
* Remove unused hstrerror(), bad nanosleep() message in configure.ac (#503)

* Remove dead code involving h_errno and hstrerror()

h_errno was formerly set as a side effect of a failed
gethostbyname(3) call, but this function has been
deprecated.
2017-03-13 09:36:45 -07:00
Bruce A. Mah
bc9825448d
Update for iperf-3.1.7. 2017-03-06 09:46:25 -08:00
Bruce A. Mah
0dafb3b2aa
Replace "known issues" section with a pointer to Web content.
This will make it easier to update the known issues independently
from a software release.
2017-02-24 15:55:45 -08:00
Bruce A. Mah
b32020274c
Update known issues section of documentation.
This change is preparatory to removing known issues from the
README file.  In place of duplicate text, we'll put a pointer to a
single SOT for this information.
2017-02-24 15:32:21 -08:00
Bruce A. Mah
87ac3654c1
Revise package description in RPM spec file.
(The original had a few typos and errors in it, and I just lifted
the first paragraph of README.md and tweaked it a bit.)
2017-02-13 10:34:06 -08:00
Bruce A. Mah
6e2ba49f2d
Updates for iperf 3.1.6. 2017-02-02 11:24:11 -08:00
Bruce A. Mah
f46e2e3edc Prevent two recently added messages from spamming JSON output on UDP tests.
Stumbled on by:	@daldoyle
2017-02-02 09:23:29 -08:00
Bruce A. Mah
7c79294b5b
Fix a bug where specifying --title leaked into server JSON in future runs.
Fixes #500, based on pull request in #501 submitted by @slankes.
2017-01-25 14:42:15 -08:00
Bruce A. Mah
de3e9d49b6 Revert "Fail gracefully if --fq-rate or --no-fq-socket-pacing are specified on"
This reverts commit 9c83a707eb.

Fixes #504.
2017-01-25 13:53:49 -08:00
Bruce A. Mah
c5147b68e3
Update on-line manpage to reflect iperf 3.1.5. 2017-01-13 14:23:07 -08:00
Bruce A. Mah
21e756d069
Unbreak building of the iperf3 Web site. 2017-01-13 14:01:06 -08:00
Bruce A. Mah
82d4268d1c
Update for iperf-3.1.5 and 2017. 2017-01-12 17:04:27 -08:00
Bruce A. Mah
1ff12f4c3e Add 1KB to default UDP socket buffer sizes under certain circumstances.
This fixes a problem observed on FreeBSD and macOS where the MTU on
the loopback interface is larger than the default socket buffer size.
We adjusted the socket buffer size upwards to match the UDP payload
size, but that's apparently not enough and we ended up dropping packets.
This is bad.  Add a 1KB fudge factor, which seesm to avoid this problem.
Affects UDP tests only, not TCP or SCTP.

Part of #496.

(cherry picked from commit d76198944d210e8a575747d3ddbee41a886a10c9)
Signed-off-by: Bruce A. Mah <bmah@es.net>
2017-01-11 11:52:18 -08:00
Bruce A. Mah
69ba4e5831
Happy 2017. 2017-01-06 21:19:27 -08: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
9c83a707eb
Fail gracefully if --fq-rate or --no-fq-socket-pacing are specified on
platforms where they aren't supported.

Requested by:	@bltierney
2016-12-14 09:32:46 -08:00
Bruce A. Mah
01fb3e6dcf
Regen. 2016-12-12 15:41:35 -08:00
Bruce A. Mah
29183ec341 iperf's master branch isn't 3.1, so don't generate that version string.
Signed-off-by: Bruce A. Mah <bmah@es.net>
2016-12-12 15:40:31 -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
7d2d5c41dd
Revert "Fix a bug in FQ pacing, where application pacing wasn't completely disabled."
This reverts commit 1fa41308fe.

This doesn't really do what we want.  Start over.
2016-12-08 15:25:06 -08:00
Bruce A. Mah
5307eae461
Revert "Reduce the default UDP send size to 1452 to avoid IP fragmentation"
This reverts commit f1e62c8d48.

Right idea, but it turns out to be a pretty high-impact change.
Need to rethink this, maybe with a more intelligent implementation
that checks the interface (or path?) MTU.
2016-12-08 15:23:51 -08:00
Bruce A. Mah
f1e62c8d48
Reduce the default UDP send size to 1452 to avoid IP fragmentation
with default parameters.

A UDP payload of 1452, plus an 8-byte UDP header, plus a 40-byte IPv6
header, results in a 1500 byte IP packet.  The IPv4 header is smaller
at 20 bytes.
2016-12-05 14:00:15 -08:00
Bruce A. Mah
1fa41308fe
Fix a bug in FQ pacing, where application pacing wasn't completely disabled.
It was therefore possible to have multiple levels of pacing happening,
which resulted in very nicely smoothed traffic, but wasn't really
the original design.

Do pacing correctly in iperf_check_throttle() and remove a hack in
iperf_send() where we were explicitly checking for the type of
pacing, but didn't really need to.

It turns out that with UDP and only-FQ pacing, iperf3 sends and throws
packets on the floor as fast as it can.  This isn't really desirable,
and probably not what was wanted in a test anyway, so if we're not
doing TCP tests, force the use of application-level pacing.
2016-12-05 10:37:56 -08:00
Bruce A. Mah
55598a072f
Fix socket buffer size checks. Clearly this wasn't tested well.
On Linux it's possible to set the socket buffer to one size but
(correctly it seems) get back some larger size up to 2x what you
asked for (see tcp(7)).

While here, make related debugging output more useful.

Fixes (again) #356.
2016-12-01 11:53:37 -08:00
Bruce A. Mah
a621cc263f
Improve debug output for application and fair-queue-based pacing. 2016-11-30 07:13:28 -08:00
Bruce A. Mah
d2202ee3be
After setting socket buffer sizes, verify they were set correctly.
Do this for both TCP and UDP, but not SCTP (which strangely doesn't
support --window, that's probably a bug).  Fixes #356.
2016-11-23 11:05:47 -08:00
Bruce A. Mah
c4a56a3c49
Improvements to systemd service file as per #430.
Submitted by @rpodgorny.
2016-11-18 13:45:06 -08:00
Sascha Spreitzer
b56d154cda Add systemd service file (#340)
To be modified by some code changes in #430.
2016-11-18 13:43:48 -08:00
Bruce A. Mah
902b195edd
D'oh. Fix bad formatting in dev.rst. 2016-11-10 14:28:14 -08:00
Bruce A. Mah
71d02d51df
Update supported development platforms. 2016-11-10 14:24:49 -08:00
Bruce A. Mah
c2b34b4d22
Add notes on generating new manpage rendering for online docs. 2016-11-10 14:23:42 -08:00
Bruce A. Mah
f0f3e52f24
Update manpage in online docs to reflect 3.1-STABLE sometime after 3.1.4.
Fixes #440.
2016-11-10 14:06:13 -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
bdbb9a1cab
Update docs for iperf-3.1.4. 2016-10-31 13:54:30 -07:00
Nevo Hed
ad2a706fd1 Replace iprintf w/ iperf_printf (cygwin conflict) (#468)
This does not seek to address all cygwin portability issues
just this specific compile-time conflict

See also #280 and #295.
See https://github.com/esnet/iperf/issues/280
2016-10-17 13:25:07 -07:00
Bruce A. Mah
d99a69f92b
Fix a buffer overflow in upstream cJSON.
This is DaveGamble/cJSON#30, and fixes issue #466.
2016-10-05 13:59:40 -07:00