
iperf3 is a complete rewrite of iperf2, with a goal of making the
code smaller and easier to maintain, and to support a client library 
verion of the functionality.


Main designer: Jon Dugan, ESnet
Original implementation: Seth Elliott, Kaustubh Prabhu (summer students)
Major overall: Brian Tierney, ESnet


-------------------------------------------------

iperf3 contains some orginal code from iperf2.

Here are the authors of iperf2.


Mark Gates
Alex Warshavsky 

  * original authors

Ajay Tirumala

  * general improvements 

Jim Ferguson <ferguson@ncsa.uiuc.edu>

  * Project management

Jon Dugan <jdugan@x1024.net>

  * Project maintainer and release coordinator
  * various patches and autoconf fixes, general maintenance

Feng Qin
Kevin Gibbs

  * windows porting work

John Estabrook <jestabro@ncsa.uiuc.edu>

Andrew Gallatin <gallatin@gmail.com>
  * threading fix and non Linux performance improvements

Stephen Hemminger <shemminger@linux-foundation.org>
  * Linux congestion control selection and theading improvements

Nathan Jones <nmjones@users.sourceforge.net>
  * patch for underflow when value specified in -n is not a multiple of -l

Gerrit Renker <grenker@users.sourceforge.net>
  * replace costly gettimeofday() with nanonsleep()
