General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jonathan Morton <chromatix99@gmail.com>
To: "Holland, Jake" <jholland@akamai.com>
Cc: Mikael Abrahamsson <swmike@swm.pp.se>,
	"bloat@lists.bufferbloat.net" <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] datapoint from one vendor regarding bloat
Date: Thu, 11 Apr 2019 21:28:51 +0300	[thread overview]
Message-ID: <6889A853-52F2-4554-9450-F59F9CB6B91A@gmail.com> (raw)
In-Reply-To: <EE502C6B-5033-4EA0-B6A9-425A9C1C9EBE@akamai.com>

> On 11 Apr, 2019, at 9:00 pm, Holland, Jake <jholland@akamai.com> wrote:
> 
> MBS = maximum burst size
> PIR = peak information rate
> CBS = committed burst size
> CIR = committed information rate

Ah, this is enough to map the terms onto my prior knowledge of TBFs.  (In my considered opinion, TBFs are obsolete technology for shaping - but there is a lot of deployed hardware still using them.)

So what this boils down to is a two-stage TBF policer.  From idle, such a system will let a burst of traffic through unfiltered, then start dropping once the bucket is empty; the bucket is refilled at some configured rate.  The two-stage system allows implementation of "PowerBoost" style policies.

The practical effect is that if there's a 10ms burst permitted, there may be 10ms of traffic collecting in some downstream dumb FIFO.  This depends on fine details of the network topology, but this is the main reason I implemented a deficit-mode "virtual clock" shaper in Cake, which has no initial burst.  With that said, 10ms isn't too bad in itself.

A question I would ask, though, is whether that 10ms automatically scales to the actual link rate, or whether it is pre-calculated for the fastest rate and then actually turns into a larger time value when the link rate drops.  That's a common fault with sizing FIFOs, too.

> Pages 1185 thru 1222 of the referenced doc* are actually really interesting reading
> and an excellent walk-through of their token bucket concept and how to use it.

Nearly 40 pages?  I have work to do, y'know!

I did just glance through it, and it looks like exactly the sort of arcane system which ISPs would *want* to leave well alone in its default configuration, or make only the simplest and easiest-to-understand changes to.  There's obviously a lot of support for Diffserv designed into it, but nobody really knows how to configure a given Diffserv implementation to work well in the general case, simply because Diffserv itself is under-specified.

 - Jonathan Morton


  reply	other threads:[~2019-04-11 18:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11 10:38 Mikael Abrahamsson
2019-04-11 12:45 ` Sebastian Moeller
2019-04-11 17:33   ` Sebastian Moeller
2019-04-11 17:54 ` Jonathan Morton
2019-04-11 18:00   ` Holland, Jake
2019-04-11 18:28     ` Jonathan Morton [this message]
2019-04-11 23:56       ` Holland, Jake
2019-04-12  0:37         ` Jonathan Morton
2019-04-12  0:45           ` Holland, Jake
2019-04-12  9:47       ` Mikael Abrahamsson
2019-04-11 18:02   ` Jan Ceuleers
2019-04-11 18:27   ` Luca Muscariello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/bloat.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6889A853-52F2-4554-9450-F59F9CB6B91A@gmail.com \
    --to=chromatix99@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=jholland@akamai.com \
    --cc=swmike@swm.pp.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox