lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <20190504114628.14755-10-jakub.kicinski@netronome.com> Date: Sat, 4 May 2019 04:46:24 -0700 From: Jakub Kicinski <jakub.kicinski@...ronome.com> To: davem@...emloft.net Cc: netdev@...r.kernel.org, oss-drivers@...ronome.com, jiri@...nulli.us, xiyou.wangcong@...il.com, idosch@...lanox.com, f.fainelli@...il.com, andrew@...n.ch, vivien.didelot@...il.com, gerlitz.or@...il.com, simon.horman@...ronome.com, Pieter Jansen van Vuuren <pieter.jansenvanvuuren@...ronome.com>, Jakub Kicinski <jakub.kicinski@...ronome.com> Subject: [PATCH net-next 09/13] net/sched: allow stats updates from offloaded police actions From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@...ronome.com> Implement the stats_update callback for the police action that will be used by drivers for hardware offload. Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@...ronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@...ronome.com> --- net/sched/act_police.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/net/sched/act_police.c b/net/sched/act_police.c index e33bcab75d1f..61731944742a 100644 --- a/net/sched/act_police.c +++ b/net/sched/act_police.c @@ -282,6 +282,20 @@ static void tcf_police_cleanup(struct tc_action *a) kfree_rcu(p, rcu); } +static void tcf_police_stats_update(struct tc_action *a, + u64 bytes, u32 packets, + u64 lastuse, bool hw) +{ + struct tcf_police *police = to_police(a); + struct tcf_t *tm = &police->tcf_tm; + + _bstats_cpu_update(this_cpu_ptr(a->cpu_bstats), bytes, packets); + if (hw) + _bstats_cpu_update(this_cpu_ptr(a->cpu_bstats_hw), + bytes, packets); + tm->lastuse = max_t(u64, tm->lastuse, lastuse); +} + static int tcf_police_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref) { @@ -345,6 +359,7 @@ static struct tc_action_ops act_police_ops = { .kind = "police", .id = TCA_ID_POLICE, .owner = THIS_MODULE, + .stats_update = tcf_police_stats_update, .act = tcf_police_act, .dump = tcf_police_dump, .init = tcf_police_init, -- 2.21.0
Powered by blists - more mailing lists