Commit f8c1c66b authored by Horatiu Vultur's avatar Horatiu Vultur Committed by Jakub Kicinski

net: lan966x: Fix the rx drop counter

Currently the rx drop is calculated as the sum of multiple HW drop
counters. The issue is that not all the HW drop counters were added for
the rx drop counter. So if for example you have a police that drops
frames, they were not see in the rx drop counter.
Fix this by updating how the rx drop counter is calculated. It is
required to add also RX_RED_PRIO_* HW counters.

Fixes: 12c2d0a5 ("net: lan966x: add ethtool configuration and statistics")
Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
Link: https://lore.kernel.org/r/20221019083056.2744282-1-horatiu.vultur@microchip.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 94423589
......@@ -656,7 +656,15 @@ void lan966x_stats_get(struct net_device *dev,
stats->rx_dropped = dev->stats.rx_dropped +
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
lan966x->stats[idx + SYS_COUNT_DR_LOCAL] +
lan966x->stats[idx + SYS_COUNT_DR_TAIL];
lan966x->stats[idx + SYS_COUNT_DR_TAIL] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_0] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_1] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_2] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_3] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_4] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_5] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_6] +
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_7];
for (i = 0; i < LAN966X_NUM_TC; i++) {
stats->rx_dropped +=
......
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