Adds a new qdisc operation dump_stats which qdiscs can use
to dump statistics. The op is invoked between gnet_stats_start_copy
and gnet_stats_finish_copy and therefore stats_lock is already
held. This is required to ensure proper locking throughout the
whole statistic dumping procedure.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
int (*change)(struct Qdisc *, struct rtattr *arg);
int (*dump)(struct Qdisc *, struct sk_buff *);
+ int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
struct module *owner;
};
TCA_XSTATS, q->stats_lock, &d) < 0)
goto rtattr_failure;
+ if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0)
+ goto rtattr_failure;
+
if (gnet_stats_copy_basic(&d, &q->bstats) < 0 ||
#ifdef CONFIG_NET_ESTIMATOR
gnet_stats_copy_rate_est(&d, &q->rate_est) < 0 ||