Commit Graph

702 Commits

Author SHA1 Message Date
Bruce A. Mah
5f693411d2 Whitespace fixes, no content changes. 2014-01-08 09:28:49 -08:00
Brian Tierney
fa34a97f49 updating to prepare for 3.0.0 release; still need to add final release date 2014-01-07 16:45:43 -08:00
Bruce A. Mah
5238ff0458 Happy 2014. 2014-01-07 16:12:34 -08:00
Bruce A. Mah
c04bdcb9d0 Second try at printing statistics when processes are interrupted.
When the client process gets interrupted, both the client and server
dump out accumulated interval statistics, as well as a partial set of
summary statistics (basically each side dumps what it has, but without
the exchange of information that usually happens at the end of a
normal run).

If the server process gets interrupted, the server dumps out its
accumulated interval and summary statistics as above.  The client does
this as well in the -R case, but exits with a "Broken pipe" in the non
-R case (this behavior was present all along; it was not introduced in
this change).  More investigation will be needed to understand the
client behavior.

Bump copyright dates in a few places.

Issue:		132 (signal handler for API calls)
Discussed with:	aaron@internet2.edu
2014-01-07 16:06:27 -08:00
Bruce A. Mah
a898ff8b8e If the client gets interrupted / signaled, dump JSON output.
Issue:		132 (signal handler for API calls)
2014-01-06 12:18:21 -08:00
Bruce A. Mah
ac0786c828 Fix typos: s/exitting/exiting/
Bump a couple of copyright dates while here.
2014-01-03 11:24:06 -08:00
Bruce A. Mah
c7ddebaa6c Fix memory leaks in iperf_reset_test().
Submitted by:	Susant Sahani <ssahani@redhat.com>
2014-01-03 11:19:26 -08:00
Bruce A. Mah
0b9ba1005a Fix a server side crash with -P and -R.
The problem was a mangled printf format string, which I introduced in
616ac79bd80b.

Issue:		129 (iperf3 hangs with -R and -Z flags)
2014-01-03 10:33:28 -08:00
Bruce A. Mah
0fdda50c64 Fix a deadlock leading to a hang in -R mode.
In -R mode, the test consists of the server sending to the client
until the client tells it to stop by setting the test state to
TEST_END via the control socket.  However once the client changes the
test state, it stopped reading the incoming test data from the server.
In many (but not all) scenarios this could result in the server
filling up its send window (thus blocking on writes) before the
TEST_END message arrived from the client.  At this point the server
was hanging waiting for the client to drain its data connection(s),
and the client was waiting for the server to send a state change
message for EXCHANGE_RESULTS.

Bump copyright date while here.

This fix handles at least part of...

Issue:		129 (iperf3 hangs with -R and -Z flags)
2014-01-03 10:06:16 -08:00
Bruce A. Mah
48e66b9b9a Improve error message for TCP congestion algorithm setting failure.
Also remove a couple of places where we were saving and restoring errno
where we didn't need to.

Submitted by:	Susant Sahani <ssahani@redhat.com>
Issue:		121 (TCP congestion control algorithm support for client)
2014-01-02 13:49:56 -08:00
Bruce A. Mah
7da3d76096 Fix another minor memory leak.
Submitted by:	Susant Sahani <ssahani@redhat.com>
2014-01-02 13:26:51 -08:00
Bruce A. Mah
e3faf8e421 Fix minor memory leak.
Submitted by:	Susant Sahani <ssahani@redhat.com>
2014-01-02 13:21:49 -08:00
Brian Tierney
dd05057260 added test for -C flag 2013-12-20 15:05:21 -08:00
Brian Tierney
d7e699e3af added simple test script 2013-12-20 14:46:24 -08:00
Bruce A. Mah
39ad947995 For now, suppress printing congestion window stats in the output.
(It remains in the JSON output.)

We have some issues we need to resolve about the formatting and
representation of this (and other future values that we might be
adding).
2013-12-19 14:44:15 -08:00
Bruce A. Mah
2d83fe3f2b Branch merge. 2013-12-19 13:39:07 -08:00
Bruce A. Mah
dcd7b32b15 Follow-on to 4cfce137e89c based on some feedback and experience.
Rip out the tcpi_sacked support...it doesn't really keep a cumulative
total of SACKs received like we thought it did (it's instantaneous
state).

Convert tcpi_snd_cwnd (originally expressed in segments) to octets before
printing.

Re-work internal APIs for functions to get stuff out of tcp_info...rather
than doing a getsockopt() call per value, grab the values out of a
saved copy of the tcp_info structure (which we were getting in almost
every case anyway).

Issue:		99 (Additional TCP_INFO items)
2013-12-19 13:37:50 -08:00
Bruce A. Mah
559e6ce72c Branch merge. 2013-12-19 11:54:10 -08:00
Bruce A. Mah
310bd92410 Fix minor output glitch where we printed "receiver" when we meant "sender". 2013-12-19 11:44:03 -08:00
Bruce A. Mah
8d1388a3b8 Fix a logic bug in JSON output where default MSS was output as 0. 2013-12-19 11:33:38 -08:00
Jef Poskanzer
f11d3fa332 Added -k / --blockcount. 2013-12-19 10:31:22 -08:00
Bruce A. Mah
c2cb7b7520 Remove some (commented out) debugging code accidentally left in. 2013-12-19 09:27:12 -08:00
Jef Poskanzer
3f4d657209 Added note to -h output for -b flag's burst mode. 2013-12-18 20:56:21 -08:00
Brian Tierney
87f4ff6fc4 merging 2013-12-18 15:28:30 -08:00
Brian Tierney
849fc85a72 updated for 3.0.0 release 2013-12-18 15:23:16 -08:00
Bruce A. Mah
ae3ea78645 Branch merge. 2013-12-18 15:15:43 -08:00
Jef Poskanzer
6a00b2dfdd Branch merge. 2013-12-18 15:12:43 -08:00
Jef Poskanzer
89c05f5e9d Branch merge. 2013-12-18 15:10:01 -08:00
Bruce A. Mah
5cdc6a4ac8 Keep track of SACKs and snd_cwnd from tcp_info (Linux only for now).
Committing this WIP so we can get some experimentation done with it.
2013-12-18 15:09:46 -08:00
Brian Tierney
05dfd3b32f added instructions on bootstrap.sh 2013-12-18 15:08:35 -08:00
Jef Poskanzer
10e7a31811 Branch merge. 2013-12-18 15:08:20 -08:00
Bruce A. Mah
ee670372a9 Branch merge. 2013-12-18 14:48:11 -08:00
Bruce A. Mah
cfe8c5fb47 Make "iperf3 -s" accept both IPv4 and IPv6 connections on FreeBSD.
(Formerly it was just accepting IPv6.)

The problem here was that FreeBSD by default wasn't allowing IPv4
mapped addresses on IPv6 sockets, whereas other platforms
(specifically Linux and OS X) both do permit this.  We tried to turn
on mapped addresses via a setsockopt(IPV6_V6ONLY) call, but this call
was broken because the level argument was incorrect.  We didn't know
about this because we never checked the return value.

Fix this by providing the correct argument to setsockopt().  Add some
error checking to this and one other setsockopt() call, so we at least
don't fail silently in similar situations.

Issue:		126 (FreeBSD:  iperf3 -s only accepts IPv6
		connections)
2013-12-18 14:43:12 -08:00
Jef Poskanzer
db446fa66e Branch merge, I think because I forgot to pull before pushing. 2013-12-17 16:15:07 -08:00
Jef Poskanzer
bdf5335c2b Added burst mode. 2013-12-17 16:12:24 -08:00
Bruce A. Mah
a45a0d37b4 Mention -D, -C, -L in release notes.
These go to a new section that might be merged with the prior 3.0.0
section pending a release engineering discussion.

Also fix a typo:  s/vebose/verbose/
2013-12-16 10:15:32 -08:00
Jef Poskanzer
62bfa88ceb Added -C / --linux-congestion.
Also a few other bugfixes I ran across.
2013-12-13 19:57:52 -08:00
Jef Poskanzer
adec7fe48b Re-order one line to clarify code. 2013-12-12 12:09:42 -08:00
Jef Poskanzer
950f6c8f59 Better error checking in net.c 2013-12-12 12:07:17 -08:00
Jef Poskanzer
fdcbd49578 Check return from tmr_create in timer test. 2013-12-12 12:04:11 -08:00
Bruce A. Mah
0193ee1881 Commit a file addition I forgot in 2ad1efdb977e. 2013-12-12 09:32:15 -08:00
Bruce A. Mah
d04c7bd0a4 Support setting the IPv6 flow label on Linux systems (only).
This functionality uses some setsockopt(2) calls that unfortunately
don't seem to have an analog on other platforms.

Slightly tweaked version of a patch that was...

Submitted by:	ssahani@redhat.com
Issue:		40 (Option for setting Flow Label field in IPv6
		header)
2013-12-12 09:21:36 -08:00
Jef Poskanzer
c8a0a2229d Added a check for malloc fail.
Eventually we need to add a whole bunch more of these.
2013-12-12 08:15:15 -08:00
Jef Poskanzer
b70c54055f Fixed t_units.c so that 'make check' once again works. 2013-12-09 17:52:59 -08:00
Jef Poskanzer
c06bc78c65 Fixed initialization issue.
It was causing the server side to mess up after the first test.
2013-12-05 12:00:46 -08:00
Jef Poskanzer
a4c1383a77 Fixed bug where -R mode selected on a closed file.
Also added a debugging routine to dump an fd_set.
2013-12-05 08:49:27 -08:00
Brian Tierney
e42991a717 added explaination of 'typical' mode vs 'extreme performance' mode 2013-12-04 13:59:06 -08:00
Jef Poskanzer
95360b2046 Show UDP stats in interval reports.
To the extent possible, anyway - on the sender side,
only the packet counts are available.

Also a few minor bug fixes.
2013-12-04 09:16:37 -08:00
Jef Poskanzer
e41823c46b Pushing out merge of inadvertent branch. 2013-12-02 09:55:48 -08:00
Bruce A. Mah
adbc1f4860 Document the recently-added -D / --daemon flag from changeset
4a9b814c16e6.
2013-12-02 09:38:13 -08:00