]> git.baikalelectronics.ru Git - kernel.git/commitdiff
sched: act_pedit: Implement stats_update callback
authorPetr Machata <petrm@mellanox.com>
Thu, 26 Mar 2020 20:45:56 +0000 (22:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Mar 2020 02:20:37 +0000 (19:20 -0700)
Implement this callback in order to get the offloaded stats added to the
kernel stats.

Reported-by: Alexander Petrovskiy <alexpe@mellanox.com>
Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_pedit.c

index 3ad7185763046e69a6a6d8ea8694ae4371788b9d..d41d6200d9deced1a2c4469c817f433fca0edefc 100644 (file)
@@ -409,6 +409,16 @@ done:
        return p->tcf_action;
 }
 
+static void tcf_pedit_stats_update(struct tc_action *a, u64 bytes, u32 packets,
+                                  u64 lastuse, bool hw)
+{
+       struct tcf_pedit *d = to_pedit(a);
+       struct tcf_t *tm = &d->tcf_tm;
+
+       tcf_action_update_stats(a, bytes, packets, false, hw);
+       tm->lastuse = max_t(u64, tm->lastuse, lastuse);
+}
+
 static int tcf_pedit_dump(struct sk_buff *skb, struct tc_action *a,
                          int bind, int ref)
 {
@@ -485,6 +495,7 @@ static struct tc_action_ops act_pedit_ops = {
        .id             =       TCA_ID_PEDIT,
        .owner          =       THIS_MODULE,
        .act            =       tcf_pedit_act,
+       .stats_update   =       tcf_pedit_stats_update,
        .dump           =       tcf_pedit_dump,
        .cleanup        =       tcf_pedit_cleanup,
        .init           =       tcf_pedit_init,