Commit a471e7f8 authored by John Fraker's avatar John Fraker Committed by Jakub Kicinski
Browse files

gve: Advertise support for rx hardware timestamping



Expand the get_ts_info ethtool handler with the new gve_get_ts_info
which advertises support for rx hardware timestamping.

With this patch, the driver now fully supports rx hardware timestamping.

Signed-off-by: default avatarJohn Fraker <jfraker@google.com>
Signed-off-by: default avatarZiwei Xiao <ziweixiao@google.com>
Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarHarshitha Ramamurthy <hramamurthy@google.com>
Link: https://patch.msgid.link/20250614000754.164827-9-hramamurthy@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b2c7aeb4
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -923,6 +923,27 @@ static int gve_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rx
	return 0;
}

static int gve_get_ts_info(struct net_device *netdev,
			   struct kernel_ethtool_ts_info *info)
{
	struct gve_priv *priv = netdev_priv(netdev);

	ethtool_op_get_ts_info(netdev, info);

	if (priv->nic_timestamp_supported) {
		info->so_timestamping |= SOF_TIMESTAMPING_RX_HARDWARE |
					 SOF_TIMESTAMPING_RAW_HARDWARE;

		info->rx_filters |= BIT(HWTSTAMP_FILTER_NONE) |
				    BIT(HWTSTAMP_FILTER_ALL);

		if (priv->ptp)
			info->phc_index = ptp_clock_index(priv->ptp->clock);
	}

	return 0;
}

const struct ethtool_ops gve_ethtool_ops = {
	.supported_coalesce_params = ETHTOOL_COALESCE_USECS,
	.supported_ring_params = ETHTOOL_RING_USE_TCP_DATA_SPLIT,
@@ -951,5 +972,5 @@ const struct ethtool_ops gve_ethtool_ops = {
	.get_priv_flags = gve_get_priv_flags,
	.set_priv_flags = gve_set_priv_flags,
	.get_link_ksettings = gve_get_link_ksettings,
	.get_ts_info = ethtool_op_get_ts_info,
	.get_ts_info = gve_get_ts_info,
};