This patch will remove all delay requests in queue that is older than the latest processed. Connected responses to these are either much more delayed or lost. Any received response derived from an obsolete request will be neglected.
Signed-off-by: Anders Selhammer <anders.selham...@est.tech> --- port.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/port.c b/port.c index 65620a2..2edfb26 100644 --- a/port.c +++ b/port.c @@ -1830,7 +1830,7 @@ out: static void process_delay_resp(struct port *p, struct ptp_message *m) { struct delay_resp_msg *rsp = &m->delay_resp; - struct ptp_message *req; + struct ptp_message *req, *obs; struct PortIdentity master; tmv_t c3, t3, t4, t4c; @@ -1858,6 +1858,10 @@ static void process_delay_resp(struct port *p, struct ptp_message *m) clock_path_delay(p->clock, t3, t4c); + while ((obs = TAILQ_NEXT(req, list)) != NULL) { + TAILQ_REMOVE(&p->delay_req, obs, list); + msg_put(obs); + } TAILQ_REMOVE(&p->delay_req, req, list); msg_put(req); -- 1.8.3.1 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel