From: Dave Taht <dave.taht@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: codel@lists.bufferbloat.net, Jesper Dangaard Brouer <jbrouer@redhat.com>
Subject: Re: [Codel] hardware multiqueue in fq_codel?
Date: Fri, 12 Jul 2013 12:37:22 -0400 [thread overview]
Message-ID: <CAA93jw56qvkNwNEwSVUsGGvTJ8FG3Sd9hOmnP6cWnfiYFFa3Wg@mail.gmail.com> (raw)
In-Reply-To: <1373642001.10804.18.camel@edumazet-glaptop>
On Fri, Jul 12, 2013 at 11:13 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Fri, 2013-07-12 at 11:34 +0200, Jesper Dangaard Brouer wrote:
>
>> I also think of "fq_codel" as a good replacement for pfifo_fast. As
>> the 3-PRIO bands in pfifo_fast is replaced with something smarter in
>> "fq_codel". (IMHO please don't try to add a prio_fq_codel, just be because
>> pfifo_fast had prio bands, people can just enable a prio qdisc if they
>> really need it).
>
> Nope. Its really easy for an attacker to flood your fq_codel with say
> UDP messages on all available hash slots.
This is not strictly true, as the hash is permuted by a secret random
number, any level of dumb attack as an attempt to fill all available queues
will need to vastly exceed the packet limit rather than the number of queues,
thus yielding the same behavior as a normal attack against pfifo_fast, and
in the general case an attack that would overwhelm pfifo_fast won't be
anywhere near as damaging against fq_codel.
While it is possible to determine the permutation value it would take a while.
> Some people really want the high prio packets to be sent before any
> med/low prio packets. Not everybody uses a separate ethernet port for
> management and heartbeats.
I agree this is a strong argument for a strictly priority queue to exist,
but would prefer it codeled. Don't mind it fq_codeled either...
> If we want to replace pfifo_fast as the default qdisc, we want some
> integrated qdisc with 3 bands.
Agree.
> I presume something really simple like :
>
> a fifo for band 0 messages
> a fq_codel for band 1 messages
> a fifo for band 2 messages
>
> Would be more than enough, and this also should use device txqueue len
> as the (dynamic) limit, because some existing scripts expect to control
> qdisc limit using "ifconfig eth0 txqueuelen 100", not a tc script.
I believe this would suffice! although I continue to argue for
fq_codel on band 2
with a very limited number of queues by default (say, 8), and some level of
service guarantee better than starvation.
txqueuelen 100 is rather low for codel queue, so I wouldn't
mind if the lowest value was capped at say, 600, but informed by the
txqueuelen setting to do so.
in one version of cake I'd merely taken out some queues for 1 and 3
out of the flows array, changed the hash to account for the offsets
using band2prio on the skb->priority field, converted the new_flows
and old_flows pointers to a flows[4].
I got stuck on trying to provide some service guarantee for all three
queues. (well, I was trying at the time to do weights or more than
three queues, too) Gave up and misplaced the work.
So I've come around to where I can live with a strict priority queue,
a la pfifo_fast, that can starve the other queues, and should come
with a large red warning label if used.
This simplifies providing a service guarantee to an integer value, say,
a default of 10 (so service is provided every 10th attempt at delivery
from queue 2),
to the 3rd queue.
>
>
>
--
Dave Täht
Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
next prev parent reply other threads:[~2013-07-12 16:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 17:09 Dave Taht
2013-07-11 17:44 ` Eric Dumazet
2013-07-11 18:06 ` Dave Taht
2013-07-11 18:54 ` Eric Dumazet
2013-07-11 21:18 ` Dave Taht
2013-07-12 0:06 ` Eric Dumazet
2013-07-12 0:48 ` Dave Taht
2013-07-12 9:34 ` Jesper Dangaard Brouer
2013-07-12 15:13 ` Eric Dumazet
2013-07-12 16:36 ` Sebastian Moeller
2013-07-12 16:54 ` Eric Dumazet
2013-07-12 17:00 ` Dave Taht
2013-07-15 13:40 ` Jesper Dangaard Brouer
2013-07-15 13:57 ` Eric Dumazet
2013-07-15 14:24 ` Jesper Dangaard Brouer
2013-07-15 15:30 ` Eric Dumazet
2013-07-15 17:19 ` Dave Taht
2013-07-12 16:37 ` Dave Taht [this message]
2013-07-12 16:39 ` Dave Taht
2013-07-12 16:50 ` Eric Dumazet
2013-07-12 16:54 ` Dave Taht
2013-07-12 17:19 ` Eric Dumazet
2013-07-12 17:35 ` Dave Taht
2013-07-12 17:47 ` Eric Dumazet
2013-07-12 18:06 ` Dave Taht
2013-07-15 12:56 ` Jesper Dangaard Brouer
2013-07-12 17:32 ` luca.muscariello
2013-07-11 19:41 ` Jonathan Morton
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/codel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw56qvkNwNEwSVUsGGvTJ8FG3Sd9hOmnP6cWnfiYFFa3Wg@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=codel@lists.bufferbloat.net \
--cc=eric.dumazet@gmail.com \
--cc=jbrouer@redhat.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