On Mon, 29 Jun 2026 05:37:33 -0400 Dawid Wesierski <[email protected]> wrote:
> Add a timestamp parameter to rte_pcapng_copy() so that callers with a > hardware PTP or pre-captured timestamp can inject an exact epoch-ns value > directly into the packet record. > > Timestamp handling: > - ts != 0: caller-supplied nanoseconds since the Unix epoch, stored as-is. > - ts == 0: TSC captured at copy time with bit 63 set as a sentinel. > rte_pcapng_write_packets() detects the sentinel and converts the TSC to > epoch ns using the file's calibrated clock. The TSC will not reach > bit 63 for centuries, and epoch-ns values stay below bit 63 until 2554, > so the bit is safe to use as a disambiguation flag. > > Adding the parameter changes the ABI, so rte_pcapng_copy() is versioned. > > rte_pcapng_tsc_to_ns() is added as a new experimental helper. It exposes the > same calibrated, drift-compensated, divide-free TSC-to-epoch-ns conversion > used internally by rte_pcapng_write_packets(), allows callers to convert > a TSC captured at packet arrival time before passing it to rte_pcapng_copy(). > > Signed-off-by: Marek Kasiewicz <[email protected]> > Signed-off-by: Dawid Wesierski <[email protected]> > --- Looks good, I would like to make some follow on patches to replace the tsc_to_ns routines with something in EAL since it is generally useful to get time in nanoseconds.

