]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: action result is u32
authorStephen Hemminger <shemming@brocade.com>
Tue, 31 May 2016 19:22:45 +0000 (12:22 -0700)
committerStephen Hemminger <shemming@brocade.com>
Tue, 31 May 2016 19:22:45 +0000 (12:22 -0700)
In kernel action result is u32 not int in netlink messages.

tc/m_police.c

index 8752d4f6cb00ffbcf167ee93791f13934ca95352..8f794ed4dd905450bdf6b507a9bc19af9c348a0a 100644 (file)
@@ -362,19 +362,25 @@ int print_police(struct action_util *a, FILE *f, struct rtattr *arg)
        fprintf(f, "mtu %s ", sprint_size(p->mtu, b1));
        if (show_raw)
                fprintf(f, "[%08x] ", p->burst);
+
        if (p->peakrate.rate)
                fprintf(f, "peakrate %s ", sprint_rate(p->peakrate.rate, b1));
+
        if (tb[TCA_POLICE_AVRATE])
                fprintf(f, "avrate %s ",
                        sprint_rate(rta_getattr_u32(tb[TCA_POLICE_AVRATE]),
                                    b1));
        fprintf(f, "action %s",
                police_action_n2a(p->action, b1, sizeof(b1)));
+
        if (tb[TCA_POLICE_RESULT]) {
+               __u32 action = rta_getattr_u32(tb[TCA_POLICE_RESULT]);
+
                fprintf(f, "/%s",
-                       police_action_n2a(*(int *)RTA_DATA(tb[TCA_POLICE_RESULT]), b1, sizeof(b1)));
+                       police_action_n2a(action, b1, sizeof(b1)));
        } else
                fprintf(f, " ");
+
        fprintf(f, "overhead %ub ", p->rate.overhead);
        linklayer = (p->rate.linklayer & TC_LINKLAYER_MASK);
        if (linklayer > TC_LINKLAYER_ETHERNET || show_details)