Re: tc linklayer ADSL calc broken after commit 56b765b79 (htb: improved accuracy at high rates)
From: Jesper Dangaard Brouer <hidden>
Date: 2013-05-30 09:16:33
On Wed, 29 May 2013 16:18:26 -0700 Eric Dumazet [off-list ref] wrote:
On Wed, 2013-05-29 at 15:50 -0700, Stephen Hemminger wrote:quoted
On Wed, 29 May 2013 08:52:04 -0700 Eric Dumazet [off-list ref] wrote:quoted
On Wed, 2013-05-29 at 15:13 +0200, Jesper Dangaard Brouer wrote:quoted
I recently discovered that the (traffic control) tc linklayer calculations for ATM/ADSL have been broken by: commit 56b765b79 (htb: improved accuracy at high rates). Thus, people shaping on ADSL links, using e.g.: tc class add ... htb rate X ceil Y linklayer atm overhead 10 Will no-longer get ATM cell tax/overhead adjusted.Adding the logic on the kernel is doable, by adding some clean attributes so that tc can setup the feature, and report the attributes back.
Yes, doing the logic in the kernel might be a better solution. But the question is how do we keep iproute2 backward compatible with older kernels?
cpus are fast today and can perform the atm cell/overhead faster than a table lookup.
Do remember that the target CPU is small embedded router boxes. BUT I do agree that, the following code required, is probably faster than a table lookup: int pkt_len = skb->len + (encap_overhead * gso_segments); int wire_sz = DIV_ROUND_UP(pkt_len,48)*53; (I suspect, that the compiler might even optimize and remove any real divisions, I bet Eric can tell us.) Looking at how simple the above code is, I'm a little appalled by all the table lookup infrastructure and hacks we added, to support/implement this. -- Best regards, Jesper Dangaard Brouer MSc.CS, Sr. Network Kernel Developer at Red Hat Author of http://www.iptv-analyzer.org LinkedIn: http://www.linkedin.com/in/brouer