Making Jetson TX2 a PTP boundary clock

We are using the TX2 with 2 ethernet interfaces (one came with the TX2 and adding another one). We wanna make the TX2 a PTP boundary clock so it will act as PTP slave on one interface and master on another.

Note that both ethernet interfaces have hardware timestamp supports - checking done using ‘ethtool -T’

I have been trying using ptp4l. The PTP slave works fine as it could get time sync properly. However, the other interface acts as the PTP master doesn’t work correctly - timing gradually drifts. I observe this from the end device getting PTP time sync from TX2.

Any suggestions? Is ptp4l the right choice?

Yes, ptp4l should work.

Pre-requisite :
1)Flash the jetpack release build on both the DUT’s
2)Do apt-get update on both DUT’s
3)Install linuxptp on both the DUT’s
4)Make changes in the gPTP.cfg file as below

# Transport options
transportSpecific       0x1
ptp_dst_mac             01:80:C2:00:00:0E
p2p_dst_mac             01:80:C2:00:00:0E
uds_address             /var/run/ptp4l

5)check the ptp4l version : and it is root@jetson-0334916010311:/home/nvidia# ptp4l -v

1)Assign static IP to both DUT’s by changing the /etc/network/interfaces file .
2)Check Ping between two DUT’s .It is working
3)Disable time/date sync using the command : timedatectl set-ntp 0 on both DUT’s
4)Now set the date on slave to previous date using command : sudo date 040403312012
5)Check the ouptut of command date on slave multiple times to check whether really it stopped syncing
6)Executed the command “ifconfig eth0 allmulti promisc” on both duts
7)Execute the command : ptp4l -i eth0 -m -s -f /usr/share/doc/linuxptp/gPTP.cfg on Slave and on Master dut execute : ptp4l -i eth0 -m -f /usr/share/doc/linuxptp/gPTP.cfg

It doesn’t work for me.

This is my conf file
transportSpecific 0x1

ptp_dst_mac 00:04:4b:a8:2d:f6
p2p_dst_mac 88:88:88:88:87:88
uds_address /var/run/ptp4l

This is what I got from running sudo ./ptp4l -i eth0 -m -f ./bc.conf
ptp4l[1204704.589]: selected /dev/ptp0 as PTP clock
ptp4l[1204704.591]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[1204704.592]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[1204711.031]: selected local clock 00044b.fffe.a82df6 as best master
ptp4l[1204711.032]: assuming the grand master role

I would like to be sure that we have the same setup. I have only one TX2, but with 2 ethernet interfaces. When you said ‘both DUTs’, did you mean using 2 TX2s?

Yes, the test is running on 2 TX2.

That is not Boundary Clock for PTP. You need to have 2 ethernets on the same TX2. The TX2 will act like a middle man - getting PTP on one interface and send out on another interface.