Commit fe0df81d authored by Zhengchao Shao's avatar Zhengchao Shao Committed by Jakub Kicinski

net/sched: cls_api: add helper for tc cls walker stats dump

The walk implementation of most tc cls modules is basically the same.
That is, the values of count and skip are checked first. If count is
greater than or equal to skip, the registered fn function is executed.
Otherwise, increase the value of count. So we can reconstruct them.
Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
Reviewed-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Reviewed-by: default avatarVictor Nogueira <victor@mojatatu.com>
Tested-by: default avatarVictor Nogueira <victor@mojatatu.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e93a766d
...@@ -81,6 +81,19 @@ int tcf_classify(struct sk_buff *skb, ...@@ -81,6 +81,19 @@ int tcf_classify(struct sk_buff *skb,
const struct tcf_proto *tp, struct tcf_result *res, const struct tcf_proto *tp, struct tcf_result *res,
bool compat_mode); bool compat_mode);
static inline bool tc_cls_stats_dump(struct tcf_proto *tp,
struct tcf_walker *arg,
void *filter)
{
if (arg->count >= arg->skip && arg->fn(tp, filter, arg) < 0) {
arg->stop = 1;
return false;
}
arg->count++;
return true;
}
#else #else
static inline bool tcf_block_shared(struct tcf_block *block) static inline bool tcf_block_shared(struct tcf_block *block)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment