summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2004-10-21 08:24:48 -0700
committerDavid S. Miller <davem@nuts.davemloft.net>2004-10-21 08:24:48 -0700
commitae193ab741e27cfeb24fb52e566dd129e0795df5 (patch)
tree010d3b5c50de4f20872609ab375f4e62e030daed
parentba3bbff5661a204f58357daef19e409a44ed9b22 (diff)
[PKT_SCHED]: RED: use dump_stats
Makes RED use dump_stats qdisc op. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sched/sch_red.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c
index 730975bc9854..4ea63bc58a28 100644
--- a/net/sched/sch_red.c
+++ b/net/sched/sch_red.c
@@ -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,
};