From: Jonathan Morton <chromatix99@gmail.com>
To: Dave Taht <dave.taht@gmail.com>
Cc: "cerowrt-devel@lists.bufferbloat.net"
<cerowrt-devel@lists.bufferbloat.net>,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Comcast upped service levels -> WNDR3800 can't cope...
Date: Wed, 3 Sep 2014 14:04:05 +0300 [thread overview]
Message-ID: <CFE5A964-9F29-4A12-BE9A-0D02D02E8545@gmail.com> (raw)
In-Reply-To: <CAA93jw79bPe3ZeMLFGHtsnpaQQRAJ3EU+-Dypp6AXVAm1Km6Og@mail.gmail.com>
On 2 Sep, 2014, at 6:37 pm, Dave Taht wrote:
> > > tc qdisc add dev eth0 cake bandwidth 50mbit diffservmap std
> >
> > Or even having the "diffservmap std" part be in the defaults. I try not to spend too much mental effort understanding diffserv - it's widely misunderstood, and most end-user applications ignore it. Supporting the basic eight precedences, and maybe some userspace effort to introduce marking, should be enough.
>
> The various ietf wgs seem to think AFxx is a useful concept.
I'm sure they do. And I'm sure that certain networks make use of it internally. But the Internet does not support such fine distinctions in practice - at least, not at the moment. We have enough difficulty getting SQM of *any* colour deployed where it's needed.
A good default handling of Precedence would already be an improvement over the status quo, and I've worked out a CPU-efficient way of doing so. It takes explicit advantage of the fact that the overall shaping bandwidth is known, but degrades gracefully in case the actual bandwidth temporarily falls below that value. As I suggested previously, it gives weighted priority to higher-precedence packets, but limits their permitted bandwidth to prevent abuse.
As it happens, simply following the Precedence field, and ignoring the low-order bits of the Diffserv codepoint, satisfies the letter of the AF spec. The Class field is encoded as a Precedence value, and the drop-precedence subclasses then have equal drop probability, which the inequality equations permit. The same equations say nothing obvious about how a packet marked *only* with Precedence 1-4 should be treated relative to AF-marked packets in the same Precedence band, which is part of what gives me a headache about the whole idea.
EF is also neatly handled by ignoring the low-order bits, since its encoding has a high Precedence value. So, at the very least, more refined AF/EF handling can be deferred to a "version 2" implementation.
Reading the HTB code also gives me a headache. I have so far been unable to distinguish any fundamental timing differences in its single-class behaviour relative to TBF. The only clues I have so far are:
1) HTB uses a different timer call to schedule a future wakeup than TBF or FQ do.
2) FQ doesn't use a bucket of tokens, and explicitly avoids producing a "burst" of packets, but HTB and TBF both do and explicitly can.
3) TBF is the only one of the three to exhibit unusually high softirq load on egress. But this varies over time, even with constant bandwidth and packet size.
> > I like the name, though. :-)
>
> It is partially a reference to a scene in the 2010 sequel to 2001.
I need to re-watch that.
- Jonathan Morton
next prev parent reply other threads:[~2014-09-03 11:04 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 16:57 Aaron Wood
2014-08-29 17:03 ` Rick Jones
2014-08-29 17:11 ` Steinar H. Gunderson
2014-08-29 17:26 ` Jonathan Morton
2014-08-29 17:15 ` Jonathan Morton
2014-08-29 17:19 ` Jonathan Morton
2014-08-29 17:25 ` Sebastian Moeller
2014-08-29 18:06 ` Dave Taht
2014-08-30 11:02 ` Jonathan Morton
2014-08-30 13:03 ` Toke Høiland-Jørgensen
2014-08-30 17:33 ` Jonathan Morton
2014-08-30 20:47 ` Jonathan Morton
2014-08-30 22:30 ` Dave Taht
2014-08-31 10:18 ` Jonathan Morton
2014-08-31 10:21 ` Toke Høiland-Jørgensen
2014-09-01 17:01 ` Dave Taht
2014-09-01 18:06 ` Jonathan Morton
2014-09-01 18:32 ` Dave Taht
2014-09-01 20:25 ` Aaron Wood
2014-09-01 21:43 ` Jonathan Morton
2014-09-01 22:14 ` Aaron Wood
2014-09-02 9:09 ` David Lang
2014-09-02 9:27 ` Jonathan Morton
2014-09-03 6:15 ` Aaron Wood
2014-09-03 6:36 ` David Lang
2014-09-03 11:08 ` Jonathan Morton
2014-09-03 15:12 ` Aaron Wood
2014-09-03 19:22 ` [Bloat] [Cerowrt-devel] " Sebastian Moeller
2014-09-03 19:30 ` Dave Taht
2014-09-03 23:17 ` Bill Ver Steeg (versteb)
2014-09-04 0:33 ` Dave Taht
2014-09-04 3:36 ` Jonathan Morton
2014-09-04 14:05 ` Bill Ver Steeg (versteb)
2014-09-04 15:10 ` Michael Richardson
2014-09-04 7:04 ` Sebastian Moeller
2014-09-04 11:15 ` Jonathan Morton
2014-09-04 11:23 ` Sebastian Moeller
2014-09-02 8:55 ` Sebastian Moeller
2014-09-02 13:40 ` [Bloat] " Jonathan Morton
2014-09-02 15:37 ` Dave Taht
2014-09-02 15:47 ` Jonathan Morton
2014-09-02 17:36 ` Jonathan Morton
2014-09-02 17:41 ` Dave Taht
2014-09-02 18:28 ` Jonathan Morton
2014-09-03 11:04 ` Jonathan Morton [this message]
2014-08-30 21:53 ` Stephen Hemminger
2014-08-30 11:14 ` Jonathan Morton
2014-08-30 17:19 ` Aaron Wood
2014-08-30 18:01 ` Jonathan Morton
2014-08-30 18:21 ` [Bloat] [Cerowrt-devel] " Sebastian Moeller
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=CFE5A964-9F29-4A12-BE9A-0D02D02E8545@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
/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