And I just pushed a branch that calculates a timer interval based on the throttle rate and the buffer size, with a cap on the timer frequency that can be changed via the command-line. It _seems_ to work well, and give really smooth pacing. Incredibly smooth pacing, actually (at least at 1ms time bucket intervals). The branch is here: https://github.com/woody77/iperf/tree/pacing_timer -Aaron On Tue, Sep 20, 2016 at 4:32 PM, Aaron Wood wrote: > On Tue, Sep 20, 2016 at 3:03 PM, Dave Täht wrote: > >> Groovy. I note that I am really fond of the linux "fdtimer" notion for >> tickers, we use that throughout the high speed stats gathering code in >> flent. >> >> I'd really like a voip or ping tool that used those, and I've always >> worried about iperf's internal notion of a sampling interval. >> >> On 9/20/16 3:00 PM, Aaron Wood wrote: >> > I modified iperf3 to use a 1ms timer, and was able to get things much >> > smoother. I doubt it's as smooth as iperf3 gets on Linux when fq pacing >> > is used, but it's a big improvement vs. the nice small buffers in >> switches. >> > > Thanks! > > For rates of <1000 packets per second, the 1ms timer I put in will give > something like that (it fires every ms, but that's just a check for sending > or not). If you want to use it to model a 120pps flow of 64-byte packets: > > iperf3 -c -u -l 64 -b 61440 > > And then it will pace those out at roughly every 80ms (just verified this > on my box) > > -Aaron >