This fixes an issue with free running clocks. When the master clock id
changes the measured master/local ratio should be reset. If it isn't,
and the local clock becomes master, then the last measured ratio to
the old master continues to be used in peer delay calculations. If a
bad master/local ration calculation triggers this state change the
port can get "stuck" in not "asCapable" mode.

Signed-off-by: Erik Hons <erik.h...@ni.com>
---
 clock.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clock.c b/clock.c
index 146576a..a48656c 100644
--- a/clock.c
+++ b/clock.c
@@ -1774,6 +1774,7 @@ static void handle_state_decision_event(struct clock *c)
                        tsproc_set_delay(c->tsproc, c->initial_delay);
                c->ingress_ts = tmv_zero();
                c->path_delay = c->initial_delay;
+               c->master_local_rr = 1.0;
                c->nrr = 1.0;
                fresh_best = 1;
        }
-- 
2.20.1



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to