• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1iperf3 Release Notes
2====================
3
4iperf 3.10 2021-05-26
5---------------------
6
7* Notable user-visible changes
8
9  * Fix a bug where some --reverse tests didn't terminate (#982 /
10    #1054).
11
12  * Responsiveness of control connections is slightly improved (#1045
13    / #1046 / #1063).
14
15  * The allowable clock skew when doing authentication between client
16    and server is now configurable with the new --time-skew-threshold
17    (#1065 / #1070).
18
19  * Bitrate throttling using the -b option now works when a burst size
20    is specified (#1090).
21
22  * A bug with calculating CPU utilization has been fixed (#1076 /
23    #1077).
24
25  * A --bind-dev option to support binding sockets to a given network
26    interface has been added to make iperf3 work better with
27    multi-homed machines and/or VRFs (#817 / #1089 / #1097).
28
29  * --pidfile now works with --client mode (#1110).
30
31  * The server is now less likely to get stuck due to network errors
32    (#1101, #1125), controlled by the new --rcv-timeout option.
33
34  * Fixed a few bugs in termination conditions for byte or
35    block-limited tests (#1113, #1114, #1115).
36
37  * Added tcp_info.snd_wnd to JSON output (#1148).
38
39  * Some bugs with garbled JSON output have been fixed (#1086, #1118,
40    #1143 / #1146).
41
42  * Support for setting the IPv4 don't-fragment (DF) bit has been
43    added with the new --dont-fragment option (#1119).
44
45  * A failure with not being able to read the congestion control
46    algorithm under WSL1 has been fixed (#1061 / #1126).
47
48  * Error handling and error messages now make more sense in cases
49    where sockets were not successfully opened (#1129 / #1132 /
50    #1136, #1135 / #1138, #1128 / #1139).
51
52  * Some buffer overflow hazards were fixed (#1134).
53
54* Notable developer-visible changes
55
56  * It is now possible to use the API to set/get the congestion
57    control algorithm (#1036 / #1112).
58
59
60iperf 3.9 2020-08-17
61--------------------
62
63* Notable user-visible changes
64
65  * A --timestamps flag has been added, which prepends a timestamp to
66    each output line.  An optional argument to this flag, which is a
67    format specification to strftime(3), allows for custom timestamp
68    formats (#909, #1028).
69
70  * A --server-bitrate-limit flag has been added as a server-side
71    command-line argument.  It allows a server to enforce a maximum
72    throughput rate; client connections that specify a higher bitrate
73    or exceed this bitrate during a test will be terminated.  The
74    bitrate is expressed in bits per second, with an optional trailing
75    slash and integer count that specifies an averaging interval over
76    which to enforce the limit (#999).
77
78  * A bug that caused increased CPU usage with the --bidir option has
79    been fixed (#1011).
80
81* Notable developer-visible changes
82
83  * Fixed various minor memory leaks (#1023).
84
85iperf 3.8.1 2020-06-10
86----------------------
87
88* Notable user-visible changes
89
90  * A regression with "make install", where the libiperf shared
91    library files were not getting installed, has been fixed (#1013 /
92    #1014).
93
94iperf 3.8 2020-06-08
95--------------------
96
97* Notable user-visible changes
98
99  * Profiled libraries and binaries are no longer built by default
100    (#950).
101
102  * A minimal Dockerfile has been added (#824).
103
104  * A bug with burst mode and unlimited rate has been fixed (#898).
105
106  * Configuring with the --enable-static-bin flag will now cause
107    a statically-linked iperf3 binary to be built (#989).
108
109  * Configuring with the --without-sctp flag will now prevent SCTP
110    from being auto-detected (#1008).  This flag allows building a
111    static binary (see above item) on a CentOS system with SCTP
112    installed, because no static SCTP libraries are available.
113
114  * Clock skew between the iperf3 client and server will no longer
115    skew the computation of jitter during UDP tests (#842 / #990).
116
117  * A possible buffer overflow in the authentication feature has been
118    fixed.  This was only relevant when configuration authentication
119    using the libiperf3 API, and did not affect command-line usage.
120    Various other improvements and fixes in this area were also made
121    (#996).
122
123* Notable developer-visible changes
124
125  * The embedded version of cJSON has been updated to 1.7.13 (#978).
126
127  * Some server authentication functions have been added to the API
128    (#911).
129
130  * API access has been added to the connection timeout parameter
131    (#1001).
132
133  * Tests for some authentication functions have been added.
134
135  * Various compiler errors and warnings have been fixed.
136
137iperf 3.7 2019-06-21
138--------------------
139
140* Notable user-visible changes
141
142  * Support for simultaneous bidirectional tests with the --bidir flag
143    (#201/#780).
144
145  * Use POSIX standard clock_gettime(3) interface for timekeeping where
146    available (#253/#738).
147
148  * Passwords for authentication can be provided via environment
149    variable (#815).
150
151  * Specifying --repeating-payload and --reverse now works (#867).
152
153  * Failed authentication doesn't count for --one-off (#864/#877).
154
155  * Several memory leaks related to authenticated use were fixed
156    (#881/#888).
157
158  * The delay for tearing down the control connection for the default
159    timed tests has been increased, to more gracefully handle
160    high-delay paths (#751/#859).
161
162* Notable developer-visible changes
163
164  * Various improvements to the libiperf APIs (#767, #775, #869, #870,
165    #871)
166
167  * Fixed build behavior when OpenSSL is absent (#854).
168
169  * Portability fixes (#821/#874).
170
171iperf 3.6 2018-06-25
172--------------------
173
174* Notable user-visible changes
175
176  * A new --extra-data option can be used to fill in a user-defined
177    string field that appears in JSON output.  (#600 / #729)
178
179  * A new --repeating-payload option makes iperf3 use a payload pattern
180    similar to that used by iperf2, which could help in recreating
181    results that might be affected by payload entropy (for example,
182    compression).  (#726)
183
184  * -B now works properly with SCTP tests.  (#678 / #715)
185
186  * A compile fix for Solaris 10 was added.  (#711)
187
188  * Some minor bug fixes for JSON output.  In particular, warnings for
189    debug and/or verbose modes with --json output (#737) and a fix for
190    JSON output on CentOS 6 (#727 / #744).
191
192  * software.es.net and downloads.es.net now support HTTPS, so URLs in
193    documentation that refer to those two hosts now use https://
194    instead of http:// URLs. (#759)
195
196* Notable developer-visible changes
197
198  * Functions related to authenticated iperf3 connections have been
199    exposed via libiperf.  (#712 / #713)
200
201  * The ToS byte is now exposed in the libiperf API. (#719)
202
203iperf 3.5 2018-03-02
204--------------------
205
206* Notable user-visible changes
207
208  * iperf3 no longer counts data received after the end of a test in
209    the bytecounts.  This fixes a bug that could, under some
210    conditions, artificially inflate the transfer size and measured
211    bitrate.  This bug was most noticeable on reverse direction
212    transfers on short tests over high-latency or buffer-bloated
213    paths.  Many thanks to @FuzzyStatic for providing access to a test
214    environment for diagnosing this issue (#692).
215
216iperf 3.4 2018-02-14
217--------------------
218
219* Notable user-visible changes
220
221  * The -A (set processor affinity) command-line flag is now supported
222    on Windows (#665).
223
224  * iperf3 now builds on systems lacking a daemon(3) library call
225    (#369).
226
227  * A bug in time skew checking under authentication was fixed (#674).
228
229  * IPv6 flow labels now work correctly with multiple parallel streams
230    (#694).
231
232  * The client no longer closes its control connection before sending
233    end-of-test statistics to the server (#677). This fixes a
234    regression introduced in iperf-3.2.
235
236  * Sending output to stdout now makes errors go to stderr, as per
237    UNIX convention (#695).
238
239  * A server side crash in verbose output with a client running
240    multiple parallel connections has been fixed (#686).
241
242  * The --cport option can now be specified without the --bind option.
243    Using the --cport option on Linux can eliminate a problem with
244    ephemeral port number allocation that can make multi-stream iperf3
245    tests perform very poorly on LAGG links.  Also, the --cport option
246    now works on SCTP tests (#697).
247
248* Notable developer-visible changes
249
250  * iperf3 now builds on (some) macOS systems older than 10.7 (#607).
251
252  * Some unused code and header inclusions were eliminated (#667,
253    #668).  Also some code was cleaned up to eliminate (or at least
254    reduce) compiler warnings (#664, #671).
255
256iperf 3.3 2017-10-31
257--------------------
258
259* Notable user-visible changes
260
261  * iperf3 can now be built --without-openssl on systems where OpenSSL
262    is present (#624, #633).
263
264  * A bug with printing very large numbers has been fixed (#642).
265
266  * A bug where the server would, under certain circumstances, halt a
267    test after exactly fifteen seconds has been fixed (#645).
268
269  * The --tos parameter is no longer "sticky" between tests when doing
270    --reverse tests (#639).
271
272  * The authentication token on the server is properly reset between
273    tests (#650).
274
275  * A bug that could cause iperf3 to overwrite the PID file of an
276    already-existing iperf3 process has been fixed (#623).
277
278  * iperf3 will now ignore nonsensical TCP MSS values (from the TCP
279    control connection) when trying to determine a reasonable block
280    size for UDP tests.  This condition primarily affected users on
281    Windows, but potentially improves robustness for all
282    platforms. (#659)
283
284* Notable developer-visible changes
285
286iperf 3.2 2017-06-26
287--------------------
288
289* User-visible changes
290
291  * Authentication via a username/password mechanism, coupled with a
292    public-key pair, is now an optional way of limiting access to an
293    iperf3 server (#517).
294
295  * Ending statistics are less ambiguous for UDP and also now use
296    correct test durations for all protocols (#560, #238).  Many fixes
297    have been made in statistics printing code, generally for
298    human-readable output (#562, #575, #252, #443, #236).
299
300  * Several problems with the -F/--file options have been fixed.
301    Documentation has been improved to note some ways in which this
302    feature might not behave as expected (#588).
303
304  * iperf3 now uses the correct "bitrate" phraseology rather than
305    "bandwidth" when describing measurement results.  The --bandwidth
306    option has been renamed --bitrate, although --bandwidth is still
307    accepted for backwards compatibility (#583).
308
309  * Application-level bandwidth pacing (--bitrate option) is now
310    checked every millisecond by default, instead of of every tenth of
311    a second, to provide smoother traffic behavior when using
312    application pacing (#460).  The pacing can be tuned via the use of
313    the --pacing-timer option (#563).
314
315  * A new --dscp option allows specifying the DSCP value to be used
316    for outgoing packets (#508).  The TOS byte value is now printed in
317    the JSON output (#226).
318
319  * Congestion window data on FreeBSD is now computed correctly (#465,
320    #475, #338).
321
322  * The T/t suffixes for terabytes/terabits are now accepted for
323    quantities where suffixes are supported, such as --bandwidth
324    (#402).
325
326  * Sanity checks for UDP send sizes have been added (#390), and
327    existing checks on the --window option have been improved (#557).
328
329  * The TCP rttvar value is now available in the JSON output (#534), as are
330    the socket buffer sizes (#558).
331
332  * Error handling and documentation have been improved for the
333    -f/--format options (#568).
334
335  * A new --connect-timeout option on the client allows specifying a
336    length of time that the client will attempt to connect to the
337    server, in milliseconds (#216).
338
339  * The hostname and current timestamp are no longer used in the
340    cookie used to associate the client and server.  Instead, random
341    data is used.  Note that iperf3 now requires the /dev/urandom
342    device (#582).
343
344  * Prior versions of iperf3 doing UDP tests used to overcount packet
345    losses in the presence of packet reordering.  This has been
346    (partially) fixed by try to not count the sequence number gaps
347    resulting from out-of-order packets as actual losses (#457).
348
349  * iperf3 no longer prints results from very small intervals (10% of
350    the statistics reporting interval) at the end of the test run if
351    they contain no data.  This can happen due to timing difference or
352    network queueing on the path between the client and server.  This
353    is primarily a cosmetic change to prevent these fairly meaningless
354    intervals from showing up in the output (#278).
355
356  * Compatiblity note: Users running iperf3 3.2 or newer from the
357    bwctl utility will need to obtain version 1.6.3 or newer of bwctl.
358    Note that bwctl, a component of the perfSONAR toolkit, has been
359    deprecated in favor of pScheduler since the release of perfSONAR
360    4.0.
361
362* Developer-visible changes
363
364  * Various warnings and build fixes (#551, #564, #518, #597).
365
366  * Some improvements have been made for increased compatibility on
367    IRIX (#368) and with C++ (#587).
368
369  * cJSON has been updated to 1.5.2 (#573), bringing in a number of
370    bugfixes.
371
372  * Some dead code has been removed.
373
374iperf 3.1.7 2017-03-06
375----------------------
376
377iperf 3.1.7 is functionally identical to iperf 3.1.6.  Its only
378changes consist of updated documentation files and text in the RPM
379spec file.
380
381iperf 3.1.6 2017-02-02
382----------------------
383
384The release notes for iperf 3.1.6 describe changes, including bug
385fixes and new functionality, made since iperf 3.1.5.
386
387* User-visible changes
388
389  * Specifying --fq-rate or --no-fq-socket-pacing on a system where
390    these options are not supported now generate an error instead of a
391    warning.  This change makes diagnosing issues related to pacing
392    more apparent.
393
394  * Fixed a bug where two recently-added diagnostic messages spammed
395    the JSON output on UDP tests.
396
397iperf 3.1.5 2017-01-12
398----------------------
399
400The release notes for iperf 3.1.5 describe changes, including bug
401fixes and new functionality, made since iperf 3.1.4.
402
403Compatibility note: Fair-queueing is now specified differently in
404iperf 3.1.5 than in prior versions (which include 3.1.3 and 3.1.4).
405
406Compatibility note: UDP tests may yield different results from all
407prior versions of iperf3 (through 3.1.4) due to the new default UDP
408sending size.
409
410* User-visible changes
411
412  * The fair-queueing per-socket based pacing available on recent
413    Linux systems has been reimplemented with a different user
414    interface (#325, #467, #488).  The --bandwidth command-line flag
415    now controls only the application-level pacing, as was the case in
416    iperf 3.1.2 and all earlier versions.  Fair-queueing per-socket
417    based pacing is now controlled via a new --fq-rate command-line
418    flag.  Note that TCP and UDP tests may use --bandwidth, --fq-rate,
419    both flags, or neither flag.  SCTP tests currently support
420    --bandwidth only.  The --no-fq-socket-pacing flag, which was
421    introduced in iperf 3.1.3, has now been deprecated, and is
422    equivalent to --fq-rate=0.  iperf3 now reacts more gracefully if
423    --no-fq-socket-pacing or --fq-rate are specified on platforms that
424    don't support these options.
425
426    For UDP tests, note that the default --bandwidth is 1 Mbps.  Using
427    the fair-queueing-based pacing will probably require explicitly
428    setting both --bandwidth and --fq-rate, preferably to the same
429    value.  (While setting different values for --bandwidth and
430    --fq-rate can certainly be done, the results can range from
431    entertaining to perplexing.)
432
433  * iperf3 now chooses a more sane default UDP send size (#496, #498).
434    The former default (8KB) caused IP packet fragmentation on paths
435    having smaller MTUs (including any Ethernet network not configured
436    for jumbo frames).  This could have effects ranging from increased
437    burstiness, to packet loss, to complete failure of the test.
438    iperf3 now attempts to use the MSS of the control connection to
439    determine a default UDP send size if no sending length was
440    explicitly specified with --length.
441
442  * Several checks are now made when setting the socket buffer sizes
443    with the -w option, to verify that the settings have been applied
444    correctly.  The results of these checks can been seen when the
445    --debug flag is specified.  (#356)
446
447  * A --forceflush flag has been added to flush the output stream
448    after every statistics reporting interval.
449
450* Developer-visible changes
451
452  * A systemd service file has been added (#340, #430).
453
454iperf 3.1.4 2016-10-31
455----------------------
456
457The release notes for iperf 3.1.4 describe changes, including bug
458fixes and new functionality, made since iperf 3.1.3.
459
460* User-visible changes
461
462  * On systems that support setting the congestion control algorithm,
463    iperf3 now keeps track of the congestion control algorithm and
464    print it in the JSON output in the members sender_tcp_congestion
465    and receiver_tcp_congestion (issue #461).  A few bugs (probably
466    not user-visible) with setting the congestion control algorithm
467    were also fixed.
468
469* Developer-visible changes
470
471  * Fixed a buffer overflow in the cJSON library (issue #466).  It is
472    not believed that this bug created any security vulnerabilities in
473    the context of iperf3.
474
475  * Travis CI builds are now enabled on this codeline (pull request #424).
476
477  * Various bug fixes (issue #459, pull request #429, issue #388).
478
479iperf 3.1.3 2016-06-08
480----------------------
481
482The release notes for iperf 3.1.3 describe changes, including bug
483fixes and new functionality, made since iperf 3.1.2.
484
485* Security
486
487  * Fixed a buffer overflow / heap corruption issue that could occur
488    if a malformed JSON string was passed on the control channel.  In
489    theory, this vulnerability could be leveraged to create a heap
490    exploit.  This issue, present in the cJSON library, was already
491    fixed upstream, so was addressed in iperf3 by importing a newer
492    version of cJSON (plus local ESnet modifications).  Discovered and
493    reported by Dave McDaniel, Cisco Talos.  Cross-references:
494    TALOS-CAN-0164, ESNET-SECADV-2016-0001, CVE-2016-4303.
495
496* User-visible changes
497
498  * On supported platforms (recent Linux), iperf3 can use
499    fair-queueing-based per-socket pacing instead of its own
500    application-level pacing for the --bandwidth option.
501    Application-level pacing can be forced with the
502    -no-fq-socket-pacing flag.
503
504  * A bug that could show negative loss counters with --udp and --omit
505    has been fixed (issue #412, pull request #414).
506
507  * Error handling has been made slightly more robust.  Also, the
508    iperf3 server will no longer exit after five consecutive errors,
509    but will only exit for certain types of errors that prevent it
510    from participating in any tests at all.
511
512* Developer-visible changes
513
514  * Fixed the build on FreeBSD 11-CURRENT (issue #413).
515
516  * Fixed various coding errors (issue #423, issue #425).
517
518iperf 3.1.2 2016-02-01
519----------------------
520
521The release notes for iperf 3.1.2 describe changes, including bug
522fixes and new functionality, made since iperf 3.1.1.
523
524* User-visible changes
525
526  * Fixed a bug that caused nan values to be emitted (incorrectly)
527    into JSON, particularly at the end of UDP tests (issue #278).
528
529  * Fixed a bug that caused the wrong value to be printed for
530    out-of-order UDP packets (issue #329).
531
532  * Added a contrib/ directory containing a few submitted graphing
533    scripts.
534
535* Developer-visible changes
536
537iperf 3.1.1 2015-11-19
538----------------------
539
540The release notes for iperf 3.1.1 describe changes and new
541functionality in iperf 3.1.1, but not present in 3.1.
542
543* User-visible changes
544
545  * Some markup fixes have been made in the manpages for Debian
546    compatibility (issue #291).
547
548  * A bug where the -T title option was not being output correctly
549    in JSON output has been fixed (issue #292).
550
551  * Argument handling for some command-line options has been improved
552    (issue #316).
553
554* Developer-visible changes
555
556  * A regression with C++ compatibility in one of the iperf header
557    files has been fixed (issue #323).
558
559iperf 3.1 2015-10-16
560--------------------
561
562The release notes for iperf 3.1 describe changes and new
563functionality in iperf 3.1, but not present in 3.0.11 or any earlier
5643.0.x release.
565
566* Selected user-visible changes
567
568  * SCTP support has been added (with the --sctp flag), on Linux,
569    FreeBSD, and Solaris (issue #131).
570
571  * Setting CPU affinity now works on FreeBSD.
572
573  * Selection of TCP congestion now works on FreeBSD, and is now
574    called --congestion (the old --linux-congestion option works
575    but is now deprecated).
576
577  * A new -I option for the server causes it to write a PID file,
578    mostly useful for daemon mode (issue #120).
579
580  * A --logfile argument can now force all output to go to a file,
581    rather than to a file.  This is especially useful when running an
582    iperf3 server in daemon mode (issue #119).
583
584  * Various compatibility fixes for Android (issue #184, issue #185),
585    iOS (issue #288), NetBSD (issue #248), Solaris (issue #175, issue
586    #178, issue #180, issue #211), vxWorks (issue #268).
587
588  * A --udp-counters-64bit flag has been added to support very
589    long-running UDP tests, which could cause a counter to overflow
590    (issue #191).
591
592  * A --cport option to specify the client-side port has been added
593    (issue #207, issue #209, issue #239).
594
595  * Some calculation errors with the -O feature have been fixed (issue
596    #236).
597
598  * A potential crash in the iperf3 server has been fixed (issue #257,
599    issue #258).
600
601  * Many miscellaneous bug fixes.
602
603* Selected developer-visible changes
604
605  * Consumers of libiperf can now get the JSON output for a
606    just-completed test (issue #147).
607
608  * Detection of various optional features has been improved to check
609    for the presence or absence of platform functionality, not the name
610    of platforms.
611
612  * Out-of-tree builds now work (issue #265).
613
614iperf 3.0.11 2015-01-09
615-----------------------
616
617* User-visible changes
618
619  * Added -1 / --one-off flag, which causes the iperf3 server to
620    process one client connection and then exit.  Intended primarily
621    for bwctl integration (issue #230).
622
623  * Added various minor bug fixes (issues #231, #232, #233).
624
625  * Added 30-second timeout for UDP tests if unable to establish UDP
626    connectivity between sender and receiver (issue #222).
627
628iperf 3.0.10 2014-12-16
629-----------------------
630
631* User-visible changes
632
633  * Fixed the build on MacOS X Yosemite (issue #213).
634
635  * UDP tests now honor the -w option for setting the socket buffer
636    sizes (issue #219).
637
638* Developer-visible changes
639
640  * Added an RPM spec file plus functionality to fill in the version
641    number.
642
643  * Fixed potential filename collision with a system header (issue
644    #203).
645
646iperf 3.0.9 2014-10-14
647----------------------
648
649* User-visible changes
650
651  * Fixed a series of problems that came from attempting a UDP test
652    with a pathologically large block size.  This put the server into
653    an odd state where it could not accept new client connections.
654    This in turn caused subsequent client connections to crash when
655    interrupted (issue #212).
656
657* Developer-visible changes
658
659  * None.
660
661iperf 3.0.8 2014-09-30
662----------------------
663
664* User-visible changes
665
666  * Updated license and copyright verbage to confirm to LBNL Tech
667    Transfer requirements.  No substantive changes; license remains
668    the 3-clause BSD license.
669
670* Developer-visible changes
671
672  * None.
673
674iperf 3.0.7 2014-08-28
675----------------------
676
677* User-visible changes
678
679  * A server bug where new connections from clients could disrupt
680    running tests has been fixed (issue #202).
681
682  * Rates now consistently use 1000-based prefixes (K, M, G), where
683    sizes of objects now consistently use 1024-based prefixes (issue #173).
684
685  * UDP tests with unlimited bandwidth are now supported (issue #170).
686
687  * An interaction between the -w and -B options, which kept them from
688    working when used together, has been fixed (issue #193).
689
690* Developer-visible changes
691
692iperf 3.0.6 2014-07-28
693----------------------
694
695* User-visible changes
696
697  * Several bugs that kept the -B option from working in various
698    circumstances have been fixed (issue #193).
699
700  * Various compatibility fixes for OpenBSD (issue #196) and
701    Solaris (issue #177).
702
703* Developer-visible changes
704
705  * The {get,set}_test_bind_address API calls have been added to
706    expose the -B functionality to API consumers (issue #197).
707
708iperf 3.0.5 2014-06-16
709----------------------
710
711* User-visible changes
712
713  * Erroneous output when doing --json output has been fixed (this
714    problem was caused by an attempt to fix issue #158).
715
716  * The maximum test running time has been increased from one hour to
717    one day (issue #166).
718
719  * Project documentation has been moved to GitHub Pages at this URL:
720    http://software.es.net/iperf/.
721
722  * A bug that caused CPU time to be computed incorrectly on FreeBSD
723    has been fixed.
724
725  * A timing issue which caused measurement intervals to be wrong
726    with TCP tests on lossy networks has been fixed (issue #125).
727
728  * Newer versions of autoconf / automake / libtool are now used by
729    default (issue #161).
730
731  * JSON output now indicates whether the test was run in --reverse
732    mode (issue #167).
733
734  * It is now possible to get (most of) the server-side output at
735    the client by using the --get-server-output flag (issue #160).
736
737* Developer-visible changes
738
739  * automake/autoconf/libtool have been updated to more recent
740    versions.  AM_MAINTAINER_MODE is now used to avoid requiring these
741    tools at build-time.
742
743iperf 3.0.4 was not released
744----------------------------
745
746iperf 3.0.3 2014-03-26
747----------------------
748
749* User-visible changes
750
751  * Due to several oversights, the source code archive for iperf 3.0.2
752    was distributed as an uncompressed tarball, despite having an
753    extension (".tar.gz") that indicated it was compressed.  The
754    release generation procedure has been changed to avoid this
755    problem going forward.
756
757  * Summary structures in the JSON output are now included, even if
758    there is only one stream.  This change makes consuming the JSON
759    output easier and more consistent (issue #151).
760
761  * A possible buffer overflow in iperf_error.c has been fixed (issue
762    #155).
763
764* Developer-visible changes
765
766  * Example programs now build correctly, after having been broken in
767    the 3.0.2 release (issue #152).
768
769iperf 3.0.2 2014-03-10
770----------------------
771
772* User-visible changes
773
774  * The iperf3 project has been moved to GitHub, and various URLs in
775    documentation files have been changed to point there.
776
777  * iperf3 now builds on Linux systems that do not support
778    TCP_CONGESTION.  Most notably this allows iperf3 to work on CentOS
779    5.
780
781  * An abort on MacOS 10.9 has been fixed (issue #135).
782
783  * Added -I flag for the server to write a PID file, mostly useful for
784    daemon mode (issue #120).
785
786  * A bug that could break some TCP tests on FreeBSD has been fixed.
787
788  * TCP snd_cwnd output is now printed by default on Linux (issue #99).
789
790  * In JSON output, the --title string no longer has a colon and two
791    spaces appended (issue #139).
792
793  * A buffer for holding formatted numeric values is now
794    properly-sized so that output is not truncated (issue #142).
795
796* Developer-visible changes
797
798  * Some memory leaks have been fixed.
799
800  * A -d flag enables debugging output.
801
802  * A .gitignore file has been added.
803
804  * libtoolize is now invoked correctly from the bootstrap.sh script.
805
806  * The test unit format can now be set from the API (issue #144).
807
808  * libiperf is now built as both shared and static libraries.
809
810  * In the JSON output, the "connection" structures are now stored as
811    an array in the "start" block, instead of overwriting each other.
812    While technically an incompatible API change, the former behavior
813    generated unusable JSON.
814
815iperf 3.0.1 2014-01-10
816----------------------
817
818  * Added the following new flags
819     -D, --daemon	       run server as a daemon
820     -L, --flowlabel           set IPv6 flow label (Linux only)
821     -C, --linux-congestion    set congestion control algorithm (Linux only)
822     -k, --blockcount #[KMG]   number of blocks (packets) to transmit
823     	 	      	       (instead of -t or -n)
824  * Bug fixes
825
826iperf 3.0-RC5 2013-11-15
827------------------------
828
829  * Added the following new flags
830     -F, --file name           xmit/recv the specified file
831     -A, --affinity n/n,m      set CPU affinity (Linux only)
832     -J, --json                output in JSON format
833     -Z, --zerocopy            use a 'zero copy' method of sending data
834     -O, --omit N              omit the first n seconds
835     -T, --title str           prefix every output line with this string
836  * more useful information in 'verbose' mode
837  * Many bug fixes
838
839
840iperf 3.0b4 2010-08-02
841----------------------
842
843  * Added support for binding to a specific interface (-B)
844  * Added support for IPv6 mode (-6)
845  * Setting TCP window size (-w) is now supported
846  * Updates to iperf_error
847      * Added new errors
848      * Should generate more relavent messages
849  * Stream list now managed by queue.h macros
850  * Test structures are now kept intact after a test is run (for API users)
851  * Improved interval timer granularity
852      * Support for decimal values
853  * Many bug fixes
854
855iperf 3.0b3 2010-07-23
856----------------------
857
858  * Better error handling
859      * All errors now handled with iperf_error()
860      * All functions that can return errors return NULL or -1 on error and set i_errno appropriately
861  * Iperf API intruduced
862      * Support for adding new protocols
863      * Added support for callback functions
864          * on_connect - executes after a connection is made to the server
865          * on_new_stream - executes after a new stream is created
866          * on_test_start - executes right before the test begins
867          * on_test_finish - executes after the test is finished
868  * Added early support for verbose mode (-V)
869
870iperf 3.0b2 2010-07-15
871----------------------
872
873  * UDP mode now supported
874      * Support for setting bandwidth (-b)
875      * Parallel UDP stream support
876      * Reverse mode UDP support
877  * Support for setting TCP_NODELAY (-N), disabling Nagle's Algorithm
878  * Support for setting TCP MSS (-M)
879      * Note: This feature is still in development. It is still very buggy.
880
881iperf 3.0b1 2010-07-08
882----------------------
883
884  * TCP control socket now manages messages between client and server
885  * Dynamic server (gets test parameters from client)
886      * Server can now set test options dynamically without having to restart.
887          * Currently supported options: -l, -t, -n, -P, -R
888          * Future options: -u, -b, -w, -M, -N, -I, -T, -Z, -6
889  * Results exchange
890      * Client can now see server results (and vice versa)
891  * Reverse mode (-R)
892      * Server sends, client receives
893