Hello Team, I recently encountered a *rogue peer delay response* error which seemly caused by function port_synchronize() reset peer_delay_req pointer. I'd like to know why port_synchronize() reset p->peer_delay_req to NULL is needed, can i comment this to avoid the rogue peer delay response error? Can anyone please help me?
the problematic packet timing is as follows 1. client send pdelay_req 2. client recv follow_up 3. client enter port_synchronize, client clock servo enter jump state 4. port_synchronize reset p->peer_delay_req to NULL 5. client recv pdelay_resp 6. client report rogue peer delay response 7. client reinit port 8. client servo enter lock state, ptp4l log as follows, * 202 ptp4l[3.143]: port 1: delay timeout* 203 ptp4l[3.147]: bc_event, 2613, idx(1) 204 ptp4l[3.147]: process msg seq_id(16945) 205 ptp4l[3.147]: bc_event, 2761, process FOLLOW_UP 206 ptp4l[3.147]: port_syfufsm, 1251, sts(1), event(3) 207 ptp4l[3.147]: port_synchronize, 1176, t1(1560257347787048846), t2(946684803056837859), c1(0), c2(0) 208 ptp4l[3.147]: port_synchronize, 1192, last_state(0), state(1) * 209 ptp4l[3.147]: port_synchronize, 1212, peer_delay_req cleared* 210 ptp4l[3.147]: bc_event, 2613, idx(0) 211 ptp4l[3.147]: process msg seq_id(2) 212 ptp4l[3.147]: bc_event, 2754, process PDELAY_RESP * 213 ptp4l[3.147]: port 1: rogue peer delay response* 214 ptp4l[3.147]: bc_event, 2757, process PDELAY_RESP failed 215 ptp4l[3.148]: port 1: clearing fault immediately *1158 static void port_synchronize(*) 1206 case SERVO_JUMP: 1207 port_dispatch(p, EV_SYNCHRONIZATION_FAULT, 0); 1208 flush_delay_req(p); *1209 if (p->peer_delay_req) {1210 msg_put(p->peer_delay_req);1211 p->peer_delay_req = NULL;1212 pr_notice("%s, %d, peer_delay_req cleared", __FUNCTION__, __LINE__);1214 }* Best Regards Merlin
_______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users