tsproc: Fix time stamp handling with P2P one shot mode.
When the P2P link partner is using one shot mode, the residence time in the peer (t3 - t2) is reflected in the correction field of the peer delay response message, and t2 and t3 are both zero. The function port_peer_delay() calls clock_peer_delay(), passing in the zero valued 't2' to the 'rx' argument. The latter function then stores the zero value in the 't4' field of the clock's tsproc instance. As a result, tsproc_update_offset() returns an error to clock_synchronize(), and so a slave clock will never leave the "uncalibrated" state. This patch fixes the issue by removing the test for a non-zero 't4' field within the tsproc. Acked-by: Miroslav Lichvar <mlichvar@redhat.com> Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
999c86f4a9
commit
3f2ef92052
2
tsproc.c
2
tsproc.c
|
@ -164,7 +164,7 @@ int tsproc_update_offset(struct tsproc *tsp, tmv_t *offset, double *weight)
|
||||||
tmv_t delay, raw_delay = 0;
|
tmv_t delay, raw_delay = 0;
|
||||||
|
|
||||||
if (tmv_is_zero(tsp->t1) || tmv_is_zero(tsp->t2) ||
|
if (tmv_is_zero(tsp->t1) || tmv_is_zero(tsp->t2) ||
|
||||||
tmv_is_zero(tsp->t3) || tmv_is_zero(tsp->t4))
|
tmv_is_zero(tsp->t3))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (tsp->raw_mode || tsp->weighting)
|
if (tsp->raw_mode || tsp->weighting)
|
||||||
|
|
Loading…
Reference in New Issue