generic Precision Time Protocol (gPTP)
Overview
This gPTP stack supports the protocol and procedures as defined in the IEEE 802.1AS-2011 standard (Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks).
Supported features
The stack handles communications and state machines defined in the IEEE 802.1AS-2011 standard. Mandatory requirements for a full-duplex point-to-point link endpoint, as defined in Annex A of the standard, are supported.
The stack is in principle capable of handling communications on multiple network interfaces (also defined as “ports” in the standard) and thus act as a 802.1AS bridge. However, this mode of operation has not been validated on the Zephyr OS.
Supported hardware
Although the stack itself is hardware independent, Ethernet frame timestamping support must be enabled in ethernet drivers.
Boards supported:
Native simulator - native_sim (only usable for simple testing, limited capabilities due to lack of hardware clock)
X86 Emulation (QEMU) (emulated, limited capabilities due to lack of hardware clock)
Enabling the stack
The following configuration option must me enabled in prj.conf
file.
Application interfaces
The following Application Interfaces as defined in section 9 of the standard are available:
ClockSourceTime
interface (gptp_clk_src_time_invoke()
)ClockTargetPhaseDiscontinuity
interface (gptp_register_phase_dis_cb()
)ClockTargetEventCapture
interface (gptp_event_capture()
)
Testing
The stack has been informally tested using the OpenAVnu gPTP and Linux ptp4l daemons. The gPTP sample application from the Zephyr source distribution can be used for testing.