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