
BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.

This is a brief readme file for the netperf TCP/UDP/sockets/etc
performance benchmark. This is here mostly as a boot-strap. The real
information is in the manual, which can be found in netperf.ps and
online from http://www.netperf.org/netperf/NetperfPage.html. The
sources, and a limited number of binaries, can be found from
ftp://ftp.cup.hp.com/dist/networking/benchmarks/netperf/ .

BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.

There is a COPYRIGHT file included.  It is called COPYING because that
is what autosomethingorother wanted. It is based on what the HP Legal
Eagles gave me. I am not sure if the legalese is clear, but the intent
is to say "Here is a benchmark. Use it in good health. Pass it along,
port it, enhance it. You didn't pay for this tool, so don't expect it
to be perfect ;-)" The rest of it is there to keep the layers happy...  

While the copyright is pretty much in spirit an "open source" one, it
is not in letter - I never took the time to try to get it approved.
If you feel strongly about the license of the code you use and want
something under the GPL, consider netperf4:

http://www.netperf.org/svn/netperf4/trunk

Feel free to report netperf results in public forums, but please be
excruciatingly complete in your description of the test envorinment.
The old netperf database at:

  http://www.netperf.org/netperf/NetperfPage.html

is no more - or rather the utilities for accessing it no longer run.
The data is still present in the tree, albeit _VERY_ old now.

There is an Internet mailing list devoted to netperf. It is called
netperf-talk and it is hosted on netperf.org. Subscription requests
should go to netperf-talk-request@netperf.org.

Please DO NOT SEND subscription requests to netperf-talk!

If you run into severe difficulties, or are just feeling chatty,
please feel free to drop some email to me - Rick Jones
<raj@cup.hp.com>. Be sure to include a meaningful subject lines.

happy benchmarking, 
rick jones

BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.
