-b, --bandwidth #[kmgKMG | set the target bandwidth and optional standard deviation per <mean>,[<stdev>] (See NOTES for suffixes) Setting the target bitrate on the client to 0 will disable bitrate limits (particularly useful… | help + man |
-e, --enhanced | Display enhanced output in reports otherwise use legacy report (ver 2.0.5) formatting (see NOTES) | help + man |
-f, --format | [kmgKMG] format to report: Kbits, Mbits, KBytes, MBytes | help |
--hide-ips | obscure ip addresses in output (useful when wanting to publish results and not display the full ip addresses. | help + man |
--histograms | enable histograms (see client or server for more) | help |
-i, --interval | sample or display interval reports every t seconds (default) or every frame or burst, i.e. if f is used then the interval will be each frame or burst. | help + man |
-l, --len | #[kmKM] length of buffer in bytes to read or write (Defaults: TCP=128K, v4 UDP=1470, v6 UDP=1450) | help |
-m, --print_mss | print TCP maximum segment size | help + man |
-o, --output filename | <filename> output the report or error message to this specified file | help + man |
-p, --port | # client/server port to listen/send on and to connect | help |
--permit-key | permit key to be used to verify client and server (TCP only) | help |
--tcp-tx-delay n | set socket option of TCP_TX_DELAY (units is milliseconds) | help + man |
--sum-only | set the output to sum reports only. | help + man |
-u, --udp | use UDP rather than TCP | help + man |
--utc | use coordinated universal time (UTC) when outputting time (otherwise use local time) | help + man |
-w, --window | #[KM] TCP window size (socket buffer size) | help |
-z, --realtime | Request real-time scheduler, if supported. | help + man |
-C, --compatibility | for use with older versions does not sent extra msgs | help + man |
-M, --mss n | # set TCP maximum segment size using TCP_MAXSEG | help + man |
-N, --nodelay | set TCP no delay, disabling Nagle's Algorithm | help + man |
-S, --tos val | # set the socket's IP_TOS (byte) field | help + man |
-Z, --tcp-congestion algo | Set the default congestion control algorithm to be used for new connections. | help + man |
-s, --server | run in server mode | help + man |
-1, --singleclient | set the server to process only one client at a time | help + man |
--jitter-histograms | enable jitter histograms | help |
--skip-rx-copy | set MSG_TRUNC to avoid kernel to application spaced copy of data | help + man |
--tap-dev dev | Set the receive interface to the TAP device as specified. | help + man |
-t, --time n | # time in seconds to listen for new connections as well as to receive traffic (default not set) | help + man |
-B, --bind ip>[%<dev | bind src ip addr and optional src device for receiving | help + man |
-U, --single_udp | run in single threaded UDP mode | help + man |
--sum-dstip | sum traffic threads based upon the destination IP address (default is source ip address) | help + man |
-D, --daemon | run the server as a daemon. | help + man |
-V, --ipv6_domain | Enable IPv6 reception by setting the domain and socket to AF_INET6 (Can receive on both IPv4 and IPv6) | help + man |
--bounceback | request a bounceback test (use -l for size, defaults to 100 bytes) | help |
--bounceback-hold n | request the server to insert a delay of n milliseconds between its read and write (default is no delay) | help + man |
--bounceback-period | request the client schedule a send every n milliseconds | help |
--bounceback-reply n | set the bounceback reply message size (defaults to symmetric) | help + man |
--bounceback-txdelay n | request the client to delay n seconds between the start of the working load and the bounceback traffic (default is no delay) | help + man |
-c, --client host | run in client mode, connecting to host where the optional %dev will SO_BINDTODEVICE that output interface (requires root and see NOTES) | help + man |
--connect-only | run a connect only test | help |
--dscp | set the DSCP field (masking ECN bits) in the TOS byte (used by IP_TOS & setsockopt) | help + man |
-d, --dualtest | Do a bidirectional test simultaneous test using two unidirectional sockets | help + man |
--fq-rate #[kmgKMG | bandwidth to socket pacing | help |
--fq-rate-step #[kmgKMG | step value to socket pacing | help |
--fq-rate-step-interval #[kmgKMG | step interval (in seconds) for socket pacing | help + man |
--full-duplex | run a full duplex test, i.e. traffic in both transmit and receive directions using the same socket | help + man |
--ignore-shutdown | don't wait on the TCP shutdown or close (fin & finack) rather use the final write as the ending event | help + man |
--incr-dstip | increment the destination ip address when using the parallel (-P) or port range option | help + man |
--incr-dstport | increment the destination port when using the parallel (-P) or port range option | help + man |
--incr-srcip | increment the source ip address when using the parallel (-P) or port range option | help + man |
--incr-srcport | increment the source ip address when using the parallel (-P) or port range option, requires -B to set the src port | help + man |
--ipg n | set the inter-packet gap to n (units of seconds) for packets or within a frame/burst when --isochronous is set | help + man |
--local-only | Set don't route on socket | help |
--no-connect-sync | By default, parallel traffic threads (per -P greater than 1) will synchronize after their TCP connects and prior to each sending traffic, i.e. all the threads first complete (or error) the TCP 3WHS… | help + man |
--no-udp-fin | Don't perform the UDP final server to client exchange which means there won't be a final server report displayed on the client. | help + man |
-n, --num | #[kmgKMG] number of bytes to transmit (instead of -t) | help |
--sync-transfer-id | pass the clients' transfer id(s) to the server so both will use the same id in their respective outputs | help + man |
-r, --tradeoff | Do a bidirectional test individually - client-to-server, followed by a reversed test, server-to-client | help + man |
--tcp-quickack | set the socket's TCP_QUICKACK option (off by default) | help + man |
--tcp-write-times | measure the socket write times at the application level | help + man |
--trip-times | enable the measurement of end to end write to read latencies (client and server clocks must be synchronized.) See notes about tcp-write-prefetch being enabled. | help + man |
--txdelay-time | time in seconds to hold back or delay after the TCP connect and prior to the socket writes. | help + man |
--txstart-time n.n | set the txstart-time to n.n using unix or epoch time format (supports microsecond resolution, e.g 1536014418.123456) An example to delay one second using command substitution is iperf -c 192.168.1.10… | help + man |
--udp-l4s | run an l4s traffic load (requires a iperf server that supports l4s) | help + man |
--udp-l4s-video | run a UDP L4S video flow | help |
-F, --fileinput name | input the data to be transmitted from a file | help + man |
-H, --ssm-host ip | Set the source host (ip addr) per SSM multicast, i.e. the S of the S,G | help + man |
-I, --stdin | input the data to be transmitted from stdin | help + man |
-L, --listenport # | port to receive fullduplexectional tests back on | help + man |
-P, --parallel n | # number of parallel client threads to run | help + man |
-R, --reverse, --remove | reverse the test (client receives, server sends) | help + man |
-T, --ttl n | # time-to-live, for multicast (default 1) | help + man |
-X, --peer-detect, --peerdetect | perform server version detection and version exchange | help + man |
-x, --reportexclude CDMSV | exclude C(connection) D(data) M(multicast) S(settings) V(server) reports | help |
-y, --reportstyle C | if set to C or c report results as CSV (comma separated values) | help + man |
-h, --help | print this message and quit | help + man |
-v, --version | print version information and quit | help + man |
--l2checks | perform layer 2 length checks on received UDP packets (requires systems that support packet sockets, e.g. Linux) (in the manual page but not in --help) | man |
--NUM_REPORT_STRUCTS count | Override the default shared memory size between the traffic thread(s) and reporter thread in order to mitigate mutex lock contentions. (in the manual page but not in --help) | man |
--tcp-cca | Set the congestion control algorithm to be used for TCP connections. (in the manual page but not in --help) | man |
--working-load-cca | Set the congestion control algorithm to be used for TCP working loads. (in the manual page but not in --help) | man |
--permit-key-timeout value | Set the lifetime of the permit key in seconds. (in the manual page but not in --help) | man |
--test-exchange-timeout value | Set the maximum wait time for a test excahnge in seconds. (in the manual page but not in --help) | man |
--tos-override val | set the socket's IP_TOS value for reverse or full duplex traffic. (in the manual page but not in --help) | man |
--working-load | Enable support for TCP working loads on UDP traffic streams (in the manual page but not in --help) | man |
--bounceback-no-quickack | request the server not set the TCP_QUICKACK socket option (disabling TCP ACK delays) during a bounceback test (see NOTES) (in the manual page but not in --help) | man |
--bounceback-request n | set the bounceback request size in units bytes. (in the manual page but not in --help) | man |
--burst-period n | Set the burst period in seconds. (in the manual page but not in --help) | man |
--burst-size n | Set the burst size in bytes. (in the manual page but not in --help) | man |
--connect-retry-time n | time value in seconds for application level retries of TCP connect(s). (in the manual page but not in --help) | man |
--connect-retry-timer n | The minimum time value in seconds to wait before retrying the connect. (in the manual page but not in --help) | man |