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>