Subject: Re: [PATCH] netem: account for packets in delayed queue in qlen

From: Stephen Hemminger <[email-masked]>
Date: Thu, 21 Apr 2005 13:20:20 +1000

On Wed, 20 Apr 2005 16:00:56 +0200
Patrick McHardy <[email-masked]> wrote:

> Stephen Hemminger wrote:
> > There may be no sane way to do duplication without that.
> 
> This way doesn't work properly either. The classful qdiscs don't care
> about their own q.qlen and just try to dequeue, if successful they
> decrement q.qlen. When duplicating packets in an inner qdisc the
> top-level qdisc's q.qlen will turn negative at some point (it's
> unsigned, but returned as int from qdisc_restart) and will cause
> qdisc_run() to spin forever.

So duplication is a no go...
Unless there is a different way of accounting for qlen (like a callback).

> > Other ways like injecting
> > packets again at top of queue with a thread/tasklet seem rather gross
> 
> Injecting at the top is also problematic because it needs to
> follow the same classification-path as the first packet, which
> can only be guarenteed with stateless classification.
> 
> Regards
> Patrick