<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC8174] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-tictoc-ptp-enterprise-profile-28" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN"
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
        full title is longer than 39 characters -->

   <title abbrev="Enterprise Profile for PTP">Enterprise Profile for the Precision Time Protocol With Mixed Multicast and Unicast messages</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tictoc-ptp-enterprise-profile-28"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

   <author fullname="Doug Arnold" initials="D.A." surname="Arnold">
      <organization>Meinberg-USA</organization>
      <address>
        <postal>
          <street>3 Concord Rd</street>
          <!-- Reorder these if your country does things differently -->

         <city>Shrewsbury</city>
          <region>Massachusetts</region>
          <code>01545</code>
          <country>USA</country>
        </postal>
        <phone/>
        <email>doug.arnold@meinberg-usa.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Heiko Gerstung" initials="H.G." surname="Gerstung">
      <organization>Meinberg</organization>
      <address>
        <postal>
          <street>Lange Wand 9</street>
          <!-- Reorder these if your country does things differently -->

         <city>Bad Pyrmont</city>
          <region/>
          <code>31812</code>
          <country>Germany</country>
        </postal>
        <phone/>
        <email>heiko.gerstung@meinberg.de</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <date year="2024"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
        in the current day for you. If only the current year is specified, xml2rfc will fill
	 in the current day and month for you. If the year is not the current one, it is
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>General</area>
    <workgroup>TICTOC Working Group</workgroup>
    <keyword>PTP</keyword>
    <keyword>Enterprise Profile</keyword>
    <abstract>
      <t>This document describes a Precision Time Protocol (PTP) Profile
    <xref target="IEEE1588" format="default">IEEE 1588-2019</xref>
    for use in an IPv4 or IPv6 Enterprise information system
    environment.  The PTP Profile uses the End-to-End delay measurement
    mechanism, allows both multicast and unicast Delay Request and Delay
    Response messages.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>The Precision Time Protocol ("PTP"), standardized in IEEE 1588,
     has been designed in its first version (IEEE 1588-2002) with the
     goal to minimize configuration on the participating nodes. Network
     communication was based solely on multicast messages, which unlike
     NTP did not require that a receiving node in
     <xref target="IEEE1588" format="default">IEEE 1588-2019</xref> need to know the identity
     of the time sources in the network.
     This document describes clock roles and PTP Port states using the optional alternative terms timeTransmitter, instead of master,
     and timeReceiver, instead of slave, as defined in the <xref target="IEEE1588g" format="default">IEEE 1588g</xref> amendment to <xref target="IEEE1588"      format="default">IEEE 1588-2019</xref> .  </t>
      <t>The "Best TimeTransmitter Clock Algorithm" (<xref target="IEEE1588" format="default">IEEE 1588-2019</xref> Subclause 9.3), a
     mechanism that all participating PTP nodes MUST follow, set up
     strict rules for all members of a PTP domain to determine which
     node MUST be the active reference time source (Grandmaster).
     Although the multicast communication model has advantages in
     smaller networks, it complicated the application of PTP in larger
     networks, for example in environments like IP based
     telecommunication networks or financial data centers. It is
     considered inefficient that, even if the content of a message
     applies only to one receiver, it is forwarded by the underlying
     network (IP) to all nodes, requiring them to spend network
     bandwidth and other resources, such as CPU cycles, to drop the
     message.</t>
      <t>The third edition of the standard (IEEE 1588-2019) defines 
     PTPv2.1 and includes the
     possibility to use unicast communication between the PTP nodes in
     order to overcome the limitation of using multicast messages for
     the bi-directional information exchange between PTP nodes. The
     unicast approach avoided that. In PTP domains with a lot of nodes,
     devices had to throw away most of the received multicast
     messages because they carried information for some other node.
     The percent of PTP message that are discarded as irrelevant to the receving node can exceded 99% 
     (<xref target="Estrela_and_Bonebakker" format="default">Estrela and Bonebakker</xref>).</t>
      <t>PTPv2.1 also includes PTP Profiles (<xref target="IEEE1588" format="default">IEEE 1588-2019</xref> subclause 20.3).
     This construct allows organizations to specify selections of
     attribute values and optional features, simplifying the
     configuration of PTP nodes for a specific application. Instead of
     having to go through all possible parameters and configuration
     options and 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 defined value. If a PTP Profile definition allows multiple
     values for a parameter, selection of the PTP Profile will set the
     profile-specific default value for this parameter. Parameters not
     allowing multiple values are set to the value defined in the PTP
     Profile. Many PTP features and functions are optional, and a
     PTP Profile should also define which optional features of PTP are
     required, permitted, and prohibited. It is possible to extend the
     PTP standard with a PTP Profile by using the TLV mechanism of PTP
     (see <xref target="IEEE1588" format="default">IEEE 1588-2019</xref> subclause 13.4),
     defining an optional Best TimeTransmitter Clock Algorithm and a few other ways.
     PTP has its own management protocol (defined in
     <xref target="IEEE1588" format="default">IEEE 1588-2019</xref> subclause 15.2) but
     allows a PTP Profile to specify an alternative management mechanism,
     for example NETCONF.</t>
     <t> In this document the term PTP Port refers to a logical access point of a PTP instantiation for PTP communincation in a network. </t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
    <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
    NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
    "MAY", and "OPTIONAL" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default">RFC 2119 </xref> <xref target="RFC8174" format="default">RFC 8174</xref> when, and only when, they
    appear in all capitals, as shown here.</t>
    </section>
    <section anchor="technical_terms" numbered="true" toc="default">
      <name>Technical Terms</name>
      <ul spacing="normal">
        <li>Acceptable TimeTransmitter Table: A PTP timeReceiver Clock may maintain a list of
          timeTransmitters which it is willing to synchronize to.</li>
        <li>Alternate timeTransmitter: A PTP timeTransmitter Clock, which is not the Best
          timeTransmitter, may act as a timeTransmitter with the Alternate timeTransmitter flag set on
          the messages it sends.</li>
        <li>Announce message: Contains the timeTransmitter Clock properties of a timeTransmitter
          Clock.  Used to determine the Best TimeTransmitter.</li>
        <li>Best timeTransmitter:  A clock with a PTP Port in the timeTransmitter state, operating
          as the Grandmaster of a PTP domain.</li>
        <li>Best TimeTransmitter Clock Algorithm: A method for determining which 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. </li>
        <li>Boundary Clock: A device with more than one PTP Port.  Generally
          Boundary Clocks will have one PTP Port in timeReceiver state to receive
          timing and other PTP Ports in timeTransmitter state to re-distribute the
          timing.</li>
        <li>Clock Identity: In IEEE 1588-2019 this is a 64-bit number
          assigned to each PTP clock which MUST be globally unique. Often it is
          derived from the Ethernet MAC address.</li>
        <li>Domain: Every PTP message contains a domain number.  Domains are
          treated as separate PTP systems in the network.  Clocks, however,
          can combine the timing information derived from multiple domains.</li>
        <li>End-to-End delay measurement mechanism: A network delay
          measurement mechanism in PTP facilitated by an exchange of
          messages between a timeTransmitter Clock and a timeReceiver  Clock. 
          These messages might traverse Transparent Clocks and PTP unaware switches.
          This mechanism might not work properly if the Sync and Delay Request messages traverse different network paths.</li>
        <li>Grandmaster: the timeTransmitter Clock that is currently acting as the reference time source of the PTP domain</li>
        <li>IEEE 1588: The timing and synchronization standard which defines
          PTP, and describes the node, system, and communication properties
          necessary to support PTP.</li>
        <li>TimeTransmitter Clock: a clock with at least one PTP Port in the timeTransmitter state.</li>
        <li>NTP: Network Time Protocol, defined by RFC 5905, see <xref target="RFC5905" format="default">RFC 5905</xref></li>
        <li>Ordinary Clock: A clock that has a single Precision Time Protocol 
          PTP Port in a domain and maintains the timescale used in the
          domain. It may serve as a timeTransmitter Clock, or be a timeReceiver Clock.</li>
        <li>Peer-to-Peer delay measurement mechanism: A network delay
          measurement mechanism in PTP facilitated by an exchange of
          messages over the link between adjacent devices in a network. 
          This mechanism might not work properly unless all devices in the network support PTP and the Peer-to-peer measurement mechanism.</li>
        <li>Preferred timeTransmitter: A device intended to act primarily as the
          Grandmaster of a PTP system, or as a back up to a Grandmaster.</li>
        <li>PTP: The Precision Time Protocol: The timing and synchronization
          protocol defined by IEEE 1588.</li>
        <li>PTP Port: An interface of a PTP clock with the network.  Note that
          there may be multiple PTP Ports running on one physical interface,
          for example, mulitple unicast timeReceivers which talk to several Grandmaster
          Clocks in different PTP Domains.</li>
          <li>PTP Profile: A set of constraints on the options and features of PTP, 
          designed to optimize PTP for a specific use case or industry. 
          The profile specifies what is required, allowed and forbidden among options and attribute values of PTP.</li>
        <li>PTPv2.1: Refers specifically to the version of PTP defined by
          IEEE 1588-2019.</li>
        <li>Rogue timeTransmitter: A clock with a PTP Port in the timeTransmitter state, even though
          it should not be in the timeTransmitter state according to the Best TimeTransmitter
          Clock Algorithm, and does not set the Alternate timeTransmitter flag.</li>
        <li>TimeReceiver Clock: a clock with at least one PTP Port in the timeReceiver state,
          and no PTP Ports in the timeTransmitter state.</li>
        <li>TimeReceiver Only clock: An Ordinary Clock which cannot become a timeTransmitter
          Clock.</li>
        <li>TLV: Type Length Value, a mechanism for extending messages in
          networked communications.</li>
        <li>Transparent Clock.  A device that measures the time taken for a
          PTP event message to transit the device and then updates the
          message with a correction for this transit time.</li>
        <li>Unicast Discovery: A mechanism for PTP timeReceivers to establish a
          unicast communication with PTP timeTransmitters using a configured table of
          timeTransmitter IP addresses and Unicast Message Negotiation.</li>
        <li>Unicast Negotiation: A mechanism in PTP for timeReceiver Clocks to
          negotiate unicast Sync, Announce and Delay Request message transmission rates
          from timeTransmitters.</li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>Problem Statement</name>
      <t>This document describes how PTP can be applied to work in large
      enterprise networks.  See <xref target="RFC2026" format="default">ISPCS</xref> for information on IETF applicability statements.
      Such large networks are deployed, for example, in
      financial corporations.  It is becoming increasingly common in such
      networks to perform distributed time tagged measurements, such as
      one-way packet latencies and cumulative delays on software
      systems spread across multiple computers. Furthermore, there is
      often a desire to check the age of information time tagged by a
      different machine.  To perform these measurements, it is necessary
      to deliver a common precise time to multiple devices on a network.
      Accuracy currently required in the Financial Industry range from
      100 microseconds to 1 nanoseconds to the Grandmaster.  This
      PTP Profile does not specify timing performance requirements, but such
      requirements explain why the needs cannot always be met by NTP, as
      commonly implemented. Such accuracy cannot usually be achieved with
      a traditional time transfer such as NTP, without adding
      non-standard customizations such as on-path support, similar to what is done in PTP with Transparent Clocks and Boundary Clocks.  
      Such PTP support is commonly available in switches and routers, and many such devices have already been deployed in networks.  
      Because PTP has a complex range of features and
      options it is necessary to create a PTP Profile for enterprise
      networks to achieve interoperability between equipment
      manufactured by different vendors.</t>
      <t>Although enterprise networks can be large, it is becoming
      increasingly common to deploy multicast protocols, even across
      multiple subnets. For this reason, it is desired to make use of
      multicast whenever the information going to many destinations is
      the same.  It is also advantageous to send information which is
      only relevant to one device as a unicast message.  The latter can be
      essential as the number of PTP timeReceivers becomes hundreds or
      thousands.</t>
      <t>PTP devices operating in these networks need to be robust.  This
      includes the ability to ignore PTP messages which can be
      identified as improper, and to have redundant sources of time.</t>
      <t>Interoperability among independent implementations of this PTP
      Profile has been demonstrated at the ISPCS Plugfest <xref target="ISPCS" format="default">ISPCS</xref>.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Network Technology</name>
      <t>This PTP Profile MUST operate only in networks characterized by
      UDP <xref target="RFC0768" format="default">RFC 768</xref> over either IPv4 
      <xref target="RFC0791" format="default">RFC 791</xref> or IPv6 <xref target="RFC8200" format="default">RFC 8200</xref>,
      as described by Annexes C and D in <xref target="IEEE1588" format="default">IEEE 1588</xref> respectively.  
      A network node MAY include multiple PTP instances running simultaneously. 
      IPv4 and IPv6 instances in the same network node MUST operate in different PTP Domains.
      PTP Clocks which communicate using IPv4
      can transfer time to PTP Clocks using IPv6, or the reverse, if and only if, there is a network node
      which simultaneously communicates with both PTP domains in the different IP versions.</t>
      <t> The PTP system MAY include switches and routers.
      These devices MAY be Transparent Clocks, Boundary Clocks, or
      neither, in any combination.  PTP Clocks MAY be Preferred timeTransmitters,
      Ordinary Clocks, or Boundary Clocks.  The Ordinary Clocks may be
      TimeReceiver Only Clocks, or be timeTransmitter capable.</t>
      <t>Note that PTP Ports will need to keep tack of the Clock ID of received messages and
      not just the IP or Layer 2 addresses in any network that includes Transparent Clocks, or might include them in the future.  
      This is important 
      since Transparent Clocks might 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 retranmitted.  
      In IPv4 networks some clocks
      might be hidden behind 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 of PTP networks, depending on the port
      forwarding scheme employed.  Details of implementing PTP with NATs
      are out of scope of this document.</t>
      <t>PTP, similar to NTP, assumes that the one-way network delay for Sync
      messages and Delay Response messages are the same. When this is
      not true it can cause errors in the transfer of time from the
      timeTransmitter to the timeReceiver. It is up to the system integrator to design
      the network so that such effects do not prevent the PTP system
      from meeting the timing requirements. The details of network asymmetry
      are outside the scope of this document.  See for
      example, <xref target="G8271" format="default">ITU-T G.8271</xref>.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Time Transfer and Delay Measurement</name>
      <t>TimeTransmitter Clocks, Transparent Clocks and Boundary Clocks MAY be
    either one-step clocks or two-step clocks.  TimeReceiver Clocks MUST
    support both behaviors. The End-to-End Delay measurement method
    MUST be used.</t>
      <t>Note that, in IP networks, Sync messages and Delay Request
    messages exchanged between a timeTransmitter and timeReceiver do not necessarily
    traverse the same physical path. Thus, wherever possible, the
    network SHOULD be engineered so that the forward and
    reverse routes traverse the same physical path.  Traffic
    engineering techniques for path consistency are out of scope of
    this document.</t>
      <t>Sync messages MUST be sent as PTP event multicast messages (UDP
    port 319) to the PTP primary IP address.   Two step clocks MUST
    send Follow-up messages as PTP general multicast messages (UDP port 320).
    Announce messages MUST be sent as multicast messages (UDP 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
    be a value between 0x0 and 0xF. The different IPv6 address options are explained in IEEE 1588 
    <xref target="IEEE1588" format="default">IEEE 1588</xref> Annex D, Section D.3.  
    These addresses are aloted by IANA, see the <xref target="IPv6Registry" format="default">Ipv6 Multicast Address Space Registry</xref></t>
      <t>Delay Request messages MAY be sent as either multicast or unicast
    PTP event messages. TimeTransmitter Clocks MUST respond to multicast Delay
    Request messages with multicast Delay Response PTP general
    messages. TimeTransmitter Clocks MUST respond to unicast Delay Request PTP
    event messages with unicast Delay Response PTP general messages.
    This allows for the use of Ordinary Clocks which do not support the
    Enterprise Profile, if they are timeReceiver Only Clocks.</t>
      <t>Clocks SHOULD include support for multiple domains.  The purpose is
    to support multiple simultaneous timeTransmitters for redundancy. Leaf
    devices (non-forwarding devices) can use timing information from
    multiple timeTransmitters by combining information from multiple
    instantiations of a PTP stack, each operating in a different
    PTP Domain. Redundant sources of timing can be ensembled, and/or
    compared to check for faulty timeTransmitter Clocks. The use of multiple
    simultaneous timeTransmitters will help mitigate faulty timeTransmitters reporting as
    healthy, network delay asymmetry, and security problems.  Security
    problems include on-path attacks such as delay attacks,
    packet interception / manipulation attacks. Assuming the path to
    each timeTransmitter is different, failures malicious or otherwise would
    have to happen at more than one path simultaneously. Whenever
    feasible, the underlying network transport technology SHOULD be
    configured so that timing messages in different domains traverse
    different network paths.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Default Message Rates</name>
      <t>The Sync, Announce, and Delay Request default message rates MUST
    each 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 more than 128 messages per second.  The Announce
    message rate MUST NOT be changed from the default value.  The
    Announce Receipt Timeout Interval MUST be three Announce
    Intervals for Preferred TimeTransmitters, and four Announce Intervals for
    all other timeTransmitters.</t>
      <t>The logMessageInterval carried in the unicast Delay Response
    message MAY be set to correspond to the timeTransmitter ports preferred
    message period, rather than 7F, which indicates message periods
    are to be negotiated.  Note that negotiated message periods are not
    allowed, see <xref target="forbidden_ptp_options" format="default">forbidden PTP
    options</xref>.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements for TimeTransmitter Clocks</name>
      <t>TimeTransmitter Clocks MUST obey the standard Best TimeTransmitter Clock Algorithm
    from <xref target="IEEE1588" format="default">IEEE 1588</xref>.  PTP systems using this PTP Profile MAY support
    multiple simultaneous Grandmasters if each active Grandmaster is
    operating in a different PTP domain.</t>
      <t>A PTP Port of a clock MUST NOT be in the timeTransmitter state unless the
    clock has a current value for the number of UTC leap
    seconds.</t>
      <t>If a unicast negotiation signaling message is received it MUST
    be ignored.</t>
    <t>In PTP Networks that contain Transparent Clocks, timeTransmitters might receive Delay Request messages that no longer contains the IP Addresses of the timeReceivers. 
    This is because Transparent Clocks might replace the IP address of Delay Requests
    with their own IP address after updating the Correction Fields.  For this deployment scenario timeTransmitters will need to have configured tables of timeReceivers' IP addresses
    and associated Clock Identities in order to send Delay Responses to the correct PTP Nodes.</t>  
    </section>
    <section numbered="true" toc="default">
      <name>Requirements for TimeReceiver Clocks</name>
    <t>In a network which contains multiple timeTransmitters in multiple domains,
    TimeReceivers SHOULD make use of information from all the timeTransmitters in their clock control subsystems.
    TimeReceiver 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 to operate properly in the
    presence of a rogue timeTransmitter. TimeReceivers SHOULD NOT Synchronize to a
    timeTransmitter which is not the Best TimeTransmitter in its domain. TimeReceivers will
    continue to recognize a Best TimeTransmitter for the duration of the
    Announce Time Out Interval. TimeReceivers MAY use an Acceptable TimeTransmitter
    Table.  If a timeTransmitter is not an Acceptable timeTransmitter, then the timeReceiver
    MUST NOT synchronize to it. Note that IEEE 1588-2019 requires
    timeReceiver Clocks to support both two-step or one-step timeTransmitter Clocks.
    See <xref target="IEEE1588" format="default">IEEE 1588</xref>, subClause 11.2.</t>
      <t>Since Announce messages are sent as multicast messages timeReceivers can
    obtain the IP addresses of a timeTransmitter from the Announce messages.
    Note that the IP source addresses of Sync and Follow-up messages
    might have been replaced by the source addresses of a Transparent
    Clock, so, timeReceivers MUST send Delay Request messages to the IP
    address in the Announce message.  Sync and Follow-up messages can
    be correlated with the Announce message using the Clock ID, which
    is never altered by Transparent Clocks in this PTP Profile.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements for Transparent Clocks</name>
      <t>Transparent Clocks MUST NOT change the transmission mode of an
    Enterprise Profile PTP message.  For example, a Transparent Clock
    MUST NOT change a unicast message to a multicast message.
    Transparent Clocks which syntonize to the timeTransmitter Clock might need to maintain
    separate clock rate offsets for each of the supported domains.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements for Boundary Clocks</name>
      <t>Boundary Clocks SHOULD support multiple simultaneous PTP domains.
    This will require them to maintain separate clocks for each of the
    domains supported, at least in software.  Boundary Clocks MUST NOT
    combine timing information from different domains.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Management and Signaling Messages</name>
      <t>PTP Management messages MAY be used.  Management
    messages intended for a specific clock, i.e. the <xref target="IEEE1588" format="default">IEEE 1588</xref> defined
    attribute targetPortIdentity.clockIdentity is not set to All 1s,
    MUST be sent as a unicast message.  Similarly, if any signaling
    messages are used they MUST also be sent as unicast messages
    whenever the message is intended soley for a specific PTP Node.</t>
    </section>
    <section anchor="forbidden_ptp_options" numbered="true" toc="default">
      <name>Forbidden PTP Options</name>
      <t>Clocks operating in the Enterprise Profile MUST NOT use:
    Peer-to-Peer timing for delay measurement, Grandmaster Clusters, The Alternate TimeTransmitter option, Alternate Timescales. 
    Unicast discovery, or unicast negotiation. 
    Clocks operating in the Enterprise Profile MUST avoid any optional feature that requires Announce messages to be altered by Transparent Clocks, 
    as this would require the Transparent Clock to change the source address and prevent the timeReceiver nodes 
    from discovering the protocol address of the timeTransmitter.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Interoperation with IEEE 1588 Default Profile</name>
      <t>Clocks operating in the Enterprise Profile will interoperate with
    clocks operating in the Default Profile described in <xref target="IEEE1588" format="default">IEEE 1588</xref>
    Annex I.3.  This variant of the Default Profile uses the End-to-End
    delay measurement mechanism.  In addition, the Default Profile
    would have to operate over IPv4 or IPv6 networks, and use
    management messages in unicast when those messages are directed at
    a specific clock. If either of these requirements are not met than
    Enterprise Profile clocks will not interoperate with Annex I.3
    Default Profile Clocks.  The Enterprise Profile will not
    interoperate with the Annex I.4 variant of the Default Profile
    which requires use of the Peer-to-Peer delay measurement mechanism.</t>
      <t>Enterprise Profile Clocks will interoperate with clocks operating
    in 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 achieve interoperability with other PTP Profiles.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Profile Identification</name>
      <t keepWithNext="true">The IEEE 1588 standard requires that all PTP Profiles provide the
        following identifying information.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
          PTP Profile:
          Enterprise Profile
          Profile number: 1
          Version: 1.0
          Profile identifier: 00-00-5E-01-01-00

          This PTP Profile was specified by the IETF

          A copy may be obtained at
          https://datatracker.ietf.org/wg/tictoc/documents
        ]]></artwork>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Richard Cochran, Kevin Gross, John Fletcher, Laurent Montini 
      and many other members of IETF for reviewing and providing feedback on this draft.</t>
      <t>This document was initially prepared using 2-Word-v2.0.template.dot
         and has later been converted manually into xml format using an xml2rfc template.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>There are no IANA requirements in this specification.</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>Protocols used to transfer time, such as PTP and NTP can be
       important to security mechanisms which use time windows for keys
       and authorization. Passing time through the networks poses a
       security risk since time can potentially be manipulated.
       The use of multiple simultaneous timeTransmitters, using multiple PTP
       domains can mitigate problems from rogue timeTransmitters and
       on-path attacks.  Note that Transparent Clocks alter PTP content on-path, but in a manner specified in <xref target="IEEE1588" format="default">IEEE 1588-2019</xref> 
       that helps with time transfer accuracy. See sections 9 and 10. Additional
       security mechanisms are outside the scope of this document.</t>
      <t>PTP native management messages SHOULD NOT be used, due to the lack
       of a security mechanism for this option. Secure management can be
       obtained using standard management mechanisms which include
       security, for example NETCONF <xref target="RFC6241" format="default">NETCONF</xref>.</t>
      <t>General security considerations of time protocols are discussed in
       <xref target="RFC7384" format="default">RFC 7384</xref>.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

<back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.8174.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml"?-->

     <reference anchor="IEEE1588" target="https://www.ieee.org">
          <!-- the following is the minimum to make xml2rfc happy -->

       <front>
            <title>IEEE std. 1588-2019, "IEEE Standard for a
                Precision Clock Synchronization for Networked
                Measurement and Control Systems."</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date month="11" year="2019"/>
          </front>
     
    </reference>
             <reference anchor="IEEE1588g" target="https://www.ieee.org">
          <!-- the following is the minimum to make xml2rfc happy -->

       <front>
            <title>IEEE std. 1588g-2022, "IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems Amendment 2: Master-Slave Optional Alternative Terminology"</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date month="12" year="2022"/>
          </front>
        </reference>
        <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml">
          <front>
            <title>User Datagram Protocol</title>
            <author initials="J." surname="Postel" fullname="J. Postel">
              <organization/>
            </author>
            <date year="1980" month="August"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC0791" target="https://www.rfc-editor.org/info/rfc791" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0791.xml">
          <front>
            <title>Internet Protocol</title>
            <author initials="J." surname="Postel" fullname="J. Postel">
              <organization/>
            </author>
            <date year="1981" month="September"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC0791"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>   RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings..</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization/>
            </author>
            <author initials="R." surname="Hinden" fullname="R. Hinden">
              <organization/>
            </author>
            <date year="2017" month="July"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="G8271" target="https://www.itu.int">
          <front>
            <title>ITU-T G.8271/Y.1366, "Time and Phase Synchronization Aspects of Packet Networks"</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date month="3" year="2020"/>
          </front>
        </reference>
        <reference anchor="ISPCS" target="https://www.ispcs.org">
          <front>
            <title>Plugfest Report</title>
            <author surname="Arnold" initials="D.">
              <organization>International Symposium on Precision Clock
                   Synchronization for Measurement, Control and Communications</organization>
            </author>
            <date month="10" year="2017"/>
          </front>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author initials="R." surname="Enns" fullname="R. Enns" role="editor">
              <organization/>
            </author>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
              <organization/>
            </author>
            <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor">
              <organization/>
            </author>
            <date year="2011" month="June"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author initials="D." surname="Mills" fullname="D. Mills">
              <organization/>
            </author>
            <author initials="J." surname="Martin" fullname="J. Martin" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Burbank" fullname="J. Burbank">
              <organization/>
            </author>
            <author initials="W." surname="Kasch" fullname="W. Kasch">
              <organization/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
<reference anchor="RFC2026" target="https://www.rfc-editor.org/info/rfc2026" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2026.xml">
          <front>
            <title>The Internet Standards Process -- Revision 3</title>
            <author initials="S." surname="Bradner" fullname="Scott O. Bradner">
              <organization/>
            </author>
            <date year="1996" month="October"/>
            <abstract>
              <t>This memo documents the process used by the Internet community for
   the standardization of protocols and procedures.  It defines the
   stages in the standardization process, the requirements for moving a
   document between stages and the types of documents used during this
   process.  It also addresses the intellectual property rights and
   copyright issues associated with the standards process.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2026"/>
          <seriesInfo name="DOI" value="10.17487/RFC2026"/>
        </reference>
        <reference anchor="RFC7384" target="https://www.rfc-editor.org/info/rfc7384" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7384.xml">
          <front>
            <title>Security Requirements of Time Protocols in Packet Switched Networks</title>
            <author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
              <organization/>
            </author>
            <date year="2014" month="October"/>
            <abstract>
              <t>As time and frequency distribution protocols are becoming increasingly common and widely deployed, concern about their exposure to various security threats is increasing.  This document defines a set of security requirements for time protocols, focusing on the Precision Time Protocol (PTP) and the Network Time Protocol (NTP). This document also discusses the security impacts of time protocol practices, the performance implications of external security practices on time protocols, and the dependencies between other security services and time synchronization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7384"/>
          <seriesInfo name="DOI" value="10.17487/RFC7384"/>
        </reference>
        <reference anchor="IPv6Registry" target="https://iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml">
          <front>
            <title>IPv6 Multicast Address Space Registry</title>
            <author initials="S." surname="Venaas" fullname="Stig Venaas">
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2024" month="February"/>
          </front>
        </reference>
      <reference anchor="Estrela_and_Bonebakker" target="https://www.researchgate.net/publication/260742322_Challenges_deploying_PTPv2_in_a_global_financial_company">
          <!-- the following is the minimum to make xml2rfc happy -->

        <front>
           <title>Estrela and Bonebakker, "Challenges deploying PTPv2 in a global financial company"</title>
              <author initials="P." surname="Estrela" fullname="P. V. Estrela">
                <organization>IEEE International Symposium on Precision Clock Synchronization for Measurement, Control and Communication Proceedings
                </organization>
              </author>
              <author initials="L." surname="Bonebakker" fullname="L. Bonebakker">
                <organization>IEEE International Symposium on Precision Clock Synchronization for Measurement, Control and Communication Proceedings
                </organization>
              </author>
              <date year="2012"/>
            </front>         
          <seriesInfo name="DOI" value="10.1109/ISPCS.2012.6336634"/>
          </reference>
       </references>
    </references>
  </back>
</rfc>
