Commit Graph

702 Commits

Author SHA1 Message Date
Jef Poskanzer
63a0b8d5df Branch merge. 2013-02-18 07:21:59 -08:00
Jef Poskanzer
fbaa2467a6 Change the meaning of the combination of -n and -P flags.
Previously, if you used -n to specify a test sending a specified number
of bytes and -P to send multiple streams in parallel, iperf3 would send
that many bytes on each stream.  With this change it just sends the
specified total number of bytes regardless of how many streams are used.
2013-02-18 07:19:59 -08:00
Jef Poskanzer
a5122e8951 Fix a couple problems noted by the C++ compiler. 2013-02-15 09:10:56 -08:00
Jef Poskanzer
96609aecad Makefile tweak to get iperf3_profile to actual generate profiles. 2013-02-12 11:40:16 -08:00
Jef Poskanzer
2724cb3139 Don't need -lm in Makefile any more. 2013-02-11 22:04:52 -08:00
Jef Poskanzer
f19a68d53a Oops, left out the important line from the error routine. 2013-02-07 17:54:52 -08:00
Jef Poskanzer
7ea98727a8 Initialize a couple variables to NULL to get rid of bogus warnings. 2013-02-07 13:39:33 -08:00
Jef Poskanzer
079579187a Portability fix for cJSON. 2013-02-07 13:34:53 -08:00
Jef Poskanzer
eb0206e686 Better handling of non-exit errors in JSON.
Also converted one more error to the unified call.
2013-02-07 13:30:58 -08:00
Jef Poskanzer
bf501899e7 Added fflush to JSON output. 2013-02-07 12:37:10 -08:00
Jef Poskanzer
b5e0751f59 (Mostly) switched error reporting to a single routine that handles JSON mode. 2013-02-07 12:35:17 -08:00
Jef Poskanzer
cda2ce2a7e Fixed cjson.c to no longer require -lm. 2013-02-05 21:18:47 -08:00
Jef Poskanzer
5a561d9d40 Get rid of commented-out obsolete code. If it's needed it's in the
revision history.
2013-02-05 15:38:45 -08:00
Jef Poskanzer
9bfb54c0cc Add -J flag to produce JSON output instead. 2013-02-01 11:42:35 -08:00
Jef Poskanzer
17666b94d9 Updated the man page and help string so they correspond with the code.
This entailed some re-ordering, so the diff is large.
2013-01-28 18:14:34 -08:00
Jef Poskanzer
0569f7d192 Also change iperf.1 to iperf3.1 in the makefile. 2013-01-28 17:33:51 -08:00
Jef Poskanzer
a2adc385e2 Rename iperf.1 to iperf3.1. 2013-01-28 16:52:54 -08:00
Jef Poskanzer
2efc602fb2 The units handling was interpreting capital K/M/G as 1024/1048576/1073741824
and lowercase k/m/g as 1000/1000000/1000000000.  This was deemed to be
too confusing.  Now both capital and lowercase give the powers-of-two version.
2013-01-28 16:52:04 -08:00
Jef Poskanzer
1f4b249abb Better fix for the -u/-l argument parsing mixup. This one avoids
the problem of explicitly setting the UDP block size to the TCP default
and getting ignored.
2013-01-28 14:19:07 -08:00
Jef Poskanzer
1ac282ccdd Raise default UDP block size, for better performance. 2013-01-28 14:04:39 -08:00
Jef Poskanzer
45080fc6b7 Fixed little glitch in argument handling order: "-l nnn -u" was
setting the block size back to the UDP default, while "-u -l nnn"
worked.  Now both orders work.
2013-01-28 11:48:19 -08:00
Jef Poskanzer
6177a7f1f1 Get rid of extra select() calls before reading and writing,
in both client and server.  Instead we pass in and use the
fdsets from the main loop's select().
2013-01-18 10:17:05 -08:00
Jef Poskanzer
d7613a8e9f Allow API client to provide an fd for the client-side control socket. 2012-12-13 09:37:55 -08:00
Jef Poskanzer
5cd3317d98 Get rid of compiler warning. 2012-12-11 22:45:15 -08:00
Jef Poskanzer
88dd44b040 Need a couple more include files to compile on FreeBSD. 2012-12-11 22:41:37 -08:00
Jef Poskanzer
ec2d0670b8 Switched to using a new timer package, adapted from thttpd and http_load. 2012-12-11 22:29:26 -08:00
Jef Poskanzer
9673370f98 Move non-timer routines from timer.[hc] to iperf_util.[hc] 2012-12-05 12:34:58 -08:00
Jef Poskanzer
d6e2781d18 Better detection of when linux has retransmit info in tcp_info. 2012-12-03 22:02:31 -08:00
Jef Poskanzer
9d1fc7c676 Line up output columns better. 2012-12-03 16:20:49 -08:00
Jef Poskanzer
d7ebadafa4 Make the retransmits code compile again on systems without retransmits. 2012-12-03 16:00:14 -08:00
Jef Poskanzer
46baab59e8 Disable retransmit reporting for FreeBSD, it's not actually
implemented in the OS yet.
2012-12-03 15:50:29 -08:00
Jef Poskanzer
acad430d3d Fix retransmit reporting for Linux. 2012-12-03 15:48:54 -08:00
Jef Poskanzer
437537fe30 Test commit. 2012-11-30 12:16:17 -08:00
jef
eb3c71b8fe Don't do getsockopt(TCP_INFO) on UDP runs. 2012-11-30 10:13:25 -08:00
jef
874856ab6b Show retransmit count for FreeBSD too. This may not actually
be implemented by the OS yet - the struct member starting with
a double underscore indicates that it's not fully implemented.
2012-11-28 07:22:51 -08:00
jef
0d48915c69 A few portability changes, now builds on OSX without warnings. 2012-11-13 11:33:52 -08:00
jef
0115558217 Run uname for the -v/--version flag. Also, show version and uname for
the -V/--verbose flag.  Still debating whether version/uname should be
shown by default.
2012-11-12 10:01:26 -08:00
jef
6b7db8f774 Get rid of the -T/--tcpinfo flag and show retransmits if they
are available.

Also, show them in interval results as well as at the end.
2012-11-09 16:02:42 -08:00
jef
8a0cc10076 Testing timeval equality deserves to be its own routine. 2012-11-02 09:04:46 -07:00
jef
99502d9409 Re-jiggered the "Interval Transfer Bandwidth" header so it only
appears at the start and end of the results, and added a separator
line when there are both multiple streams and multiple intervals.
2012-10-29 22:30:31 -07:00
jef
7b43a90638 Switch the JSON parameter names from single letters to words.
That gets rid of the case-sensitivity issue, and is nicer.
2012-10-27 17:29:29 -07:00
jef
d23d944f12 Fix JSON parsing to handle very long ints better. Should still
do something better about them on output.
2012-10-27 16:43:04 -07:00
jef
ff3c7fba24 JSON names are case-insensitive so we have to use different
names for e.g. p and P.  I prefixed the upper case flags with "cap".
2012-10-27 16:24:54 -07:00
jef
53a87a0b9d Oops, -lm is still needed by cjson for floor(). Still worth getting
rid of pow() though.
2012-10-26 07:45:28 -07:00
jef
ea71aaeaee Fixed cjson to not need -lm any more, by adding an ipow() routine
to use instead of pow().
2012-10-25 22:14:02 -07:00
jef
4095757536 Converted the parameter exchange to use JSON.
This also gets rid of the antique tiny version of getopt that I added
to hack around a stubborn SEGV error.
2012-10-18 13:08:30 -07:00
jef
23481e7953 Converted the results exchange to use JSON. 2012-10-18 10:47:27 -07:00
jef
10d202a998 Simplify/clarify use of htonl/ntohl. 2012-10-17 09:14:14 -07:00
jef
0b96eba3e3 Move results-formatting into a new format_results() function.
Also, parse_results() doesn't need to be declared in iperf_api.h.
There are probably a whole bunch of other routines in there which
should be similarly made module-local.
2012-10-17 08:30:12 -07:00
jef
a497129b4d Oops, the cjson files need to be in the src directory.
Also changed the makefiles so that cjson gets compiled and linked in.
Next step: actually call it.
2012-10-15 09:49:20 -07:00