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

Toke Høiland-Jørgensen toke at toke.dk
Wed Mar 7 06:28:28 EST 2018


Kevin Darbyshire-Bryant <kevin at 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;
                        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;
 
                } 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)) {


More information about the Cake mailing list