mbox series

[v2,net-next,0/6] net: dsa: mv88e6xxx: Add "eth-mac" and "rmon" counter group support

Message ID 20231205160418.3770042-1-tobias@waldekranz.com (mailing list archive)
Headers show
Series net: dsa: mv88e6xxx: Add "eth-mac" and "rmon" counter group support | expand

Message

Tobias Waldekranz Dec. 5, 2023, 4:04 p.m. UTC
The majority of the changes (2/6) are about refactoring the existing
ethtool statistics support to make it possible to read individual
counters, rather than the whole set.

4/6 tries to collect all information about a stat in a single place
using a mapper macro, which is then used to generate the original list
of stats, along with a matching enum. checkpatch is less than amused
with this construct, but prior art exists (__BPF_FUNC_MAPPER in
include/uapi/linux/bpf.h, for example).

With that in place, adding the actual counter groups is pretty
straight forward (5-6/6).

v1 -> v2:
- Added 1/6
- Added 3/6
- Changed prototype of stats operation to reflect the fact that the
  number of read stats are returned, no errors
- Moved comma into MV88E6XXX_HW_STAT_MAPPER definition
- Avoid the construction of mapping table iteration which relied on
  struct layouts outside of mv88e6xxx's control

Tobias Waldekranz (6):
  net: dsa: mv88e6xxx: Push locking into stats snapshotting
  net: dsa: mv88e6xxx: Create API to read a single stat counter
  net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
  net: dsa: mv88e6xxx: Give each hw stat an ID
  net: dsa: mv88e6xxx: Add "eth-mac" counter group support
  net: dsa: mv88e6xxx: Add "rmon" counter group support

 drivers/net/dsa/mv88e6xxx/chip.c   | 390 +++++++++++++++++++----------
 drivers/net/dsa/mv88e6xxx/chip.h   |  31 +--
 drivers/net/dsa/mv88e6xxx/serdes.c |  10 +-
 drivers/net/dsa/mv88e6xxx/serdes.h |   8 +-
 4 files changed, 278 insertions(+), 161 deletions(-)