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 <***@gmail.com>
---
port.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/port.c b/port.c
index 0f99b1b..2febe67 100644
--- a/port.c
+++ b/port.c
@@ -1892,6 +1892,9 @@ 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 +1904,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);
--
2.12.2.windows.1