Annotation of embedaddon/iperf/RELNOTES.md, revision 1.1.1.2

1.1       misho       1: iperf3 Release Notes
                      2: ====================
                      3: 
1.1.1.2 ! misho       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: 
1.1       misho     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: 
1.1.1.2 ! misho     550:   * Compatibility note: Users running iperf3 3.2 or newer from the
1.1       misho     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
1.1.1.2 ! misho    1042:       * Should generate more relevant messages
1.1       misho    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
1.1.1.2 ! misho    1055:   * Iperf API introduced
1.1       misho    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>