L2 · management · reviewed

PTP

Precision Time Protocol

Sub-microsecond timing with Announce election and Delay_Req/Resp — not a drop-in replacement for NTP on every campus.

Presenter modeEmbed this figure

IEEE 1588-2019 §7IEEE 1588-2019 §9IEEE 1588-2019 §11

Why it exists

NTP’s millisecond-class sync is not enough for some radio, finance, and industrial control paths. PTP exchanges timestamps on a tighter loop.

Deploy boundary or ordinary clocks where applications need PTP-class sync.

Best master clock election

Announce messages carry clock quality; BMCA elects the grandmaster and the rest become slaves.

Clocks send Announce. BMCA compares priority, class, accuracy, and variance to elect the grandmaster. GM. Slave.

GMGrandmasterSlaveSlave
  • Link
  • Blocking
  • Packet in flight
  • Discarded
  • Emphasis
Select a device to read its state. Arrow keys walk the topology.
Text equivalent of this diagram
Devices and links at this step
ElementKindState
GMrouter
Slaverouter
GMSlavelinkup
1 / 2

Clocks send Announce. BMCA compares priority, class, accuracy, and variance to elect the grandmaster.

What changed

  • Grandmaster
  • Slave

How it works

Announce elects the grandmaster. Sync/Follow_Up and Delay_Req/Delay_Resp measure offset and delay. Transparent clocks revise correction fields on the path.

On the wire

Constructed examples, encoded from the field table below them — not captured traffic.

An ordinary frame. The group bit in the first octet of the destination is clear, so a switch forwards it to one port rather than flooding it.

Physical
A preamble and start-of-frame delimiter precede this, and the hardware removes them before any capture sees the frame. IEEE 802.3-2022
MAC header
Destination address, source address, and the EtherType naming the payload. IEEE 802.3-2022
Payload and FCS
Between 46 and 1500 octets, padded to the minimum, followed by a four-octet frame check sequence. IEEE 802.3-2022

Configure it

Ordinary/boundary clock in a single domain.

Cisco IOS-XE 17.12 · Catalyst 9300draft

  1. ptp domain 0
    ptp profile default
    interface GigabitEthernet1/0/1
     ptp enable

    Enable PTP on interfaces in the timing domain.

Verify

show ptp clock
Clock identity and role.
show ptp parent
Parent / GM information.

Caveats

  • Marked draft: syntax has not been checked against a device.

When it breaks

Symptom first, because that is what you have when it happens.

  1. Multiple grandmasters flapping.

    Narrow it down

    1. Compare Announce priorities
    2. Check domain numbers

    Cause

    Mis-set priority or mixed domains.

    Fix

    Align domain and priority plan.

  2. Offset never meets the app budget.

    Narrow it down

    1. Path support
    2. Asymmetry

    Cause

    Unsupported switches or asymmetric paths.

    Fix

    Add transparent/boundary clocks; fix paths.

  3. Slave stuck listening.

    Narrow it down

    1. Announce receipt
    2. Port state

    Cause

    Filtered Announce or wrong domain.

    Fix

    Verify domain and L2/L3 transport.

  4. Operator debugs with only NTP tools.

    Narrow it down

    1. PTP port datasets
    2. Confirm the related configuration and counters.

    Cause

    Wrong protocol toolbox.

    Fix

    Use PTP-specific state (parent, GM, mean path delay).

  5. App still fails after “PTP enabled”.

    Narrow it down

    1. End-to-end clock chain
    2. Confirm the related configuration and counters.

    Cause

    Only the edge spoke PTP; middle did not.

    Fix

    Engineer the whole path.

Design notes

Deploy boundary or ordinary clocks where applications need PTP-class sync.

Misconceptions

PTP is just NTP with smaller numbers.
PTP has a different election, message set, and on-path clock model (boundary/transparent).
Announce elects based only on IP reachability.
BMCA compares clock quality datasets carried in Announce.
Asymmetry does not matter at PTP scale.
Asymmetry still biases delay-based offset; the error budget is just tighter.

More walkthroughs

Asymmetry still fools delayfailure

Delay request-response assumes symmetric delay. Persistent asymmetry biases the offset just as in NTP — only the scale differs.

Forward and reverse delay differ. The computed offset absorbs that error. R1. R2.

R1R2Biased offset
  • Link
  • Blocking
  • Packet in flight
  • Discarded
  • Emphasis
Select a device to read its state. Arrow keys walk the topology.
Text equivalent of this diagram
Devices and links at this step
ElementKindState
R1router
R2router
R1R2linkup
1 / 2

Forward and reverse delay differ. The computed offset absorbs that error.

What changed

  • Biased offset

Expecting PTP everywhere NTP runsfailure

PTP needs on-path support for its accuracy claims. Treating it like “faster NTP” on an unsupported campus wastes the deployment.

A campus without boundary/transparent clocks will not deliver PTP-class results even if ports speak some PTP frames. R1. R2.

R1Unsupported pathR2
  • Link
  • Blocking
  • Packet in flight
  • Discarded
  • Emphasis
Select a device to read its state. Arrow keys walk the topology.
Text equivalent of this diagram
Devices and links at this step
ElementKindState
R1router
R2router
R1R2linkup
1 / 2

A campus without boundary/transparent clocks will not deliver PTP-class results even if ports speak some PTP frames.

What changed

  • Unsupported path

Check yourself

  • Which message advertises clock quality for election?
  • BMCA selects the:
  • Path asymmetry in PTP:
  • Transparent clocks primarily:
  • Choose NTP when:
  • Mixed PTP domains on one LAN typically:
  • Delay_Req/Delay_Resp measure:
  • After BMCA, non-GM ordinary clocks: