Information About IEEE 1588v2 PTP
IEEE 1588v2 PTP is a packet-based two-way message exchange protocol for synchronizing a local clock with a primary reference clock or a grand master clock in hierarchical master-slave architecture. This synchronization is achieved through packets that are transmitted and received in a session between a master clock and a slave clock. IEEE 1588v2 PTP supports system-wide synchronization accuracy in the sub-microsecond range with little use of network and local clock-computing resources.
The following sections describe the terminologies used for better understanding of the IEEE 1588v2 PTP.
PTP Clocks
PTP employs a hierarchy of clock types to ensure that precise timing and synchronization is maintained between the source and the numerous PTP clients that are distributed throughout the network. A logical grouping of PTP clocks that synchronize with each other using the PTP protocol, but are not necessarily synchronized to the PTP clocks in another domain, is called a PTP domain.
The three PTP clock types are Ordinary clock, Boundary clock, and Transparent clock.
- Ordinary clock--This clock type has a single PTP port in a domain, and maintains the timescale used in the domain. It may serve as a source of time, that is, be a master, or may synchronize to another clock by being a slave. It provides time to an application or to an end device.
- Boundary clock--This clock type has multiple PTP ports in a domain, and maintains the timescale used in the domain. It may serve as a source of time, that is, be a master, or may synchronize to another clock by being a slave. A boundary clock that is a slave has a single slave port, and transfers timing from that port to the master p orts.
- Transparent clock--This clock type is a device that measures the time taken for a PTP event message to pass through the device, and provides this information to the clocks receiving this PTP event message.
Table 15-1 shows the 1588v2 PTP support matrix on a Cisco ASR1000 platform.
Table 13-1 1588v2 PTP Support Matrix on a Cisco ASR1000 platform
|
|
|
|
|
ASR1002X |
Yes |
Yes |
No |
No |
Components of a PTP-enabled Network
The three key components of a PTP-enabled data network are grand master, PTP client, and PTP-enabled router acting as a Boundary clock.
- Grand Master --An IEEE1588v2 PTP network needs a grand master to provide a precise time source. The most economical way of obtaining the precise time source for the grand master is through a Global Positioning System (GPS) because it provides +/- 100 nanosecond (ns) accuracy. First, the PTP grand master’s built-in GPS receiver converts the GPS timing information to PTP time information, which is typically Coordinated Universal Time (UTC), and then delivers the UTC time to all the PTP clients.
- PTP client --A PTP client has to be installed on servers, network-monitoring and performance-analysis devices, or other devices that want to use the precise timing information provided by PTP, and it’s mostly an ordinary clock. The two kinds of PTP clients are pure software PTP clients and hardware-assistant PTP clients.
- PTP boundary clock --Any router that is between a PTP master and PTP slave can act as a PTP boundary clock router. It has two interfaces, one facing the PTP master and another facing the PTP slave. The boundary clock router acts as a slave on the interface facing the PTP master router, and acts as a master on the interface facing the PTP slave router. The PTP boundary clock router is deployed to minimize timing delay in cases where the distance between PTP master router and the PTP slave router is more.
Note Intermediary nodes between PTP master and slave should be a PTP-enabled or transparent clock node.
Figure 13-1 shows the functions of a PTP Enabled device.
Figure 13-1 Functions of a PTP-Enabled Device
Clock-Synchronization Process
Clock synchronization is achieved through a series of messages exchanged between the master clock and the slave clock as shown in Figure 13-2.
Figure 13-2 Clock-Synchronization Process
After the master-slave clock hierarchy is established, the clock synchronization process starts. The message exchange occurs in this sequence:
1. The master clock sends a Sync message. The time at which the Sync message leaves the master is time-stamped as t1.
2. The slave clock receives the Sync message and is time-stamped as t2..
3. The slave sends the Delay_Req message, which is time-stamped as t3 when it leaves the slave, and as t4 when the master receives it.
4. The master responds with a Delay_Resp message that contains the time stamp t4.
The clock offset is the difference between the master clock and the slave clock, and is calculated as follows:
Offset = t2 - t1 - meanPathDelay
IEEE1588 assumes that the path delay between the master clock and the slave clock is symmetrical, and hence, the mean path delay is calculated as follows:
meanPathDelay = ((t2 - t1) + (t4 - t3))/2
PTP Messages
All PTP communication is performed through message exchange. The two sets of messages defined by IEEE1588v2 are General messages and Event messages.
- General messages --These messages do not require accurate time stamps, and are classified as Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management, and Signaling.
- Event messages --These messages require accurate time stamping, and are classified as Sync, Delay_Req, Pdelay_Req, and Pdelay_Resp.
PTP Clocking Modes
The following are the PTP clocking modes supported on a Cisco ASR 1002-X Router:
- Unicast Mode --In unicast mode, the master sends the Sync or Delay_Resp messages to the slave on the unicast IP address of the slave, and the slave in turn sends the Delay_Req message to the master on the unicast IP address of the master.
- Unicast Negotiation Mode --In unicast negotiation mode, the master does not know of any slave until the slave sends a negotiation message to the master. The unicast negotiation mode is good for scalability purpose because one master can have multiple slaves.
PTP Accuracy
Accuracy is an important aspect of PTP implementation on an Ethernet port. For a packet network, Packet Delay Variation (PDV) is one of the key factors that impacts the accuracy of a PTP clock. The Cisco ASR 1002-X Router can handle the PDV of the network with its advanced hardware and software capabilities, such as hardware stamping and special high-priority queue for PTP packets. It can provide around 300 ns accuracy in a scalable deployment scenario.
The two methods used on the same topology to cross-check and verify the results are:
- One-pulse-per-second (1PPS) to verify the PTP slave.
- Maximum Time Interval Error (MTIE) and Time Deviation (TDEV) to verify the PDV.
The verification topology includes a grand master with a GPS receiver, a Cisco ASR 1002-X Router, PTP hardware slave clocks with 1PPS output, and a test equipment for the measurement.
Figure 13-3 1PPS Accuracy Measurement
Figure 13-4 shows the PPS accuracy, with time of day measured using the test equipment as per the topology shown in Figure 13-3. The average PPS accuracy value found is 250 ns.
Figure 13-4 Graph Showing PPS Accuracy
Figure 13-5 shows a topology that includes a grand master with a GPS receiver, a Cisco ASR 1002-X Router, PTP hardware slave clocks, and a test equipment for the MTIE and TDEV measurement.
Figure 13-5 MTIE and TDEV measurement
Figure 13-6 shows a graph with the MTIE and TDEV measurements to verify the PDV.
Figure 13-6 Graph to show MTIE and TDEV Measurement
IEEE 1588v2 PTP Support
IEEE 1588v2 PTP supports these features on a Cisco ASR1002-X Router:
- Two-step Ordinary clock and Boundary clock.
- Hardware-assistant PTP implementation to provide sub-300 ns accuracy.
- PTP operation on all physical onboard Gigabit Ethernet interfaces.
- Supports built-in Gigabit Ethernet links in two-step clock mode.
Configuring IEEE 1588v2 PTP
You can configure IEEE 1588v2 PTP features on the Cisco ASR 1002-X Router by performing the following procedures:
Configuring Input or Output Network Clocking
We recommend that you configure a stable input clock source from a GPS device before configuring PTP master. The GPS device acts as a PTP grand master, and the BITS or 10-MHz port of a Cisco ASR 1002-X Router can be used to input or output the network clock. Perform these tasks to configure network clocking on a Cisco ASR 1002-X Router:
See the module Synchronous Ethernet Support for more information on network clocking.
Configuring an Ordinary Clock
You can configure a Cisco ASR 1002-X Router in Ordinary clock mode as either master or slave.
Figure 13-7 Ordinary Clock Scenario with a GPS Device as Grand Master
Perform these tasks to configure an ordinary clock as either master or slave:
Configuring an Ordinary Clock as PTP Master
This section describes how to configure an ordinary clock as PTP master.
SUMMARY STEPS
1. configure terminal
2. ptp clock ordinary domain domain_number
3. clock-port name master
4. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
5. clock destination ip-address
6. sync interval interval
7. end
DETAILED STEPS
|
|
|
Step 1 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 2 |
ptp clock ordinary domain domain_number
Router(config)# ptp clock ordinary domain 0 |
Creates a PTP clock and specifies the clock mode. |
Step 3 |
clock-port name master
Router(config-ptp-clk)# clock-port MASTER master |
Specifies the clocking mode of a PTP port and enters the clock port configuration mode. |
Step 4 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchange negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 5 |
clock destination ip-address
Router(config-ptp-port)# clock destination 20.20.20.20 |
Specifies the IP address of a PTP clock destination. If the clock port is set to master mode with unicast negotiation, you need not use this command because the device uses negotiation to determine the IP address of PTP slave devices. |
Step 6 |
sync interval interval
Router(config-ptp-port)# sync interval -4 |
(Optional) Specifies the interval used to send PTP synchronization messages. The default value is -5. |
Step 7 |
end
Router(config-ptp-port)# end |
Exits global configuration mode. |
Examples
The following example shows how to configure an ordinary clock as PTP master:
Router# configure terminal
Router(config)# ptp clock ordinary domain 0
Router(config-ptp-clk)# clock-port MASTER master
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation
Router(config-ptp-port)# clock destination 20.20.20.20
Router(config-ptp-port)# Sync interval -4
Router(config-ptp-port)# end
Configuring an Ordinary Clock as PTP Slave
This section describes how to configure Ordinary Clock as PTP slave.
SUMMARY STEPS
1. configure terminal
2. ptp clock ordinary domain domain_number
3. clock-port name slave
4. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
5. clock source ip-address
6. sync interval interval
7. end
DETAILED STEPS
|
|
|
Step 1 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 2 |
ptp clock ordinary domain domain_number
Router(config)# ptp clock ordinary domain 0 |
Creates a PTP clock and specifies the clock mode. |
Step 3 |
clock-port name slave
Router(config-ptp-clk)# clock-port SLAVE slave |
Specifies the clocking mode of a PTP port and enters the clock port configuration mode. |
Step 4 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback22 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchanges negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 5 |
clock source ip-address
Router(config-ptp-port)# clock source 10.10.10.10 |
Specifies the source IP address of a PTP master clock. |
Step 6 |
end
Router(config-ptp-port)# end |
Exits global configuration mode. |
Examples
The following example shows how to configure an ordinary clock as PTP slave:
Router# configure terminal
Router(config)# ptp clock ordinary domain 0
Router(config-ptp-clk)# clock-port SLAVE master
Router(config-ptp-port)# transport ipv4 unicast interface Loopback22 negotiation
Router(config-ptp-port)# clock source 10.10.10.10
Router(config-ptp-port)# end
Configuring a Boundary Clock
You can configure the PTP master and PTP slave in a boundary clock topology as shown in Figure 13-8 in the same way that you configure a master and slave in ordinary clock mode. This section describes how to configure a Cisco ASR 1002-X Router in boundary clock mode.
Note Currently, boundary clock supports only unicast negotiation mode.
Figure 13-8 PTP Boundary Clock Scenario
SUMMARY STEPS
1. configure terminal
2. ptp clock boundary domain domain_number
3. clock-port name slave
4. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
5. clock source ip-address
6. exit
7. clock-port name master
8. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
9. end
DETAILED STEPS
|
|
|
Step 1 |
configure terminal
Router# configure terminal |
Enters the global configuration mode. |
Step 2 |
ptp clock boundary domain domain_number
Router(config)# ptp clock boundary domain 0 |
Creates a PTP clock and specifies the clock mode. |
Step 3 |
clock-port name slave
Router(config-ptp-clk)# clock-port SLAVE slave |
Specifies the clocking mode of a PTP port and enters the clock port configuration mode. |
Step 4 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchange negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 5 |
clock source ip-address
Router(config-ptp-port)# clock source 10.10.10.10 |
Specifies the source IP address of a PTP master clock. Note You can specify only one master clock IP address. Priority-based clock source selection is not supported. |
Step 6 |
exit
Router(config-ptp-port)# exit |
Exits clock port configuration mode. |
Step 7 |
clock-port name master
Router(config-ptp-clk)# clock-port MASTER master |
Specifies the clocking mode of a PTP port and enters clock port configuration mode. |
Step 8 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback10 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchange negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 9 |
end
Router(config-ptp-port)# end |
Exits global configuration mode. |
Examples
The following example shows how to configure a boundary clock:
Router# configure terminal
Router(config)# ptp clock ordinary domain 0
Router(config-ptp-clk)# clock-port SLAVE slave
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation
Router(config-ptp-port)# clock source 10.10.10.10
Router(config-ptp-port)# exit
Router(config-ptp-clk)# clock-port MASTER master
Router(config-ptp-port)# transport ipv4 unicast interface Loopback10 negotiation
Router(config-ptp-port)# end
Configuring Time of Day
A Cisco ASR 1002-X Router can exchange time of day and 1PPS input with an external device, such as a GPS receiver, using the time of day and 1PPS input and output interfaces on the router.
Perform these tasks to configure Time of Day (ToD) messages on the Cisco ASR 1002-X Router:
Configuring Input Time-of-Day Messages
This section describes how to configure input time-of-day messages.
Note You can configure time-of-day input only in a PTP master clock port.
SUMMARY STEPS
1. configure terminal
2. ptp clock ordinary domain domain_number
3. tod{R0 | R1} {cisco | ntp}
4. input [1pps] {R0|R1}
5. clock-port name master
6. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
7. clock destination ip-address
8. end
DETAILED STEPS
|
|
|
Step 1 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 2 |
ptp clock ordinary domain domain_number
Router(config)# ptp clock ordinary domain 0 |
Creates a PTP clock and specifies the clock mode. |
Step 3 |
tod {R0 | R1} {cisco | ntp}
Router(config-ptp-clk)# tod R0 ntp |
Configures the time-of-day message format used by the 1PPS or BITS interface. Note Currently, only R0 1PPS port is supported; R1 is not valid. Also, only ntp mode is supported, not cisco mode. |
Step 4 |
input [1pps] { R0 | R1 }
Router(config-ptp-clk)# input 1pps R0 |
Enables PTP input clocking using a 1.544-Mhz, 2.048-Mhz, or 10-Mhz timing interface, or phase using the 1PPS or RS-422 interface. Note Currently, only R0 1PPS port is supported; R1 is not valid. |
Step 5 |
clock-port name master
Router(config-ptp-clk)# clock-port MASTER master |
Specifies the clocking mode of a PTP port and enters the clock port configuration mode. |
Step 6 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchange negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 7 |
clock destination ip-address
Router(config-ptp-port)# clock destination 20.20.20.20 |
Specifies the IP address of a PTP clock destination. If the clock port is set to master mode with unicast negotiation, you need not use this command because the device uses negotiation to determine the IP address of PTP slave devices. |
Step 8 |
end
Router(config-ptp-port)# end |
Exits global configuration mode. |
Examples
The following example shows how to configure input time-of-day messages:
Router# configure terminal
Router(config)# ptp clock ordinary domain 0
Router(config-ptp-clk)# tod R0 ntp
Router(config-ptp-clk)# input 1pps R0
Router(config-ptp-clk)# clock-port MASTER master
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation
Router(config-ptp-port)# clock destination 20.20.20.20
Router(config-ptp-port)# end
Configuring Output Time-of-Day Messages
This section describes how to configure output time-of-day messages.
Note You can configure ToD output only on PTP slave clock ports.
SUMMARY STEPS
1. configure terminal
2. ptp clock ordinary domain domain_number
3. tod{R0 | R1} {cisco | ntp}
4. output [1pps] {R0|R1}
5. clock-port name slave
6. transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number {negotiation}
7. clock source ip-address
8. end
DETAILED STEPS
|
|
|
Step 1 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 2 |
ptp clock ordinary domain domain_number
Router(config)# ptp clock ordinary domain 0 |
Creates a PTP clock and specifies the clock mode. |
Step 3 |
tod {R0 | R1} {cisco | ntp}
Router(config-ptp-clk)# tod R0 ntp |
Configures the time-of-day message format used by the 1PPS or BITS interface. Note Currently, only R0 1PPS port is supported; R1 is not valid. Also, only ntp mode is supported, not cisco mode. |
Step 4 |
output [1pps] { R0 | R1 }
Router(config-ptp-clk)# output R0 ntp |
Enables output of time-of-day messages using a 1PPS interface. Note Currently, only R0 1PPS port is supported; R1 is not valid. |
Step 5 |
clock-port name slave
Router(config-ptp-clk)# clock-port SLAVE slave |
Specifies the clocking mode of a PTP port and enters the clock port configuration mode. |
Step 6 |
transport ipv4 unicast interface {GigabitEthernet | Loopback} interface-number [negotiation]
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation |
Specifies the IP version, transmission mode, and interface that a PTP clock port uses to exchange timing packets. The negotiation keyword specifies the unicast negotiation mode where the slave and master clock exchange negotiation messages before establishing a relationship. Note Only Loopback interface type is supported. |
Step 7 |
clock source ip-address
Router(config-ptp-port)# clock source 10.10.10.10 |
Specifies the source IP address of a PTP master clock. Note You can specify only 1 master clock IP address. Priority-based clock source selection is not supported. |
Step 8 |
end
Router(config-ptp-port)# end |
Exits global configuration mode. |
Examples
The following example shows how to configure output time-of-day messages:
Router# configure terminal
Router(config)# ptp clock ordinary domain 0
Router(config-ptp-clk)# tod R0 ntp
Router(config-ptp-clk)# output 1pps R0
Router(config-ptp-clk)# clock-port MASTER master
Router(config-ptp-port)# transport ipv4 unicast interface Loopback11 negotiation
Router(config-ptp-port)# clock source 10.10.10.10
Router(config-ptp-port)# end
Configuration Examples for IEEE 1588v2 PTP on a Cisco ASR1002-X Router
This example shows how to configure IEEE 1588v2 PTP on a Cisco ASR1002-X Router:
Unicast Negotiation Mode
ptp clock ordinary domain 1
transport ipv4 unicast interface loopback 0 negotiation
ptp clock ordinary domain 1
transport ipv4 unicast interface loopback 0 negotiation
ptp clock boundary domain 1
transport ipv4 unicast interface loopback 0 negotiation
transport ipv4 unicast interface loopback 1 negotiation
Unicast Mode
ptp clock ordinary domain 1
transport ipv4 unicast interface loopback 0
clock destination 20.1.1.1
ptp clock ordinary domain 1
transport ipv4 unicast interface loopback 0
Verifying the IEEE 1588v2 PTP Configuration
Use the following commands to verify the IEEE 1588v2 PTP configuration:
- Use the show ptp clock running domain 0 command to display the output:
Router# show ptp clock running domain 0
PTP Ordinary Clock [Domain 0]
State Ports Pkts sent Pkts rcvd Redundancy Mode
FREQ_LOCKED 1 31522149 10401171 Hot standby
Name Tx Mode Role Transport State Sessions Port Addr
MASTER unicast master Lo1 Master 1 -
MASTER [Lo1] [Sessions 1]
Peer addr Pkts in Pkts out In Errs Out Errs
11.11.11.11 10401171 31522149 0 0
PTP Ordinary Clock [Domain 0]
State Ports Pkts sent Pkts rcvd Redundancy Mode
PHASE_ALIGNED 1 4532802 13357682 Track one
Name Tx Mode Role Transport State Sessions Port Addr
SLAVE unicast slave Lo20 Slave 1 10.10.10.10
SLAVE [Lo20] [Sessions 1]
Peer addr Pkts in Pkts out In Errs Out Errs
10.10.10.10 13357682 4532802 0 0
- Use the show platform software ptp tod command to check the time-of-day information:
- Use the show platform ptp tod all command to check the time-of- day state:
Router# show platform ptp tod all
--------------------------------
--------------------------------
--------------------------------
--------------------------------
--------------------------------
--------------------------------
Feature Information for IEEE 1588v2 PTP Support
Table 13-2 lists the features in this module and provides links to specific configuration information.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note Table 13-2 lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Table 13-2 Feature Information for Network Synchronization Support
|
|
|
IEEE 1588v2 PTP Support |
Cisco IOS XE 3.13S |
In Cisco IOS XE Release 3.13S, this feature was introduced on the Cisco ASR 1002-X Routers. |