From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-gw3-out.broadcom.com (mail-gw3-out.broadcom.com [216.31.210.64]) by huchra.bufferbloat.net (Postfix) with ESMTP id 1755621F4F9 for ; Thu, 15 Oct 2015 21:19:57 -0700 (PDT) X-IronPort-AV: E=Sophos;i="5.17,687,1437462000"; d="scan'208,217";a="77611974" Received: from irvexchcas06.broadcom.com (HELO IRVEXCHCAS06.corp.ad.broadcom.com) ([10.9.208.53]) by mail-gw3-out.broadcom.com with ESMTP; 15 Oct 2015 21:47:12 -0700 Received: from SJEXCHCAS05.corp.ad.broadcom.com (10.16.203.12) by IRVEXCHCAS06.corp.ad.broadcom.com (10.9.208.53) with Microsoft SMTP Server (TLS) id 14.3.235.1; Thu, 15 Oct 2015 21:19:56 -0700 Received: from SJEXCHMB05.corp.ad.broadcom.com ([fe80::4ccf:d24d:fe6c:9594]) by SJEXCHCAS05.corp.ad.broadcom.com ([::1]) with mapi id 14.03.0235.001; Thu, 15 Oct 2015 21:19:56 -0700 From: "Bob (Robert) McMahon" To: "make-wifi-fast@lists.bufferbloat.net" Thread-Topic: iperf enhancements in 2.0.8 Thread-Index: AdEHyeNZLWOadrgsTLScaZgxdBVjTg== Date: Fri, 16 Oct 2015 04:19:56 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.16.203.100] Content-Type: multipart/alternative; boundary="_000_CCF12E84D46F914D86B3F9C1BC40E7991E5BB067SJEXCHMB05corpa_" MIME-Version: 1.0 Subject: [Make-wifi-fast] iperf enhancements in 2.0.8 X-BeenThere: make-wifi-fast@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Oct 2015 04:20:20 -0000 --_000_CCF12E84D46F914D86B3F9C1BC40E7991E5BB067SJEXCHMB05corpa_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Just an FYI for those who might be interested. We added RTT and CWND sampl= es in iperf 2.0.8 for the TCP tra= nsmitter (iperf client) as well as UDP mean/min/max/stdev in the iperf serv= er (assumes the clocks are synched.) Also, much faster sampling is suppor= ted. 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 on= ly. Apple is evaluating the change set and *may* ship it with future phon= es and Mac OS X systems. Full change set here: * Fix portability, compile and tested with Linux, Win10, Win7, WinXP, M= acOS 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 val= ue (default is 10 sec) * Support SO_TIMESTAMP for kernel level packet timestamping * Support end/end latency in mean/min/max/stdev format (UDP) (-e requir= ed) * (assumes client and server clocks synched, e.g by Precision Time Prot= ocol) * 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 t= o 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 p= redicted 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 (TC= P) * Use clock_gettime if available (preferred over gettimeofday()) * TCP write and error counts (TCP retries and CWND for linux) (-e requi= red) * TCP read count, TCP read histogram (8 bins) (-e required) * TCP RTT and CWND values in client reports (-e required, Linux only, R= TT units microseconds) Bob McMahon Broadcom Wi-Fi QA Engineer --_000_CCF12E84D46F914D86B3F9C1BC40E7991E5BB067SJEXCHMB05corpa_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi,

 

Just an FYI for those who might be interested. = We added RTT and CWND samples in iperf 2.0.8 for th= e TCP transmitter (iperf client) as well as UDP mean/min/max/stdev in the i= perf 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 ph= ones 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 p= ackets
  • 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 s= eparator
  • (e.g. iperf -c 192.168.100.100 -B 192.168.100.10:6001)=
  • Support TCP rate limited streams (via the -b) using token b= ucket
  • Support packets per second (UDP) via pps as units, (e.g. -b= 1000pps)
  • Display PPS in both client and server reports (UDP) (-e req= uired)
  • Support realtime scheduler as a command line option (--real= time 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 in= dependent manner)
  • (Use of Kalman filter to predict delay errors and adjust de= lays 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 bey= ond -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, Lin= ux only, RTT units microseconds)

 

Bob McMahon

Broadcom Wi-Fi QA Engineer

--_000_CCF12E84D46F914D86B3F9C1BC40E7991E5BB067SJEXCHMB05corpa_--