[RFC PATCH v5 0/5] ethdev: add Tx timestamp slot APIs

Kumar, Rajesh rajesh3.kumar at intel.com
Mon Sep 21 17:00:51 CEST 2026


Hi all,

This is a gentle reminder to review RFC patch series v5 ("ethdev: add Tx 
timestamp slot APIs").

Regards,
Rajesh

On 08-09-2026 01:02 pm, Rajesh Kumar wrote:
> The ethdev timesync API currently exposes Tx timestamps through a shared
> hardware register. This requires applications to serialize timestamped
> packets and does not allow correlation when multiple packets are in
> flight.
>
> This RFC proposes an ethdev interface for hardware with independent Tx
> timestamp slots. The interface reports the supported timestamping
> mechanism, provides a port-global slot lifecycle, and lets applications
> poll each slot asynchronously after transmission.
>
> The proposal includes the following components:
>
> * Capability reporting for shared-register and per-packet timestamping.
> * Slot allocation, asynchronous timestamp retrieval, and slot release.
> * A dual-domain timestamp structure for adjusted PHC and raw hardware
>    time.
> * Mbuf dynamic field and dynflag support for passing slot handles to Tx,
>    with a helper that stamps a slot handle onto an mbuf.
> * Registration and process-local reset of the cached dynfield state.
> * An ice PMD implementation using the 64 per-port PHY timestamp slots.
> * A testpmd command to report the slot capabilities of a port.
> * Programming guide documentation, split into a patch describing the
>    pre-existing clock/Rx timesync API and a patch describing the new Tx
>    timestamp slot feature.
>
> The legacy rte_eth_timesync_read_tx_timestamp() API remains available on
> devices using a shared timestamp register.
>
> Changes since v4:
>
> * Fixed review comments and AI observation.
> * Consolidated the Tx timestamp slot API naming onto a single
>    rte_eth_timesync_tx_slot_{caps,alloc,read,release,stamp} prefix,
>    replacing the previous mix of tx_timestamp_slot_*, tx_ts_*, and
>    tx_slot_* spellings across the public API, PMD ops, and the ice
>    implementation.
> * Dropped the per-port cached slot-info array in favor of a single
>    process-local dynfield offset/dynflag pair.
> * Split the programming guide documentation out of the ethdev patch
>    into two dedicated patches: one documenting the pre-existing
>    clock/Rx timesync API, and one documenting the new Tx timestamp slot
>    feature, so review of the new functionality is not mixed with review
>    of already-existing behavior.
> * Fixed inconsistent TX/Tx casing in comments, log messages, and
>    documentation to consistently use "Tx".
>
> Comments and suggestions on the interface and the ice implementation are
> welcome.
>
> Rajesh Kumar (5):
>    ethdev: add Tx timestamp slot management APIs
>    doc: describe ethdev timesync clock and Rx timestamp API
>    doc: describe ethdev Tx timestamp slot API
>    net/ice: support per-packet Tx timestamp slots
>    app/testpmd: add Tx timestamp capabilities command
>
>   app/test-pmd/cmdline.c                    |  79 ++++++++
>   doc/guides/nics/features.rst              |  15 +-
>   doc/guides/prog_guide/ethdev/index.rst    |   1 +
>   doc/guides/prog_guide/ethdev/timesync.rst | 219 +++++++++++++++++++++
>   doc/guides/rel_notes/release_26_11.rst    |   7 +
>   drivers/net/intel/ice/ice_ethdev.c        | 211 ++++++++++++++++++++-
>   drivers/net/intel/ice/ice_ethdev.h        |   2 +
>   drivers/net/intel/ice/ice_rxtx.c          |   9 +-
>   lib/ethdev/ethdev_driver.h                |  28 +++
>   lib/ethdev/rte_ethdev.c                   | 151 ++++++++++++++-
>   lib/ethdev/rte_ethdev.h                   | 220 ++++++++++++++++++++++
>   11 files changed, 933 insertions(+), 9 deletions(-)
>   create mode 100644 doc/guides/prog_guide/ethdev/timesync.rst
>


More information about the dev mailing list