File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / iperf / RELNOTES.md
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:36:45 2021 UTC (3 years, 3 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: iperf3 Release Notes
    2: ====================
    3: 
    4: iperf 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: 
   29: iperf 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: 
   38: iperf 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: 
   81: iperf 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: 
  115: iperf 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: 
  147: iperf 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: 
  160: iperf 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: 
  200: iperf 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: 
  230: iperf 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: 
  318: iperf 3.1.7 2017-03-06
  319: ----------------------
  320: 
  321: iperf 3.1.7 is functionally identical to iperf 3.1.6.  Its only
  322: changes consist of updated documentation files and text in the RPM
  323: spec file.
  324: 
  325: iperf 3.1.6 2017-02-02
  326: ----------------------
  327: 
  328: The release notes for iperf 3.1.6 describe changes, including bug
  329: fixes 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: 
  341: iperf 3.1.5 2017-01-12
  342: ----------------------
  343: 
  344: The release notes for iperf 3.1.5 describe changes, including bug
  345: fixes and new functionality, made since iperf 3.1.4.
  346: 
  347: Compatibility note: Fair-queueing is now specified differently in
  348: iperf 3.1.5 than in prior versions (which include 3.1.3 and 3.1.4).
  349: 
  350: Compatibility note: UDP tests may yield different results from all
  351: prior versions of iperf3 (through 3.1.4) due to the new default UDP
  352: sending 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: 
  398: iperf 3.1.4 2016-10-31
  399: ----------------------
  400: 
  401: The release notes for iperf 3.1.4 describe changes, including bug
  402: fixes 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: 
  423: iperf 3.1.3 2016-06-08
  424: ----------------------
  425: 
  426: The release notes for iperf 3.1.3 describe changes, including bug
  427: fixes 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: 
  462: iperf 3.1.2 2016-02-01
  463: ----------------------
  464: 
  465: The release notes for iperf 3.1.2 describe changes, including bug
  466: fixes 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: 
  481: iperf 3.1.1 2015-11-19
  482: ----------------------
  483: 
  484: The release notes for iperf 3.1.1 describe changes and new
  485: functionality 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: 
  503: iperf 3.1 2015-10-16
  504: --------------------
  505: 
  506: The release notes for iperf 3.1 describe changes and new
  507: functionality in iperf 3.1, but not present in 3.0.11 or any earlier
  508: 3.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: 
  558: iperf 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: 
  572: iperf 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: 
  590: iperf 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: 
  605: iperf 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: 
  618: iperf 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: 
  636: iperf 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: 
  652: iperf 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: 
  687: iperf 3.0.4 was not released
  688: ----------------------------
  689: 
  690: iperf 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: 
  713: iperf 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: 
  759: iperf 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: 
  770: iperf 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: 
  784: iperf 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: 
  799: iperf 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: 
  814: iperf 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: 
  825: iperf 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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>