I am using an X440-8t (EXOS 220.127.116.11) with the AVB package to connect together 5 AVB endpoints. I have also configured the X440 as an NTP client, deriving its NTP clock from a PC that is synchronised to a local GPS receiver. The gPTP clock maintained by the X440 appears to have a significant offset from the NTP clock. The only way of reducing this offset appears to be to power-cycle the switch - doing this appears to reduce the gPTP clock offset, but it is still not zero.
From this, I infer that the gPTP clock and the NTP clock are maintained entirely separately within the X440, and that the only connection between them is that the former is initialized from the latter (not especially precisely) when the switch is powered up. Is this correct?
Does the NTP function in the X440 generate a "drift" file (as it does in Linux implementations) to correct for rate errors in the underlying clock? And, if so, is this drift file also used to correct the rate of the gPTP clock?
Is there a more precise way to set the gPTP clock from the NTP clock in the X440 (preferably without adding additional hardware to the network).
The gPTP implementation in EXOS does not sync the local gPTP clock with the GMC, it only tracks it's offset from the GMC. So, basically it is constantly aware of the difference between the local clock and the GMC. The "show network-clock gptp current-set" command will display the current offset. The example below is a GMC, so all values are 0.
->show network-clock gptp current-set
Steps Removed : 0
Offset from GM : +0 days 0 hours 0 mins 0 secs 0 ns
Last GM Phase Change : +0 days 0 hours 0 mins 0 secs 0.000 ns
Last GM Frequency Change : 1.000000 ns
GM Time Base Indicator : 0
GM Change Count : 117
Last GM Change Event : Mon Apr 9 11:34:49 2018
Last GM Frequency Change Event : Mon Apr 9 11:34:49 2018
Last GM Phase Change Event : Mon Apr 9 11:34:49 2018
There is no way to manually alter or sync the local gPTP clock.
you say that "the local gPTP clock will also not synchronize with the gPTP GMC, it is only aware of the offset". In what way is it "aware" of the offset? Is there a way to access this offset from EXOS? Is there a way to adjust the gPTP clock from EXOS? Or, is it truly the case that the only way of altering the gPTP clock is either to reboot the X440, or to connect a gPTP grandmaster?
You are correct in that the gPTP and system clock are two separate entities. They would somewhat "sync" at boot, but NTP is not used to synchronize/set the gPTP clock. Likewise, the local gPTP clock will also not synchronize with the gPTP GMC, it is only aware of the offset.