<html><head></head><body>Hi Bob,<br><br>Sweet, thanks! Will go and set this up in my home network, but that will take a while. Also any proposal how to convert the output into some graphs by any chance?<br><br>Regards<br> Sebastian<br><br><div class="gmail_quote">On 11 October 2022 18:58:05 CEST, Bob McMahon <bob.mcmahon@broadcom.com> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr">> Saturate a link in both directions simultaneously with multiple greedy flows while measuring load-dependent latency changes for small isochronous probe flows.<br><div><br></div><div>This functionality is released in iperf 2.1.8 per the bounceback feature but, unfortunately, OpenWRT doesn't maintain iperf 2 as a package anymore and uses 2.0.13 <br><h2 style="color:rgb(0,0,0);font-family:"Times New Roman"">CLIENT SPECIFIC OPTIONS</h2><dl compact style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><dt><b>--bounceback[=</b><i>n</i><b>]</b></dt><dd>run a TCP bounceback or rps test with optional number writes in a burst per value of n. The default is ten writes every period and the default period is one second (Note: set size with -l or --len which defaults to 100 bytes)</dd><dt><b>--bounceback-congest[=up|down|bidir][</b>,<i>n</i><b>]</b></dt><dd>request a concurrent working load or TCP stream(s), defaults to full duplex (or bidir) unless the <b>up</b> or <b>down</b> option is provided. The number of TCP streams defaults to 1 and can be changed via the n value, e.g. <b>--bounceback-congest=down,4</b> will use four TCP streams from server to the client as the working load. The IP ToS will be BE (0x0) for working load traffic.</dd><dt><b>--bounceback-hold </b><i>n</i></dt><dd>request the server to insert a delay of n milliseconds between its read and write (default is no delay)</dd><dt><b>--bounceback-period[=</b><i>n</i><b>]</b></dt><dd>request the client schedule its send(s) every n seconds (default is one second, use zero value for immediate or continuous back to back)</dd><dt><b>--bounceback-no-quickack</b></dt><dd>request the server not set the TCP_QUICKACK socket option (disabling TCP ACK delays) during a bounceback test (see NOTES)</dd><dt><b>--bounceback-txdelay </b><i>n</i></dt><dd>request the client to delay n seconds between the start of the working load and the bounceback traffic (default is no delay)</dd></dl></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 11, 2022 at 12:15 AM Sebastian Moeller <<a href="mailto:moeller0@gmx.de">moeller0@gmx.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Bob,<br>
<br>
On 11 October 2022 02:05:40 CEST, Bob McMahon <<a href="mailto:bob.mcmahon@broadcom.com" target="_blank">bob.mcmahon@broadcom.com</a>> wrote:<br>
>It's too big because it's oversized so it's in the size domain. It's<br>
>basically Little's law's value for the number of items in a queue.<br>
><br>
>*Number of items in the system = (the rate items enter and leave the<br>
>system) x (the average amount of time items spend in the system)*<br>
><br>
><br>
>Which gets driven to the standing queue size when the arrival rate<br>
>exceeds the service rate - so the driving factor isn't the service and<br>
>arrival rates, but *the queue size *when *any service rate is less than an<br>
>arrival rate.*<br>
<br>
[SM] You could also argue it is the ratio of arrival to service rates, with the queue size being a measure correlating with how long the system will tolerate ratios larger than one...<br>
<br>
<br>
><br>
>In other words, one can find and measure bloat regardless of the<br>
>enter/leave rates (as long as the leave rate is too slow) and the value of<br>
>memory units found will always be the same.<br>
><br>
>Things like prioritizations to jump the line are somewhat of hacks at<br>
>reducing the service time for a specialized class of packets but nobody<br>
>really knows which packets should jump. <br>
<br>
[SM] Au contraire most everybody 'knows' it is their packets that should jump ahead of the rest ;) For intermediate hop queues however that endpoint perception is not really actionable due to lack of robust and reliable importance identifiers on packets. In side a 'domain' dscps might work if treated to strict admission control, but that typically will not help end2end traffic over the internet. This is BTW why I think FQ is a great concept, as it mostly results in the desirable outcome of not picking winners and losers (like arbitrarily starving a flow), but I digress.<br>
<br>
>Also, nobody can define what<br>
>working conditions are so that's another problem with this class of tests.<br>
<br>
[SM] While real working conditions will be different for each link and probably vary over time, it seems achievable to come up with a set of pessimistic assumptions how to model a challenging work condition against which to test potential remedies, assuming that such remedies will also work well under less challenging conditions, no?<br>
<br>
<br>
><br>
>Better maybe just to shrink the queue and eliminate all unneeded queueing<br>
>delays. <br>
<br>
[SM] The 'unneeded' does a lot of work in that sentence ;). I like Van's? Description of queues as shock absorbers so queue size will have a lower acceptable limit assuming users want to achieve 'acceptable' throughput even with existing bursty senders. (Not all applications are suited for pacing so some level of burstiness seems unavoidable).<br>
<br>
<br>
> Also, measure the performance per "user conditions" which is going<br>
>to be different for almost every environment (and is correlated to time and<br>
>space.) So any engineering solution is fundamentally suboptimal. <br>
<br>
[SM] A matter of definition, if the requirement is to cover many user conditions the optimality measure simply needs to be changed from per individual condition to over many/all conditions, no?<br>
<br>
>Even<br>
>pacing the source doesn't necessarily do the right thing because that's<br>
>like waiting in the waitlist while at home vs the restaurant lobby. <br>
<br>
[SM] +1.<br>
<br>
> Few<br>
>care about where messages wait (unless the pitch is AQM is the only<br>
>solution that drives to a self-fulfilling prophecy - that's why the tests<br>
>have to come up with artificial conditions that can't be simply defined.)<br>
<br>
Hrm, so the RRUL test, while not the end all of bufferbloat/working conditions tests, is not that complicated:<br>
Saturate a link in both directions simultaneously with multiple greedy flows while measuring load-dependent latency changes for small isochronous probe flows.<br>
<br>
Yes, the it would be nice to have additional higher rate probe flows also bursty ones to emulate on-linev games, and 'pumped' greedy flows to emulate DASH 'streaming', and a horde of small greedy flows that mostly end inside the initial window and slow start. But at its core existing RRUL already gives a useful estimate on how a link behaves under saturating loads all the while being relatively simple.<br>
The responsiveness under working condition seems similar in that it tries to saturate a link with an increasing number of greedy flows, in a sense to create a reasonable bad case that ideally rarely happens.<br>
<br>
Regards<br>
Sebastian<br>
<br>
<br>
><br>
>Bob<br>
><br>
>On Mon, Oct 10, 2022 at 3:57 PM David Lang <<a href="mailto:david@lang.hm" target="_blank">david@lang.hm</a>> wrote:<br>
><br>
>> On Mon, 10 Oct 2022, Bob McMahon via Bloat wrote:<br>
>><br>
>> > I think conflating bufferbloat with latency misses the subtle point in<br>
>> that<br>
>> > bufferbloat is a measurement in memory units more than a measurement in<br>
>> > time units. The first design flaw is a queue that is too big. This<br>
>> youtube<br>
>> > video analogy doesn't help one understand this important point.<br>
>><br>
>> but the queue is only too big because of the time it takes to empty the<br>
>> queue,<br>
>> which puts us back into the time domain.<br>
>><br>
>> David Lang<br>
>><br>
>> > Another subtle point is that the video assumes AQM as the only solution<br>
>> and<br>
>> > ignores others, i.e. pacing at the source(s) and/or faster service<br>
>> rates. A<br>
>> > restaurant that let's one call ahead to put their name on the waitlist<br>
>> > doesn't change the wait time. Just because a transport layer slowed down<br>
>> > and hasn't congested a downstream queue doesn't mean the e2e latency<br>
>> > performance will meet the gaming needs as an example. The delay is still<br>
>> > there it's just not manifesting itself in a shared queue that may or may<br>
>> > not negatively impact others using that shared queue.<br>
>> ><br>
>> > Bob<br>
>> ><br>
>> ><br>
>> ><br>
>> > On Mon, Oct 10, 2022 at 2:40 AM Sebastian Moeller via Make-wifi-fast <<br>
>> > <a href="mailto:make-wifi-fast@lists.bufferbloat.net" target="_blank">make-wifi-fast@lists.bufferbloat.net</a>> wrote:<br>
>> ><br>
>> >> Hi Erik,<br>
>> >><br>
>> >><br>
>> >>> On Oct 10, 2022, at 11:32, Taraldsen Erik <<a href="mailto:erik.taraldsen@telenor.no" target="_blank">erik.taraldsen@telenor.no</a>><br>
>> >> wrote:<br>
>> >>><br>
>> >>> On 10/10/2022, 11:09, "Sebastian Moeller" <<a href="mailto:moeller0@gmx.de" target="_blank">moeller0@gmx.de</a>> wrote:<br>
>> >>><br>
>> >>> Nice!<br>
>> >>><br>
>> >>>> On Oct 10, 2022, at 07:52, Taraldsen Erik via Cake <<br>
>> >> <a href="mailto:cake@lists.bufferbloat.net" target="_blank">cake@lists.bufferbloat.net</a>> wrote:<br>
>> >>>><br>
>> >>>> It took about 3 hours from the video was release before we got the<br>
>> >> first request to have SQM on the CPE's we manage as a ISP. Finally<br>
>> >> getting some customer response on the issue.<br>
>> >>><br>
>> >>> [SM] Will you be able to bump these requests to higher-ups and at<br>
>> >> least change some perception of customer demand for tighter latency<br>
>> >> performance?<br>
>> >>><br>
>> >>> That would be the hope.<br>
>> >><br>
>> >> [SM} Excellent, hope this plays out as we wish for.<br>
>> >><br>
>> >><br>
>> >>> We actually have fq_codel implemented on the two latest generations of<br>
>> >> DSL routers. Use sync rate as input to set the rate. Works quite well.<br>
>> >><br>
>> >> [SM] Cool, if I might ask what fraction of the sync are you<br>
>> >> setting the traffic shaper for and are you doing fine grained overhead<br>
>> >> accounting (or simply fold that into a grand "de-rating"-factor)?<br>
>> >><br>
>> >><br>
>> >>> There is also a bit of traction around <a href="http://speedtest.net" rel="noreferrer" target="_blank">speedtest.net</a>'s inclusion of<br>
>> >> latency under load internally.<br>
>> >><br>
>> >> [SM] Yes, although IIUC they are reporting the interquartile<br>
>> mean<br>
>> >> for the two loaded latency estimates, which is pretty conservative and<br>
>> only<br>
>> >> really "triggers" for massive consistently elevated latency; so I expect<br>
>> >> this to be great for detecting really bad cases, but I fear it is too<br>
>> >> conservative and will make a number of problematic links look OK. But<br>
>> hey,<br>
>> >> even that is leaps and bounds better than the old only idle latency<br>
>> report.<br>
>> >><br>
>> >><br>
>> >>> My hope is that some publication in Norway will pick up on that score<br>
>> >> and do a test and get some mainstream publicity with the results.<br>
>> >><br>
>> >> [SM] Inside the EU the challenge is to get national regulators<br>
>> and<br>
>> >> the BEREC to start bothering about latency-under-load at all, "some<br>
>> >> mainstream publicity" would probably help here as well.<br>
>> >><br>
>> >> Regards<br>
>> >> Sebastian<br>
>> >><br>
>> >><br>
>> >>><br>
>> >>> -Erik<br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> Make-wifi-fast mailing list<br>
>> >> <a href="mailto:Make-wifi-fast@lists.bufferbloat.net" target="_blank">Make-wifi-fast@lists.bufferbloat.net</a><br>
>> >> <a href="https://lists.bufferbloat.net/listinfo/make-wifi-fast" rel="noreferrer" target="_blank">https://lists.bufferbloat.net/listinfo/make-wifi-fast</a><br>
>> ><br>
>> >_______________________________________________<br>
>> Bloat mailing list<br>
>> <a href="mailto:Bloat@lists.bufferbloat.net" target="_blank">Bloat@lists.bufferbloat.net</a><br>
>> <a href="https://lists.bufferbloat.net/listinfo/bloat" rel="noreferrer" target="_blank">https://lists.bufferbloat.net/listinfo/bloat</a><br>
>><br>
><br>
<br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.<br>
</blockquote></div>
<br>
<span style="background-color:rgb(255,255,255)"><font size="2">This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it.</font></span></blockquote></div><div style='white-space: pre-wrap'><div class='k9mail-signature'>-- <br>Sent from my Android device with K-9 Mail. Please excuse my brevity.</div></div></body></html>