netdev
[Top] [All Lists]

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

To: Patrick McHardy <kaber@xxxxxxxxx>
Subject: Re: [PATCH] netem: account for packets in delayed queue in qlen
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Thu, 21 Apr 2005 13:20:20 +1000
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <42666098.5060409@xxxxxxxxx>
References: <20050329152110.38d50653@xxxxxxxxxxxxxxxxx> <4252EB9D.9070305@xxxxxxxxx> <20050407120417.4297cd14@xxxxxxxxxxxxxxxxx> <42628300.9010007@xxxxxxxxx> <20050419110639.47767113@xxxxxxxxxxxxxxxxxxxxx> <42666098.5060409@xxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Wed, 20 Apr 2005 16:00:56 +0200
Patrick McHardy <kaber@xxxxxxxxx> 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

<Prev in Thread] Current Thread [Next in Thread>