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: 12c2d0a5b8
("net: lan966x: add ethtool configuration and statistics")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Link: https://lore.kernel.org/r/20221019083056.2744282-1-horatiu.vultur@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
9442358968
commit
f8c1c66b99
|
@ -656,7 +656,15 @@ void lan966x_stats_get(struct net_device *dev,
|
||||||
stats->rx_dropped = dev->stats.rx_dropped +
|
stats->rx_dropped = dev->stats.rx_dropped +
|
||||||
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
|
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
|
||||||
lan966x->stats[idx + SYS_COUNT_DR_LOCAL] +
|
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++) {
|
for (i = 0; i < LAN966X_NUM_TC; i++) {
|
||||||
stats->rx_dropped +=
|
stats->rx_dropped +=
|
||||||
|
|
Loading…
Reference in New Issue