diff options
| author | Thomas Graf <tgraf@suug.ch> | 2004-10-21 08:24:48 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.davemloft.net> | 2004-10-21 08:24:48 -0700 |
| commit | ae193ab741e27cfeb24fb52e566dd129e0795df5 (patch) | |
| tree | 010d3b5c50de4f20872609ab375f4e62e030daed | |
| parent | ba3bbff5661a204f58357daef19e409a44ed9b22 (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.c | 21 |
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, }; |
