Re: tc linklayer ADSL calc broken after commit 56b765b79 (htb: improved accuracy at high rates)
From: Jussi Kivilinna <hidden>
Date: 2013-05-30 16:36:08
From: Jussi Kivilinna <hidden>
Date: 2013-05-30 16:36:08
On 30.05.2013 18:55, Jesper Dangaard Brouer wrote:
On Thu, 30 May 2013 07:39:10 -0700 Eric Dumazet [off-list ref] wrote:quoted
On Thu, 2013-05-30 at 09:51 +0200, Jesper Dangaard Brouer wrote:quoted
On Wed, 29 May 2013 08:52:04 -0700 Eric Dumazet [off-list ref] wrote:quoted
quoted
I am not sure it will solve the ATM logic (with the 5 bytes overhead per 48 bytes cell)Are you talking about, that for GSO frames we are not adding a encap overhead to each "sub" skb.This part is now done properly in qdisc_pkt_len_init() since linux-3.9Thanks for the pointer, but qdisc_pkt_len_init() only adds the EthMAC+IP+TCP header size for each GSO segment (stored in qdisc_skb_cb(skb)->pkt_len). It is still missing the AAL5 encapsulation overhead per GSO segment. Besides I can see that __qdisc_calculate_pkt_len() "forgets" this information and overwrites qdisc_skb_cb(skb)->pkt_len (iif a stab is defined on the qdisc).
Maybe change qdisc_pkt_len_init() to take the additional overhead value as input and change __qdisc_calculate_pkt_len() use qdisc_pkt_len_init(skb, stab->szopts.overhead); instead of pkt_len = skb->len + stab->szopts.overhead; -Jussi