From: Marcin Miklas <marcin.mik...@harman.com>

Hi,

I've noticed couple of problems when using linuxptp with other gPTP
implementations.

gPTP requires that PTP_TIMESCALE flag is set in messages. I noticed that
PDelayReq, PDelayResp, PDelayRespFollowUp, Sync, FollowUp and Signaling all have
that flag set to 0. One of the bridges just ignores communication with ptp4l
because of that.

The fault is on both sides, because gPTP specification says that PTP_TIMESCALE
should be set to 1 and ignored on reception.

Since fixing linuxptp is easier I created a patch which should fix that problem.
flagField[1] was not set at all during messages construction. The patch is only
changing messages construction for gPTP relevant messages because only those I
could test.

Second thing I noticed, is a problem with signalling messages. When servo is
unlocked the following function is called:

  port_tx_interval_request(p, SIGNAL_NO_CHANGE, 
                           SIGNAL_SET_INITIAL,
                           SIGNAL_NO_CHANGE);

We can see that ptp4l slave is requesting gPTP master to use master's initial
sync interval.  This might be different than slave's initial sync interval. If
this is a case the signallings will be send over and over again.  Slave's own
initalLogSyncInterval should be used here.

Current version is causing other problems with OpenAvnu's daemon_cl.
SIGNAL_SET_INITAL has value 126 which is not interpreted as special value by
daemon_cl but treated literally, setting sync interval to 2.7E30 years therefore
disabling the sync interval sending.

Regards,
Marcin Miklas

*** BLURB HERE ***

Marcin Miklas (2):
  Do not use SIGNAL_SET_INITIAL in Signaling messages
  Add setting of PTP_TIMESCALE flag

 port.c           | 7 ++++++-
 port_signaling.c | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

-- 
2.25.1


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to