PTP Notification Status Conditions

The PTP status notifications are derived based on the following conditions:

PTP Lock State

Clock Status

Status

Description

Freerun

Clock is out of sync state

  • If portState is not “SECONDARY” or ClockClass value is NOT “6”, “7”, “135” or timeTraceable flag is FALSE.

  • If holdover time exceeds its provided value.

  • If PMC, ptp4l.conf, or ptp4l are not accessible.

Locked

Clock is in sync state

  • If portState is “SECONDARY” and ClockClass value is “6”, “7” or “135” and timeTraceable flag is TRUE and PMC, ptp4l.conf, ptp4l or phc2sys are accessible.

  • Locked clockClass values can be changed using the ptp4lClockClassLockedList Helm override. See “Install PTP Notifications” document for instructions.

Holdover

Clock is in holdover state

  • For NICs using the Intel ice driver: If the state is transitioned from Locked to Holdover AND phc2sys is accessible, and holdover time does not expire

  • For other NIC types: If the state is transitioned from Locked to Freerun AND phc2sys is accessible, and holdover time does not expire.

PTP Clock Class

6

T-GM connected to a PRTC in locked mode (e.g., PRTC traceable to GNSS)

  • For additional details on clockClass values, refer to ITU-T standard G.8275.1

7

T-GM in holdover, within holdover specification, traceable to Category 1 frequency source

135

T-BC in holdover, within holdover specification traceable to Category 1 frequency source

140

T-GM in holdover, out of holdover specification, traceable to Category 1 frequency source

248

T-GM or T-BC in free-run mode

255

Slave only OC (does not send Announce messages)

OS Clock State

Locked

Clock is out of sync state

  • phc2sys is running and disciplining the os clock

  • OS clock is within 1000 ns of 37000000000 expected offset from PHC

Holdover

Clock is in holdover state

  • Holdover timer has not expired

  • phc2sys is not running and not disciplining the os clock

  • OR os clock offset is outside of range

Freerun

Clock is in freerun

  • Holdover conditions met but holdover timer has expired

GNSS State

SYNCHRONIZED

GNSS data is present

  • ts2phc is running and disciplining NIC PHC

  • NIC driver DPLL reports GNSS state is locked

FAILURE-NOFIX

GNSS data is not detected

  • ts2phc is not running, NIC PHC is not being disciplined

  • NIC driver DPLL reports status other than locked

Overall Sync State

Locked

Overall state is locked

  • The components of the local timing chain necessary for accurately synced time on the local host are in a healthy state

  • This means that a local NIC PHC is locked to an external timing source and the system clock is synchronized to it

  • The ptp-notification container logs indicate which components are part of the local timing chain and affect this notification

Holdover

Overall state is in holdover

  • One or more components in the local timing chain are in a degraded state (holdover or freerun)

  • Overall sync state holdover time has not expired

Freerun

Overall state is freerun

  • One or more components in the local timing chain are in a degraded state (holdover or freerun)

  • Overall sync state holdover time has expired

Overall Sync State Description

The overall sync state notification (sync-state) describes the health of the timing chain on the local system. A locked state is reported when the system has reference to an external time source (GNSS or PTP) and the system clock is synchronized to that time source.

This notification helps you to verify that the local system time is being actively synchronized. If a component of the local timing chain enters a degraded state, then a sync-state notification will be produced to indicate that the local timing chain is unhealthy.

The following is an example log output from the ptp-notification container that indicates the components of the local timing chain:

2025-05-01 15:34:48 INFO     Overall sync state chaining info:
os-clock-state = Locked
os-clock's source ptp-device = ptp0
ptp-device's sync-source = PTP
(PTP source) ptp4l-instance-and-state = ('ptp1', 'Locked')
(GNSS source) ts2phc-instance-and-state = NA
Overall sync: previous-state = Freerun, new-state = Locked