ice: implement transmit hardware timestamp statistics

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 <jacob.e.keller@intel.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Hariprasad Kelam <hkelam@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20251016-jk-iwl-next-2025-10-15-v2-11-ff3a390d9fc6@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jesse Brandeburg 2025-10-16 23:08:40 -07:00 committed by Jakub Kicinski
parent 4368d5fe02
commit 71462475d0

View File

@ -4736,6 +4736,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)
@ -4822,6 +4839,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,