netutils/ptpd: Add egress latency compensation for TX timestamps.

The frame leaves the MAC later than the moment its hardware transmit
timestamp is latched, because of the clock domain crossing and the PHY.
This fixed delay is the egressLatency port parameter of IEEE 1588.

Add the configured latency to every hardware transmit timestamp
obtained through MSG_ERRQUEUE, the counterpart of the ingress
compensation.

- Add CONFIG_NETUTILS_PTPD_EGRESS_LATENCY_NS (default 0, which applies
  no compensation).
- Add the -O option to override it at run time.
- Add egress_latency_ns to struct ptpd_config_s.

Software timestamps are not affected.

Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com>
This commit is contained in:
Daniel P. Carvalho 2026-09-19 15:45:39 -03:00 • committed by Xiang Xiao
parent dd35d76edd
commit c78e4d69ea
4 changed files with 38 additions and 1 deletions

View file

@ -54,6 +54,7 @@ struct ptpd_config_s
bool bmca;
sa_family_t af;
int32_t ingress_latency_ns; /* Hardware RX timestamp latency (ns) */
int32_t egress_latency_ns; /* Hardware TX timestamp latency (ns) */
};
/* PTPD status information structure */