> 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@xxxxxxxxx> > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx> > --- > > $ sudo ethtool -I -T eth0 > Time stamping parameters for eth0: > Capabilities: > hardware-transmit > software-transmit > hardware-receive > software-receive > software-system-clock > hardware-raw-clock > PTP Hardware Clock: 0 > Hardware Transmit Timestamp Modes: > off > on > Hardware Receive Filter Modes: > none > all > Statistics: > tx_pkts: 17 > tx_lost: 0 > tx_err: 0 > --- > 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 6f0a857f55c9..97a7a0632a1d 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c > +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c > @@ -4357,6 +4357,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; } > + > static const struct ethtool_ops ice_ethtool_ops = { > .cap_rss_ctx_supported = true, > .supported_coalesce_params = ETHTOOL_COALESCE_USECS | @@ - > 4407,6 +4424,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, > }; > > static const struct ethtool_ops ice_ethtool_safe_mode_ops = { > -- > 2.43.0 > Reviewed-by: Hariprasad Kelam <hkelam@xxxxxxxxxxx>