Commit Graph

702 Commits

Author SHA1 Message Date
Aeneas Jaißle
ce38fb1029 Prevent possible buffer overflow in iperf_error.c 2014-03-25 14:09:21 +01:00
Bruce A. Mah
2808a0b6c4 Fix a crash that can be triggered by libiperf3 clients that don't use
iperf_parse_arguments().  Basically we need to initialize the
output stream in the iperf_test structure regardless of whether
iperf_parse_arguments() gets called; some programs (in particular
the programs in the examples/ directory and bwctl) don't do this
(and indeed should not need to).

This problem was introduced in the solution for Issue #119; the fix
needs to be merged to any codeline where fixes for Issue #119 go.
2014-03-20 10:24:25 -07:00
Bruce A. Mah
6c03583982
Update for files in examples/ directory. 2014-03-20 10:02:25 -07:00
Bruce A. Mah
5d2f2cf983 Regen. 2014-03-20 09:58:27 -07:00
Bruce A. Mah
ad319fac6f
automake / libtool support for programs in the examples/ subdirectory.
Addresses part of Issue #152.
2014-03-20 09:52:09 -07:00
Bruce A. Mah
082157bdb0
MacPorts installs libtoolize as glibtoolize. Autodetect this and DTRT. 2014-03-20 09:46:04 -07:00
Bruce A. Mah
974c88e8d9
Include summary structures in JSON even if there's only one stream.
This makes consuming the JSON easier and more consistent.

Resolves #151.

Submitted by:	@i2aaron
2014-03-18 09:44:37 -07:00
Bruce A. Mah
3fa8072e9b Fix a call to iprintf(), also fix sequencing of some output flushes.
Related to Issue #119.
2014-03-14 15:48:31 -07:00
Bruce A. Mah
aeb6938d5a
Support --logfile argument to make all output go to a file.
This works for both client and server side (in the case of the server,
either for daemon or non-daemon mode).

Consistifies a few places that were using printf instead of iprintf.

Fixes Issue 119.
2014-03-14 14:23:38 -07:00
Bruce A. Mah
3f5f7f7591
Minor whitespace fixes that make the markdown output make more sense
(but try to preserve aesthetics as a plain text file).
2014-03-12 14:04:14 -07:00
Bruce A. Mah
fbf7a3b3d5
This file doesn't really add value, get rid of it. 2014-03-11 09:34:18 -07:00
Bruce A. Mah
49a345cc02 Roll tarballs slightly differently so we actually get compression.
We were relying on "git archive" being able to create tar.gz files,
but that ability isn't present in the git that comes with CentOS 6,
so we use git to create a tar file and then compress it ourselves.
2014-03-10 13:30:20 -07:00
Brian Tierney
e684b144d6 Merge branch 'master' of https://github.com/esnet/iperf 2014-03-06 17:15:04 -08:00
Brian Tierney
7f6c44f325 Updating 'known issues' for Linux TCP buffer size oddness 2014-03-06 17:03:19 -08:00
Bruce A. Mah
7af6d5a2f9
In debug mode, print out SO_SNDBUF when setting up each socket
(regardless of whether this was set explicitly or not).
2014-03-06 15:11:25 -08:00
Bruce A. Mah
c9cfca0a93
Update release notes for mainline changes since 3.0.1 release. 2014-03-04 15:13:36 -08:00
Bruce A. Mah
dc1dd2dc7d Regen to pick up changes from issue #146. 2014-03-04 14:34:40 -08:00
Bruce A. Mah
3c4ef74e5e
Build libiperf3 as both a shared library and a static library by default.
Use --disable-static or --disable-shared to build only one flavor
of libraries.

Tested on MacOS, FreeBSD, and CentOS 6 Linux.

Resolves #146.

Originally submitted by:	@i2aaron
2014-03-04 14:31:35 -08:00
Bruce A. Mah
2be606a503
Three-clause BSD license, not two-clause. Also tweak more README text. 2014-02-28 17:52:52 -08:00
Bruce A. Mah
34a7596545 Point downloads to a directory, not a single file. 2014-02-28 15:38:36 -08:00
Bruce A. Mah
0f72a12069
See if we can get GitHub to properly parse markdown if the README file
has the right extension.
2014-02-28 14:17:16 -08:00
Bruce A. Mah
396ccaf45c
Reorganize the README, and try to format it so it looks better when
it's displayed on the iperf page on GitHub.

I wish there was a way to preview this change before pushing it.
2014-02-28 13:44:12 -08:00
Bruce A. Mah
f274eea090
Minor tweaks to README. 2014-02-28 10:08:35 -08:00
Bruce A. Mah
c897d7368a
Try to make make_release work for git. "tar" works, "tag" might. 2014-02-28 09:37:34 -08:00
Bruce A. Mah
103838183a Update version and bug-report fields in AC_INIT and regen files. 2014-02-27 22:40:01 -08:00
Bruce A. Mah
70e4b713b7
Update URLs pointing to Google Code to use GitHub.
While here, update a couple of dates in manpages.
2014-02-27 21:56:53 -08:00
Bruce A. Mah
445a25c059 Try to convert .hgignore to .gitignore. 2014-02-27 18:38:00 -08:00
Bruce A. Mah
91d5d5e717 Increase buffer size for formatted numeric quantities, to avoid truncation.
This can happen if the user forces a particular output format that leads
to many digits (6 or more) being printed.  The new buffer size is probably
larger than it needs to be, but better safe than sorry.

Fixes Issue 142.
2014-02-21 14:24:56 -08:00
Bruce A. Mah
a3736b64e7 Don't append a colon and two spaces to title in --json output.
Resolves Issue 139.
2014-02-21 13:24:38 -08:00
Bruce A. Mah
f2c4e2b5bd Provide an API call in libiperf to set the test unit format.
Resolves Issue 144.

Submitted by:	 AaronMatthewBrown
2014-02-21 13:07:55 -08:00
Bruce A. Mah
3eaf324ab3 Remove incorrect references to multicast from -B documentation.
(This is partially because iperf3 doesn't do multicast, yet.)

Also it's not specifically a client-side option, so relocate it in
the manpage.
2014-02-14 14:58:01 -08:00
Bruce A. Mah
ede8dabb83 Set the default message size for SCTP to 64KB.
This makes SCTP with default parameters work on CentOS 6; formerly
it was just using the TCP default (128KB) and failing with
a "message too long" error.  It might be possible to fix this with
some manipulation of other default values, so that TCP and SCTP
can use the same default message size, but I haven't figure out
what this would be.

This ties up one loose end from Issue 131.
2014-02-14 14:06:08 -08:00
Bruce A. Mah
60bd98a538 Add SCTP support with the --sctp flag (Linux and FreeBSD only).
Note this option only has a long option flag; we're running out of
letters for short options.

Based heavily on a patch submitted in Issue 131 (SCTP support for
iperf); I added support for FreeBSD and did some other packaging and
documentation improvements.

We probably shouldn't tie SCTP support to looking specifically for
Linux or FreeBSD; we probably leave support enabled all the time if
possible, possibly with some configure-time checks.
2014-02-14 11:52:16 -08:00
Bruce A. Mah
d076653bd4 Output TCP snd_cwnd (on platforms supporting it) in normal output.
We were computing and printing this in JSON output mode anyway; this
change just exposes this quantity in a human-friendly manner (better
than the first attempt at this) when doing normal output.

Resolves Issue 99 (Additional TCP_INFO items).
2014-02-14 11:17:43 -08:00
Bruce A. Mah
4addea8502 Fix unfiled bug that could break TCP tests under some circumstances.
The bug and solution are very similar to Issue 126 (fixed in
d7e0c1445c0a).  Basically a setsockopt(IPV6_V6ONLY) call had a bogus
level argument, but we never checked the return value so we never
noticed this.

As with the prior issue, the fix is to unbreak the setsockopt() call,
and add some error checking to detect future breakage.

This bug was on a codepath that only got called if non-default values
were set for the socket buffer size, the MSS, or the NODELAY parameter.
It might have affected some FreeBSD tests, but really only got noticed
when debugging some other code that was (probably) cut-and-pasted
from this code.
2014-02-04 15:05:39 -08:00
Bruce A. Mah
bf72a57d74 Make libtoolize actually get called correctly. 2014-02-04 11:23:44 -08:00
Bruce A. Mah
cf451d861f Add .hgignore file to quiet down "hg stat". 2014-02-03 15:09:01 -08:00
Bruce A. Mah
9a829841eb Replace system("uname -a") with call to uname(3).
Slightly reworked version of a patch that was...

Submitted by:	Susant Sahani <ssahani@redhat.com>
2014-01-30 15:15:53 -08:00
Bruce A. Mah
441d8b75a0 Add support for writing the PID to a file in server mode.
This is specified with the -I or --pidfile option.

Issue:		120 (PID file support)
2014-01-24 16:42:10 -08:00
Bruce A. Mah
343c141874 Mention the need for -4 when running as a server on OpenBSD.
Issue:		108 (Runtime error on OpenBSD 5.4 AMD64)
2014-01-21 16:12:23 -08:00
Bruce A. Mah
09f54a4f44 Fix warning on platforms that don't support processor affinity.
No functional change.
2014-01-21 15:03:29 -08:00
Bruce A. Mah
723f2f7b2a Fix an abort observed on MacOS X 10.9 (but applicable to other platforms).
mapped_v4_to_regular_v4() committed the sin of doing strcpy(3) on
overlapping buffers.  This caused an abort on MacOS X 10.9.  Fix this
to use memcpy(3) instead, which handles overlapping buffers correctly.

Issue:		135 (Crash on OS X when using IP address)
2014-01-21 12:59:47 -08:00
Bruce A. Mah
0ff7575499 Fix build on Linux distros that don't support TCP_CONGESTION.
Apparently older kernels don't support TCP_CONGESTION, so we can't
just test for defined(linux) to know if we can use this sockopt or not.
This change unbreaks the build on (notably) CentOS 5.
2014-01-16 10:43:08 -08:00
Bruce A. Mah
7234074fe8 Whoops. Forgot to document the -d flag properly. Do this. 2014-01-15 12:01:22 -08:00
Bruce A. Mah
cf59099b49 Add support for a -d debug flag to enable debugging output.
Mostly intended for developer use.  At the moment there are no public
uses for this flag.
2014-01-15 10:27:33 -08:00
Bruce A. Mah
deefb95fea Add FreeBSD support for -A (set CPU affinity).
Mostly this change consists of adding FreeBSD-specific code to handle
this feature.  The concepts and system calls are very similar to what's
already done for Linux.  One difference is that on FreeBSD, the CPU
affinity mask is saved before -A processing and restored afterwards.
This causes a slight change to the function signatures for
iperf_setaffinity() and iperf_clearaffinity() (these functions
however are not documented as a part of the libiperf3 API).

Slightly improve some of the documentation for the -A command line
option, to hopefully stave off some of the questions about this
feature.

Mostly based on a submitted patch.

Issue:          128 (better error message for CPU affinity failure)
Submitted by:   Susant Sahani <ssahani@redhat.com>
2014-01-13 10:58:47 -08:00
Bruce A. Mah
55a453c2a1 Clean up some memory leaks in iperf_new_stream error handling.
Submitted by:	Susant Sahani <ssahani@redhat.com>
2014-01-13 09:27:42 -08:00
Bruce A. Mah
0129f08391 tagging 3.0.1 2014-01-10 13:25:18 -08:00
Bruce A. Mah
49f74e582c Prepare for iperf3 3.0.1. 2014-01-10 13:22:11 -08:00
Bruce A. Mah
a844d3ba95 Minor improvements to make_release script.
Allow optional specification of a version string (the intended use of
this to be able to roll a tarball from a source tree / repo that's not
the exact version being released).

Compute and display SHA256 hash of the tarball on Linux, FreeBSD, and
MacOS.

Don't exclude make_release from the tarball (no point in hiding it)
but do try a little harder to get rid of .hg\* files.

Comment out some debugging code.
2014-01-09 13:26:32 -08:00