xref: /iperf/RELNOTES.md (revision c8032570)
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