Hi,
Just an FYI for those who might be interested. We added RTT and CWND samples in
iperf 2.0.8 for the TCP transmitter (iperf client) as well as UDP mean/min/max/stdev in the iperf server (assumes the clocks are synched.) Also, much faster sampling is supported. These may be helpful
to those trying to improve wi-fi performance. To get the output one needs to use the –e option. Also, RTT/CWND is linux only. Apple is evaluating the change set and *may* ship it with future phones and Mac OS X systems.
Full change set here:
-
Fix portability, compile and tested with Linux, Win10, Win7, WinXP, MacOS and Android
-
Require -u for UDP (-b no longer defaults to UDP)
-
Improved performance
-
Enhanced reporting with -e
-
Support smaller report intervals (5 ms or greater)
-
Support SO_RCVTIMEOUT for server reports regardless of no packets
-
Server will close the socket after no received traffic per the -t value (default is 10 sec)
-
Support SO_TIMESTAMP for kernel level packet timestamping
-
Support end/end latency in mean/min/max/stdev format (UDP) (-e required)
-
(assumes client and server clocks synched, e.g by Precision Time Protocol)
-
Add local port to bind support (-B option) using colon as separator
-
(e.g. iperf -c 192.168.100.100 -B 192.168.100.10:6001)
-
Support TCP rate limited streams (via the -b) using token bucket
-
Support packets per second (UDP) via pps as units, (e.g. -b 1000pps)
-
Display PPS in both client and server reports (UDP) (-e required)
-
Support realtime scheduler as a command line option (--realtime or -z, assumes proper user privileges)
-
Improve client tx code path so actual tx offered rate will converge to the -b value
-
Improve accuracy of microsecond delay calls (in platform independent manner)
-
(Use of Kalman filter to predict delay errors and adjust delays per predicted error)
-
Display target loop time in initial client header (UDP)
-
Fix final latency report sent from server to client (UDP)
-
Include standard deviation in latency output
-
Suppress unrealistic latency output using (-/-/-/-)
-
Support SO_SNDTIMEO on send so socket write won't block beyond -t (TCP)
-
Use clock_gettime if available (preferred over gettimeofday())
-
TCP write and error counts (TCP retries and CWND for linux) (-e required)
-
TCP read count, TCP read histogram (8 bins) (-e required)
-
TCP RTT and CWND values in client reports (-e required, Linux only, RTT units microseconds)
Bob McMahon
Broadcom Wi-Fi QA Engineer