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