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