Subject: Re: netem and hierarchical ingress traffic shaping

From: Stephen Hemminger <[email-masked]>
Date: Fri, 23 Dec 2011 11:07:49 -0800

On Fri, 23 Dec 2011 19:28:27 +0100
Eric Dumazet <[email-masked]> wrote:

> Le vendredi 23 décembre 2011 à 18:54 +0100, Dave Taht a écrit :
> 
> > Are there any place where all 48 bytes of cb are used?
> > 
> 
> Yes, but on in qdisc layer.
> 
> struct tcp_skb_cb is known to be 44 bytes (when IPv6 is enabled)
> 
> In qdisc layer, we use a small part of it, for the moment.
> 
> > I wouldn't mind if 'time_to_send' became a separate skb field
> > for a more generic 'time_in_queue'...
> > 
> 
> This wont happen.
> 
> As I posted in an earlier patch, this can be added in "struct
> qdisc_skb_cb"
> 
> 
> 

skb_cb is the dumping ground of the networking layer.
The assumption was that the qdisc could use the skb_cb
for it's own scratchpad. Netem is using it for tagging
packets in the queue. 

So basically, netem, choke, and sfb are incompatible with
each other. This is not that bad, why not add a flag to qdisc
ops to indicate which qdisc are using cb and block user from
trying to do something bogus.