]> git.neil.brown.name Git - history.git/commitdiff
[PKT_SCHED]: RED: use dump_stats
authorThomas Graf <tgraf@suug.ch>
Thu, 21 Oct 2004 15:24:48 +0000 (08:24 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Thu, 21 Oct 2004 15:24:48 +0000 (08:24 -0700)
Makes RED use dump_stats qdisc op.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_red.c

index 730975bc985496fba88eaa37f9e4f9d54d05648e..4ea63bc58a2826399c61e322c3e21947eeff5dae 100644 (file)
@@ -396,16 +396,6 @@ static int red_init(struct Qdisc* sch, struct rtattr *opt)
        return red_change(sch, opt);
 }
 
-
-int red_copy_xstats(struct sk_buff *skb, struct tc_red_xstats *st)
-{
-        RTA_PUT(skb, TCA_XSTATS, sizeof(*st), st);
-        return 0;
-
-rtattr_failure:
-        return 1;
-}
-
 static int red_dump(struct Qdisc *sch, struct sk_buff *skb)
 {
        struct red_sched_data *q = qdisc_priv(sch);
@@ -425,9 +415,6 @@ static int red_dump(struct Qdisc *sch, struct sk_buff *skb)
        RTA_PUT(skb, TCA_RED_PARMS, sizeof(opt), &opt);
        rta->rta_len = skb->tail - b;
 
-       if (red_copy_xstats(skb, &q->st))
-               goto rtattr_failure;
-
        return skb->len;
 
 rtattr_failure:
@@ -435,6 +422,13 @@ rtattr_failure:
        return -1;
 }
 
+static int red_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
+{
+       struct red_sched_data *q = qdisc_priv(sch);
+
+       return gnet_stats_copy_app(d, &q->st, sizeof(q->st));
+}
+
 static struct Qdisc_ops red_qdisc_ops = {
        .next           =       NULL,
        .cl_ops         =       NULL,
@@ -448,6 +442,7 @@ static struct Qdisc_ops red_qdisc_ops = {
        .reset          =       red_reset,
        .change         =       red_change,
        .dump           =       red_dump,
+       .dump_stats     =       red_dump_stats,
        .owner          =       THIS_MODULE,
 };