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
parent
7e1ccac8f8
commit
d1bb9ecbd5
7
port.c
7
port.c
|
@ -1892,6 +1892,10 @@ static void port_peer_delay(struct port *p)
|
||||||
c2 = correction_to_tmv(fup->header.correction);
|
c2 = correction_to_tmv(fup->header.correction);
|
||||||
calc:
|
calc:
|
||||||
t3c = tmv_add(t3, tmv_add(c1, c2));
|
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 *
|
tsproc_set_clock_rate_ratio(p->tsproc, p->nrate.ratio *
|
||||||
clock_rate_ratio(p->clock));
|
clock_rate_ratio(p->clock));
|
||||||
tsproc_up_ts(p->tsproc, t1, t2);
|
tsproc_up_ts(p->tsproc, t1, t2);
|
||||||
|
@ -1901,9 +1905,6 @@ calc:
|
||||||
|
|
||||||
p->peerMeanPathDelay = tmv_to_TimeInterval(p->peer_delay);
|
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) {
|
if (p->state == PS_UNCALIBRATED || p->state == PS_SLAVE) {
|
||||||
clock_peer_delay(p->clock, p->peer_delay, t1, t2,
|
clock_peer_delay(p->clock, p->peer_delay, t1, t2,
|
||||||
p->nrate.ratio);
|
p->nrate.ratio);
|
||||||
|
|
Loading…
Reference in New Issue