[PTP SyncE] Spec for PTP SyncE work
This spec document covers the proposed changes to StarlingX to support the configuration of SyncE features on Intel's Westport Channel NICs. Signed-off-by: Cole Walker <cole.walker@windriver.com> Change-Id: Ib9e58cb40f5f6e70fb1cfbc0ec398d85da8dfdb6
This commit is contained in:
parent
ea7023cf7c
commit
89a0660e58
|
@ -0,0 +1,210 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License. http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
..
|
||||
|
||||
Enhance PTP Features to Support 5G Time SyncE Solution
|
||||
======================================================
|
||||
|
||||
Storyboard:
|
||||
https://storyboard.openstack.org/#!/story/2009130
|
||||
|
||||
For many 5G applications, clock synchronization is essential for correct
|
||||
operation. The purpose of this work is to extend the PTP features of StarlingX
|
||||
to support the configuration of NICs which provide Synchronous Ethernet (SyncE)
|
||||
support. SyncE is a technology that allows for a reliable Pulse Per Second
|
||||
(PPS) signal, such as from a GNSS source, to be distributed among NICs in order
|
||||
to synchronize their clock timing. SyncE is standardized by the ITU-T in
|
||||
cooperation with IEEE as G.8261, G.8262 and G.8264.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
SyncE functionality requires setting values for different pins exposed by the
|
||||
device driver. This means that StarlingX must provide an interface for users to
|
||||
configure these pins and persist the configuration between reboots.
|
||||
|
||||
Use Cases
|
||||
---------
|
||||
|
||||
The changes proposed in this document pertain to StarlingX support for the
|
||||
Intel Westport Channel NIC and the related ICE driver. Other NICs may have
|
||||
different configuration interfaces and will require additional development to
|
||||
support. The goal of this work is to establish a basic framework that can be
|
||||
extended to support additional devices in the future if required.
|
||||
|
||||
* Users want to configure and enable SyncE functionality on supported NICs.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
This change will introduce a new instance to the PTP instance types, called
|
||||
'clock'. With this instance type, users will be able to specify host interfaces
|
||||
and assign parameters to them which will be processed and stored in the sysinv
|
||||
database. The existing PTP tables will be used, as the 'clock' instance type
|
||||
will be handled in the same manner as ptp4l, phc2sys and ts2phc. The database
|
||||
entries will then be processed into hieradata and a puppet manifest will apply
|
||||
the configuration on system boot or when the user issues system
|
||||
ptp-instance-apply.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Alternatives to this approach could perhaps involve tying the SyncE
|
||||
configuration into the host-if functionality of sysinv. A similar approach was
|
||||
taken in the past for single-instance PTP configuration. Tying the SyncE config
|
||||
to host-if or another part of sysinv risks being too restrictive to properly
|
||||
support future NIC types or other more complex requirements. By including it as
|
||||
a PTP instance type, there is a great deal of flexibility going forward. SyncE
|
||||
configuration also shares many similarities with the configuration process for
|
||||
PTP.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
This feature will leverage the data model changes proposed in
|
||||
https://opendev.org/starlingx/specs/commit/dfaeb38ab727cbae8ad578e144fbfd42b3070089
|
||||
and does not require any additional changes. SyncE configuration fits
|
||||
easily within this model and only requires that the 'clock' instance type be
|
||||
recognized by the API as a valid type.
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
There will be no changes to the REST API apart from those proposed in
|
||||
https://opendev.org/starlingx/specs/commit/dfaeb38ab727cbae8ad578e144fbfd42b3070089
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
This work requires adding a small number of additional sysinv database queries
|
||||
during the generation of hieradata. These queries are generally only made once
|
||||
per run and the returned data is used for shared purposes among the setting up
|
||||
of PTP instances as much as possible.
|
||||
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Cole Walker
|
||||
|
||||
Other contributors:
|
||||
Douglas Koerich
|
||||
Teresa Ho
|
||||
|
||||
Repos Impacted
|
||||
--------------
|
||||
|
||||
List repositories in StarlingX that are impacted by this spec.
|
||||
|
||||
starlingx/config
|
||||
starlingx/fault
|
||||
starlingx/integ
|
||||
starlingx/kernel
|
||||
starlingx/monitoring
|
||||
starlingx/ptp-notification-armada-app
|
||||
starlingx/stx-puppet
|
||||
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Update to 5.10 kernel
|
||||
* Upgrade ICE driver to 1.7.16
|
||||
* Upgrade linuxptp package
|
||||
* Upgrade tzdata package to provide leapseconds.list
|
||||
* Support 'clock' instance type
|
||||
* Add handling for supported NIC parameters
|
||||
* Add alarming and monitoring for SyncE
|
||||
* Update ptp-notification to support GM node
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
Depends on:
|
||||
https://review.opendev.org/c/starlingx/specs/+/835315
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit tests will be updated for APIs, as well for the hieradata generation.
|
||||
|
||||
Functional testing will be performed on hardware using Intel Westport
|
||||
Channel NICs.
|
||||
|
||||
Two separate nodes with this hardware are required to properly validate SyncE
|
||||
behaviour. Due to hardware limitations, initial development and testing will be
|
||||
performed on AIO-SX systems, with some limited test coverage on a Standard
|
||||
system. It is not expected that different system types should be relevant to
|
||||
testing this feature.
|
||||
|
||||
Existing regression testing for the ptp-notification feature should be run
|
||||
during this period in order to verify that the application still functions as
|
||||
expected. It is possible that updates to the ptp-notification app may be
|
||||
required as part of this work.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
This work will primarily affect end users. The relevant End User documentation
|
||||
will need to be updated to provide configuration examples and to list the
|
||||
parameters used by the clock instance type. This feature relates directly to
|
||||
the Intel Westport Channel NIC and will require users to have access to Intel's
|
||||
user documentation for that device in order to understand its usage.
|
||||
|
||||
StarlingX release notes describing this feature will be provided.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
None
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
.. list-table:: Revisions
|
||||
:header-rows: 1
|
||||
|
||||
* - Release Name
|
||||
- Description
|
||||
* - 1
|
||||
- Introduced
|
||||
* - 2
|
||||
- Minor syntax changes
|
||||
|
Loading…
Reference in New Issue