From: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: Jonathan Morton <chromatix99@gmail.com>,
"cake@lists.bufferbloat.net" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] [PATCH] q_cake: Update xstats format to use per-tin structure
Date: Wed, 7 Mar 2018 11:59:32 +0000 [thread overview]
Message-ID: <11DDD9A0-BBD7-4DAA-ACE1-EB88CDC26E7C@darbyshire-bryant.me.uk> (raw)
In-Reply-To: <87muzkyvj7.fsf@toke.dk>
[-- Attachment #1: Type: text/plain, Size: 6912 bytes --]
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
I no longer think the ‘total overhead’ & ‘hard head len’ keywords are needed because they’re no longer output as part of the invocation line. At one point there was a requirement to be able to cut’n’paste the output back in as a command line input.
All of this is fixed/consolidate into one place in the repo I pointed to make sure it wasn’t lost, with the JSON changes put on top. All the cake commits are ‘on the top’ and easy to see. The only issue I’m seeing since the JSON is impossibly high values for some of the stats.
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?
> On 7 Mar 2018, at 11:28, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>
> Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> writes:
>
>> There were some useful stats column re-alignment changes as well,
>> wonder if you got those?
>
> Probably not, as that code is not longer directly diff'able,
> unfortunately... The json-related changes were fairly intrusive...
>
> Eyeballing the diff, however, I *think* that the column-alignment is the
> same...
>
> Ah, great, but some of the calculations also changed :/
>
> Could someone go through the patch below and check which is correct
> (the + lines or the - lines), please? + is tc-adv, - is
> iproute2-cake-next...
>
> -Toke
>
>
> @@ -137,8 +139,8 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv,
> interval = 1000000;
> target = 50000;
> } else if (strcmp(*argv, "interplanetary") == 0) {
> - interval = 3600000000U;
> - target = 5000;
> + interval = 1000000000;
> + target = 50000000;
>
> } else if (strcmp(*argv, "besteffort") == 0) {
> diffserv = 1;
> @@ -241,22 +243,12 @@ 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 += 30;
> + overhead += 27;
the - is correct
> 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 += 22;
> + overhead += 19;
> overhead_set = true;
>
the - is correct
> } else if (strcmp(*argv, "via-ethernet") == 0) {
> @@ -269,26 +261,8 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv,
> * that automatically, and is thus ignored.
> *
> * It would be deleted entirely, but it appears in the
> - * stats output when the automatic compensation is
> - * active.
> - */
> -
> - } else if (strcmp(*argv, "total_overhead") == 0) {
> - /*
> - * This is the overhead cake accounts for; added here so
> - * that cake's "tc -s qdisc" output can be directly
> - * pasted into the tc command to instantate a new cake..
> + * stats output when the automatic compensation is active.
> */
> - NEXT_ARG();
> -
> - } else if (strcmp(*argv, "hard_header_len") == 0) {
> - /*
> - * This is the overhead the kernel automatically
> - * accounted for; added here so that cake's "tc -s
> - * qdisc" output can be directly pasted into the tc
> - * command to instantiate a new cake..
> - */
> - NEXT_ARG();
>
> } else if (strcmp(*argv, "ethernet") == 0) {
> /* ethernet pre-amble & interframe gap & FCS
> @@ -376,7 +350,7 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv,
> addattr_l(n, 1024, TCA_CAKE_OVERHEAD, &overhead, sizeof(overhead));
> if (overhead_override) {
> unsigned zero = 0;
> - addattr_l(n, 1024, TCA_CAKE_ETHERNET, &zero, sizeof(zero));
> + addattr_l(n, 1024, TCA_CAKE_RAW, &zero, sizeof(zero));
> }
> if (mpu > 0)
> addattr_l(n, 1024, TCA_CAKE_MPU, &mpu, sizeof(mpu));
> @@ -532,9 +508,8 @@ static int cake_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
> RTA_PAYLOAD(tb[TCA_CAKE_ACK_FILTER]) >= sizeof(__u32)) {
> ack_filter = rta_getattr_u32(tb[TCA_CAKE_ACK_FILTER]);
> }
> - if (tb[TCA_CAKE_ETHERNET] &&
> - RTA_PAYLOAD(tb[TCA_CAKE_ETHERNET]) >= sizeof(__u32)) {
> - ethernet = rta_getattr_u32(tb[TCA_CAKE_ETHERNET]);
> + if (tb[TCA_CAKE_RAW]) {
> + raw = 1;
> }
> if (tb[TCA_CAKE_RTT] &&
> RTA_PAYLOAD(tb[TCA_CAKE_RTT]) >= sizeof(__u32)) {
Cheers,
Kevin D-B
012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-03-07 11:59 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-26 15:08 [Cake] [PATCH] Split tin stats to its own structure to decrease size of tc_cake_xstats Toke Høiland-Jørgensen
2017-12-26 16:28 ` Dave Taht
2017-12-26 16:32 ` Toke Høiland-Jørgensen
2018-01-27 13:05 ` [Cake] [PATCH v2] " Toke Høiland-Jørgensen
2018-02-09 12:58 ` Jonathan Morton
2018-02-09 13:08 ` Toke Høiland-Jørgensen
2018-02-11 17:26 ` [Cake] [PATCH v3] " Toke Høiland-Jørgensen
2018-02-11 17:26 ` [Cake] [PATCH] q_cake: Update xstats format to use per-tin structure Toke Høiland-Jørgensen
2018-03-01 11:02 ` Jonathan Morton
2018-03-01 11:06 ` Sebastian Moeller
2018-03-01 13:59 ` Toke Høiland-Jørgensen
2018-03-05 23:08 ` Jonathan Morton
2018-03-06 11:17 ` Toke Høiland-Jørgensen
2018-03-06 11:46 ` Jonathan Morton
2018-03-06 12:10 ` Sebastian Moeller
2018-03-06 13:08 ` Jonathan Morton
2018-03-06 13:18 ` Sebastian Moeller
2018-03-01 13:59 ` Toke Høiland-Jørgensen
2018-03-04 11:14 ` Toke Høiland-Jørgensen
2018-03-06 15:56 ` Stephen Hemminger
2018-03-06 18:33 ` Toke Høiland-Jørgensen
2018-03-06 21:06 ` Toke Høiland-Jørgensen
2018-03-06 22:31 ` Jonathan Morton
2018-03-07 8:50 ` Toke Høiland-Jørgensen
2018-03-07 10:08 ` Kevin Darbyshire-Bryant
2018-03-07 10:31 ` Toke Høiland-Jørgensen
2018-03-07 10:36 ` Toke Høiland-Jørgensen
2018-03-07 11:08 ` Kevin Darbyshire-Bryant
2018-03-07 11:28 ` Toke Høiland-Jørgensen
2018-03-07 11:59 ` Kevin Darbyshire-Bryant [this message]
2018-03-07 12:59 ` Toke Høiland-Jørgensen
2018-03-07 14:21 ` Sebastian Moeller
2018-03-07 14:30 ` Toke Høiland-Jørgensen
2018-03-07 15:25 ` Dave Taht
2018-03-07 15:52 ` Toke Høiland-Jørgensen
2018-03-07 17:26 ` Dave Taht
2018-03-08 22:29 ` Pete Heist
2018-03-07 18:27 ` Kevin Darbyshire-Bryant
2018-03-07 18:35 ` Kevin Darbyshire-Bryant
2018-03-07 18:37 ` Jonathan Morton
2018-03-07 21:34 ` Toke Høiland-Jørgensen
2018-03-08 0:49 ` Jonathan Morton
2018-03-08 7:59 ` Kevin Darbyshire-Bryant
2018-03-08 9:21 ` Kevin Darbyshire-Bryant
2018-03-08 10:32 ` Toke Høiland-Jørgensen
[not found] ` <D8A90884-6DAE-42A6-A680-CD11599DDD97@darbyshire-bryant.me.uk>
2018-03-08 10:57 ` Toke Høiland-Jørgensen
2018-03-08 11:09 ` Kevin Darbyshire-Bryant
2018-03-08 11:14 ` Kevin Darbyshire-Bryant
2018-03-08 11:21 ` Toke Høiland-Jørgensen
2018-03-08 18:32 ` Georgios Amanakis
2018-03-10 15:56 ` Kevin Darbyshire-Bryant
2018-03-10 16:30 ` Luis E. Garcia
2018-03-07 11:07 ` Kevin Darbyshire-Bryant
2018-03-07 11:19 ` Sebastian Moeller
2018-03-07 11:31 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11DDD9A0-BBD7-4DAA-ACE1-EB88CDC26E7C@darbyshire-bryant.me.uk \
--to=kevin@darbyshire-bryant.me.uk \
--cc=cake@lists.bufferbloat.net \
--cc=chromatix99@gmail.com \
--cc=toke@toke.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox