The PTP protocol cannot work correctly over an LACP bond when the bonded interfaces connect to different Boundary Clocks. This is because each Boundary Clock has a unique clock identifier.
A PTP slave can receive sync/followup messages on one link, but in version 3.7.1
and earlier of sfptpd
it is non-deterministic which link it sends the
delay-request messages on. When delay-request is sent on another link in the bond,
delay-response messages returned are from a different clock to the clock identified in
the sync/followup messages and so are ignored by the PTP slave.
See the following figure:
LACP support is enhanced from version 3.8.0 onwards by improved behavior when a Sync message is received:
- The local reference clock is switched to the clock that timestamped the received Sync message. This improves the quality of synchronization.
- DelayReq messages are sent over the physical interface that last
received a Sync message from the current PTP master. This improves measurement when
using a dual boundary clock topology.Note: This is implemented with a pool of sockets for multicast, that must be enabled.
See the following figure: