[PATCH net-next v1 0/6] ethtool HW timestamping statistics

From: Rahul Rameshbabu
Date: Tue Apr 02 2024 - 16:53:10 EST


The goal of this patch series is to introduce a common set of ethtool statistics
for hardware timestamping that a driver implementer can hook into. The
statistics counters added are based on what I believe are common
patterns/behaviors found across various hardware timestamping implementations
seen in the kernel tree today. The mlx5 family of devices is used as the PoC for
this patch series. Other vendors are more than welcome to chim in on this
series.

Changes since RFC v1:
- Dropped the late statistics counter since that was not general enough
- Dropped the layer selection attribute for timestamping statistics
- Take Jakub's suggestion and converted to ETHTOOL_FLAG_STATS
- Provided a working interface to query these new statistics from
tools/net/ynl/ethtool.py

Changes since RFC v2:
- Applied suggestion by Jakub for implementing an enumeration for
ethtool header flags

Link: https://lore.kernel.org/netdev/20240309084440.299358-1-rrameshbabu@xxxxxxxxxx/
Link: https://lore.kernel.org/netdev/20240223192658.45893-1-rrameshbabu@xxxxxxxxxx/
Signed-off-by: Rahul Rameshbabu <rrameshbabu@xxxxxxxxxx>
---
Rahul Rameshbabu (6):
ethtool: add interface to read Tx hardware timestamping statistics
net/mlx5e: Introduce lost_cqe statistic counter for PTP Tx port
timestamping CQ
net/mlx5e: Introduce timestamps statistic counter for Tx DMA layer
net/mlx5e: Implement ethtool hardware timestamping statistics
netlink: specs: ethtool: add header-flags enumeration
tools: ynl: ethtool.py: Output timestamping statistics from tsinfo-get
operation

Documentation/netlink/specs/ethtool.yaml | 22 ++++++++
.../ethernet/mellanox/mlx5/counters.rst | 11 ++++
Documentation/networking/ethtool-netlink.rst | 9 ++++
.../net/ethernet/mellanox/mlx5/core/en/ptp.c | 1 +
.../ethernet/mellanox/mlx5/core/en_ethtool.c | 9 ++++
.../ethernet/mellanox/mlx5/core/en_stats.c | 48 +++++++++++++++++
.../ethernet/mellanox/mlx5/core/en_stats.h | 4 ++
.../net/ethernet/mellanox/mlx5/core/en_tx.c | 6 ++-
include/linux/ethtool.h | 28 +++++++++-
include/uapi/linux/ethtool_netlink.h | 25 ++++++---
net/ethtool/tsinfo.c | 52 ++++++++++++++++++-
tools/net/ynl/ethtool.py | 11 +++-
12 files changed, 215 insertions(+), 11 deletions(-)

--
2.42.0