Subject: [tcpm] Introducing Transperf

From: Soheil Hassas Yeganeh <[email-masked]>
Date: Thu, 26 Sep 2019 15:09:26 -0400

We'd like to announce the availability of transperf: a network
protocol performance testing tool.

transperf enables users to test TCP performance over a variety of
emulated network scenarios (using netem), including RTT, bottleneck
bandwidth, and policed rate that can change over time. The tool
supports testing multiple flows on multiple machines, and can test the
coexistence of multiple congestion control algorithms in a single
test. Users can specify test configurations and make assertions about
the expected results (i.e., goodput, RTTs, retransmit rates, and
fairness) using a Python-based configuration language.

The BBR team at Google has been using transperf for some of our BBR
testing, and many of the pastel bandwidth plots from various BBR IETF
slide decks were produced using this tool. Transperf includes support
for plotting internal state used by the BBRv2 algorithm, and can be
easily extended to support other congestion control algorithms as
well. We have found it useful, and hope others find it useful as well.

The code is released under the Apache-2.0 license, and available in a
git repository at:

  https://github.com/google/transperf

The source for transperf is in the git repository, along with example
configuration scripts. It has been tested on Debian 9. We would love
to accept your bug reports, patches, and contributions through GitHub
issues and pull requests.

Co-authored-by: Soheil Yeganeh
Co-authored-by: Arjun Roy
Co-authored-by: Neal Cardwell
Co-authored-by: Luke Hsiao
Co-authored-by: Priyaranjan Jha
Co-authored-by: Haitao Wu
Co-authored-by: Yousuk Seung
Co-authored-by: Kevin(Yudong) Yang
Co-authored-by: Michael McLennan
Co-authored-by: Yuchung Cheng
Co-authored-by: Eric Dumazet
Co-authored-by: Maciej Żenczykowski