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