Skip to content

PTP

Precision Time Protocol (PTP), defined by IEEE 1588, synchronizes real-time clocks across network devices to nanosecond accuracy using a grandmaster-boundary-ordinary clock hierarchy with continuously exchanged timing messages. IOS-XR PTP supports ITU-T telecom profiles (G.8265.1, G.8275.1, G.8275.2), per-interface and global profile assignment, unicast/multicast transport modes, master/slave peer management, interop domain conversions, and UTC leap-second offset scheduling.

Diagram
NameTypeConstraintMandatoryDefault Value
ptpClass[ptp]No

NameTypeConstraintMandatoryDefault Value
aptsBooleantrue, falseNo
clockClass[clock]No
detect_ptsf_unusableBooleantrue, falseNo
double_failure_clock_classIntegermin: 0, max: 255No
freerun_clock_classIntegermin: 0, max: 255No
frequency_priorityIntegerNo
holdover_spec_clock_classIntegermin: 0, max: 255No
holdover_spec_durationIntegerNo
holdover_spec_traceable_overrideBooleantrue, falseNo
ipv6_verify_checksumBooleantrue, falseNo
log_best_primary_clock_changesBooleantrue, falseNo
log_servo_eventsBooleantrue, falseNo
min_clock_classIntegermin: 0, max: 255No
network_type_high_pdvBooleantrue, falseNo
performance_monitoringBooleantrue, falseNo
phase_difference_threshold_breachIntegerNo
physical_layer_frequencyBooleantrue, falseNo
profilesList[profiles]No
servo_slow_trackingIntegerNo
startup_clock_classIntegermin: 0, max: 255No
time_of_day_priorityIntegerNo
transparent_clock_domain_allBooleantrue, falseNo
uncalibrated_clock_classIntegermin: 0, max: 255No
uncalibrated_traceable_overrideBooleantrue, falseNo
uncalibrated_unless_from_holdoverBooleantrue, falseNo
utc_offset_baselineIntegerNo
utc_offsetsList[utc_offsets]No
virtual_portClass[virtual_port]No

NameTypeConstraintMandatoryDefault Value
clock_classIntegermin: 0, max: 255No
domainIntegermin: 0, max: 255No
identity_eui_64StringNo
identity_macAnyString or Choice[router] or String[Regex: ^.*[\$\%]\{.*$]No
priority1Integermin: 0, max: 255No
priority2Integermin: 0, max: 255No
profileChoiceg-8265-1, g-8275-1, g-8275-2No
profile_clock_typeChoiceprimary, slave, t-bc, t-gm, t-tscYes
time_sourceChoiceatomic-clock, gps, terrestrial-radio, ptp, ntp, hand-set, other, internal-oscillatorNo
timescaleChoiceptp, arbNo

profiles (iosxr.devices.configuration.ptp)

Section titled “profiles (iosxr.devices.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
announce_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
announce_grant_durationIntegermin: 60, max: 1000No
announce_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
announce_timeoutIntegermin: 2, max: 10No
clock_operationChoiceone-step, two-stepNo
cosIntegermin: 0, max: 7No
cos_eventIntegermin: 0, max: 7No
cos_generalIntegermin: 0, max: 7No
delay_asymmetry_unitChoicenanoseconds, microseconds, millisecondsNo
delay_asymmetry_valueIntegermin: -500000000, max: 500000000No
delay_request_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
delay_request_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
delay_response_grant_durationIntegermin: 60, max: 1000No
delay_response_timeoutIntegermin: 100, max: 100000No
dscpIntegermin: 0, max: 63No
dscp_eventIntegermin: 0, max: 63No
dscp_generalIntegermin: 0, max: 63No
interopClass[interop]No
ipv4_ttlIntegermin: 1, max: 255No
ipv6_hop_limitIntegermin: 1, max: 255No
mastersList[masters]No
multicastChoiceenable, disable, mixedNo
multicast_target_addressChoice01-1B-19-00-00-00, 01-80-C2-00-00-0ENo
nameStringYes
port_stateChoiceany, master-only, slave-onlyNo
slavesList[slaves]No
source_ipv4_addressIPNo
source_ipv6_addressIPNo
sync_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
sync_grant_durationIntegermin: 60, max: 1000No
sync_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
sync_timeoutIntegermin: 100, max: 100000No
transportChoiceethernet, ipv4, ipv6No
unicast_grant_invalid_requestChoicedeny, reduceNo

utc_offsets (iosxr.devices.configuration.ptp)

Section titled “utc_offsets (iosxr.devices.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
dateStringYes
offset_valueIntegerYes

virtual_port (iosxr.devices.configuration.ptp)

Section titled “virtual_port (iosxr.devices.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
clock_accuracyIntegerNo
clock_classIntegerNo
enableBooleantrue, falseNo
gm_threshold_breachIntegerNo
local_priorityIntegerNo
offset_scaled_log_varianceIntegerNo
priority1Integermin: 0, max: 255No
priority2Integermin: 0, max: 255No

interop (iosxr.devices.configuration.ptp.profiles)

Section titled “interop (iosxr.devices.configuration.ptp.profiles)”
NameTypeConstraintMandatoryDefault Value
domainIntegermin: 0, max: 255No
egress_conversionClass[egress_conversion]No
ingress_conversionClass[ingress_conversion]No
profileChoicedefault, g-8265-1, g-8275-1, g-8275-2No

masters (iosxr.devices.configuration.ptp.profiles)

Section titled “masters (iosxr.devices.configuration.ptp.profiles)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
clock_classIntegermin: 0, max: 255No
delay_asymmetry_unitChoicenanoseconds, microseconds, millisecondsNo
delay_asymmetry_valueIntegermin: -500000000, max: 500000000No
multicastChoiceenable, mixedNo
non_negotiatedBooleantrue, falseNo
priorityIntegermin: 0, max: 255No

slaves (iosxr.devices.configuration.ptp.profiles)

Section titled “slaves (iosxr.devices.configuration.ptp.profiles)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
non_negotiatedBooleantrue, falseYes

egress_conversion (iosxr.devices.configuration.ptp.profiles.interop)

Section titled “egress_conversion (iosxr.devices.configuration.ptp.profiles.interop)”
NameTypeConstraintMandatoryDefault Value
clock_accuracyIntegermin: 0, max: 254No
clock_class_defaultIntegermin: 0, max: 255No
clock_class_mappingsList[clock_class_mappings]No
offset_scaled_log_varianceIntegermin: 0, max: 65535No
priority1Integermin: 0, max: 255No
priority2Integermin: 0, max: 255No

clock_class_mappings (iosxr.devices.configuration.ptp.profiles.interop.egress_conversion)

Section titled “clock_class_mappings (iosxr.devices.configuration.ptp.profiles.interop.egress_conversion)”
NameTypeConstraintMandatoryDefault Value
class_fromIntegermin: 0, max: 255Yes
class_toIntegermin: 0, max: 255Yes

MAC Address Formats

The following attributes accept MAC addresses in any of three formats:

  • PTP Master/Slave addresses
  • PTP Clock idenfity
  1. colon-separated (e.g., "aa:bb:cc:dd:ee:ff")
  2. dash-separated (e.g., "aa-bb-cc-dd-ee-ff")
  3. dotted (e.g., "aabb.ccdd.eeff")

All 3 formats can be used interchangeably. The normalization layer converts the user-specified format to colon-separated before sending to the device.

Address Selection

Master and slave peer lists accept IPv4, IPv6, and MAC addresses in a single masters: or slaves: list. The address type is automatically detected:

  • IPv4: dotted-decimal notation (e.g., 10.3.3.3)
  • IPv6: colon-hex notation (e.g., 2001:db8::3)
  • MAC: colon, dash, or dotted format (e.g., aa:bb:cc:dd:ee:f4, aa-bb-cc-dd-ee-ff, aabb.ccdd.eeff)

Example-1: Global PTP with clock profile g-8275-1 and virtual port.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
ptp:
min_clock_class: 128
frequency_priority: 10
time_of_day_priority: 10
physical_layer_frequency: true
log_best_primary_clock_changes: true
log_servo_events: true
clock:
domain: 24
priority1: 128
priority2: 128
profile: g-8275-1
profile_clock_type: t-bc
timescale: ptp
time_source: gps
identity_mac: router
virtual_port:
priority1: 128
priority2: 129
clock_class: 6

Example-2: PTP profile with ethernet transport, masters, and slaves.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
ptp:
profiles:
- name: PROFILE-1
transport: ethernet
port_state: master-only
clock_operation: one-step
multicast: mixed
cos: 6
sync_interval: 2
announce_interval: 2
announce_timeout: 5
delay_request_interval: 2
masters:
- address: 10.3.3.3
priority: 100
non_negotiated: true
multicast: enable
- address: "aa:bb:cc:dd:ee:f4"
priority: 100
multicast: enable
slaves:
- address: 10.2.2.2
non_negotiated: true

Example-3: PTP profile with interop conversions and delay asymmetry.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
ptp:
profiles:
- name: INTEROP
transport: ipv4
source_ipv4_address: 10.1.1.1
delay_asymmetry_value: 1000
delay_asymmetry_unit: microseconds
interop:
domain: 24
profile: g-8275-2
egress_conversion:
priority1: 128
priority2: 128
clock_accuracy: 33
clock_class_default: 6
clock_class_mappings:
- class_from: 6
class_to: 13
ingress_conversion:
priority1: 128
priority2: 128
clock_accuracy: 33
clock_class_default: 6