clock: reset master/local rr when best clock id changes

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.hons@ni.com>
master
Erik Hons 2020-02-04 22:34:24 +00:00 committed by Richard Cochran
parent ee6930a884
commit a380afc482
1 changed files with 1 additions and 0 deletions

View File

@ -1775,6 +1775,7 @@ static void handle_state_decision_event(struct clock *c)
tsproc_set_delay(c->tsproc, c->initial_delay); tsproc_set_delay(c->tsproc, c->initial_delay);
c->ingress_ts = tmv_zero(); c->ingress_ts = tmv_zero();
c->path_delay = c->initial_delay; c->path_delay = c->initial_delay;
c->master_local_rr = 1.0;
c->nrr = 1.0; c->nrr = 1.0;
fresh_best = 1; fresh_best = 1;
} }