IPerf2 Changelog

What's new in IPerf2 2.2.0

Apr 12, 2024
  • new ./cnfigure --enable-summing-debug ptin t help with summing debug
  • select ahead f writes slw dwn UDP perfrmance. supprt ./cnfigure --disable-write-select
  • supprt f -b 0 with UDP, unlimited lad r n delay between writes
  • supprt fr --sync-transfer-id s client and server will match the ids and give a remap message
  • supprt --dscp cmmand line ptin
  • supprt fr applicatin level retries and minimum retry interval f the TCP cnnect() syscall via --cnnect-retry-time and --cnnect-retry-timer, repsectively
  • supprt fr --ignre-shutdwn s test will end n writes vs the BDP drain and TCP clse/shutdwn, recmmended nt t use this but in rare cases
  • supprt fr --fq-rate-step and --fq-rate-step-interval
  • CCAs per --tcp-cca, --tcp-cngestin, etc neeed t be case sensitive
  • supprt fr bth packets and bytes inflight taken frm tcp_inf struct amd pkt calc f (tcp_inf_buf.tcpi_unacked - tcp_inf_buf.tcpi_sacked - tcp_inf_buf.tcpi_lst + tcp_inf_buf.tcpi_retrans)
  • man page updates and -h t reflect new ptins, better descriptins
  • lts f wrk arund summing with parallel threads, new implementatin based n interval r slt cunters, hpefully shuld wrk reliably
  • --bunceback tests are much mre reliable and rbust
  • add cwnd packet utput with csv frmatting
  • sme fixes arund bind t device and --incr-dstip
  • use a cmpile time test fr HAVE_STRUCT_TCP_INF_TCPI_SND_CWND and nt a runtime test
  • use frmat specifiers fr tcp_inf struct fields
  • Imprve event handling arund select timeuts, helps with larger -P values and summing
  • use the getsckpt IP_TS fr the displayed utput, warn when set and get dn't match
  • better ts byte utput, include dscp and ecn fields individually
  • better ts setting cde fr bth v6 and v4, s they behave the same arund checks and warnings
  • much better NULL events t help with reprter prcessing even when traffic is nt flwing
  • supprt fr a new string reprt
  • pythn flws wrk arund CDF based tests
  • rate limit fflush calls t a max f ne every millisecnd r 1000 per sec
  • remve superfulus fflush calls
  • reprts when P = 1 and --sum-nly need sum utputs
  • enable summing with --incr-dstip
  • add macr TIME_GET_NW t set a struct timeval in a prtable manner
  • cde readability imprvements with enums, bls, etc.
  • fix fr TCP rate limited and -l less than min burst size
  • nly use linux/tcp.h when abslutely needed, therwise use netinet/tcp.h
  • print bunceback WD tx/rx in interval reprts
  • add flws Makefiles fr tarball r make dist-all
  • supprt interval reprts fr bunceback histgrams
  • supprt fr TCP wrking lads and UDP primary flws, including UDP ischrnus, per ticket 283
  • fix wrking-lad with isch s wrking-lad streams are capacity seeking
  • exit when CCA nt supprted r read f the current CCA desn't match requested CCA
  • add mre make check tests
  • add supprt fr mit string (mit cde nt ready fr this release)
  • pyflws qdisc settings and utputs
  • add first send pacing with --tx-starttime s listener threads udp_accept has time t perfrm udp_accept() between the client threads
  • adjust the sender time per the client delay and the client first write, i.e. subtract ut this delay in the calculatins
  • fixes fr small packets and --tx-starttime
  • use mre mdern multicast scket ptins (nw in src/iperf_multicast_api.c)
  • warn n bind prt nt sent with --incr-srcprt
  • display fq-rate values in utputs when --fq-rate is used
  • add supprt fr --test-exchange-timeut
  • fixes arund wait_tick
  • add supprt fr TCP_TX_DELAY via --tcp-tx-delay <val ms> ptin n bth client and server
  • pass the CCA frm client t server
  • supprt burst-size with different write sizes and dn't require --burst-perid
  • utput traffic thread send scheduling errr stats in final uput
  • utput clck unsync stats with --bunceback
  • add warn message n MSG_CTRUNC
  • UDP select fixes
  • enable TCP_NTSENTLWAT and set t a default small value with --tcp-write-times
  • default histgram max binning t 10 secnds
  • add a max timestamp t histgram utputs s user can find packets in pcaps r equivalent
  • autcnf change fr struct ip_mreqn
  • print errn n writen fail

New in IPerf2 2.1.8 (Aug 14, 2022)

  • Add support for --bounceback to perform a repsonsiveness test (see man page for other options)
  • add support for working loads with --bounceback
  • Fix to wait_tick with Mac OS X
  • Various python pyflows commits
  • add support for client side tcp-write-time histograms and mean/min/max
  • add support for human readable dscp or -T values (see man page)
  • udp_accept no longer accepts packets from a previous run as a new connection, this can occur with long network delays
  • multiple isoch bug fixes for both UDP and TCP
  • isoch server provides mean/min/max/stdev for both frames and packets
  • UDP max MTU discovery, requires configure.ac will support --enable-discover-defaultlen prior to compile

New in IPerf2 2.1.7 (Apr 12, 2022)

  • Support for tcp bounceback test
  • Code clean up
  • Regression fixes (see git-log)

New in IPerf2 2.1.6 (Dec 12, 2021)

  • fix tos (-S) regression
  • fix --permit-key regression

New in IPerf2 2.1.5 (Dec 5, 2021)

  • fix sme HAVE_IPV6 cnditinal changes
  • fix S_TIMEUT regressiny
  • ren sckets.c t scket_i.c
  • fix cmpile breakage per abs() returning an int instead f flat
  • supprt fr gettcpinf n Mac S X (tested n bth M1 and x86 silicn)
  • mve setsck_blcking frm sckets int PerfScket.cpp
  • dn't require -V fr v6, instead try v6 when v4 hstname lkup fails, client nly
  • add assert in writen
  • add tcp RTT variance t client utput
  • use setsckpt t get the nagle status
  • shw Nagle and TS settings n client
  • mre n cnnect-nly testing
  • sample and utput the initial rtt and cwnd in the cnnect reprt
  • fix multiple fullduplex regressins
  • fix fr HAVE_TCP_STATS in cnfigure, then linux cmpile
  • writen can have mre than ne write, fix accunting when this ccurs
  • fix ts with --reverse and --full-duplex
  • add supprt fr --ts-verride <value> n server
  • add supprt fr --tcp-drain, add mmm stats, histgrams - experimental feature
  • multiple man page updates
  • fix partial histgram print t nt shw (f)
  • sme new scripts in pythn flws
  • fixes t incr-srcprt
  • fixes fr --incr-dstprt
  • fix regressin n very first UDP packet having transit latency f zer
  • fix --reverse and --ischrnus when --trip-times nt set
  • fix client_init regressin, pull ut tcp_shutdwn
  • fix reprter startup race and ne secnd delay by setting the threads ready predicate and issuing the signal under a lck
  • fix first send accunting fr small -n
  • fix cnfigure.ac t use '=' instead f '=='

New in IPerf2 2.1.4 (Oct 6, 2021)

  • fix TCP isoch regression
  • fix regression in UDP header exchange for tests like --reverse
  • Add support for TCP_NOTSENT_LOWAT vi --tcp-write-prefetch and select() before write()
  • Add support for TCP_WINDOW_CLAMP
  • Rework recvn() and writen() for when SO_SNDTIMEO and SO_RCVTIMEO are enabled
  • Add support for --histograms on select with --tcp-write-prefetch
  • Add support for bind to device on the listener, i.e. iperf -s -i 1 -e -B 0.0.0.0%eth0, will only accept/receive on the eth0 interface
  • Add support for virtual/tap interfaces
  • Add support for --hide-ips (don't show the ip addresses in the report outputs)
  • Add support for clock sync check per -X and per --trip-times : [ 1] Clock sync check (ms): RTT/Half=(0.305/0.153) OWD-send/ack/asym=(0.245/0.060/0.185)