Subject: Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().

From: Stephen Hemminger <[email-masked]>
Date: Sun, 24 Aug 2008 19:26:39 -0400

On Fri, 22 Aug 2008 22:45:57 +1000
Herbert Xu <[email-masked]> wrote:

> On Fri, Aug 22, 2008 at 05:18:41AM -0700, David Miller wrote:
> > 
> > Netem is trying to create packet reordering by requeueing (which is
> > logically like a head insert) instead of enqueueing (which is
> > logically like a tail insert).
> 
> Why does it use requeue when tfifo's enqueue will insert this
> at the front of the queue anyway based on time_to_send anyway?
> 
> Perhaps it's trying to force reordering when the user replaces
> tfifo with some other qidsc? But that doesn't make sense since
> netem relies on tfifo to implement all the other features such
> as delay and jitter.
> 
> So how about
> 
> 1) Change netem_graft to disallow the replacement of tfifo;
> 2) Simply use enqueue instead of requeue in netem_enqueue?
> 
> Cheers,

Tfifo is there only to add the jitter based reordering. Netem has other
better kinds of reordering as well.

Netem has to be able to put TBF in as a child qdisc. This is how loss
plus rate control is done.

Requeue was the natural way to do this based on the API's available
at the time.