File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / iperf / RELNOTES.md
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:14:54 2023 UTC (8 months, 2 weeks ago) by misho
Branches: iperf, MAIN
CVS tags: v3_15, HEAD
Version 3.15

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

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