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

From: Patrick McHardy <[email-masked]>
Date: Fri, 22 Apr 2005 01:39:32 +0200

Stephen Hemminger wrote:
> I'm thinking of changing enqueue (and maybe later dequeue) API to decouple
> the qlen assumption.
> 
> Either:
> 	rc = qdisc->enqueue(skb, qdisc, &my->qlen)
> or add NET_XMIT_DUPPED
> 	rc = qdisc->enqueue(skb, qdisc);
> 	if (rc < NET_XMIT_SUCCESS) {
> 		++my->dropped;
> 	} else {
> 		my->qlen++;
> 		if (rc == NET_XMIT_DUPPED)
> 			my->qlen++;
> }

To be frank, I don't like either one. Both have the same problem
wrt. HFSC, the first solution requires changes all over the place,
the second one is unflexible and also requires lots of changes. I
don't see what could benefit from this API change besides netem,
so I'd vote to go with my proposed solution: store the parent
pointers in struct Qdisc, add code to walk up the tree and adjust
the qlen to netem, and fix up HFSC.

Regards
Patrick