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 chime 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 Changes since v1: - Fixed scripts/kernel-doc warning in include/linux/ethtool.h Link: https://lore.kernel.org/netdev/20240402205223.137565-1-rrameshbabu@xxxxxxxxxx/ 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 | 27 +++++++++- include/uapi/linux/ethtool_netlink.h | 25 ++++++--- net/ethtool/tsinfo.c | 52 ++++++++++++++++++- tools/net/ynl/ethtool.py | 11 +++- 12 files changed, 214 insertions(+), 11 deletions(-) -- 2.42.0