I did a deeper investigation of the "received SYNC without timestamp" problem on the Intel 82576 card.

I instrumented port.c like this:

    if (msg_sots_missing(msg) &&
        !(p->timestamping == TS_P2P1STEP && msg_type(msg) == PDELAY_REQ)) {
        pr_err("%s: received %s without timestamp",
               p->log_name, msg_type_string(msg_type(msg)));
        msg_put(msg);
        return EV_NONE;
    } else {
        pr_err("%s: received %s with timestamp",
            p->log_name, msg_type_string(msg_type(msg)));
    }

And it seems the card timestamps some packets!

The log running E2E L2 sync is:

ptp4l[5854.200]: port 1 (eth2): INITIALIZING to SLAVE on INIT_COMPLETE
ptp4l[5854.201]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[5854.202]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[5854.202]: port 1 (eth2): received link status notification
ptp4l[5854.202]: interface index 5 is up
ptp4l[5854.271]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.272]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.397]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.397]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.397]: port 1 (eth2): have FOLLOW_UP 47602, expecting SYNC but got FOLLOW_UP 47603, dropping
ptp4l[5854.522]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.523]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.523]: port 1 (eth2): have FOLLOW_UP 47603, expecting SYNC but got FOLLOW_UP 47604, dropping
ptp4l[5854.647]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.648]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.648]: port 1 (eth2): have FOLLOW_UP 47604, expecting SYNC but got FOLLOW_UP 47605, dropping
ptp4l[5854.773]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.773]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.773]: port 1 (eth2): have FOLLOW_UP 47605, expecting SYNC but got FOLLOW_UP 47606, dropping
ptp4l[5854.898]: port 1 (eth2): received SYNC without timestamp
ptp4l[5854.898]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5854.898]: port 1 (eth2): have FOLLOW_UP 47606, expecting SYNC but got FOLLOW_UP 47607, dropping
ptp4l[5855.024]: port 1 (eth2): received SYNC without timestamp
ptp4l[5855.024]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5855.024]: port 1 (eth2): have FOLLOW_UP 47607, expecting SYNC but got FOLLOW_UP 47608, dropping
ptp4l[5855.149]: port 1 (eth2): received SYNC without timestamp
ptp4l[5855.149]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5855.149]: port 1 (eth2): have FOLLOW_UP 47608, expecting SYNC but got FOLLOW_UP 47609, dropping
ptp4l[5855.275]: port 1 (eth2): received SYNC without timestamp
ptp4l[5855.276]: port 1 (eth2): received FOLLOW_UP with timestamp
ptp4l[5855.277]: port 1 (eth2): have FOLLOW_UP 47609, expecting SYNC but got FOLLOW_UP 47610, dropping
ptp4l[5855.313]: port 1 (eth2): delay timeout
ptp4l[5855.314]: port 1 (eth2): received DELAY_RESP with timestamp
ptp4l[5855.400]: port 1 (eth2): received SYNC without timestamp

So it seems the card timestamps FOLLOW_UP and DELAY_RESP packets, but does not timestamp SYNC packets. Why could this be? Can it somehow mismatch SYNC and FOLLOW_UP messages in the chip and stamp the wrong one? (I think FOLLOW_UP stamps are not good for anything, are they?). Or is it still some problem with ptp4l not reading the socket?

--
Mgr. Martin Pecka, Ph.D.
Researcher at Vision for Robotics and Autonomous Systems group
Faculty of Electrical Engineering
Czech Technical University in Prague
Phone: +420 22435 7269

Attachment: smime.p7s
Description: Elektronicky podpis S/MIME

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

Reply via email to