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