[Intel-wired-lan] [PATCH iwl-next v1 4/5] ice: implement transmit hardware timestamp statistics
Hariprasad Kelam
hkelam at marvell.com
Thu Jun 6 09:42:05 UTC 2024
> 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 at intel.com>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg at intel.com>
> ---
>
> $ 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 at marvell.com>
More information about the Intel-wired-lan
mailing list