From: Shawn Bohrer <[email protected]> When we send a delay request message check to see if we received a delay response to the previous delay request. This adds reporting of missing responses and also reports if the sequence number of a response doesn't match the request.
Signed-off-by: Shawn Bohrer <[email protected]> --- port.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/port.c b/port.c index 3fc262a..b4175f4 100644 --- a/port.c +++ b/port.c @@ -1066,8 +1066,11 @@ static int port_delay_request(struct port *p) goto out; } - if (p->delay_req) + if (p->delay_req) { + pr_warning("port %hu: missed delay_resp for sequenceId: %" PRIu16, + portnum(p), ntohs(p->delay_req->header.sequenceId)); msg_put(p->delay_req); + } p->delay_req = msg; return 0; @@ -1496,8 +1499,13 @@ static void process_delay_resp(struct port *p, struct ptp_message *m) return; if (!pid_eq(&rsp->requestingPortIdentity, &req->hdr.sourcePortIdentity)) return; - if (rsp->hdr.sequenceId != ntohs(req->hdr.sequenceId)) + if (rsp->hdr.sequenceId != ntohs(req->hdr.sequenceId)) { + pr_warning("port %hu: received delay_request sequenceId: %" PRIu16 + " does not match delay_resp sequenceId: %" PRIu16, + portnum(p), + ntohs(req->hdr.sequenceId), rsp->hdr.sequenceId); return; + } clock_path_delay(p->clock, p->delay_req->hwts.ts, m->ts.pdu, m->header.correction); @@ -1509,6 +1517,8 @@ static void process_delay_resp(struct port *p, struct ptp_message *m) portnum(p), p->logMinDelayReqInterval); tmtab_init(&p->tmtab, 1 + p->logMinDelayReqInterval); } + + flush_delay_req(p); } static void process_follow_up(struct port *p, struct ptp_message *m) -- 2.2.1 ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 _______________________________________________ Linuxptp-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
