On Fri, Jul 08, 2022 at 01:08:04AM +0000, joy_bhattacha...@arcadyan.com wrote: > Hi, >
> Using a binary built on v3.1, I'm trying to synchronize a Slave > device with a Grandmaster but the Slave does not accept the > Grandmaster as Master. It does not lock or synchronize either. Which node is running ptp4l? GM, slave, or both? > However, it does send delay requests to the GM. > Upon close inspection, it turns out that the unless the 'Announce' message > control field value is set to '5', the slave does not accept GM as master. > Announce message(Control Field 0): Master ignored > Announce message (Control Field 5): Master accepted > Dataset comparison set to G8275.x for both, all other slave and master > configurations identical for both scenarios. > This is puzzling since PTPV2(which 3.1 is based on) should not use this field > for BMCA, as far as I know, only PTPV1 uses this field. > Is this a bug or can v3.1 be configured to ignore this field? If ptp4l is GM and your slave is some other stack, then that stack does not follow 1588 correctly. If ptp4l is the slave, then you are mistaken in your analysis. The control field is set for transmitted messages, but never tested on recieved messages: Cscope finding symbol "control" yields: *** nsm.c: nsm_request[398] msg->header.control = CTL_DELAY_REQ; *** pmc_common.c: pmc_message[453] msg->header.control = CTL_MANAGEMENT; *** port.c: port_pdelay_request[1353] msg->header.control = CTL_OTHER; port_delay_request[1417] msg->header.control = CTL_DELAY_REQ; port_tx_announce[1469] msg->header.control = CTL_OTHER; port_tx_sync[1546] msg->header.control = CTL_SYNC; port_tx_sync[1582] fup->header.control = CTL_FOLLOW_UP; process_delay_req[1914] msg->header.control = CTL_DELAY_RESP; process_pdelay_req[2105] rsp->header.control = CTL_OTHER; process_pdelay_req[2153] fup->header.control = CTL_OTHER; port_management_construct[2929] msg->header.control = CTL_MANAGEMENT; *** port_signaling.c: port_signaling_construct[49] msg->header.control = CTL_OTHER; *** tc.c: tc_fwd_sync[459] fup->header.control = CTL_FOLLOW_UP; TL;DR -- header.control is never used for anything. Thanks, Richard _______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users