Subject:  iperf3 status, April 2017

This is the first of a series of (maybe periodic?) updates about
iperf3 development:

State of the iperf3 World, as seen from ESnet...
------------------------------------------------

iperf3 was originally written to be a "better", more maintainable
follow-on to iperf2.  This was seen to be necessary to fill the 
requirements for the perfSONAR project (http://www.perfsonar.net).

In the past few years, iperf2 development has been restarted by Bob
McMahon of Broadcom.  He (and other contributors) have fixed a number
of problems with iperf2 and added some new features
(https://sourceforge.net/projects/iperf2/).  We're happy to observe
that iperf2 is once again under active development, and we have
started discussing ways in which these two projects could productively
interact.

We note that iperf3 lacks several features found in iperf2, for
example multicast tests, bidirectional tests, multi-threading, and
official Windows support.  Given the active state of iperf2
development and maintenance, we feel that the needs of users requiring
such functionality are best met by using a recent version of iperf2
instead of waiting for them to be backported or reimplemented in
iperf3.

ESnet's main interest in iperf3 is for testing high-performance
Research and Education (R&E) networks, especially as a part of the
perfSONAR toolkit.  iperf3 can be useful in other circumstances as
well, but high-speed R&E network performance testing will remain the
primary use case.  (Much of iperf2's recent development
has focused on the use of UDP for end-to-end latency testing on a
broad range of platforms, although it too is useful for many other
testing scenarios.)

iperf3 Support
--------------

We're trying to work down the support backlog for iperf3.  To that
end, we've been aggressively triaging iperf3 issues in the issue
tracker on GitHub.  Over the past several weeks, we've gone from about
180 open issues to less than 75.  A number of these issues were user
questions, not bug reports or enhancement requests.  We're now
discouraging the use of the iperf3 issue tracker for questions.
Instead we'd like users to either use the mailing list
(iperf-dev@google-groups.com) or to look to various question sites on
the Internet such as Stack Overflow (http://www.stackoverflow.com).

We're happy to accept enhancement requests, although it should be
noted that ESnet's time commitments to iperf3 are somewhat limited and
we need to prioritize our work to match our own requirements.  We have
begun using the "Help Wanted" label in the issue tracker on GitHub to
indicate requests we agree with (or at least don't object to), but
which we don't have the time to work on ourselves.  These are good
candidates for someone in the community to work on and submit as a
pull request.

Pull requests are still encouraged, as long as they're compatible with
ESnet's goals and requirements for iperf3.  If you're contemplating a
code change that would have a major, fundamental change on the iperf3
architecture, we strongly encourage discussion with the iperf3
maintainers before doing a significant amount of work.

Some of the above considerations are now documented in GitHub
templates that we've recently installed for new issues, pull requests,
and contribution guidelines.

To make it easier for new users with common questions, we have created
a Frequently Asked Questions (FAQ) list, which is now available on the
iperf3 Web site, at:

http://software.es.net/iperf/faq.html

Future Plans
------------

In the near-term, we're planning another iperf3 release that will
include some recently added changes.  Because some of the changes are
rather large, we're considering basing this release off the mainline
which would make it the first 3.2 release, rather than try to backport
these changes and make another "bugfix" 3.1 release.  No decisions
have been made yet.

The main changes (already on the master branch) are authentication
(#517), a more fine-grained pacing timer (#460), and some portability
fixes.  We'd appreciate any testing and feedback that users in the
community could give on these.

Thanks for your interest and support of iperf3,

Bruce Mah
Software Engineering Group
ESnet
