From 406cbaf458c0538b7b1a0be07dbb2c02b61a7c6e Mon Sep 17 00:00:00 2001 From: Dimitrios Stavrakakis Date: Fri, 12 Jan 2024 07:25:29 -0800 Subject: [PATCH] [iperf] update README Signed-off-by: Dimitrios Stavrakakis --- iperf/README.md | 53 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/iperf/README.md b/iperf/README.md index 31c5d01..a372752 100644 --- a/iperf/README.md +++ b/iperf/README.md @@ -5,26 +5,59 @@ recent version of `iperf` as of this writing (3.16). # Prerequisites -`iperf` has no prerequisites. +`iperf` has no prerequisites ([source](https://github.com/esnet/iperf?tab=readme-ov-file#prerequisites)). -# Execution instructions +# Building instructions + +## Building for Linux + +Run `make` in the root directory. + +## Building for SGX -```sh -# build iperf and the final manifest -make SGX=1 +Run `make SGX=1` (non-debug) or `make SGX=1 DEBUG=1` (debug) in the root directory. -# To run the original iperf server, use: +# Execution instructions + +Run `iperf` server natively: +``` LD_LIBRARY_PATH=./install ./install/iperf3 -s +``` -# To run the iperf server in non-SGX Gramine, use: +Run `iperf` server in Gramine without SGX: +``` gramine-direct iperf3 +``` -# To run the iperf server in Gramine-SGX, use: +Run `iperf` server in Gramine with SGX: +``` gramine-sgx iperf3 +``` -# To get measurements with the iperf client, run in another terminal: +To get measurements with the `iperf` client, run in another terminal: +``` LD_LIBRARY_PATH=./install ./install/iperf3 -c localhost -p 5201 ``` +# Useful iperf options +## Generic options (both for server and client): +- `-p, --port`: server port to listen on/connect to +- `--forceflush`: force flushing output at every interval +- `-d, --debug[=#]`: emit debugging output (optional "=" and debug level: 1-4. Default is 4 - all messages) + +## Server-specific options: +- `-s, --server`: run in server mode +- `-1, --one-off`: handle one client connection then exit +- `--idle-timeout #`: restart idle server after # seconds in case it got stuck (default - no timeout) + +## Client-specific options: +- `-c, --client `: run in client mode, connecting to +- `-t, --time #`: time in seconds to transmit for (default 10 secs) +- `-n, --bytes #[KMG]`: number of bytes to transmit (instead of -t) +- `-P, --parallel #`: number of parallel client streams to run +- `-N, --no-delay`: set TCP/SCTP no delay, disabling Nagle's Algorithm + # Notes -Tested in `Ubuntu 22.04.3 LTS`. \ No newline at end of file +- Tested in `Ubuntu 22.04.3 LTS`. +- In the execution instructions, we use port `5201` for the client. +This is the default port used by `iperf`. \ No newline at end of file