diff --git a/specs/queens/tripleo-ptp.rst b/specs/queens/tripleo-ptp.rst new file mode 100644 index 00000000..30818cfd --- /dev/null +++ b/specs/queens/tripleo-ptp.rst @@ -0,0 +1,141 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +============================================= +TripleO PTP (Precision Time Protocol) Support +============================================= + +https://blueprints.launchpad.net/tripleo/+spec/tripleo-ptp + +This spec introduces support for a time synchronization method called PTP [0] +which provides better time accuracy than NTP in general. With hardware +timestamping support on the host, PTP can achieve clock accuracy in the +sub-microsecond range, making it suitable for measurement and control systems. + +Problem Description +=================== + +Currently tripleo deploys NTP services by default which provide millisecond +level time accuracy, but this is not enough for some cases: + +* Fault/Error events will include timestamps placed on the associated event + messages, retrieved by detectors with the purpose of accurately identifying + the time that the event occurred. Given that the target Fault Management + cycle timelines are in tens of milliseconds on most critical faults, events + ordering may reverse against actual time if precison and accuracy of clock + synchronization are in the same level of accuracy. + +* NFV C-RAN (Cloud Radio Access Network) is looking for better time + sychronization and distribution in micro-second level accuracy as alternative + for NTP, PTP has been evaluated as one of the technologies. + +This spec is not intended to cover all the possible ways of PTP usage, rather +to provide a basic deployment path for PTP in tripleo with default +configuration set to support PTP Ordinary Clock (slave mode); the master mode +ptp clock configuration is not in the scope of this spec, but shall be deployed +by user to provide the time source for the PTP Ordinary Clock. The full support +of PTP capability can be enhanced further based on this spec. + +User shall be aware of the fact that NTP and PTP can not be configured together +on the same node without a coordinator program like timemaster which is also +provided by linuxptp package. How to configure and use timemaster is not in the +scope of this spec. + +Proposed Change +=============== + +Overview +-------- + +Provide the capability to configure PTP as time synchronization method: + +* Add PTP configuration file path in overcloud resource registry. + +* Add puppet-tripleo profile for PTP services. + +* Add tripleo-heat-templates composable service for PTP. + +Retain the current default behavior to deploy NTP as time synchronization +source: + +* The NTP services remain unchanged as the default time synchronization method. + +* The NTP services must be disabled on nodes where PTP are deployed. + +Alternatives +------------ + +The alternative is to continue to use NTP. + +Security Impact +--------------- + +Security issues originated from PTP will need to be considered. + +Other End User Impact +--------------------- + +Users will get more accurate time from PTP. + +Performance Impact +------------------ + +No impact with default deployment mode which uses NTP as time source. + +Other Deployer Impact +--------------------- + +The operator who wants to use PTP should identify and provide the PTP capable +network interface name and make sure NTP is not deployed on the nodes where PTP +will be deployed. The default PTP network interface name is set to 'nic1' where +user should change it according to real interface name. By default, PTP will +not be deployed unless explicitly configured. + +Developer Impact +---------------- + +None + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + zshi + +Work Items +---------- + +* Puppet-tripleo profile for PTP services +* Tripleo-heat-templates composable service for PTP deployment + +Dependencies +============ + +* Puppet module for PTP services: ptp [1] +* The linuxptp RPM must be installed, and PTP capable NIC must be identified. +* Refer to linuxptp project page [2] for the list of drivers that support the + PHC (Physical Hardware Clock) subsystem. + +Testing +======= + +The deployment of PTP should be testable in CI. + +Documentation Impact +==================== + +The deployment documation will need to be updated to cover the configuration of +PTP. + +References +========== + +* [0] https://standards.ieee.org/findstds/standard/1588-2008.html +* [1] https://github.com/redhat-nfvpe/ptp +* [2] http://linuxptp.sourceforge.net