[Cake] [PATCH] q_cake: Update xstats format to use per-tin structure

Sebastian Moeller moeller0 at gmx.de
Wed Mar 7 09:21:11 EST 2018


Hi Toke,



> On Mar 7, 2018, at 13:59, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
> 
> Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> writes:
> 
>> I don’t the column alignment can be correct because the print lines don’t include a leading space, so columns can run into each other.
>> 
>> fprintf(f, "%12u", tst->unresponse_flows);
>> v
>> fprintf(f, " %12u", tst->unresponse_flows);
>> 
>> The header lines are probably wrong.  Should be as per
>> https://github.com/ldir-EDB0/iproute2-cake-next/commit/172c116722e2902bdc69824271303dac7249f379
> 
> Ah, right; ported that change over to the tc-adv repo as well. Which
> brings us down to the following diff:
> 
> diff --git a/tc/q_cake.c b/tc/q_cake.c
> index e21552e8..95301b41 100644
> --- a/tc/q_cake.c
> +++ b/tc/q_cake.c
> @@ -243,12 +243,22 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv,
>                /* Typical VDSL2 framing schemes, both over PTM */
>                /* PTM has 64b/65b coding which absorbs some bandwidth */
>                } else if (strcmp(*argv, "pppoe-ptm") == 0) {
> +                       /* 2B PPP + 6B PPPoE + 6B dest MAC + 6B src MAC
> +                        * + 2B ethertype + 4B Frame Check Sequence
> +                        * + 1B Start of Frame (S) + 1B End of Frame (Ck)
> +                        * + 2B TC-CRC (PTM-FCS) = 30B
> +                        */
>                        atm = 2;
> -                       overhead += 27;
> +                       overhead += 30;
>                        overhead_set = true;
>                } else if (strcmp(*argv, "bridged-ptm") == 0) {
> +                       /* 6B dest MAC + 6B src MAC + 2B ethertype
> +                        * + 4B Frame Check Sequence
> +                        * + 1B Start of Frame (S) + 1B End of Frame (Ck)
> +                        * + 2B TC-CRC (PTM-FCS) = 22B
> +                        */
>                        atm = 2;
> -                       overhead += 19;
> +                       overhead += 22;
>                        overhead_set = true;
> 
> 
> 
> 
> I assume 30 and 22 are the correct values? Could someone confirm this? :)

	As I made that change all I can confirm that at the current time I am convinced that 30 and 22 are the correct values. I did look into the ITU standard documents for VDSL and to the best of my knowledge these agree.

Best Regards
	Sebastian

> 
>> qdisc cake 8004: root refcnt 4486780 bandwidth 19900Kbit diffserv3 dual-srchost nat rtt 100.0ms ptm overhead 4502152
>> Sent 42615751 bytes 4491092 pkt (dropped 4491108, overlimits 4491124 requeues 4491152)
>> backlog 0b 4491256p requeues 4491272
>> memory used: 78592b of 4Mb
>> capacity estimate: 19900Kbit
>> min/max transport layer size:    4537916 / 4537972
>> min/max overhead-adjusted size:  4538000 / 4537972
>> average transport hdr offset:    4538072
>> 
>> I’m pondering if it’s an endian issue?
> 
> Are you using the latest kernel code? Those values were added in an
> incompatible manner, so if you don't have userspace and kernel code in
> sync they'll be garbage, basically...
> 
> -Toke
> _______________________________________________
> Cake mailing list
> Cake at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake



More information about the Cake mailing list