On 12/05/2023 20.19, Stanislav Fomichev wrote:
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
index 2515f5f7a2b6..e9589cadf811 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
@@ -537,3 +537,25 @@ void ice_finalize_xdp_rx(struct ice_tx_ring *xdp_ring, unsigned int xdp_res,
spin_unlock(&xdp_ring->tx_lock);
}
}
+
+/**
+ * ice_xdp_rx_hw_ts - HW timestamp XDP hint handler
+ * @ctx: XDP buff pointer
+ * @ts_ns: destination address
+ *
+ * Copy HW timestamp (if available) to the destination address.
+ */
+static int ice_xdp_rx_hw_ts(const struct xdp_md *ctx, u64 *ts_ns)
+{
+ const struct ice_xdp_buff *xdp_ext = (void *)ctx;
+
+ if (!ice_ptp_copy_rx_hwts_from_desc(xdp_ext->rx_ring,
+ xdp_ext->eop_desc, ts_ns))
+ return -EOPNOTSUPP;
Per Jesper's recent update, should this be ENODATA?
Yes, please :-)
https://git.kernel.org/torvalds/c/915efd8a446b ("xdp: bpf_xdp_metadata
use EOPNOTSUPP for no driver support")
--Jesper