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 <burkhardilsen@gmail.com>
master
Burkhard Ilsen 2017-04-08 00:31:30 +02:00 committed by Richard Cochran
parent 7e1ccac8f8
commit d1bb9ecbd5
1 changed files with 4 additions and 3 deletions

7
port.c
View File

@ -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);