From: Jesse Brandeburg <[email protected]>

The kernel now has common statistics for transmit timestamps, so
implement them in the ice driver.

use via
ethtool -I -T eth0

Reviewed-by: Jacob Keller <[email protected]>
Reviewed-by: Jakub Kicinski <[email protected]>
Reviewed-by: Hariprasad Kelam <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Jesse Brandeburg <[email protected]>
Signed-off-by: Jacob Keller <[email protected]>
---
 drivers/net/ethernet/intel/ice/ice_ethtool.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c 
b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index 3d99c4a1e287..f8bb2d55b28c 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -4730,6 +4730,23 @@ static void ice_get_rmon_stats(struct net_device *netdev,
        *ranges = ice_rmon_ranges;
 }
 
+/* ice_get_ts_stats - provide timestamping stats
+ * @netdev: the netdevice pointer from ethtool
+ * @ts_stats: the ethtool data structure to fill in
+ */
+static void ice_get_ts_stats(struct net_device *netdev,
+                            struct ethtool_ts_stats *ts_stats)
+{
+       struct ice_pf *pf = ice_netdev_to_pf(netdev);
+       struct ice_ptp *ptp = &pf->ptp;
+
+       ts_stats->pkts = ptp->tx_hwtstamp_good;
+       ts_stats->err = ptp->tx_hwtstamp_skipped +
+                       ptp->tx_hwtstamp_flushed +
+                       ptp->tx_hwtstamp_discarded;
+       ts_stats->lost = ptp->tx_hwtstamp_timeouts;
+}
+
 #define ICE_ETHTOOL_PFR (ETH_RESET_IRQ | ETH_RESET_DMA | \
        ETH_RESET_FILTER | ETH_RESET_OFFLOAD)
 
@@ -4816,6 +4833,7 @@ static const struct ethtool_ops ice_ethtool_ops = {
        .get_eth_mac_stats      = ice_get_eth_mac_stats,
        .get_pause_stats        = ice_get_pause_stats,
        .get_rmon_stats         = ice_get_rmon_stats,
+       .get_ts_stats           = ice_get_ts_stats,
        .get_drvinfo            = ice_get_drvinfo,
        .get_regs_len           = ice_get_regs_len,
        .get_regs               = ice_get_regs,

-- 
2.51.0.rc1.197.g6d975e95c9d7

Reply via email to