The public regulated data types already include a basic time synchronization protocol that is similar in its construction to IEEE 1588, except that the communication is strictly one-directional, from the time sync master to slaves. This comes with certain trade-offs: the algorithm scales better but the worst-case jitter bound is substantially higher. If higher precision is desired, IEEE 1588 should be implemented as-is.
Where can I find the paper of Olson latency recovery algorithm?
Here: olson_sensor_synchronization.pdf (202.7 KB)
A basic implementation is available in the legacy PyUAVCAN v0 library: