Precision Time Protocol
Precision Time Protocol (PTP) is defined in IEEE 1588 as Precision Clock Synchronization for Networked Measurements and Control Systems, and was developed to synchronize the clocks in packet-based networks that include distributed device clocks of varying precision and stability. PTP is designed specifically for industrial, networked measurement and control systems, and is optimal for use in distributed systems because it requires minimal bandwidth and little processing overhead.
Benefits of PTP
Smart grid power automation applications such as peak-hour billing, virtual power generators, and outage monitoring and management, require precise time accuracy and stability. Timing precision improves network monitoring accuracy and troubleshooting ability.
In addition to providing time accuracy and synchronization, the PTP message-based protocol can be implemented on packet-based networks, such as Ethernet networks. The benefits of using PTP in an Ethernet network include:
-
Low cost and easy setup in existing Ethernet networks
-
Limited bandwidth is required for PTP data packets
Note |
The Cisco Catalyst IE9300 Rugged Series Switch supports PTP over Parallel Redundancy Protocol (PRP) beginning with the Cisco IOS XE Cupertino 17.9.1 release; see the chapter "PTP over PRP" in the Redundancy Protocol Configuration Guide, Cisco Catalyst IE9300 Rugged Series Switches on cisco.com. |
Message-Based Synchronization
To ensure clock synchronization, PTP requires an accurate measurement of the communication path delay between time source (grandmaster clock) and the time recipient. PTP sends messages between the time source and time recipient to determine the delay measurement. Then, PTP measures the exact message transmit and receive times and uses these times to calculate the communication path delay. PTP then adjusts current time information contained in network data for the calculated delay, resulting in more accurate time information.
This delay measurement principle determines path delay between devices on the network. The local clocks are adjusted for this delay using a series of messages sent between time source and time recipient devices. The one-way delay time is calculated by averaging the path delay of the transmit and receive messages. This calculation assumes a symmetrical communication path; however, switched networks do not necessarily have symmetrical communication paths, due to the buffering process.
PTP provides a method, using transparent clocks, to measure and account for the delay in a time-interval field in network timing packets. Doing so makes the switches temporarily transparent to the time source and time recipient nodes on the network. An end-to-end transparent clock forwards all messages on the network in the same way that a switch does.
Note |
Cisco PTP supports multicast PTP messages only. |
To read a detailed description of synchronization messages, refer to PTP Event Message Sequences. To learn more about how transparent clocks calculate network delays, refer to Transparent Clock.
The following figure shows a typical 1588 PTP network that includes grandmaster clocks, switches in boundary clock mode, and Intelligent Electronic Device (IEDs) such as a digital relays or protection devices. In this diagram, Time Source 1 is the grandmaster clock. If Time Source 1 becomes unavailable, the time recipient boundary clocks switch to Time Source 2 for synchronization.
PTP Event Message Sequences
This section describes the PTP event message sequences that occur during synchronization.
Synchronizing with Boundary Clocks
The ordinary and boundary clocks configured for the delay request-response mechanism use the following event messages to generate and communicate timing information:
-
Sync
-
Delay_Req
-
Follow_Up
-
Delay_Resp
These messages are sent in the following sequence:
-
The time source sends a Sync message to the time recipient and notes the time (t1) at which it was sent.
-
The time recipient receives the Sync message and notes the time of reception (t2).
-
The time source conveys to the time recipient the timestamp t1 by embedding the timestamp t1 in a Follow_Up message.
-
The time recipient sends a Delay_Req message to the time source and notes the time (t3) at which it was sent.
-
The time source receives the Delay_Req message and notes the time of reception (t4).
-
The time source conveys to the time recipient the timestamp t4 by embedding it in a Delay_Resp message.
After this sequence, the time recipient possesses all four timestamps. These timestamps can be used to compute the offset of the time recipient clock relative to the time source, and the mean propagation time of messages between the two clocks.
The offset calculation is based on the assumption that the time for the message to propagate from time source to time recipient is the same as the time required from time recipient to time source. This assumption is not always valid on an Ethernet network due to asymmetrical packet delay times.
Synchronizing with Peer-to-Peer Transparent Clocks
When the network includes multiple levels of boundary clocks in the hierarchy, with non-PTP enabled devices between them, synchronization accuracy decreases.
The round-trip time is assumed to be equal to mean_path_delay/2, however this is not always valid for Ethernet networks. To improve accuracy, the resident time of each intermediary clock is added to the offset in the end-to-end transparent clock. Resident time, however, does not consider the link delay between peers, which is handled by peer-to-peer transparent clocks.
Peer-to-peer transparent clocks measure the link delay between two clock ports implementing the peer delay mechanism. The link delay is used to correct timing information in Sync and Follow_Up messages.
Peer-to-peer transparent clocks use the following event messages:
-
Pdelay_Req
-
Pdelay_Resp
-
Pdelay_Resp_Follow_Up
These messages are sent in the following sequence:
-
Port 1 generates timestamp t1 for a Pdelay_Req message.
-
Port 2 receives and generates timestamp t2 for this message.
-
Port 2 returns and generates timestamp t3 for a Pdelay_Resp message.
To minimize errors due to any frequency offset between the two ports, Port 2 returns the Pdelay_Resp message as quickly as possible after the receipt of the Pdelay_Req message.
-
Port 2 returns timestamps t2 and t3 in the Pdelay_Resp and Pdelay_Resp_Follow_Up messages respectively.
-
Port 1 generates timestamp t4 after receiving the Pdelay_Resp message. Port 1 then uses the four timestamps (t1, t2, t3, and t4) to calculate the mean link delay.
Synchronizing the Local Clock
In an ideal PTP network, the time source and time recipient clocks operate at the same frequency. However, drift can occur on the network. Drift is the frequency difference between the time source and time recipient clocks. You can compensate for drift by using the time stamp information in the device hardware and follow-up messages (intercepted by the switch) to adjust the frequency of the local clock to match the frequency of the time source clock.
Best Master Clock Algorithm
The Best Master Clock Algorithm (BMCA) is the basis of PTP functionality. The BMCA specifies how each clock on the network determines the best time source clock in its subdomain of all the clocks it can see, including itself. The BMCA runs on the network continuously and quickly adjusts for changes in network configuration.
The BMCA uses the following criteria to determine the best time source clock in the subdomain:
-
Clock quality (for example, GPS is considered the highest quality)
-
Clock accuracy of the clock’s time base.
-
Stability of the local oscillator
-
Closest clock to the grandmaster
In addition to identifying the best time source clock, the BMCA also ensures that clock conflicts do not occur on the PTP network by ensuring that:
-
Clocks do not have to negotiate with one another.
-
There is no misconfiguration, such as two time source clocks or no time source clocks, as a result of the time source clock identification process.
PTP Clocks
A PTP network is made up of PTP-enabled devices and devices that are not using PTP. The PTP-enabled devices typically consist of the following clock types.
Grandmaster Clock
The grandmaster clock is a network device physically attached to the server time source. All clocks are synchronized to the grandmaster clock.
Within a PTP domain, the grandmaster clock is the primary source of time for clock synchronization using PTP. The grandmaster clock usually has a precise time source, such as a GPS or atomic clock. When the network does not require any external time reference and only needs to be synchronized internally, the grandmaster clock can free run.
Boundary Clock
A boundary clock in a PTP network operates in place of a standard network switch or router. Boundary clocks have more than one PTP port, and each port provides access to a separate PTP communication path. They intercept and process all PTP messages, and pass all other network traffic. The boundary clock uses the BMCA to select the best clock seen by any port. The selected port is then set to nonmaster mode. The master port synchronizes the clocks connected downstream, while the nonmaster port synchronizes with the upstream master clock.
Transparent Clock
The role of transparent clocks in a PTP network is to update the time-interval field that is part of the PTP event message. This update compensates for switch delay and has an accuracy of within one picosecond.
There are two types of transparent clocks:
End-to-end (E2E) transparent clocks measure the PTP event message transit time (also known as resident time) for SYNC and DELAY_REQUEST messages. This measured transit time is added to a data field (correction field) in the corresponding messages:
-
The measured transit time of a SYNC message is added to the correction field of the corresponding SYNC or the FOLLOW_UP message.
-
The measured transit time of a DELAY_REQUEST message is added to the correction field of the corresponding DELAY_RESPONSE message.
The time recipient uses this information when determining the offset between the time recipient’s and the time source's time. E2E transparent clocks do not provide correction for the propagation delay of the link itself.
Peer-to-peer (P2P) transparent clocks measure PTP event message transit time in the same way E2E transparent clocks do, as described above. In addition, P2P transparent clocks measure the upstream link delay. The upstream link delay is the estimated packet propagation delay between the upstream neighbor P2P transparent clock and the P2P transparent clock under consideration.
These two times (message transit time and upstream link delay time) are both added to the correction field of the PTP event message, and the correction field of the message received by the time recipient contains the sum of all link delays. In theory, this is the total end-to-end delay (from time source to time recipient) of the SYNC packet.
The following figure illustrates PTP clocks in a time source-time recipient hierarchy within a PTP network.
Note |
In the preceding illustration, M signifies master port, and S signifies nonmaster, or subordinate port. |
Clock Configuration
-
All PHY PTP clocks are synchronized to the grandmaster clock. The switch system clock is not synchronized as part of PTP configuration and processes.
-
When VLAN is enabled on the grandmaster clock, it must be in the same VLAN as the native VLAN of the PTP port on the switch.
-
Grandmaster clocks can drop untagged PTP messages when a VLAN is configured on the grandmaster clock. To force the switch to send tagged packets to the grandmaster clock, enter the global vlan dot1q tag native command.
PTP Profiles
This section describes the following PTP profiles available on the switch:
-
Default Profile
-
Power Profile
Cisco IOS XE Cupertino 17.7.1 supports Power Profile-2011. It is defined in PC37.238-2011 - IEEE Draft Standard Profile for Use of IEEE 1588 Precision Time Protocol in Power System Applications. This documentation uses the terms Power Profile mode and Default Profile mode when referring to this IEEE 1588 profile and its associated configuration values.
Beginning in Cisco IOS XE Cupertino 17.8.1, two Power Profiles are supported: Power Profile-2011 and Power Profile-2017. Power Profile-2017 is defined in IEEE Standard C37.238™-2017 (Revision of IEEE Std C37.238-2011) for use of IEEE 1588 Precision Time Protocol in Power System Applications.
This documentation uses the terms Power Profile mode and Default Profile mode when referring to this IEEE 1588 profile and its associated configuration values. The IEEE 1588 definition of a PTP profile is the set of allowed PTP features applicable to a device. A PTP profile is usually specific to a particular type of application or environment and defines the following values:
-
Best master clock algorithm options
-
Configuration management options
-
Path delay mechanisms (peer delay or delay request-response)
-
Range and default values of all PTP configurable attributes and data set members
-
Transport mechanisms that are required, permitted, or prohibited
-
Node types that are required, permitted, or prohibited
-
Options that are required, permitted, or prohibited
Default Profile Mode
The default PTP profile mode on the switch is Default Profile mode. In this mode:
-
Cisco Catalyst IE9300 Rugged Series Switches support transparent clock, boundary clock, grandmaster boundary clock, and PTP forward mode (PTP passthrough) on the default profile.
-
Cisco Catalyst IE9300 Rugged Series Switches do not support ordinary clocks.
Power Profile Mode
The IEEE Power Profile defines specific or allowed values for PTP networks used in power substations. The defined values include the optimum physical layer, the higher-level protocol for PTP messages, and the preferred best master clock algorithm. The Power Profile values ensure consistent and reliable network time distribution within substations, between substations, and across wide geographic areas.
The following table lists the configuration values defined by the IEEE 1588 Power Profile and the values that the switch uses for each PTP profile mode.
PTP Field |
Switch Configuration Value |
|
---|---|---|
Power Profile Mode |
Default Profile Mode |
|
Message transmission | Access ports: Untagged Layer 2 packets. Trunk ports: PTP packets are tagged with the PTP VLAN. If the PTP VLAN is not configured, packets go untagged over the native VLAN. | Layer 3 packets. By default, 802.1q tagging is disabled. |
MAC address– Nonpeer delay messages | 01-00-5e-00-01-81. | Default profile uses L3 transport multicast address 224.0.1.129 for all PTP messages. Equivalent mac address is 01-00-5e-00-01-81. |
MAC address– Peer delay messages | 01-80-C2-00-00-0E. | Not applicable to this mode. |
Domain number | 0. | 0. |
Path delay calculation | Peer-to-peer transparent clocks using the peer_delay mechanism. | End-to-end transparent clocks using the delay_request mechanism. |
BMCA | Enabled. | Enabled. |
Clock type | Two-step. | Two-step. |
Time scale | Epoch. | Epoch. |
Grandmaster ID and local time determination | PTP-specific TLV to indicate Grandmaster ID. | PTP-specific type, length, and value to indicate Grandmaster ID. |
Time accuracy over network hops | Over 16 hops, end device synchronization accuracy is within 1 usec (1 microsecond). | Not applicable in this mode. |
PTP Profile Comparison
Profile |
Default (*) |
Power Profile-2011 |
Power Profile-2017 |
|||
---|---|---|---|---|---|---|
Standard |
IEEE1588 v2 (J.3) |
IEEE C37.238-2011 |
IEEE C37.238-2017 |
|||
Mode |
Boundary | End-to-End transparent | Boundary | Peer-to-Peer transparent | Peer-to-Peer transparent | |
Path Delay |
Delay req/res | Delay req/res | Peer delay req/res | Peer delay req/res | Peer delay req/res | |
Non-PTP device allowed in PTP domain |
Yes | Yes | No | No | No | |
Transport |
UDP over IP (multicast) |
L2 Multicast |
L2 Multicast |
* Delay Request-Response Default PTP profile (as defined in IEEE1588 J.3).
Tagging Behavior of PTP Packets
The following table describes the switch tagging behavior in Power Profile and Default Profile modes.
Switch Port Mode |
Configuration |
Power Profile Mode |
Default Profile Mode |
||
---|---|---|---|---|---|
Behavior |
Priority |
Behavior |
Priority |
||
Trunk Port | vlan dot1q tag native enabled | Switch tags packets | 7 | Switch tags packets | 7 |
Trunk Port | vlan dot1q tag native disabled | PTP software tags packets | 4 | Untagged | None |
Access Port | N/A | Untagged | None | Untagged | None |
Configurable Boundary Clock Synchronization Algorithm
You can configure the BC synchronization algorithm to accommodate various PTP use cases, depending on whether you need to prioritize filtering of input time errors or faster convergence. A PTP algorithm that filters packet delay variation (PDV) converges more slowly than a PTP algorithm that does not.
By default, the BC uses a linear feedback controller (that is, a servo) to set the BC's time output to the next clock. The linear servo provides a small amount of PDV filtering and converges in an average amount of time. For improved convergence time, BCs can use the TC feedforward algorithm to measure the delay added by the network elements forwarding plane (the disturbance) and use that measured delay to control the time output.
While the feedforward BC dramatically speeds up the boundary clock, the feedforward BC does not filter any PDV. The adaptive PDV filter provides high-quality time synchronization in the presence of PDV over wireless access points (APs) and enterprise switches that do not support PTP and that add significant PDV.
Three options are available for BC synchronization (all are compliant with IEEE 1588-2008):
-
Feedforward: For very fast and accurate convergence; no PDV filtering.
-
Adaptive: Filters as much PDV as possible, given a set of assumptions about the PDV characteristics, the hardware configuration, and the environmental conditions.
Note
With the adaptive filter, the switch does not meet the time performance requirements specified in ITU-T G.8261.
-
Linear: Provides simple linear filtering (the default).
Adaptive mode (ptp transfer filter adaptive) is not available in Power Profile mode.
NTP to PTP Time Conversion
NTP to PTP Time Conversion allows you to use Network Time Protocol (NTP) as a time source for PTP. Customers who use PTP for precise synchronization within a site can use NTP across sites, where precise synchronization is not required.
NTP is the traditional method of synchronizing clocks across packet-based networks. NTP uses a two-way time transfer mechanism, between a time source and an end device. NTP is capable of synchronizing a device within a few 100 milliseconds across the Internet, and within a few milliseconds in a tightly controlled LAN. The ability to use NTP as a time source for PTP allows customers to correlate data generated in their PTP network with data in their enterprise data centers running NTP.
The following figure shows an example of an industrial network based on the Industrial Automation and Control System Reference Model. The enterprise zone and demilitarized zone run NTP, and the manufacturing zone and cell/area zone run PTP with NTP as the time source. The switch with the NTP to PTP conversion feature can be either the Layer 2 Switch or the Distribution Switch in the Cell/Area Zone.
Note |
The NTP to PTP feature supports the Default E2E Profile and Power Profile. |
Clock Manager
The clock manager is the component in the Cisco NTP to PTP software architecture that tracks the various time services and selects the clock that actively provides time. The clock manager notifies the time services of important changes, such as state changes, leap seconds, or daylight saving time.
The clock manager selects the NTP or manually set clock first, followed by PTP and the real-time clock if NTP is not active. The following table shows the results of the clock selection process.
NTP (Active) or Manually Set | PTP (Active) | Real-Time Clock | Selected Output |
---|---|---|---|
True | Don’t care | Don’t care | NTP or Manually Set |
False | True | Don’t care | PTP |
False | False | True | Real-Time Clock |
In general, the clock manager ensures that the time displayed in the Cisco IOS commands show ptp clock and show clock match. The show clock command always follows this priority, but there are two corner cases where the show ptp clock time may differ:
-
The switch is either a TC or a BC, and there is no other active reference on the network. To preserve backwards compatibility, the TC and BC never take their time from the clock manager, only from the network PTP GMC. If there is no active PTP GMC, then the time displayed in the show clock and the show ptp clock command output may differ.
-
The switch is a synchronizing TC, a BC with a subordinate port, or a GMC-BC with subordinate port, and the time provided by the PTP GMC does not match the time provided by NTP or the user (that is, manually set). In this case, the PTP clock must forward the time from the PTP GMC. If the PTP clock does not follow the PTP GMC, then the PTP network ends up with two different time bases, which would break any control loops or sequence of event applications using PTP.
The following table shows how the Cisco IOS and PTP clocks behave given the various configurations. Most of the time, the two clocks match. Occasionally, the two clocks are different; those configurations are highlighted in the table.
IOS Clock Configuration | PTP Clock Configuration | IOS Clock Source | PTP Clock Source |
---|---|---|---|
Calendar |
PTP BC, E2E TC, or GMC-BC in BC Mode |
PTP |
PTP |
Manual | PTP BC, E2E TC, or GMC-BC in BC Mode | Manual | PTP |
NTP | PTP BC, E2E TC, or GMC-BC in BC Mode | NTP | PTP |
Calendar | GMC-BC in GM Mode | Calendar | Calendar |
Manual | GMC-BC in GM Mode | Manual | Manual |
NTP | GMC-BC in GM Mode | NTP | NTP |
GMC Block
GMC Block protects an existing network from any rogue GMC that might try to synchronize with the devices inside the network. This feature is supported for all PTP clock modes except Forward mode. After the feature is enabled on an interface, only the egress Announce, Sync, and Followup PTP packets are allowed and all ingress Announce, Sync, and Followup packets are dropped on this interface. This prevents the port state transition to time recipient.
Information about a rogue GMC is retrieved from the packets before dropping them. However, egress PTP packets are still allowed from this interface, so it can act as a GMC. To identify the rogue device, details such as IP address and clock ID are stored and displayed for the interface. Two Syslog messages are also generated to notify the presence and clearance of rogue devices.
You can configure PTP gmc-block on multiple ports, if you suspect multiple foreign networks are connected to your existing system. Per-port Syslog messages are displayed after an interval of 30 seconds of receiving rogue packets and after 180 -240 seconds when packets stop coming. Relay minor alarms and SNMP traps are also generated to notify of the presence of foreign rogue devices.
Packet Flow with GMC Block
The following figure shows an example of a PTP network topology with the GMC Block feature configured on an interface.
PTP packets originate in the GMC of the foreign network in an attempt to sync with the existing network. When the PTP packets reach the port configured with GMC Block, the packets are dropped after the system retrieves the required information from them.
Because packets from the foreign network are restricted, the system syncs with the local GMC present in the existing system. PTP packets originated on the port configured with GMC Block are still allowed to egress from this interface, which allows devices in the existing network to be GMC.
Guidelines and Limitations
This section lists the guidelines and limitations for the Cisco Catalyst IE9300 Rugged Series Switch family when using PTP.
General PTP Guidelines
-
The Cisco PTP implementation supports only the two-step clock and not the one-step clock.
-
Cisco PTP supports multicast PTP messages only.
-
Cisco PTP supports only PTP version2.
-
Power Profile-2017 supports only transparent clock mode.
PTP Mode and Profile
-
The switch and the grandmaster clock must be in the same PTP domain.
-
When Power Profile mode is enabled, the switch drops the PTP announce messages that do not include these two Types, Length, Value (TLV) message extensions: Organization_extension and Alternate_timescale.
If the grandmaster clock is not compliant with PTP and sends announce messages without these TLVs, configure the switch to process the announce message by entering the following command:
ptp clock boundary domain 1 profile power allow-without-tlv
-
When the switch is in Power Profile mode, only the peer_delay mechanism is supported.
To enable power profile boundary mode and associate interfaces using the clock-port suboption, enter the following command:
ptp clock boundary domain 1 profile power clock-port 1 transport ethernet multicast interface gi1/0/1
-
To disable power profile transparent mode, enter the following command, which returns the switch to forward mode.
no ptp clock transparent domain x profile power
-
To enable the E2E transparent clock, use the following command:
ptp clock transparent domain x profile default
- In Default Profile mode, only the delay_request mechanism is supported.
To enable default profile boundary clock mode and interfaces associated with clock-port suboption, enter the following command:
ptp clock boundary domain 1 profile default clock-port 1 transport ipv4 multicast interface gi1/0/1
Packet Format
-
The packet format for PTP messages can be 802.1q tagged packets or untagged packets.
-
The switch does not support 802.1q QinQ tunneling of PTP packets.
-
In Power Profile mode:
-
When the PTP interface is configured as an access port, PTP messages are sent as untagged, Layer 2 packets.
-
When the PTP interface is configured as a trunk port, two cases are possible:
-
When native VLAN is enabled on the interface, PTP packets go untagged over the native VLAN.
-
When PTP VLAN is configured under the clock-port, PTP packets are tagged with the PTP VLAN configured.
-
-
-
Time recipient IEDs must support tagged and untagged packets.
-
When PTP packets are sent on the native VLAN in E2E Transparent Clock Mode, they are sent as untagged packets. To configure the switch to send them as tagged packets, enter the global vlan dot1q tag native command.
NTP to PTP Conversion
The NTP to PTP feature supports the Default E2E Profile and Power Profile.
PTP Interaction with Other Features
-
The Cisco Catalyst IE9300 Rugged Series Switch supports PTP over Parallel Redundancy Protocol (PRP) beginning with the Cisco IOS XE Cupertino 17.9.1 release; see the chapter "PTP over PRP" in the Redundancy Protocol Configuration Guide, Cisco Catalyst IE9300 Rugged Series Switches on cisco.com.
-
The Cisco Catalyst IE9300 Rugged Series Switch does not support PTP over Port Channels.
-
The Cisco Catalyst IE9300 Rugged Series Switch does not support PTP over horizontal stacking.
-
The Cisco Catalyst IE9300 Rugged Series Switch does not support PTP over Cisco Resilient Ethernet Protocol (REP).
-
The following PTP clock modes only operate on a single VLAN:
-
e2etransparent
-
p2ptransparent
-
Default Settings
-
PTP is enabled on the switch by default.
-
By default, the switch uses configuration values defined in the Default Profile (Default Profile mode is enabled).
-
The switch default PTP clock mode is E2E Transparent Clock Mode.
-
The default BC synchronization algorithm is linear filter.