On Fri, 2006-17-02 at 16:54 +0100, Patrick McHardy wrote: 
> jamal wrote:

> 
> > With RED (as implemented) you _need_ a fifo of some sort which has a
> > upper threshold in byte count thats why bfifo was natural fit there.
> > However, sfq with your changes is also a fit since it provides the same
> > parametrization.
> 
> You need neither a fifo nor a limit. All RED does is calculate the
> average queue occupancy and react on that based on the min and
> max parameters. The upper threshold is just there to have some
> fixed boundaries on delay and/or resource consumption.
> 

 "You need neither a fifo nor a limit" is a pretty strong statement to
make;->. Either that or i am misunderstanding you.
RED is a _resource_ management algorithm and of course we need a limit
to resources being managed. Heck, if there was no resource problems
there would be no need for RED at all and lets just have infinite
queues.
>From a local perspective resources imply managing queue buffers. From an
end to end angle, it translates to congestion control. Essentially
"limit" is fundamental and a mismatch with what the inner vs
outer(RED) limits is problematic.

On the issue of FIFO:
You cannot afford to have contradiction between the inner qdisc
decision and the RED decision which is likely to happen if you use
anything that is not FIFO based. This boils to MUST for:
 
So far you have mentioned only SFQ which is fifo based and has limits;
so i dont see a contradiction there. If SFQ was LIFO based, there would
be a contradiction etc.

Again i may be misreading what you are saying.

> 
> > Maybe you could separate the fix of what was broken before with the new
> > "signalling".
> 
> Why? The patch is easy to understand and clearly commented in the
> changelog entry.
> 

Because you said it was of the same nature as the RED one in terms of
using limit to imply something else;->

> 
> > The idea of replacing the inner qdisc is standard procedure - think of a
> > prio qdisc (which also comes in with built in bfifo) and you wanted it
> > to be a pfifo/RED/TBF instead. It would be preferable not to deviate
> > from this scheme.
> 
> Again, it does have a regular graft operation. And also again, replacing
> the inner qdisc in the change operation is necessary to keep a backwards
> compatible meaning of limit. It is exactly what TBF does. Besides that,
> no other qdiscs destroy their inner qdiscs when changing class
> parameters, why do you insist that RED and TBF do so unless necessary?
> 

I say something like this when i want to attach
different inner qdiscs for PRIO qdisc:

#create a prio qdisc with three bfifo queues
tc qdisc add dev eth0 handle 1:0 root prio
#replace 1:1 with a tbf
tc qdisc replace dev eth0 parent 1:1 tbf blahblah
#replace 1:2 with a pfifo with limit of 10 packets
tc qdisc replace dev eth0 parent 1:2 pfifo limit 10

What i am suggesting is you do:
#create red as root
tc qdisc add dev eth0 handle 1:0 root red limit blah blahbleh
#replace the bfifo with sfq
tc qdisc add dev eth0 parent 1:1 sfq blahblah

What am i missing?

cheers,
jamal

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to