From d1bb9ecbd5a77cdb8d93accfa8c1bbf705002de0 Mon Sep 17 00:00:00 2001 From: Burkhard Ilsen Date: Sat, 8 Apr 2017 00:31:30 +0200 Subject: [PATCH] port: sequence of nrate and peer_delay calculation The sequence of port_nrate_calculate() and tsproc_update_delay() in port_peer_delay() is mixed up. The peer delay depends on the nrate ratio so the nrate ratio shall be updated before peer delay is calculated. Signed-off-by: Burkhard Ilsen --- port.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/port.c b/port.c index 0f99b1b..ec02825 100644 --- a/port.c +++ b/port.c @@ -1892,6 +1892,10 @@ static void port_peer_delay(struct port *p) c2 = correction_to_tmv(fup->header.correction); calc: t3c = tmv_add(t3, tmv_add(c1, c2)); + + if (p->follow_up_info) + port_nrate_calculate(p, t3c, t4); + tsproc_set_clock_rate_ratio(p->tsproc, p->nrate.ratio * clock_rate_ratio(p->clock)); tsproc_up_ts(p->tsproc, t1, t2); @@ -1901,9 +1905,6 @@ calc: p->peerMeanPathDelay = tmv_to_TimeInterval(p->peer_delay); - if (p->follow_up_info) - port_nrate_calculate(p, t3c, t4); - if (p->state == PS_UNCALIBRATED || p->state == PS_SLAVE) { clock_peer_delay(p->clock, p->peer_delay, t1, t2, p->nrate.ratio);