xref: /aosp_15_r20/external/iperf3/RELNOTES.md (revision 7ab6e6ace082586527a400463bc693a412a40341)
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