<div dir="ltr">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).<div><br></div><div>The branch is here:  <a href="https://github.com/woody77/iperf/tree/pacing_timer">https://github.com/woody77/iperf/tree/pacing_timer</a></div><div><br></div><div>-Aaron</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 20, 2016 at 4:32 PM, Aaron Wood <span dir="ltr"><<a href="mailto:woody77@gmail.com" target="_blank">woody77@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class="">On Tue, Sep 20, 2016 at 3:03 PM, Dave Täht <span dir="ltr"><<a href="mailto:dave@taht.net" target="_blank">dave@taht.net</a>></span> wrote:<br></span><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">Groovy. I note that I am really fond of the linux "fdtimer" notion for<br>
tickers, we use that throughout the high speed stats gathering code in<br>
flent.<br>
<br>
I'd really like a voip or ping tool that used those, and I've always<br>
worried about iperf's internal notion of a sampling interval.<br>
</span><div><div><span class=""><br>
On 9/20/16 3:00 PM, Aaron Wood wrote:<br></span><span class="">> I modified iperf3 to use a 1ms timer, and was able to get things much<br>
> smoother.  I doubt it's as smooth as iperf3 gets on Linux when fq pacing<br>
> is used, but it's a big improvement vs. the nice small buffers in switches.<br></span></div></div></blockquote><div><br></div><div>Thanks!</div><div><br></div><div>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:</div><div><br></div><div>iperf3 -c <host> -u -l 64 -b 61440</div><div><br></div><div>And then it will pace those out at roughly every 80ms (just verified this on my box)</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-Aaron</div></font></span></div></div></div>
</blockquote></div><br></div>