| rfc9760v1.txt | rfc9760.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) D. Arnold | Internet Engineering Task Force (IETF) D. Arnold | |||
| Request for Comments: 9760 Meinberg-USA | Request for Comments: 9760 Meinberg-USA | |||
| Category: Standards Track H. Gerstung | Category: Standards Track H. Gerstung | |||
| ISSN: 2070-1721 Meinberg | ISSN: 2070-1721 Meinberg | |||
| March 2025 | May 2025 | |||
| Enterprise Profile for the Precision Time Protocol with Mixed Multicast | Enterprise Profile for the Precision Time Protocol with Mixed Multicast | |||
| and Unicast Messages | and Unicast Messages | |||
| Abstract | Abstract | |||
| This document describes a Precision Time Protocol (PTP) Profile (IEEE | This document describes a Precision Time Protocol (PTP) Profile (IEEE | |||
| Standard 1588-2019) for use in an IPv4 or IPv6 Enterprise information | Standard 1588-2019) for use in an IPv4 or IPv6 enterprise information | |||
| system environment. The PTP Profile uses the End-to-End delay | system environment. The PTP Profile uses the End-to-End delay | |||
| measurement mechanism, allowing both multicast and unicast Delay | measurement mechanism, allowing both multicast and unicast Delay | |||
| Request and Delay Response messages. | Request and Delay Response messages. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| skipping to change at line 87 ¶ | skipping to change at line 87 ¶ | |||
| minimizing configuration on the participating nodes. Network | minimizing configuration on the participating nodes. Network | |||
| communication was based solely on multicast messages, which, unlike | communication was based solely on multicast messages, which, unlike | |||
| NTP, did not require that a receiving node as discussed in IEEE | NTP, did not require that a receiving node as discussed in IEEE | |||
| 1588-2019 [IEEE1588-2019] need to know the identities of the time | 1588-2019 [IEEE1588-2019] need to know the identities of the time | |||
| sources in the network. This document describes clock roles and PTP | sources in the network. This document describes clock roles and PTP | |||
| Port states using the optional alternative terms "timeTransmitter" | Port states using the optional alternative terms "timeTransmitter" | |||
| instead of "master" and "timeReceiver" instead of "slave", as defined | instead of "master" and "timeReceiver" instead of "slave", as defined | |||
| in the IEEE 1588g amendment [IEEE1588g] to [IEEE1588-2019]. | in the IEEE 1588g amendment [IEEE1588g] to [IEEE1588-2019]. | |||
| The "Best TimeTransmitter Clock Algorithm" ([IEEE1588-2019], | The "Best TimeTransmitter Clock Algorithm" ([IEEE1588-2019], | |||
| Subclause 9.3), a mechanism that all participating PTP nodes MUST | Subclause 9.3), a mechanism that all participating PTP Nodes MUST | |||
| follow, sets up strict rules for all members of a PTP domain to | follow, sets up strict rules for all members of a PTP domain to | |||
| determine which node MUST be the active reference time source | determine which node MUST be the active reference time source | |||
| (Grandmaster). Although the multicast communication model has | (Grandmaster). Although the multicast communication model has | |||
| advantages in smaller networks, it complicated the application of PTP | advantages in smaller networks, it complicated the application of PTP | |||
| in larger networks -- for example, in environments like IP-based | in larger networks -- for example, in environments like IP-based | |||
| telecommunication networks or financial data centers. It is | telecommunication networks or financial data centers. It is | |||
| considered inefficient that, even if the content of a message applies | considered inefficient that, even if the content of a message applies | |||
| only to one receiver, the message is forwarded by the underlying | only to one receiver, the message is forwarded by the underlying | |||
| network (IP) to all nodes, requiring them to spend network bandwidth | network (IP) to all nodes, requiring them to spend network bandwidth | |||
| and other resources, such as CPU cycles, to drop it. | and other resources, such as CPU cycles, to drop it. | |||
| The third edition of the standard (IEEE 1588-2019) defines PTPv2.1 | The third edition of the standard (IEEE 1588-2019) defines PTPv2.1 | |||
| and includes the possibility of using unicast communication between | and includes the possibility of using unicast communication between | |||
| the PTP nodes in order to overcome the limitation of using multicast | the PTP Nodes in order to overcome the limitation of using multicast | |||
| messages for the bidirectional information exchange between PTP | messages for the bidirectional information exchange between PTP | |||
| nodes. The unicast approach avoided that. In PTP domains with a lot | Nodes. The unicast approach avoided that. In PTP domains with a lot | |||
| of nodes, devices had to throw away most of the received multicast | of nodes, devices had to throw away most of the received multicast | |||
| messages because they carried information for some other node. The | messages because they carried information for some other node. The | |||
| percent of PTP messages that are discarded as irrelevant to the | percent of PTP messages that are discarded as irrelevant to the | |||
| receiving node can exceed 99% [Estrela_and_Bonebakker]. | receiving node can exceed 99% [Estrela_and_Bonebakker]. | |||
| PTPv2.1 also includes PTP Profiles ([IEEE1588-2019], Subclause 20.3). | PTPv2.1 also includes PTP Profiles ([IEEE1588-2019], Subclause 20.3). | |||
| These constructs allow organizations to specify selections of | These constructs allow organizations to specify selections of | |||
| attribute values and optional features, simplifying the configuration | attribute values and optional features, simplifying the configuration | |||
| of PTP nodes for a specific application. Instead of having to go | of PTP Nodes for a specific application. Instead of having to go | |||
| through all possible parameters and configuration options and | through all possible parameters and configuration options and | |||
| individually set them up, selecting a PTP Profile on a PTP node will | individually set them up, selecting a PTP Profile on a PTP Node will | |||
| set all the parameters that are specified in the PTP Profile to a | set all the parameters that are specified in the PTP Profile to a | |||
| defined value. If a PTP Profile definition allows multiple values | defined value. If a PTP Profile definition allows multiple values | |||
| for a parameter, selection of the PTP Profile will set the profile- | for a parameter, selection of the PTP Profile will set the profile- | |||
| specific default value for this parameter. Parameters not allowing | specific default value for this parameter. Parameters not allowing | |||
| multiple values are set to the value defined in the PTP Profile. | multiple values are set to the value defined in the PTP Profile. | |||
| Many PTP features and functions are optional, and a PTP Profile | Many PTP features and functions are optional, and a PTP Profile | |||
| should also define which optional features of PTP are required, | should also define which optional features of PTP are required, | |||
| permitted, and prohibited. It is possible to extend the PTP standard | permitted, and prohibited. It is possible to extend the PTP standard | |||
| with a PTP Profile by using the TLV mechanism of PTP (see | with a PTP Profile by using the TLV mechanism of PTP (see | |||
| [IEEE1588-2019], Subclause 13.4), defining an optional Best | [IEEE1588-2019], Subclause 13.4) or defining an optional Best | |||
| TimeTransmitter Clock Algorithm, and a few other ways. PTP has its | TimeTransmitter Clock Algorithm, among other techniques (which are | |||
| own management protocol (defined in [IEEE1588-2019], Subclause 15.2) | beyond the scope of this document). PTP has its own management | |||
| but allows a PTP Profile to specify an alternative management | protocol (defined in [IEEE1588-2019], Subclause 15.2) but allows a | |||
| mechanism -- for example, the Network Configuration Protocol | PTP Profile to specify an alternative management mechanism -- for | |||
| (NETCONF). | example, the Network Configuration Protocol (NETCONF). | |||
| In this document, the term "PTP Port" refers to a logical access | In this document, the term "PTP Port" refers to a logical access | |||
| point of a PTP instantiation for PTP communication in a network. | point of a PTP instantiation for PTP communication in a network. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Technical Terms | 3. Technical Terms | |||
| Acceptable TimeTransmitter Table: A list of timeTransmitters that | Acceptable TimeTransmitter Table: A list of timeTransmitters that | |||
| may be maintained by a PTP timeReceiver Clock. The PTP | may be maintained by a PTP timeReceiver Clock. The PTP | |||
| timeReceiver Clock would be willing to synchronize to | timeReceiver Clock would be willing to synchronize to | |||
| timeTransmitters in this list. | timeTransmitters in this list. | |||
| Alternate timeTransmitter: A PTP timeTransmitter Clock, which is not | Alternate timeTransmitter: A PTP timeTransmitter Clock that is not | |||
| the Best timeTransmitter, and may act as a timeTransmitter with | the Best timeTransmitter and therefore is used as an alternative | |||
| the Alternate timeTransmitter flag set on the messages it sends. | clock. It may act as a timeTransmitter with the Alternate | |||
| timeTransmitter flag set on the messages it sends. | ||||
| Announce message: Contains the timeTransmitter Clock properties of a | Announce message: Contains the properties of a given timeTransmitter | |||
| timeTransmitter Clock. The information is used to determine the | Clock. The information is used to determine the Best | |||
| Best TimeTransmitter. | timeTransmitter. | |||
| Best timeTransmitter: A clock with a PTP Port in the timeTransmitter | Best timeTransmitter: A clock with a PTP Port in the timeTransmitter | |||
| state, operating as the Grandmaster of a PTP domain. | state, operating as the Grandmaster of a PTP domain. | |||
| Best TimeTransmitter Clock Algorithm: A method for determining which | Best TimeTransmitter Clock Algorithm: A method for determining which | |||
| state a PTP Port of a PTP clock should be in. The state decisions | state a PTP Port of a PTP clock should be in. The state decisions | |||
| lead to the formation of a clock spanning tree for a PTP domain. | lead to the formation of a clock spanning tree for a PTP domain. | |||
| Boundary Clock: A device with more than one PTP Port. Generally, | Boundary Clock: A device with more than one PTP Port. Generally, | |||
| Boundary Clocks will have one PTP Port in the timeReceiver state | Boundary Clocks will have one PTP Port in the timeReceiver state | |||
| skipping to change at line 201 ¶ | skipping to change at line 202 ¶ | |||
| NTP: Network Time Protocol, defined by [RFC5905]. | NTP: Network Time Protocol, defined by [RFC5905]. | |||
| Ordinary Clock: A clock that has a single PTP Port in a domain and | Ordinary Clock: A clock that has a single PTP Port in a domain and | |||
| maintains the timescale used in the domain. It may serve as a | maintains the timescale used in the domain. It may serve as a | |||
| timeTransmitter Clock or may be a timeReceiver Clock. | timeTransmitter Clock or may be a timeReceiver Clock. | |||
| Peer-to-Peer delay measurement mechanism: A network delay | Peer-to-Peer delay measurement mechanism: A network delay | |||
| measurement mechanism in PTP facilitated by an exchange of | measurement mechanism in PTP facilitated by an exchange of | |||
| messages over the link between adjacent devices in a network. | messages over the link between adjacent devices in a network. | |||
| This mechanism might not work properly unless all devices in the | This mechanism might not work properly unless all devices in the | |||
| network support PTP and the Peer-to-peer measurement mechanism. | network support PTP and the Peer-to-Peer delay measurement | |||
| mechanism. | ||||
| Preferred timeTransmitter: A device intended to act primarily as the | Preferred timeTransmitter: A device intended to act primarily as the | |||
| Grandmaster of a PTP system or as a backup to a Grandmaster. | Grandmaster of a PTP system or as a backup to a Grandmaster. | |||
| PTP: The Precision Time Protocol -- the timing and synchronization | PTP: The Precision Time Protocol -- the timing and synchronization | |||
| protocol defined by IEEE 1588. | protocol defined by IEEE 1588. | |||
| PTP Port: An interface of a PTP clock with the network. Note that | PTP Port: An interface of a PTP clock with the network. Note that | |||
| there may be multiple PTP Ports running on one physical interface | there may be multiple PTP Ports running on one physical interface | |||
| -- for example, multiple unicast timeReceivers that talk to | -- for example, multiple unicast timeReceivers that talk to | |||
| several Grandmaster Clocks in different PTP Domains. | several Grandmaster Clocks in different PTP domains. | |||
| PTP Profile: A set of constraints on the options and features of | PTP Profile: A set of constraints on the options and features of | |||
| PTP, designed to optimize PTP for a specific use case or industry. | PTP, designed to optimize PTP for a specific use case or industry. | |||
| The profile specifies what is required, allowed, and forbidden | The profile specifies what is required, allowed, and forbidden | |||
| among options and attribute values of PTP. | among options and attribute values of PTP. | |||
| PTPv2.1: Refers specifically to the version of PTP defined by | PTPv2.1: Refers specifically to the version of PTP defined by | |||
| [IEEE1588-2019]. | [IEEE1588-2019]. | |||
| Rogue timeTransmitter: A clock with a PTP Port in the | Rogue timeTransmitter: A clock that has a PTP Port in the | |||
| timeTransmitter state, even though it should not be in the | timeTransmitter state -- even though it should not be in the | |||
| timeTransmitter state according to the Best TimeTransmitter Clock | timeTransmitter state according to the Best TimeTransmitter Clock | |||
| Algorithm, and does not set the Alternate timeTransmitter flag. | Algorithm -- and that does not set the Alternate timeTransmitter | |||
| flag. | ||||
| TimeReceiver Clock: A clock with at least one PTP Port in the | TimeReceiver Clock: A clock with at least one PTP Port in the | |||
| timeReceiver state and no PTP Ports in the timeTransmitter state. | timeReceiver state and no PTP Ports in the timeTransmitter state. | |||
| TimeReceiver Only clock: An Ordinary Clock that cannot become a | TimeReceiver Only Clock: An Ordinary Clock that cannot become a | |||
| timeTransmitter Clock. | timeTransmitter Clock. | |||
| TimeTransmitter Clock: A clock with at least one PTP Port in the | TimeTransmitter Clock: A clock with at least one PTP Port in the | |||
| timeTransmitter state. | timeTransmitter state. | |||
| TLV: Type Length Value -- a mechanism for extending messages in | TLV: Type Length Value -- a mechanism for extending messages in | |||
| networked communications. | networked communications. | |||
| Transparent Clock: A device that measures the time taken for a PTP | Transparent Clock: A device that measures the time taken for a PTP | |||
| event message to transit the device and then updates the message | event message to transit the device and then updates the message | |||
| with a correction for this transit time. | with a correction for this transit time. | |||
| Unicast Discovery: A mechanism for PTP timeReceivers to establish a | Unicast discovery: A mechanism for PTP timeReceivers to establish a | |||
| unicast communication with PTP timeTransmitters using a configured | unicast communication with PTP timeTransmitters using a configured | |||
| table of timeTransmitter IP addresses and Unicast Message | table of timeTransmitter IP addresses and unicast message | |||
| Negotiation. | negotiation. | |||
| Unicast Negotiation: A mechanism in PTP for timeReceiver Clocks to | Unicast message negotiation: A mechanism in PTP for timeReceiver | |||
| negotiate unicast Sync, Announce, and Delay Request message | Clocks to negotiate unicast Sync, Announce, and Delay Request | |||
| transmission rates from timeTransmitters. | message transmission rates from timeTransmitters. | |||
| 4. Problem Statement | 4. Problem Statement | |||
| This document describes how PTP can be applied to work in large | This document describes how PTP can be applied to work in large | |||
| enterprise networks. See ISPCS [RFC2026] for information on IETF | enterprise networks. Such large networks are deployed, for example, | |||
| applicability statements. Such large networks are deployed, for | in financial corporations. It is becoming increasingly common in | |||
| example, in financial corporations. It is becoming increasingly | such networks to perform distributed time-tagged measurements, such | |||
| common in such networks to perform distributed time-tagged | as one-way packet latencies and cumulative delays on software systems | |||
| measurements, such as one-way packet latencies and cumulative delays | spread across multiple computers. Furthermore, there is often a | |||
| on software systems spread across multiple computers. Furthermore, | desire to check the age of information time-tagged by a different | |||
| there is often a desire to check the age of information time-tagged | machine. To perform these measurements, it is necessary to deliver a | |||
| by a different machine. To perform these measurements, it is | common precise time to multiple devices on a network. Accuracy | |||
| necessary to deliver a common precise time to multiple devices on a | currently required in the financial industry ranges from 100 | |||
| network. Accuracy currently required in the financial industry | microseconds to 1 nanosecond to the Grandmaster. This PTP Profile | |||
| ranges from 100 microseconds to 1 nanosecond to the Grandmaster. | does not specify timing performance requirements, but such | |||
| This PTP Profile does not specify timing performance requirements, | requirements explain why the needs cannot always be met by NTP as | |||
| but such requirements explain why the needs cannot always be met by | commonly implemented. Such accuracy cannot usually be achieved with | |||
| NTP as commonly implemented. Such accuracy cannot usually be | NTP, without adding non-standard customizations such as on-path | |||
| achieved with a traditional time transfer such as NTP, without adding | support, similar to what is done in PTP with Transparent Clocks and | |||
| non-standard customizations such as on-path support, similar to what | Boundary Clocks. Such PTP support is commonly available in switches | |||
| is done in PTP with Transparent Clocks and Boundary Clocks. Such PTP | and routers, and many such devices have already been deployed in | |||
| support is commonly available in switches and routers, and many such | networks. Because PTP has a complex range of features and options, | |||
| devices have already been deployed in networks. Because PTP has a | it is necessary to create a PTP Profile for enterprise networks to | |||
| complex range of features and options, it is necessary to create a | achieve interoperability among equipment manufactured by different | |||
| PTP Profile for enterprise networks to achieve interoperability among | vendors. | |||
| equipment manufactured by different vendors. | ||||
| Although enterprise networks can be large, it is becoming | Although enterprise networks can be large, it is becoming | |||
| increasingly common to deploy multicast protocols, even across | increasingly common to deploy multicast protocols, even across | |||
| multiple subnets. For this reason, it is desirable to make use of | multiple subnets. For this reason, it is desirable to make use of | |||
| multicast whenever the information going to many destinations is the | multicast whenever the information going to many destinations is the | |||
| same. It is also advantageous to send information that is only | same. It is also advantageous to send information that is only | |||
| relevant to one device as a unicast message. The latter can be | relevant to one device as a unicast message. The latter can be | |||
| essential as the number of PTP timeReceivers becomes hundreds or | essential as the number of PTP timeReceivers becomes hundreds or | |||
| thousands. | thousands. | |||
| skipping to change at line 302 ¶ | skipping to change at line 304 ¶ | |||
| Profile has been demonstrated at the International Symposium on | Profile has been demonstrated at the International Symposium on | |||
| Precision Clock Synchronization (ISPCS) Plugfest [ISPCS]. | Precision Clock Synchronization (ISPCS) Plugfest [ISPCS]. | |||
| 5. Network Technology | 5. Network Technology | |||
| This PTP Profile MUST operate only in networks characterized by UDP | This PTP Profile MUST operate only in networks characterized by UDP | |||
| [RFC0768] over either IPv4 [RFC0791] or IPv6 [RFC8200], as described | [RFC0768] over either IPv4 [RFC0791] or IPv6 [RFC8200], as described | |||
| by Annexes C and D of [IEEE1588-2019], respectively. A network node | by Annexes C and D of [IEEE1588-2019], respectively. A network node | |||
| MAY include multiple PTP instances running simultaneously. IPv4 and | MAY include multiple PTP instances running simultaneously. IPv4 and | |||
| IPv6 instances in the same network node MUST operate in different PTP | IPv6 instances in the same network node MUST operate in different PTP | |||
| Domains. PTP Clocks that communicate using IPv4 can transfer time to | domains. PTP clocks that communicate using IPv4 can transfer time to | |||
| PTP Clocks using IPv6, or the reverse, if and only if there is a | PTP clocks using IPv6, or the reverse, if and only if there is a | |||
| network node that simultaneously communicates with both PTP domains | network node that simultaneously communicates with both PTP domains | |||
| in the different IP versions. | in the different IP versions. | |||
| The PTP system MAY include switches and routers. These devices MAY | The PTP system MAY include switches and routers. These devices MAY | |||
| be Transparent Clocks, Boundary Clocks, or neither, in any | be Transparent Clocks, Boundary Clocks, or neither, in any | |||
| combination. PTP Clocks MAY be Preferred timeTransmitters, Ordinary | combination. PTP clocks MAY be Preferred timeTransmitters, Ordinary | |||
| Clocks, or Boundary Clocks. The Ordinary Clocks may be TimeReceiver | Clocks, or Boundary Clocks. The Ordinary Clocks may be timeReceiver | |||
| Only Clocks or may be timeTransmitter capable. | Only Clocks or may be timeTransmitter capable. | |||
| Note that PTP Ports will need to keep track of the Clock ID of | Note that PTP Ports will need to keep track of the Clock ID of | |||
| received messages and not just the IP or Layer 2 addresses in any | received messages and not just the IP or Layer 2 addresses in any | |||
| network that includes Transparent Clocks or that might include them | network that includes Transparent Clocks or that might include them | |||
| in the future. This is important, since Transparent Clocks might | in the future. This is important, since Transparent Clocks might | |||
| treat PTP messages that are altered at the PTP application layer as | treat PTP messages that are altered at the PTP application layer as | |||
| new IP packets and new Layer 2 frames when the PTP messages are | new IP packets and new Layer 2 frames when the PTP messages are | |||
| retransmitted. In IPv4 networks, some clocks might be hidden behind | retransmitted. In IPv4 networks, some clocks might be hidden behind | |||
| a NAT, which hides their IP addresses from the rest of the network. | a NAT, which hides their IP addresses from the rest of the network. | |||
| Note also that the use of NATs may place limitations on the topology | Note also that the use of NATs may place limitations on the topology | |||
| of PTP networks, depending on the port forwarding scheme employed. | of PTP Networks, depending on the port forwarding scheme employed. | |||
| Details of implementing PTP with NATs are out of scope for this | Details of implementing PTP with NATs are out of scope for this | |||
| document. | document. | |||
| PTP, similar to NTP, assumes that the one-way network delay for Sync | PTP, similar to NTP, assumes that the one-way network delay for Sync | |||
| messages and Delay Response messages is the same. When this is not | messages and Delay Response messages is the same. When this is not | |||
| true, it can cause errors in the transfer of time from the | true, it can cause errors in the transfer of time from the | |||
| timeTransmitter to the timeReceiver. It is up to the system | timeTransmitter to the timeReceiver. It is up to the system | |||
| integrator to design the network so that such effects do not prevent | integrator to design the network so that such effects do not prevent | |||
| the PTP system from meeting the timing requirements. The details of | the PTP system from meeting the timing requirements. The details of | |||
| network asymmetry are outside the scope of this document. See, for | network asymmetry are outside the scope of this document. See, for | |||
| example, ITU-T G.8271 [G8271]. | example, ITU-T G.8271 [G8271]. | |||
| 6. Time Transfer and Delay Measurement | 6. Time Transfer and Delay Measurement | |||
| TimeTransmitter Clocks, Transparent Clocks, and Boundary Clocks MAY | TimeTransmitter Clocks, Transparent Clocks, and Boundary Clocks MAY | |||
| be either one-step clocks or two-step clocks. TimeReceiver Clocks | be either one-step clocks or two-step clocks. TimeReceiver Clocks | |||
| MUST support both behaviors. The End-to-End Delay measurement method | MUST support both behaviors. The End-to-End delay measurement method | |||
| MUST be used. | MUST be used. | |||
| Note that, in IP networks, Sync messages and Delay Request messages | Note that, in IP networks, Sync messages and Delay Request messages | |||
| exchanged between a timeTransmitter and timeReceiver do not | exchanged between a timeTransmitter and timeReceiver do not | |||
| necessarily traverse the same physical path. Thus, wherever | necessarily traverse the same physical path. Thus, wherever | |||
| possible, the network SHOULD be engineered so that the forward and | possible, the network SHOULD be engineered so that the forward and | |||
| reverse routes traverse the same physical path. Traffic engineering | reverse routes traverse the same physical path. Traffic engineering | |||
| techniques for path consistency are out of scope for this document. | techniques for path consistency are out of scope for this document. | |||
| Sync messages MUST be sent as PTP event multicast messages (UDP port | Sync messages MUST be sent as PTP event multicast messages (UDP port | |||
| 319) to the PTP primary IP address. Two-step clocks MUST send | 319) to the PTP primary IP address. Two-step clocks MUST send | |||
| Follow-up messages as PTP general multicast messages (UDP port 320). | Follow-up messages as PTP general multicast messages (UDP port 320). | |||
| Announce messages MUST be sent as multicast messages (UDP port 320) | Announce messages MUST be sent as PTP general multicast messages (UDP | |||
| to the PTP primary address. The PTP primary IP address is | port 320) to the PTP primary address. The PTP primary IP address is | |||
| 224.0.1.129 for IPv4 and FF0X:0:0:0:0:0:0:181 for IPv6, where "X" can | 224.0.1.129 for IPv4 and FF0X:0:0:0:0:0:0:181 for IPv6, where "X" can | |||
| be a value between 0x0 and 0xF. The different IPv6 address options | be a value between 0x0 and 0xF. The different IPv6 address options | |||
| are explained in [IEEE1588-2019], Annex D, Section D.3. These | are explained in [IEEE1588-2019], Annex D, Section D.3. These | |||
| addresses are allotted by IANA; see the "IPv6 Multicast Address Space | addresses are allotted by IANA; see the "IPv6 Multicast Address Space | |||
| Registry" [IPv6Registry]. | Registry" [IPv6Registry]. | |||
| Delay Request messages MAY be sent as either multicast or unicast PTP | Delay Request messages MAY be sent as either multicast or unicast PTP | |||
| event messages. TimeTransmitter Clocks MUST respond to multicast | event messages. TimeTransmitter Clocks MUST respond to multicast | |||
| Delay Request messages with multicast Delay Response PTP general | Delay Request messages with multicast Delay Response PTP general | |||
| messages. TimeTransmitter Clocks MUST respond to unicast Delay | messages. TimeTransmitter Clocks MUST respond to unicast Delay | |||
| Request PTP event messages with unicast Delay Response PTP general | Request PTP event messages with unicast Delay Response PTP general | |||
| messages. This allows for the use of Ordinary Clocks that do not | messages. This allows for the use of Ordinary Clocks that do not | |||
| support the Enterprise Profile, if they are timeReceiver Only Clocks. | support the Enterprise Profile, if they are timeReceiver Only Clocks. | |||
| Clocks SHOULD include support for multiple domains. The purpose is | Clocks SHOULD include support for multiple domains. The purpose is | |||
| to support multiple simultaneous timeTransmitters for redundancy. | to support multiple simultaneous timeTransmitters for redundancy. | |||
| Leaf devices (non-forwarding devices) can use timing information from | Leaf devices (non-forwarding devices) can use timing information from | |||
| multiple timeTransmitters by combining information from multiple | multiple timeTransmitters by combining information from multiple | |||
| instantiations of a PTP stack, each operating in a different PTP | instantiations of a PTP stack, each operating in a different PTP | |||
| Domain. Redundant sources of timing can be ensembled and/or compared | domain. To check for faulty timeTransmitter Clocks, redundant | |||
| to check for faulty timeTransmitter Clocks. The use of multiple | sources of timing can be evaluated as an ensemble and/or compared | |||
| simultaneous timeTransmitters will help mitigate faulty | individually. The use of multiple simultaneous timeTransmitters will | |||
| timeTransmitters reporting as healthy, network delay asymmetry, and | help mitigate faulty timeTransmitters reporting as healthy, network | |||
| security problems. Security problems include on-path attacks such as | delay asymmetry, and security problems. Security problems include | |||
| delay attacks, packet interception/manipulation attacks. Assuming | on-path attacks such as delay attacks, packet interception attacks, | |||
| that the path to each timeTransmitter is different, failures -- | and packet manipulation attacks. Assuming that the path to each | |||
| malicious or otherwise -- would have to happen at more than one path | timeTransmitter is different, failures -- malicious or otherwise -- | |||
| simultaneously. Whenever feasible, the underlying network transport | would have to happen at more than one path simultaneously. Whenever | |||
| technology SHOULD be configured so that timing messages in different | feasible, the underlying network transport technology SHOULD be | |||
| domains traverse different network paths. | configured so that timing messages in different domains traverse | |||
| different network paths. | ||||
| 7. Default Message Rates | 7. Default Message Rates | |||
| The Sync, Announce, and Delay Request default message rates MUST each | The Sync, Announce, and Delay Request default message rates MUST each | |||
| be once per second. The Sync and Delay Request message rates MAY be | be once per second. The Sync and Delay Request message rates MAY be | |||
| set to other values, but not less than once every 128 seconds and not | set to other values, but not less than once every 128 seconds and not | |||
| more than 128 messages per second. The Announce message rate MUST | more than 128 messages per second. The Announce message rate MUST | |||
| NOT be changed from the default value. The Announce Receipt Timeout | NOT be changed from the default value. The Announce Receipt Timeout | |||
| Interval MUST be three Announce Intervals for Preferred | Interval MUST be three Announce Intervals for Preferred | |||
| TimeTransmitters and four Announce Intervals for all other | timeTransmitters and four Announce Intervals for all other | |||
| timeTransmitters. | timeTransmitters. | |||
| The logMessageInterval carried in the unicast Delay Response message | The logMessageInterval carried in the unicast Delay Response message | |||
| MAY be set to correspond to the timeTransmitter ports preferred | MAY be set to correspond to the timeTransmitter ports' preferred | |||
| message period, rather than 7F, which indicates that message periods | message period, rather than 7F, which indicates that message periods | |||
| are to be negotiated. Note that negotiated message periods are not | are to be negotiated. Note that negotiated message periods are not | |||
| allowed; see Section 13 ("Forbidden PTP Options"). | allowed; see Section 13 ("Forbidden PTP Options"). | |||
| 8. Requirements for TimeTransmitter Clocks | 8. Requirements for TimeTransmitter Clocks | |||
| TimeTransmitter Clocks MUST obey the standard Best TimeTransmitter | TimeTransmitter Clocks MUST obey the standard Best TimeTransmitter | |||
| Clock Algorithm as defined in [IEEE1588-2019]. PTP systems using | Clock Algorithm as defined in [IEEE1588-2019]. PTP systems using | |||
| this PTP Profile MAY support multiple simultaneous Grandmasters if | this PTP Profile MAY support multiple simultaneous Grandmasters if | |||
| each active Grandmaster is operating in a different PTP domain. | each active Grandmaster is operating in a different PTP domain. | |||
| skipping to change at line 427 ¶ | skipping to change at line 430 ¶ | |||
| addresses of the timeReceivers. This is because Transparent Clocks | addresses of the timeReceivers. This is because Transparent Clocks | |||
| might replace the IP address of Delay Requests with their own IP | might replace the IP address of Delay Requests with their own IP | |||
| address after updating the Correction Fields. For this deployment | address after updating the Correction Fields. For this deployment | |||
| scenario, timeTransmitters will need to have configured tables of | scenario, timeTransmitters will need to have configured tables of | |||
| timeReceivers' IP addresses and associated Clock Identities in order | timeReceivers' IP addresses and associated Clock Identities in order | |||
| to send Delay Responses to the correct PTP Nodes. | to send Delay Responses to the correct PTP Nodes. | |||
| 9. Requirements for TimeReceiver Clocks | 9. Requirements for TimeReceiver Clocks | |||
| In a network that contains multiple timeTransmitters in multiple | In a network that contains multiple timeTransmitters in multiple | |||
| domains, TimeReceivers SHOULD make use of information from all the | domains, timeReceivers SHOULD make use of information from all the | |||
| timeTransmitters in their clock control subsystems. TimeReceiver | timeTransmitters in their clock control subsystems. TimeReceiver | |||
| Clocks MUST be able to function in such networks even if they use | Clocks MUST be able to function in such networks even if they use | |||
| time from only one of the domains. TimeReceiver Clocks MUST be able | time from only one of the domains. TimeReceiver Clocks MUST be able | |||
| to operate properly in the presence of a rogue timeTransmitter. | to operate properly in the presence of a rogue timeTransmitter. | |||
| TimeReceivers SHOULD NOT synchronize to a timeTransmitter that is not | TimeReceivers SHOULD NOT synchronize to a timeTransmitter that is not | |||
| the Best TimeTransmitter in its domain. TimeReceivers will continue | the Best timeTransmitter in its domain. TimeReceivers will continue | |||
| to recognize a Best TimeTransmitter for the duration of the Announce | to recognize a Best timeTransmitter for the duration of the Announce | |||
| Time Out Interval. TimeReceivers MAY use an Acceptable | Receipt Timeout Interval. TimeReceivers MAY use an Acceptable | |||
| TimeTransmitter Table. If a timeTransmitter is not an Acceptable | TimeTransmitter Table. If a timeTransmitter is not an Acceptable | |||
| timeTransmitter, then the timeReceiver MUST NOT synchronize to it. | timeTransmitter, then the timeReceiver MUST NOT synchronize to it. | |||
| Note that IEEE 1588-2019 requires timeReceiver Clocks to support both | Note that IEEE 1588-2019 requires timeReceiver Clocks to support both | |||
| two-step and one-step timeTransmitter Clocks. See [IEEE1588-2019], | two-step and one-step timeTransmitter Clocks. See [IEEE1588-2019], | |||
| Subclause 11.2. | Subclause 11.2. | |||
| Since Announce messages are sent as multicast messages, timeReceivers | Since Announce messages are sent as multicast messages, timeReceivers | |||
| can obtain the IP addresses of a timeTransmitter from the Announce | can obtain the IP addresses of a timeTransmitter from the Announce | |||
| messages. Note that the IP source addresses of Sync and Follow-up | messages. Note that the IP source addresses of Sync and Follow-up | |||
| messages might have been replaced by the source addresses of a | messages might have been replaced by the source addresses of a | |||
| skipping to change at line 470 ¶ | skipping to change at line 473 ¶ | |||
| 11. Requirements for Boundary Clocks | 11. Requirements for Boundary Clocks | |||
| Boundary Clocks SHOULD support multiple simultaneous PTP domains. | Boundary Clocks SHOULD support multiple simultaneous PTP domains. | |||
| This will require them to maintain separate clocks for each of the | This will require them to maintain separate clocks for each of the | |||
| domains supported, at least in software. Boundary Clocks MUST NOT | domains supported, at least in software. Boundary Clocks MUST NOT | |||
| combine timing information from different domains. | combine timing information from different domains. | |||
| 12. Management and Signaling Messages | 12. Management and Signaling Messages | |||
| PTP Management messages MAY be used. Management messages intended | PTP management messages MAY be used. Management messages intended | |||
| for a specific clock, i.e., where the | for a specific clock, i.e., where the | |||
| targetPortIdentity.clockIdentity attribute (defined in | targetPortIdentity.clockIdentity attribute (defined in | |||
| [IEEE1588-2019]) is not set to All 1s, MUST be sent as a unicast | [IEEE1588-2019]) does not have all bits set to 1, MUST be sent as a | |||
| message. Similarly, if any signaling messages are used, they MUST | unicast message. Similarly, if any signaling messages are used, they | |||
| also be sent as unicast messages whenever the message is intended | MUST also be sent as unicast messages whenever the message is | |||
| solely for a specific PTP Node. | intended solely for a specific PTP Node. | |||
| 13. Forbidden PTP Options | 13. Forbidden PTP Options | |||
| Clocks operating in the Enterprise Profile MUST NOT use the | Clocks operating in the Enterprise Profile MUST NOT use the | |||
| following: | following: | |||
| * Peer-to-Peer timing for delay measurement | * Peer-to-Peer timing for delay measurement | |||
| * Grandmaster Clusters | * Grandmaster Clusters | |||
| * The Alternate TimeTransmitter option | * The Alternate timeTransmitter option | |||
| * Alternate Timescales | * Alternate Timescales | |||
| * Unicast discovery | * Unicast discovery | |||
| * Unicast negotiation | * Unicast message negotiation | |||
| Clocks operating in the Enterprise Profile MUST avoid any optional | Clocks operating in the Enterprise Profile MUST avoid any optional | |||
| feature that requires Announce messages to be altered by Transparent | feature that requires Announce messages to be altered by Transparent | |||
| Clocks, as this would require the Transparent Clock to change the | Clocks, as this would require the Transparent Clock to change the | |||
| source address and prevent the timeReceiver nodes from discovering | source address and prevent the timeReceiver nodes from discovering | |||
| the protocol address of the timeTransmitter. | the protocol address of the timeTransmitter. | |||
| 14. Interoperation with IEEE 1588 Default Profile | 14. Interoperation with IEEE 1588 Default Profile | |||
| Clocks operating in the Enterprise Profile will interoperate with | Clocks operating in the Enterprise Profile will interoperate with | |||
| clocks operating in the Default Profile described in [IEEE1588-2019], | clocks operating in the Default Profile described in [IEEE1588-2019], | |||
| Annex I.3. This variant of the Default Profile uses the End-to-End | Annex I.3. This variant of the Default Profile uses the End-to-End | |||
| delay measurement mechanism. In addition, the Default Profile would | delay measurement mechanism. In addition, the Default Profile would | |||
| have to operate over IPv4 or IPv6 networks and use management | have to operate over IPv4 or IPv6 networks and use management | |||
| messages in unicast when those messages are directed at a specific | messages in unicast when those messages are directed at a specific | |||
| clock. If neither of these requirements is met, then Enterprise | clock. If neither of these requirements is met, then Enterprise | |||
| Profile clocks will not interoperate with Default Profile Clocks as | Profile clocks will not interoperate with Default Profile clocks as | |||
| defined in [IEEE1588-2019], Annex I.3. The Enterprise Profile will | defined in [IEEE1588-2019], Annex I.3. The Enterprise Profile will | |||
| not interoperate with the variant of the Default Profile defined in | not interoperate with the variant of the Default Profile defined in | |||
| [IEEE1588-2019], Annex I.4, which requires the use of the Peer-to- | [IEEE1588-2019], Annex I.4, which requires the use of the Peer-to- | |||
| Peer delay measurement mechanism. | Peer delay measurement mechanism. | |||
| Enterprise Profile Clocks will interoperate with clocks operating in | Enterprise Profile clocks will interoperate with clocks operating in | |||
| other PTP Profiles if the clocks in the other PTP Profiles obey the | other PTP Profiles if the clocks in the other PTP Profiles obey the | |||
| rules of the Enterprise Profile. These rules MUST NOT be changed to | rules of the Enterprise Profile. These rules MUST NOT be changed to | |||
| achieve interoperability with other PTP Profiles. | achieve interoperability with other PTP Profiles. | |||
| 15. Profile Identification | 15. Profile Identification | |||
| The IEEE 1588 standard requires that all PTP Profiles provide the | The IEEE 1588 standard requires that all PTP Profiles provide the | |||
| following identifying information. | following identifying information. | |||
| PTP Profile: Enterprise Profile | PTP Profile: Enterprise Profile | |||
| skipping to change at line 553 ¶ | skipping to change at line 556 ¶ | |||
| important to security mechanisms that use time windows for keys and | important to security mechanisms that use time windows for keys and | |||
| authorization. Passing time through the networks poses a security | authorization. Passing time through the networks poses a security | |||
| risk, since time can potentially be manipulated. The use of multiple | risk, since time can potentially be manipulated. The use of multiple | |||
| simultaneous timeTransmitters, using multiple PTP domains, can | simultaneous timeTransmitters, using multiple PTP domains, can | |||
| mitigate problems from rogue timeTransmitters and on-path attacks. | mitigate problems from rogue timeTransmitters and on-path attacks. | |||
| Note that Transparent Clocks alter PTP content on-path, but in a | Note that Transparent Clocks alter PTP content on-path, but in a | |||
| manner specified in [IEEE1588-2019] that helps with time transfer | manner specified in [IEEE1588-2019] that helps with time transfer | |||
| accuracy. See Sections 9 and 10. Additional security mechanisms are | accuracy. See Sections 9 and 10. Additional security mechanisms are | |||
| outside the scope of this document. | outside the scope of this document. | |||
| PTP native management messages SHOULD NOT be used, due to the lack of | PTP management messages SHOULD NOT be used, due to the lack of a | |||
| a security mechanism for this option. Secure management can be | security mechanism for this option. Secure management can be | |||
| obtained using standard management mechanisms that include security | obtained using standard management mechanisms that include security | |||
| -- for example, NETCONF [RFC6241]. | -- for example, NETCONF [RFC6241]. | |||
| General security considerations related to time protocols are | General security considerations related to time protocols are | |||
| discussed in [RFC7384]. | discussed in [RFC7384]. | |||
| 18. References | 18. References | |||
| 18.1. Normative References | 18.1. Normative References | |||
| skipping to change at line 621 ¶ | skipping to change at line 624 ¶ | |||
| [G8271] ITU-T, "Time and phase synchronization aspects of | [G8271] ITU-T, "Time and phase synchronization aspects of | |||
| telecommunication networks", ITU-T | telecommunication networks", ITU-T | |||
| Recommendation G.8271/Y.1366, March 2020, | Recommendation G.8271/Y.1366, March 2020, | |||
| <https://www.itu.int/rec/T-REC-G.8271-202003-I/en>. | <https://www.itu.int/rec/T-REC-G.8271-202003-I/en>. | |||
| [IPv6Registry] | [IPv6Registry] | |||
| IANA, "IPv6 Multicast Address Space Registry", | IANA, "IPv6 Multicast Address Space Registry", | |||
| <https://iana.org/assignments/ipv6-multicast-addresses>. | <https://iana.org/assignments/ipv6-multicast-addresses>. | |||
| [ISPCS] Arnold, D., "Plugfest Report", October 2017, | [ISPCS] Arnold, D. and K. Harris, "Plugfest", Proceedings of the | |||
| <https://www.ispcs.org>. | IEEE International Symposium on Precision Clock | |||
| Synchronization for Measurement, Control, and | ||||
| [RFC2026] Bradner, S., "The Internet Standards Process -- Revision | Communication (ISPCS), August 2017, | |||
| 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996, | <https://2017.ispcs.org/plugfest>. | |||
| <https://www.rfc-editor.org/info/rfc2026>. | ||||
| [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, | [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, | |||
| "Network Time Protocol Version 4: Protocol and Algorithms | "Network Time Protocol Version 4: Protocol and Algorithms | |||
| Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, | Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5905>. | <https://www.rfc-editor.org/info/rfc5905>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| End of changes. 37 change blocks. | ||||
| 95 lines changed or deleted | 97 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||