> -Original Message-
> From: Miroslav Lichvar
> Sent: Wednesday, May 26, 2021 1:24 AM
> To: linuxptp-devel@lists.sourceforge.net
> Subject: [Linuxptp-devel] [PATCH v2 2/3] clock: Reset clock check on best
> clock/port change.
>
> Reset the clock check when the best clock or port changes, together with
> the other state like current estimated delay and frequency. This avoids
> false positives if the clock is controlled by an external process when
> not synchronized by PTP (e.g. phc2sys -rr).
>
Thanks! The intent is more clear now!
Reviewed-by: Jacob Keller
> Signed-off-by: Miroslav Lichvar
> ---
> clock.c | 2 ++
> clockcheck.c | 9 -
> clockcheck.h | 6 ++
> 3 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/clock.c b/clock.c
> index a073575..2dd7ef9 100644
> --- a/clock.c
> +++ b/clock.c
> @@ -1949,6 +1949,8 @@ static void handle_state_decision_event(struct clock
> *c)
>
> if (!cid_eq(_id, >best_id) || best != c->best) {
> clock_freq_est_reset(c);
> + if (c->sanity_check)
> + clockcheck_reset(c->sanity_check);
> tsproc_reset(c->tsproc, 1);
> if (!tmv_is_zero(c->initial_delay))
> tsproc_set_delay(c->tsproc, c->initial_delay);
> diff --git a/clockcheck.c b/clockcheck.c
> index d48a578..d0b4714 100644
> --- a/clockcheck.c
> +++ b/clockcheck.c
> @@ -47,9 +47,16 @@ struct clockcheck *clockcheck_create(int freq_limit)
> if (!cc)
> return NULL;
> cc->freq_limit = freq_limit;
> + clockcheck_reset(cc);
> + return cc;
> +}
> +
> +void clockcheck_reset(struct clockcheck *cc)
> +{
> + cc->freq_known = 0;
> cc->max_freq = -CHECK_MAX_FREQ;
> cc->min_freq = CHECK_MAX_FREQ;
> - return cc;
> + cc->last_ts = 0;
> }
>
> int clockcheck_sample(struct clockcheck *cc, uint64_t ts)
> diff --git a/clockcheck.h b/clockcheck.h
> index 78aca48..1ff86eb 100644
> --- a/clockcheck.h
> +++ b/clockcheck.h
> @@ -33,6 +33,12 @@ struct clockcheck;
> */
> struct clockcheck *clockcheck_create(int freq_limit);
>
> +/**
> + * Reset a clock check.
> + * @param cc Pointer to a clock check obtained via @ref clockcheck_create().
> + */
> +void clockcheck_reset(struct clockcheck *cc);
> +
> /**
> * Perform the sanity check on a time stamp.
> * @param cc Pointer to a clock check obtained via @ref clockcheck_create().
> --
> 2.26.3
>
>
>
> ___
> Linuxptp-devel mailing list
> Linuxptp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
___
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel