== iperf 3.?.? ????-??-?? == * User-visible changes * The iperf3 project has been moved to GitHub, and various URLs in documentation files have been changed to point there. * Setting CPU affinity now works on FreeBSD. * iperf3 now builds on Linux systems that do not support TCP_CONGESTION. Most notably this allows iperf3 to work on CentOS 5. * An abort on MacOS 10.9 has been fixed (issue #135). * Added -I flag for the server to write a PID file, mostly useful for daemon mode (issue #120). * A bug that could break some TCP tests on FreeBSD has been fixed. * TCP snd_cwnd output is now printed by default on Linux (issue #99). * SCTP support has been added (with the --sctp flag), on Linux and FreeBSD (issue #131). * In JSON output, the --title string no longer has a colon and two spaces appended (issue #139). * A buffer for holding formatted numeric values is now properly-sized so that output is not truncated (issue #142). * A --logfile argument can now force all output to go to a file, rather than to a file. This is especially useful when running an iperf3 server in daemon mode (issue #119). * Summary structures in the JSON output are now included, even if there is only one stream. This change makes consuming the JSON output easier and more consistent (issue #151). * A possible buffer overflow in iperf_error.c has been fixed (issue #155). * Developer-visible changes * Some memory leaks have been fixed. * A -d flag enables debugging output. * A .gitignore file has been added. * libtoolize is now invoked correctly from the bootstrap.sh script. * The test unit format can now be set from the API (issue #144). * libiperf is now built by default as both shared and static libraries (issue #146, issue #152). == iperf 3.0.1 2014-01-10 == * Added the following new flags -D, --daemon run server as a daemon -L, --flowlabel set IPv6 flow label (Linux only) -C, --linux-congestion set congestion control algorithm (Linux only) -k, --blockcount #[KMG] number of blocks (packets) to transmit (instead of -t or -n) * Bug fixes == iperf 3.0-RC5 2013-11-15 == * Added the following new flags -F, --file name xmit/recv the specified file -A, --affinity n/n,m set CPU affinity (Linux only) -J, --json output in JSON format -Z, --zerocopy use a 'zero copy' method of sending data -O, --omit N omit the first n seconds -T, --title str prefix every output line with this string * more useful information in 'verbose' mode * Many bug fixes == iperf 3.0b4 2010-08-02 == * Added support for binding to a specific interface (-B) * Added support for IPv6 mode (-6) * Setting TCP window size (-w) is now supported * Updates to iperf_error * Added new errors * Should generate more relavent messages * Stream list now managed by queue.h macros * Test structures are now kept intact after a test is run (for API users) * Improved interval timer granularity * Support for decimal values * Many bug fixes == iperf 3.0b3 2010-07-23 == * Better error handling * All errors now handled with iperf_error() * All functions that can return errors return NULL or -1 on error and set i_errno appropriately * Iperf API intruduced * Support for adding new protocols * Added support for callback functions * on_connect - executes after a connection is made to the server * on_new_stream - executes after a new stream is created * on_test_start - executes right before the test begins * on_test_finish - executes after the test is finished * Added early support for verbose mode (-V) == iperf 3.0b2 2010-07-15 == * UDP mode now supported * Support for setting bandwidth (-b) * Parallel UDP stream support * Reverse mode UDP support * Support for setting TCP_NODELAY (-N), disabling Nagle's Algorithm * Support for setting TCP MSS (-M) * Note: This feature is still in development. It is still very buggy. == iperf 3.0b1 2010-07-08 == * TCP control socket now manages messages between client and server * Dynamic server (gets test parameters from client) * Server can now set test options dynamically without having to restart. * Currently supported options: -l, -t, -n, -P, -R * Future options: -u, -b, -w, -M, -N, -I, -T, -Z, -6 * Results exchange * Client can now see server results (and vice versa) * Reverse mode (-R) * Server sends, client receives