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

1011 Коммитов

Автор SHA1 Сообщение Дата
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
Bruce A. Mah
1a756a949e Only print congestion control algorithm for a TCP test.
Properly (I think) label the two TCP instsances as "sender"
and "receiver".
2016-09-22 15:27:24 -07:00
Bruce A. Mah
7d413a5015 Fix build on FreeBSD. 2016-09-22 14:52:57 -07:00
Bruce A. Mah
7eeaa1cb07 First try at issue #461.
First, realize that we've been setting the congestion control (CC)
algorithm unnecessarily; rather than doing it for all listening or
connecting sockets, do it just for those sockets that are being used
for TCP test streams.

Record the CC algorithm in use (this handles the case where a CC algorithm
hasn't been specified), and have the client and server exchange this
information.

Report the CC algorithms that were used (note that it's theoretically
possible for the two ends of the test to be using different algorithms,
if no algorithm was explicitly specified and the two end hosts have
different defaults, or if one side allows setting the CC algorithm and
the other doesn't).

Committing to a branch to make it easier to test this code on a
wider combination of systems.
2016-09-22 13:34:52 -07:00
Bruce A. Mah
353615b772
Fix divide-by-zero problem that can occur with a zero-length interval
(this can happen at the end of a test under certain circumstances).
Fixes #388, alternate solution from pull request in #389.
2016-09-21 13:22:54 -07:00
Bruce A. Mah
55b4eb143e
Fix whitespace errors in .travis.yml. 2016-09-21 11:44:20 -07:00
g-coder
508b98e91a Created .travis.yml for build automation (#424)
This enhancement will automatic check and test the changes done. It will improve the testing capability of component as build can be tested at every pull request before commit.

To enable this feature , you will have to login in https://travis-ci.org/. using github account 
and enable the travis feature for the iperf library.

Many other github projects use this feature. Hope it will help iperf too.
2016-09-21 11:40:14 -07:00
Bruce A. Mah
03340fe595
Prevent a double-close on the server side in some cases.
Alternate solution to a problem pointed out by @g-coder in pull request #429.
2016-09-21 11:25:18 -07:00
woody77
93c498d417 Change pacing timer from 100ms to 1ms to smoothen out microbusts as much as possible (#460) 2016-09-21 10:31:48 -07:00
woody77
14caac895c Properly setting the no_fq_socket_pacing option when support for it is not compiled in. (#459) 2016-09-21 10:21:59 -07:00
dmdailey
499a6d8142 Merge pull request #1 from dmdailey/dmdailey-patch-1
Update iperf_server_api.c
2016-08-05 16:44:51 -04:00
dmdailey
f7fd67d4a2 Update iperf_server_api.c
When a test in in progress and the client completely disappears, both the control socket and the stream sockets are left around forever.  Patch modified from another patch submitted by mkall to add closing of the data stream sockets.
2016-08-05 16:41:52 -04:00
Bruce A. Mah
099244ec68
Update documentation site for 3.1.3 and 3.0.12.
Also provide pointer to recently-released security advisory.
2016-06-08 12:32:35 -07:00
Bruce A. Mah
701ba3ed59
Regen. 2016-06-03 09:26:26 -07:00
Bruce A. Mah
b7ab2b4b25
Make the server more tolerant of most types of errors encountered
during tests.

We used to exit if 5 consecutive errors were encountered.  Instead,
only exit if certain types of fatal errors happen.
2016-06-03 09:26:05 -07:00