Message ID | 20230207103549.1273592-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9ed138ff37670e7eb6291d822f5648de685cfb32 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] net: lan966x: Add support for TC flower filter statistics | expand |
Hello: This patch was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Tue, 7 Feb 2023 11:35:49 +0100 you wrote: > Add flower filter packet statistics. This will just read the TCAM > counter of the rule, which mention how many packages were hit by this > rule. > > Reviewed-by: Simon Horman <simon.horman@corigine.com> > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> > > [...] Here is the summary with links: - [net-next,v2] net: lan966x: Add support for TC flower filter statistics https://git.kernel.org/netdev/net-next/c/9ed138ff3767 You are awesome, thank you!
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c b/drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c index 88c655d6318fa..1e464bb804ae0 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c @@ -234,6 +234,24 @@ static int lan966x_tc_flower_del(struct lan966x_port *port, return err; } +static int lan966x_tc_flower_stats(struct lan966x_port *port, + struct flow_cls_offload *f, + struct vcap_admin *admin) +{ + struct vcap_counter count = {}; + int err; + + err = vcap_get_rule_count_by_cookie(port->lan966x->vcap_ctrl, + &count, f->cookie); + if (err) + return err; + + flow_stats_update(&f->stats, 0x0, count.value, 0, 0, + FLOW_ACTION_HW_STATS_IMMEDIATE); + + return err; +} + int lan966x_tc_flower(struct lan966x_port *port, struct flow_cls_offload *f, bool ingress) @@ -252,6 +270,8 @@ int lan966x_tc_flower(struct lan966x_port *port, return lan966x_tc_flower_add(port, f, admin, ingress); case FLOW_CLS_DESTROY: return lan966x_tc_flower_del(port, f, admin); + case FLOW_CLS_STATS: + return lan966x_tc_flower_stats(port, f, admin); default: return -EOPNOTSUPP; }