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 | April 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. See ISPCS [RFC2026] for information on IETF | |||
applicability statements. Such large networks are deployed, for | applicability statements. Such large networks are deployed, for | |||
example, in financial corporations. It is becoming increasingly | example, in financial corporations. It is becoming increasingly | |||
common in such networks to perform distributed time-tagged | common in such networks to perform distributed time-tagged | |||
measurements, such as one-way packet latencies and cumulative delays | measurements, such as one-way packet latencies and cumulative delays | |||
on software systems spread across multiple computers. Furthermore, | on software systems spread across multiple computers. Furthermore, | |||
there is often a desire to check the age of information time-tagged | there is often a desire to check the age of information time-tagged | |||
by a different machine. To perform these measurements, it is | by a different machine. To perform these measurements, it is | |||
necessary to deliver a common precise time to multiple devices on a | necessary to deliver a common precise time to multiple devices on a | |||
network. Accuracy currently required in the financial industry | network. Accuracy currently required in the financial industry | |||
ranges from 100 microseconds to 1 nanosecond to the Grandmaster. | ranges from 100 microseconds to 1 nanosecond to the Grandmaster. | |||
This PTP Profile does not specify timing performance requirements, | This PTP Profile does not specify timing performance requirements, | |||
but such requirements explain why the needs cannot always be met by | but such requirements explain why the needs cannot always be met by | |||
NTP as commonly implemented. Such accuracy cannot usually be | NTP as commonly implemented. Such accuracy cannot usually be | |||
achieved with a traditional time transfer such as NTP, without adding | achieved with NTP, without adding non-standard customizations such as | |||
non-standard customizations such as on-path support, similar to what | on-path support, similar to what is done in PTP with Transparent | |||
is done in PTP with Transparent Clocks and Boundary Clocks. Such PTP | Clocks and Boundary Clocks. Such PTP support is commonly available | |||
support is commonly available in switches and routers, and many such | in switches and routers, and many such devices have already been | |||
devices have already been deployed in networks. Because PTP has a | deployed in networks. Because PTP has a complex range of features | |||
complex range of features and options, it is necessary to create a | and options, it is necessary to create a PTP Profile for enterprise | |||
PTP Profile for enterprise networks to achieve interoperability among | networks to achieve interoperability among equipment manufactured by | |||
equipment manufactured by different vendors. | 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 305 ¶ | |||
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 431 ¶ | |||
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 474 ¶ | |||
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 557 ¶ | |||
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 625 ¶ | |||
[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 | ||||
Communication (ISPCS), August 2017, | ||||
<https://2017.ispcs.org/plugfest>. | ||||
[RFC2026] Bradner, S., "The Internet Standards Process -- Revision | [RFC2026] Bradner, S., "The Internet Standards Process -- Revision | |||
3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996, | 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996, | |||
<https://www.rfc-editor.org/info/rfc2026>. | <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>. | |||
End of changes. 37 change blocks. | ||||
78 lines changed or deleted | 85 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |