From 63b43924294da6cb177d0509120b2e957580441c Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 31 May 2021 11:07:52 +0200 Subject: [PATCH] clock: Reset state when switching port with same best clock. When the best port is changed, but the ID of the best clock doesn't change (e.g. a passive port is activated on link failure), reset the current delay and other master/link-specific state to avoid the switch throwing the clock off. Reviewed-by: Jacob Keller Signed-off-by: Miroslav Lichvar [commit 7e8eba5332671abfd95d06dd191059eded1d2cca upstream] Signed-off-by: Jim Somerville --- clock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clock.c b/clock.c index a66d189..96453f4 100644 --- a/clock.c +++ b/clock.c @@ -1857,7 +1857,7 @@ static void handle_state_decision_event(struct clock *c) cid2str(&best_id)); } - if (!cid_eq(&best_id, &c->best_id)) { + if (!cid_eq(&best_id, &c->best_id) || best != c->best) { clock_freq_est_reset(c); tsproc_reset(c->tsproc, 1); if (!tmv_is_zero(c->initial_delay)) -- 2.25.1