[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAKKQwLR+Hk6H_SMi7QuPf4S_iR21ojboL1783fOH4ofBSjVZ7A@mail.gmail.com>
Date: Sat, 28 Sep 2019 20:30:15 -0300
From: Mario Rugiero <mrugiero@...il.com>
To: netdev@...r.kernel.org
Subject: [RFC] rx_missed_errors statistics support in several drivers
Working on an IDS product using libpcap, I stumbled upon a problem
with packet loss statistics: libpcap would report as dropped at the
interface level packets that were actually seen by the product.
Because of that, I noticed it used the rx_dropped stat from
/proc/net/dev, which is wrong, as it counts layer 2+ drops.
The straightforward solution is to use rx_missed_errors +
rx_fifo_errors from sysfs.
However, there are many drivers not implementing this interface, and
accounting loss directly on rx_dropped.
I believe (any pointers for this would be super useful) ethtool
provides the means to query if this stat is supported by the device
driver. On the other hand, it would make sense for the drivers to
implement this counter anyway. If this happens, then it can be
considered a safe bet for libpcap to just look at these counters
without the extra code talking to ethtool.
I intend to update these remaining drivers gradually.
Sadly, I don't have the hardware for each and every device.
So, is there any way to distribute the testing? Alternatively, could
the change be considered trivial and only be build-tested (as well as
the static analysis tools provided by the usual toolchain).
An example of what I expect the changes to look like is this:
https://github.com/torvalds/linux/commit/ecf7130b087a9bd1b9d03dbf452630243210d22e
Besides this, are these kind of changes likely to make it to LTS
kernels? Likewise, I'd like to make an attempt for my changes on
libpcap to be compatible with the oldest supported kernels.
Regards and thanks for your time,
Mario.
Powered by blists - more mailing lists