On Thu, 27 Aug 2026 18:04:33 +0530
Rajesh Kumar <[email protected]> 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.

Later review with AI assistance also reached conclusion:

Overall, this adds seven new experimental functions plus an exported
array to solve one problem. Before going further, cut it down:

  - drop rte_eth_timesync_tx_slot_dynfield_unregister(), it does nothing
  - drop rte_eth_timesync_tx_slot_dynfield_register(), do it inside
    rte_eth_timesync_enable() and fail enable if there is no dynfield space
  - drop rte_eth_timesync_tx_timestamp_stamp_mbuf(), export the offset
    and flag the same way rte_mbuf_dyn_rx_timestamp does and let the app
    write the field
  - drop the rte_eth_timesync_tx_slot_infos[] array and the static inline,
    PMDs get the two globals from ethdev_driver.h

That leaves caps, alloc, read, release.

For the legacy API: rather than a doc comment pointing at the new one,
have ethdev synthesize SINGLE_REG / max_slots=1 from
timesync_read_tx_timestamp for PMDs without slot ops, convert testpmd
ieee1588fwd and examples/ptpclient in this series, and add a
deprecation notice with a removal release. Otherwise we end up carrying
both forever.

Reply via email to