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