General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Notes about hacking on AQMs
Date: Wed, 8 Jun 2011 09:20:47 -0600	[thread overview]
Message-ID: <BANLkTimL=eLGgE_R0DUx1USoxC=uMmtUkQ@mail.gmail.com> (raw)
In-Reply-To: <1307545032.3057.45.camel@edumazet-laptop>

[-- Attachment #1: Type: text/plain, Size: 2977 bytes --]

On Wed, Jun 8, 2011 at 8:57 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:

> Le mercredi 08 juin 2011 à 08:04 -0600, Dave Taht a écrit :
> > It looks like adding ECN to the other qdiscs would be good, and
> > transparent to the upper layers, but a 10 minute glance at HTB seems
> > to make it a non-trivial exercise. But that's me. I would certainly
> > like to see ECN asserted more often than it is. Thoughts?
>
> Just add to your HTB some RED qdisc ? You have a framework to build
> whatever is needed. Dont try to use a "single magic thing that will
> solve all my problems". This reminds me the ESFQ attempt : Patrick
> prefered to plug an external classifier in SFQ, instead of adding
> specialized code in each possible Qdisc.
>

I agree that the new (1997) solution for SFQ, embedding the ESFQ principle
is better. It's NOT embedded in the shaper scripts I've been playing with,
it certainly seems saner for flows into the home to be doing it against dest
ips rather than ips and port numbers, in the bittorrent age.

I will also attempt to argue persuasively that having ECN packet marking in
HTB and elsewhere - when possible - in addition to packet drop would
probably result in better behavior overall, but to do that well would
require coding it up.

The core argument would be:

By the time a packet gets to a RED sub-qdisc, it's already been through HTB,
and dropped if it is overlimit. RED has it's own idea as to the 'bandwidth'
available, and does not understand what it's getting has already been shaped
by HTB.



>
>
> I had the idea to add ECN to SFQ (my favorite qdisc for proxies dealing
> only with tcp flows) in the past, with a global config (shared for all
> flows : remember SFQ means Fair Queuing ;) )
>
> At queueing time :
>
> - we compute the flow (internal default SFQ classifier, or external user
> provided one)
> - We queue the packet into its slot X (kind of pfifo)
> - If queue limit is reached, take a packet from the biggest slot Y, do a
> head drop. Return Congestion Notification to caller if the chosen slot
> is the slot X (X == Y)
>
> Adding ECN/RED here could be done with very litle added cost :
>
> Adding kind of RED on each slot, instead of a regular pfifo, and
> probabilist mark/drop packet at enqueue time if :
> - Current slot length is above the RED lower threshold
> - Or average residency time in slot above a threshold
>
> And doing full drop if :
> - Current slot length is above RED upper limit
> - Current elapsed time of head packet above upper time limit.
>
> I like the time being the feedback instead of queue length (hard to
> tune, especially if bandwidth is unknown)
>
> You would say for example :
>        min_time = 3 ms
>        max_time = 30 ms
>        probability = 0.05
>        limit_time = 100 ms
>
>
This sounds promising also.




-- 
Dave Täht
SKYPE: davetaht
US Tel: 1-239-829-5608
http://the-edge.blogspot.com

[-- Attachment #2: Type: text/html, Size: 3690 bytes --]

  reply	other threads:[~2011-06-08 15:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-08 12:12 Dave Taht
2011-06-08 12:56 ` Eric Dumazet
2011-06-08 13:32   ` Dave Taht
2011-06-08 14:04     ` Dave Taht
2011-06-08 14:57       ` Eric Dumazet
2011-06-08 15:20         ` Dave Taht [this message]
2011-06-08 15:21           ` Dave Taht
2011-06-23 22:38           ` Juliusz Chroboczek
2011-06-23 22:47             ` Dave Taht
2011-06-08 15:27         ` Jesper Dangaard Brouer
2011-06-08 15:45           ` Eric Dumazet
2011-06-08 15:51             ` Dave Taht
2011-06-08 16:41               ` Eric Dumazet
2011-06-08 16:52                 ` Dave Taht
2011-06-08 17:50                   ` Stephen Hemminger
2011-06-08 23:06           ` Thomas Graf
2011-06-09 17:18             ` Jesper Dangaard Brouer
2011-06-09 16:04   ` Jesper Dangaard Brouer
2011-06-09 16:14     ` Eric Dumazet
2011-06-09 17:20       ` Jesper Dangaard Brouer

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='BANLkTimL=eLGgE_R0DUx1USoxC=uMmtUkQ@mail.gmail.com' \
    --to=dave.taht@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=eric.dumazet@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