On Wed, Nov 25, 2020 at 10:46:04AM -0800, Richard Cochran wrote: > On Wed, Nov 25, 2020 at 12:44:52PM +0200, Vladimir Oltean wrote: > > > + * We know that the kernel convention for one-step sync > > + * timestamping is that the driver/hardware will > > + * already update the correctionField with the delta > > + * between the originTimestamp and the actual hardware > > + * TX timestamp. > > Not really. > > The HW will insert the egress timestamp for the sync message into the > originTimestamp field. It leaves the correctionField alone.
Humm. Is that actually stipulated anywhere? drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c does the following: - reads the current PTP time - puts it into the originTimestamp field - also puts it into the "buffer prefix" (dpaa2_get_ts), a region of private hardware data located in the frame, before the MAC DA - the MAC collects the precise TX timestamp, subtracts the timestamp from the buffer prefix from this value, and updates the correctionField with it. The reason why dpaa2 hardware works this way is because the same hardware interface can be used to support 1-step peer delay as well. Although, indeed, I can see that some hardware implementations might choose to skip this complication and just rewrite the originTimestamp completely, leaving the correctionField alone. At the end of the day, both should be valid, since their sum is what matters. But where does that leave us? _______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users