Configuring PTP

This chapter describes how to configure the Precision Time Protocol (PTP) on Cisco NX-OS devices.

This chapter includes the following sections:

Finding Feature Information

Your software release might not support all the features documented in this module. For the latest caveats and feature information, see the Bug Search Tool at https://tools.cisco.com/bugsearch/ and the release notes for your software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "New and Changed Information"chapter or the Feature History table in this chapter.

About PTP

PTP is a time synchronization protocol for nodes distributed across a network. Its hardware timestamp feature provides greater accuracy than other time synchronization protocols such as the Network Time Protocol (NTP).

Beginning with Cisco NX-OS Release 7.3(0)D1(1), PTP also implements IEEE 802.1AS to support Audio Video Bridging (AVB) on Nexus 7700 platform for F3 line cards. For details on AVB configuration, see "Cisco Nexus 7000 Audio Video Bridging Configuration Guide".

A PTP system can consist of a combination of PTP and non-PTP devices. PTP devices include ordinary clocks, boundary clocks, and transparent clocks. Non-PTP devices include ordinary network switches, routers, and other infrastructure devices.

PTP is a distributed protocol that specifies how real-time PTP clocks in the system synchronize with each other. These clocks are organized into a master-slave synchronization hierarchy with the grandmaster clock, which is the clock at the top of the hierarchy, determining the reference time for the entire system. Synchronization is achieved by exchanging PTP timing messages, with the members using the timing information to adjust their clocks to the time of their master in the hierarchy. PTP operates within a logical scope called a PTP domain.

PTP Device Types

The following clocks are common PTP devices:

Ordinary clock

Communicates with the network based on a single physical port, similar to an end host. An ordinary clock can function as a grandmaster clock.

Boundary clock

Typically has several physical ports, with each port behaving like a port of an ordinary clock. However, each port shares the local clock, and the clock data sets are common to all ports. Each port decides its individual state, either master (synchronizing other ports connected to it) or slave (synchronizing to a downstream port), based on the best clock available to it through all of the other ports on the boundary clock. Messages related to synchronization and establishing the master-slave hierarchy terminate in the protocol engine of a boundary clock and are not forwarded.

Transparent clock

Forwards all PTP messages like an ordinary switch or router but measures the residence time of a packet in the switch (the time that the packet takes to traverse the transparent clock) and in some cases the link delay of the ingress port for the packet. The ports have no state because the transparent clock does not need to synchronize to the grandmaster clock.

There are two kinds of transparent clocks:

End-to-end transparent clock

Measures the residence time of a PTP message and accumulates the times in the correction field of the PTP message or an associated follow-up message.

Peer-to-peer transparent clock

Measures the residence time of a PTP message and computes the link delay between each port and a similarly equipped port on another node that shares the link. For a packet, this incoming link delay is added to the residence time in the correction field of the PTP message or an associated follow-up message.


Note

Beginning with Cisco NX-OS Release 7.3(0)D1(1) release, the generalized-PTP clock mode is introduced to support AVB feature.



Note

PTP operates only in boundary clock mode. Cisco recommends deployment of a Grand Master Clock (10 MHz) upstream, with servers containing clocks requiring synchronization connected to the switch.

End-to-end transparent clock and peer-to-peer transparent clock modes are not supported.


PTP Process

The PTP process consists of two phases: establishing the master-slave hierarchy and synchronizing the clocks.

Within a PTP domain, each port of an ordinary or boundary clock follows this process to determine its state:

  • Examines the contents of all received announce messages (issued by ports in the master state)

  • Compares the data sets of the foreign master (in the announce message) and the local clock for priority, clock class, accuracy, and so on

  • Determines its own state as either master or slave

After the master-slave hierarchy has been established, the clocks are synchronized as follows:

  • The master sends a synchronization message to the slave and notes the time it was sent.

  • The slave receives the synchronization message and notes the time that it was received. For every synchronization message, there is a follow-up message. Hence, the number of sync messages should be equal to the number of follow-up messages.

  • The slave sends a delay-request message to the master and notes the time it was sent.

  • The master receives the delay-request message and notes the time it was received.

  • The master sends a delay-response message to the slave. The number of delay request messages should be equal to the number of delay response messages.

  • The slave uses these timestamps to adjust its clock to the time of its master.

Pong

The network-monitoring tool Pong leverages the PTP’s time synchronization infrastructure to diagnose the health of the network. Pong measures port-to-port delays and is similar to the network-monitoring utility Ping but provides for a greater depth of network diagnostics. Make sure to increase the interface MTU when you attempt pong to a destination that is several hops away.

Clock Manager

Clocks are resources that need to be shared across different processes and across different VDCs. Multiple time synchronization protocols (such as NTP and PTP) might be running in the system, and multiple instances of the same protocol might be running in different VDCs. The clock manager allows you to specify the protocol and a VDC running that protocol to control the various clocks in the system. For information on configuring the clock manager, see the Cisco Nexus 7000 Series NX-OS Fundamentals Configuration Guide.

High Availability for PTP

Stateful restarts are supported for PTP. After a reboot or a supervisor switchover, the running configuration is applied. For more information on high availability, see the Cisco Nexus 7000 Series NX-OS High Availability and Redundancy Guide.

Virtualization Support

Cisco NX-OS supports multiple instances of PTP, one instance per virtual device context (VDC). By default, Cisco NX-OS places you in the default VDC unless you specifically configure another VDC. For more information about VDCs, see the Cisco Nexus 7000 Series NX-OS Virtual Device Context Configuration Guide.

Guidelines and Limitations for PTP

  • PTP operates only in boundary clock mode. and in gPTP mode to support AVB. The end-to-end transparent clock and peer-to-peer transparent clock modes are not supported.

  • Only one PTP process can control all of the port clocks through the clock manager.

  • PTP supports transport over User Datagram Protocol (UDP).

  • Transport over Ethernet is supported on AVB application.

  • PTP supports only multicast communication. Negotiated unicast communication is supported on AVB application.

  • PTP is limited to a single domain per network.

  • All management messages are forwarded on ports on which PTP is enabled. Handling management messages is not supported.

  • PTP-capable ports do not identify PTP packets and do not time-stamp or redirect those packets unless you enable PTP on those ports.

  • PTP can be enabled on F1, F2, F2e, F3, F4, M2, and M3 Series module ports.

  • PTP is not supported on the breakout ports, logical interfaces, sub interfaces, and FEX interfaces.

  • For F1 Series modules, PTP is not supported on the port if priority flow control is enabled. Similarly, priority flow control is not supported if PTP is enabled on the same port.

  • For F1 Series modules, Pong is not supported on the VDC if priority flow control is enabled on any of the ports in the same VDC. Similarly, priority flow control is not supported if Pong is enabled in the same VDC.

  • Beginning with Cisco NX-OS Release 6.1, PTP is supported in Layer 3 mode for F2, F2e, and M2 Series modules.

  • Beginning with Cisco NX-OS Release 6.2.6, PTP is supported in F3 Series modules.

  • PTP Encapsulation is supported starting from in Cisco Nexus 7.3.0. The default value is Layer 3.

  • PTP over FabricPath is not supported.

  • Starting from Cisco NX-OS Release 8.4(1) Pong is supported on M3 Series modules.

  • Starting from Cisco NX-OS Release 8.4(1), PTP can be enabled on F4-Series I/O modules.

Default Settings for PTP

The following table lists the default settings for PTP parameters.

Table 1. Default PTP Parameters
Parameters Default

PTP

Disabled

PTP version

2

PTP domain

0

PTP priority 1 value when advertising the clock

255

PTP priority 2 value when advertising the clock

255

PTP announce interval

1 log second

PTP announce timeout

3 announce intervals

PTP minimum delay request interval

0 log seconds

PTP VLAN

1

Configuring PTP

Configuring PTP Globally

You can enable or disable PTP globally on a device. You can also configure various PTP clock parameters to help determine which clock in the network has the highest priority to be selected as the grandmaster.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config) # [no] feature ptp

Enables or disables PTP on the device.

Note 

Enabling PTP on the switch does not enable PTP on each interface.

Step 3

switch(config) # [no] ptp source ip-address

Configures the source IP address for all PTP packets.

The ip-address can be in IPv4 or IPv6 format.

Step 4

(Optional) switch(config) # [no] ptp domain number

(Optional)

Configures the domain number to use for this clock. PTP domains allow you to use multiple independent PTP clocking subdomains on a single network.

The range for the number is from 0 to 128.

Step 5

(Optional) switch(config) # [no] ptp priority1 value

(Optional)

Configures the priority1 value to use when advertising this clock. This value overrides the default criteria (clock quality, clock class, and etc.) for best master clock selection. Lower values take precedence.

The range for the value is from 0 to 255.

Step 6

(Optional) switch(config) # [no] ptp priority2 value

(Optional)

Configures the priority2 value to use when advertising this clock. This value is used to decide between two devices that are otherwise equally matched in the default criteria. For example, you can use the priority2 value to give a specific switch priority over other identical switches.

The range for the value is from 0 to 255.

Step 7

(Optional) switch(config) # [no] ptp encapsulation {layer-2 | layer-3}

(Optional)

Configures the encapsulation that is to be used for PTP. In Layer 3 encapsulation, PTP packets are encapsulated with IP + UDP frame. In Layer 2 encapsulation, PTP packets are encapsulated within the Ethernet frame. The default PTP encapsulation is Layer-3; PTP mode is Boundary. Layer 2 encapsulation is supported only with AVB.

Step 8

(Optional) switch(config) # [no] ptp mode {boundary-clock | generalized-PTP | transparent-clock peer-to-peer}

(Optional)

Configures the PTP device mode. The default mode is boundary-clock. The generalized-PTP mode is used for AVB. The transparent-clock peer-to-peer mode is added for experimental purpose, not supported officially.

Step 9

(Optional) switch(config) # [no] ptp switchlatency-estimated value

(Optional)

Configures the maximum estimate switch latency value in nano-secs (ns). This value is used in AVB. The range is 0 - 2147483647. The default value is 5000.

Step 10

switch(config) # end

Exits global configuration mode and returns to Privileged EXEC mode.

Step 11

switch # clock protocol ptp vdc var-number

(Configured in the admin VDC.) Configures the local clock manager for PTP protocol. The range for the vdc number is 1 to 8.

Step 12

(Optional) switch # [no] show ptp clock foreign-masters record [interface ethernet slot/ port

(Optional)

Displays information about foreign masters.

Step 13

(Optional) switch # [no] show ptp delay summary

(Optional)
Displays link delay and residency delay information for all interfaces. It is used in AVB.
Step 14

(Optional) switch # [no] show ptp parent

(Optional)
Displays parent clock information.
Step 15

(Optional) switch # [no] show ptp time-property

(Optional)
Displays local clock time property information.
Step 16

(Optional) switch # [no] show ptp corrections

(Optional)

Displays the latest few corrections on this node.

Step 17

(Optional) switch # show ptp brief

(Optional)

Displays the PTP status.

Step 18

(Optional) switch # show ptp clock

(Optional)

Displays the properties of the local clock.

Step 19

(Optional) switch(config) # show ptp clock

(Optional)

Displays the properties of the local clock.

Example

This example shows how to configure PTP globally on the device, specify the source IP address for PTP communications, and configure a preference level for the clock:

switch# configure terminal
switch(config)# feature ptp
switch(config)# ptp source 10.10.10.1
switch(config)# ptp priority1 1
switch(config)# ptp priority2 1
switch# show ptp brief
PTP port status
-----------------------
Port State
------- --------------
switch(config)# show ptp clock
PTP Device Type: Boundary clock
Clock Identity : 0:22:55:ff:ff:79:a4:c1
Clock Domain: 0
Number of PTP ports: 0
Priority1 : 1
Priority2 : 1
Clock Quality:
Class : 248
Accuracy : 254
Offset (log variance) : 65535
Offset From Master : 0
Mean Path Delay : 0
Steps removed : 0
Local clock time:Sun Jul 3 14:13:24 2011
switch(config)#

Configuring PTP on an Interface

After you globally enable PTP, it is not enabled on all supported interfaces by default. You must enable PTP interfaces individually.

Before you begin

Make sure that you have globally enabled PTP on the switch and configured the source IP address for PTP communication.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config) # interface ethernet slot/port

Specifies the interface on which you are enabling PTP and enters the interface configuration mode.

Step 3

switch(config-if) # [no] ptp

Enables or disables PTP on an interface.

Step 4

(Optional) switch(config-if) # [no] ptp announce {interval log seconds | timeout count}

(Optional)

Configures the interval between PTP announce messages on an interface or the number of PTP intervals before a timeout occurs on an interface.

The range for the PTP announcement interval is from 0 to 4 seconds, and the range for the interval timeout is from 2 to 10.

Step 5

(Optional) switch(config-if) # [no] ptp delay request minimum interval log seconds

(Optional)

Configures the minimum interval allowed between PTP delay-request messages when the port is in the master state.

The range is from log(-6) to log(1) seconds. Where, log(-2) = 2 frames per second.

Step 6

(Optional) switch(config-if) # [no] ptp sync interval log seconds

(Optional)

Configures the interval between PTP synchronization messages on an interface.

Step 7

(Optional) switch(config-if) # [no] ptp vlan vlan-id

(Optional)

Specifies the VLAN for the interface where PTP is being enabled. You can only enable PTP on one VLAN on an interface.

The range is from 1 to 4094.

Step 8

(Optional) switch(config-if) # show ptp brief

(Optional)

Displays the PTP status.

Step 9

(Optional) switch(config-if) # show ptp port interface interface slot/port

(Optional)

Displays the status of the PTP port.

Step 10

(Optional) switch(config-if)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example shows how to configure PTP on an interface and configure the intervals for the announce, delay-request, and synchronization messages:

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ptp
switch(config-if)# ptp announce interval 3
switch(config-if)# ptp announce timeout 2
switch(config-if)# ptp delay-request minimum interval 4
switch(config-if)# ptp sync interval -1
switch(config-if)# show ptp brief
PTP port status
-----------------------
Port State
------- --------------
Eth2/1 Master
switch(config-if)# show ptp port interface ethernet 2/1
PTP Port Dataset: Eth2/1
Port identity: clock identity: 0:22:55:ff:ff:79:a4:c1
Port identity: port number: 1028
PTP version: 2
Port state: Master
Delay request interval(log mean): 4
Announce receipt time out: 2
Peer mean path delay: 0
Announce interval(log mean): 3
Sync interval(log mean): -1
Delay Mechanism: End to End
Peer delay request interval(log mean): 0
switch(config-if)#

Verifying the PTP Configuration

Use one of the following commands to verify the configuration:

Table 2. PTP Show Commands
Command Purpose
show ptp brief

Displays the PTP status.

show ptp clock

Displays the properties of the local clock, including clock identity.

show ptp clock foreign-masters-record

Displays the state of foreign masters known to the PTP process. For each foreign master, the output displays the clock identity, basic clock properties, and whether the clock is being used as a grandmaster.

show ptp corrections

Displays the last few PTP corrections.

show ptp parent

Displays the properties of the PTP parent.

show ptp port interface ethernet slot/port

Displays the status of the PTP port on the switch.

Configuration Examples for PTP

This example shows how to configure PTP globally on the device, specify the source IP address for PTP communications, and configure a preference level for the clock:

switch# config t
switch(config)# feature ptp
switch(config)# ptp source 10.10.10.1
switch(config)# ptp priority1 1
switch(config)# ptp priority2 1
switch(config)# show ptp brief
PTP port status
-----------------------
Port         State
-------  --------------
switch(config)# show ptp clock
PTP Device Type: Boundary clock
Clock Identity : 0:22:55:ff:fe:79:a4:c1
Clock Domain: 0
Number of PTP ports: 0
Priority1 : 1
Priority2 : 1
Clock Quality:
  Class : 248
  Accuracy : 254
  Offset (log variance) : 65535
Offset From Master : 0
Mean Path Delay : 0
Steps removed : 0
Local clock time:Sun Jul 3 14:13:24 2011

This example shows how to configure PTP on an interface and configure the intervals for the announce, delay-request, and synchronization messages:


switch# config t
switch(config)# interface ethernet 2/1
switch(config-if)# ptp
switch(config-if)# ptp announce interval 3
switch(config-if)# ptp announce timeout 2
switch(config-if)# ptp delay-request minimum interval 4
switch(config-if)# ptp sync interval -1
switch(config-if)# show ptp brief
PTP port status
-----------------------
Port     State
------- --------------
Eth2/1    Master
switch(config-if)# show ptp port interface ethernet 2/1
PTP Port Dataset: Eth2/1
Port identity: clock identity: 0:22:55:ff:fe:79:a4:c1
Port identity: port number: 1028
PTP version: 2
Port state: Master
Delay request interval(log mean): 4
Announce receipt time out: 2
Peer mean path delay: 0
Announce interval(log mean): 3
Sync interval(log mean): -1
Delay Mechanism: End to End
Peer delay request interval(log mean): 0

Related Documents

Related Topic

Document Title

PTP CLI commands

Cisco Nexus 7000 Series NX-OS System Management Command Reference

Pong

Cisco Nexus 7000 Series NX-OS Troubleshooting Guide

Clock manager

Cisco Nexus 7000 Series NX-OS Fundamentals Configuration Guide

VDCs

Cisco Nexus 7000 Series NX-OS Virtual Device Context Configuration Guide

Related Documents

Related Topic Document Title

PTP CLI commands

Cisco Nexus 7000 Series NX-OS System Management Command Reference

VDCs

Cisco Nexus 7000 Series NX-OS Virtual Device Context Configuration Guide

Pong

Cisco Nexus 7000 Series NX-OS Troubleshooting Guide

Clock manager

Cisco Nexus 7000 Series NX-OS Fundamentals Configuration Guide

Feature History for PTP

Your software release might not support all the features in this document. For the latest caveats and feature information, see the Bug Search Tool at https://tools.cisco.com/bugsearch/ and the release notes for your software release.

Table 3. Feature History for PTP

Feature Name

Releases

Feature Information

Pong

8.4(1)

Added Pong support for M3 Series modules.

PTP

8.4(1)

Added PTP support for F4-Series I/O modules.

PTP

7.3(0)D1(1)

Added support for AVB, 802.1AS, generalized-ptp mode, peer-delay-response mechanism, layer-2 encapsulation only for F3 line cards on Nexus 7700 chassis. For details, refer to "Cisco Nexus AVB configuration Guide".

PTP

6.2(6)

Added support in F3 Series Modules.

PTP

6.1(1)

Added PTP support in Layer 3 mode for F2, F2e, and M2 Series modules.

PTP

6.1(1)

Added support for M2 Series modules.

PTP

6.1(1)

Changed the PTP MAC format from FF:FF to FF:FE.

PTP

6.1(1)

Deprecated the vrf option from the ptp source command.

PTP

6.0(1)

Added PTP support on port-channel member ports.

PTP

6.0(1)

Added support for F2 Series modules.

PTP

5.2(1)

This feature was introduced.