On Sun, Oct 09, 2022 at 06:07:14PM -0400, Sasha Levin wrote: > From: Vladimir Oltean <vladimir.oltean@xxxxxxx> > > [ Upstream commit cc160fc29a264726b2bfbc2f551081430db3df03 ] > > if_link.h says: > > * @rx_dropped: Number of packets received but not processed, > * e.g. due to lack of resources or unsupported protocol. > * For hardware interfaces this counter may include packets discarded > * due to L2 address filtering but should not include packets dropped > * by the device due to buffer exhaustion which are counted separately in > * @rx_missed_errors (since procfs folds those two counters together). > > Currently we report "stats->rx_dropped = dev->stats.rx_dropped", the > latter being incremented by various entities in the stack. This is not > wrong, but we'd like to move ocelot_get_stats64() in the common ocelot > switch lib which is independent of struct net_device. > > To do that, report the hardware RX drop counters instead. These drops > are due to policer action, or due to no destinations. When we have no > memory in the queue system, report this through rx_missed_errors, as > instructed. > > Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- Not needed for stable kernels, please drop, thanks.