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