nuttx-apps/netutils/ptpd
Daniel P. Carvalho e8fa49dc72 netutils/ptpd: discard implausible drift-rate samples before averaging
A single drift-rate sample computed between two consecutive sync
updates was clamped against CLOCK_ADJTIME_SLEWLIMIT_PPM - the
hardware's slew-rate safety limit, not a bound on how large a real
crystal-oscillator drift measurement can plausibly be. An abnormally
short or long measurement interval (e.g. right after a clock
source outage/reconnect, or a burst of closely spaced sync packets
following packet loss) could therefore produce a wildly implausible
sample that still passed the check and corrupted the long-term
drift_ppb average.

Add CONFIG_NETUTILS_PTPD_MAX_DRIFT_PPB (default 500000, well above
any real crystal's few-hundred-ppm drift) as a dedicated plausibility
bound, intentionally much tighter than CLOCK_ADJTIME_SLEWLIMIT_PPM.
A sample outside this bound is discarded and the previous averaged
drift_ppb is kept unchanged instead of being corrupted.

Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com>
2026-09-24 11:07:31 +08:00
..
CMakeLists.txt netutils/ptpd: add CMakelist for ptpd 2025-12-30 08:51:51 -03:00
Kconfig netutils/ptpd: discard implausible drift-rate samples before averaging 2026-09-24 11:07:31 +08:00
Make.defs netutils: migrate the license to ASF 2024-12-21 13:53:10 +08:00
Makefile netutils: migrate the license to ASF 2024-12-21 13:53:10 +08:00
ptpd.c netutils/ptpd: discard implausible drift-rate samples before averaging 2026-09-24 11:07:31 +08:00
ptpv2.h netutils/ptpd: Implement IEEE 1588 peer-to-peer (P2P) delay mechanism. 2026-09-24 11:07:31 +08:00