Files
2026-04-24 14:29:58 +02:00

47 lines
1.9 KiB
Plaintext

=== PTP transparent clock (P2P)
ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ptp/transparent_clock]
==== Description
Verify that an E2E or P2P Transparent Clock (TC) passes timing
transparently through a hardware switch without adding a boundary-clock
hop, and that the downstream time receiver converges to the
grandmaster's time.
Three nodes are connected in a chain: a grandmaster Ordinary Clock
(priority1=1), a Transparent Clock with hardware timestamping, and a
time-receiver Ordinary Clock (priority1=128).
The TC updates the correction field in each Sync and Delay_Req message
to account for its own residence time. Because a TC is transparent,
the time receiver's steps-removed counter must equal 1 — unlike a
Boundary Clock, which would give 2. A TC passes ANNOUNCE messages
unchanged (stepsRemoved=0 from the GM), and the time receiver adds 1
when it stores the value in currentDS, giving a total of 1. A BC
increments stepsRemoved to 1 before forwarding, and the receiver adds
1 more, giving 2. The time receiver's offset must converge within the
tight threshold appropriate for hardware timestamping.
The delay mechanism (E2E or P2P) is injected via the --delay-mechanism
argument from the test suite YAML, allowing both variants to run from
the same test script. The TC node requires hardware PTP timestamping
support (capability: ptp-hwts).
==== Topology
image::topology.svg[PTP transparent clock (P2P) topology, align=center, scaledwidth=75%]
==== Sequence
. Set up topology and attach to DUTs
. Configure grandmaster (OC, priority1=1, {dm})
. Configure transparent clock ({dm.upper()}-TC)
. Configure time receiver (OC, priority1=128, client-only)
. Wait for grandmaster port to become time-transmitter
. Wait for time receiver to reach time-receiver state
. Verify time receiver steps-removed equals 1 (TC adds no boundary-clock hop)
. Wait for time receiver offset to converge