Merge "Granite Rapids-D GNSS and DPLL support for timing"

This commit is contained in:
Zuul
2025-09-24 16:44:09 +00:00
committed by Gerrit Code Review
5 changed files with 491 additions and 23 deletions

View File

@@ -62,6 +62,7 @@
.. |DNAT| replace:: :abbr:`DNAT (Destination Network Address Translation)` .. |DNAT| replace:: :abbr:`DNAT (Destination Network Address Translation)`
.. |DNS| replace:: :abbr:`DNS (Domain Name System)` .. |DNS| replace:: :abbr:`DNS (Domain Name System)`
.. |DPDK| replace:: :abbr:`DPDK (Data Plane Development Kit)` .. |DPDK| replace:: :abbr:`DPDK (Data Plane Development Kit)`
.. |DPLL| replace:: :abbr:`DPLL (Digital Phase Locked Loop)`
.. |DN| replace:: :abbr:`DN (Distinguished Name)` .. |DN| replace:: :abbr:`DN (Distinguished Name)`
.. |DORA| replace:: :abbr:`DORA (Dell Open RAN Accelerator)` .. |DORA| replace:: :abbr:`DORA (Dell Open RAN Accelerator)`
.. |DRAM| replace:: :abbr:`DRAM (Dynamic Random Access Memory)` .. |DRAM| replace:: :abbr:`DRAM (Dynamic Random Access Memory)`
@@ -169,6 +170,8 @@
.. |PMU| replace:: :abbr:`PMU (Performance Monitor Unit)` .. |PMU| replace:: :abbr:`PMU (Performance Monitor Unit)`
.. |PQDN| replace:: :abbr:`PDQN (Partially Qualified Domain Name)` .. |PQDN| replace:: :abbr:`PDQN (Partially Qualified Domain Name)`
.. |PQDNs| replace:: :abbr:`PQDNs (Partially Qualified Domain Names)` .. |PQDNs| replace:: :abbr:`PQDNs (Partially Qualified Domain Names)`
.. |PHY| replace:: :abbr:`PHY (Physical Layer)`
.. |PPS| replace:: :abbr:`PPS (Pulse Per Second)`
.. |PRTC| replace:: :abbr:`PRTC (Primary Reference Time Clock)` .. |PRTC| replace:: :abbr:`PRTC (Primary Reference Time Clock)`
.. |PSA| replace:: :abbr:`PSA (Pod Security Admission)` .. |PSA| replace:: :abbr:`PSA (Pod Security Admission)`
.. |PSP| replace:: :abbr:`PSP (Pod Security Policy)` .. |PSP| replace:: :abbr:`PSP (Pod Security Policy)`
@@ -196,6 +199,7 @@
.. |RST| replace:: :abbr:`rST (reStructuredText)` .. |RST| replace:: :abbr:`rST (reStructuredText)`
.. |RVMC| replace:: :abbr:`RVMC (Redfish Virtual Media Controller)` .. |RVMC| replace:: :abbr:`RVMC (Redfish Virtual Media Controller)`
.. |RWX| replace:: :abbr:`RWX (Read Write Many)` .. |RWX| replace:: :abbr:`RWX (Read Write Many)`
.. |RX| replace:: :abbr:`RX (Receiver)`
.. |SA| replace:: :abbr:`SA (Security Association)` .. |SA| replace:: :abbr:`SA (Security Association)`
.. |SAs| replace:: :abbr:`SAs (Security Associations)` .. |SAs| replace:: :abbr:`SAs (Security Associations)`
.. |SAN| replace:: :abbr:`SAN (Subject Alternative Name)` .. |SAN| replace:: :abbr:`SAN (Subject Alternative Name)`
@@ -243,6 +247,7 @@
.. |TPM| replace:: :abbr:`TPM (Trusted Platform Module)` .. |TPM| replace:: :abbr:`TPM (Trusted Platform Module)`
.. |TPMs| replace:: :abbr:`TPMs (Trusted Platform Modules)` .. |TPMs| replace:: :abbr:`TPMs (Trusted Platform Modules)`
.. |TTL| replace:: :abbr:`TTL (Time-to-live)` .. |TTL| replace:: :abbr:`TTL (Time-to-live)`
.. |TX| replace:: :abbr:`TX (Transmitter)`
.. |UDP| replace:: :abbr:`UDP (User Datagram Protocol)` .. |UDP| replace:: :abbr:`UDP (User Datagram Protocol)`
.. |UDS| replace:: :abbr:`UDS (Unix Domain Socket)` .. |UDS| replace:: :abbr:`UDS (Unix Domain Socket)`
.. |UEFI| replace:: :abbr:`UEFI (Unified Extensible Firmware Interface)` .. |UEFI| replace:: :abbr:`UEFI (Unified Extensible Firmware Interface)`

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -124,15 +124,73 @@ NONE
**Other requirements** **Other requirements**
The clock type instance is a special instance used for configuring the |NIC| The clock type instance is a special instance used for configuring the |NIC|
control parameters of the Westport Channel or Logan Beach |NIC| clock control parameters of the Westport Channel, Logan Beach, E825 (GNR-D) and E830
interface parameters. (Connorsville) |NICs| clock interface parameters.
These parameters can be applied to the interface of a clock instance |PTP| These parameters can be applied to the interface of a clock instance |PTP|
parameters: parameters:
* sma1 input/output - sma1 input/output
* sma2 input/output
* u.fl1 output - sma2 input/output
* u.fl2 input
* synce_rclka enabled - u.fl1 output
* synce_rclkb enabled
- u.fl2 input
- synce_rclka enabled
- synce_rclkb enabled
- sdp0
- output - configure SDP0 pin as output and assign to channel 1
- sdp1
- input - configure SDP1 pin as input and assign to channel 1
- sdp2
- output - configure SDP2 pin as output and assign to channel 2
- sdp3
- input - configure SDP3 pin as input and assign to channel 2
- period_sdp0
- 1pps - enable 1PPS output on SDP0 pin
- 1khz - enable 1 KHz output on SDP0 pin
- 10mhz - enable 10 MHz output on SDP0 pin
- period_sdp2
- 1pps - enable 1PPS output on SDP2 pin
- 1khz - enable 1 KHz output on SDP2 pin
- 10mhz - enable 10 MHz output on SDP2 pin
- tspll_cfg:
- osc_156.25 - use the 156.25 MHz oscillator clock signal as input reference
clock for the |PHC|
- timeref_156.25 - use the 156.25 MHz |DPLL| clock signal (TIME_REF) as input
reference clock for the |PHC|.
- tx_clk
- enet - use the 25 MHz oscillator clock signal as |TX| reference clock for the
|PHY| port
- synce - use the 156.25 MHz |DPLL| clock signal as |TX| reference clock for the
|PHY| port.
- eref0 - use the 156.25 MHz oscillator clock signal as |TX| reference clock
for the |PHY| port

View File

@@ -9,22 +9,18 @@ Example PTP Instance Configurations
:depth: 2 :depth: 2
The following sections provide example configuration steps for two |PTP| The following sections provide example configuration steps for some |PTP|
configurations supported by |prod|. configurations supported by |prod|.
* The first is a Border Clock setup where an external |PTP| |PTS| is providing T-BC - Simple PTP configuration
a time source for the system. Only ptp4l and phc2sys are used for this
configuration.
* The second shows how to setup a |PTS| node when a time source is available
via a locally connected GNSS signal. The ``ptp4l``, ``phc2sys``,
``ts2phc`` and clock instance types are used for this configuration.
Simple PTP configuration - T-BC
=============================== ===============================
Using the topology shown, the following examples provide This example presents a Border Clock setup where an external |PTP| |PTS|
configurations for each service type: provides a time source for the system. Only ``ptp4l`` and ``phc2sys`` are used
for this configuration.
Using the topology shown, the following examples provide configurations for
each service type:
.. figure:: figures/ptp-t-bc-configuration.png .. figure:: figures/ptp-t-bc-configuration.png
:scale: 110 % :scale: 110 %
@@ -162,11 +158,12 @@ phc2sys
~(keystone_admin)]$ system ptp-instance-apply ~(keystone_admin)]$ system ptp-instance-apply
T-GM - Alternate PTP Configuration
Alternate PTP configuration - T-GM
================================== ==================================
This example shows how to setup a |PTS| node when a time source is available
via a locally connected |GNSS| signal. The ``ptp4l``, ``phc2sys``, ``ts2phc``
and clock instance types are used for this configuration.
Using the topology shown, the following examples provide configurations for Using the topology shown, the following examples provide configurations for
each service type. each service type.
@@ -404,3 +401,411 @@ instance:
.. code-block:: .. code-block::
~(keystone_admin)]$ system ptp-instance-apply ~(keystone_admin)]$ system ptp-instance-apply
T-GM - Dual NIC Deployment with GNSS and Timing Modules
=======================================================
This scenario presents an example of |T-GM| setup where the two |NICs| use |GNSS|
as the precise time source. This configuration can be extended to include
additional |NICs|.
.. figure:: figures/t-gm-configuration.PNG
:scale: 110 %
*T-GM Configuration*
clock
-----
#. Create an instance.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add clock0 clock
#. Create an interface to configure NIC1, add parameter(s), and assign the host
interface(s) to it. The SDP1 pin is assigned to channel 1 and will receive
the signal from |DPLL|. Input reference clock for |PHC| will be a 156.25 MHz
signal from |DPLL| (TIME_REF). Use |DPLL| clock signal (SyncE) as |TX|
reference clock for |PHY| port.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if0 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 sdp1=input
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 tspll_cfg=timeref_156.25
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 tx_clk=synce
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f0 clk0if0
#. Create an interface to configure the other ports of NIC1. Use |DPLL| clock
signal (SyncE) as |TX| reference clock for |PHY| port.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if1 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if1 tx_clk=synce
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f1 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f2 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f3 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f4 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f5 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f6 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f7 clock0if1
#. Create an interface to configure NIC2, add parameter(s), and assign the host
interface(s) to it. SDP1 pin is assigned to channel 1 and will receive the
signal from |DPLL|. For additional |NICs|, run the following commands for each |NIC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if2 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if2 sdp1=input
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 clock0if2
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 clock0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
ts2phc
------
#. Create an instance and add parameter(s). This instance will synchronize the
|PHCs| with the external timestamp signal coming from the |GNSS|.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ts0 ts2phc
~(keystone_admin)]$ system ptp-instance-parameter-add ts0 ts2phc.nmea_serialport=/dev/ttyACM0
.. note::
The |GNSS| serial port and baud rate may vary depending on the platform.
#. Create an interface, add parameter(s), and assign the host interface(s) to
it. The clock signal will be received by the SDP1 pin on channel 1 of each
|NIC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add ts0if0 ts0
~(keystone_admin)]$ system ptp-interface-parameter-add ts0if0 ts2phc.channel=1 ts2phc.pin_index=1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f0 ts0if0
#. Assign the host interface(s) of the other |NICs| that will be
synchronized by the |GNSS| timestamps.
.. code-block:: none
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 ts0if0
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ts0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
ptp4l
-----
#. Create an instance for NIC1 and add parameter(s). It is recommended to
create a ``ptp4l`` instance for each |PHC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ptp0 ptp4l
~(keystone_admin)]$ system ptp-instance-parameter-add ptp0 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add ptp0 dataset_comparison=G.8275.x
#. Create an interface, add parameter(s), and assign host interface(s) to it.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add ptp0if0 ptp0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f0 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f1 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f2 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f3 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f4 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f5 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f6 ptp0if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f7 ptp0if0
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ptp0
#. Repeat the procedure in a similar manner for the additional |NICs|.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ptp1 ptp4l
~(keystone_admin)]$ system ptp-instance-parameter-add ptp1 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add ptp1 dataset_comparison=G.8275.x
~(keystone_admin)]$ system ptp-interface-add ptp1if0 ptp1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f1 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f2 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f3 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f4 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f5 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f6 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f7 ptp1if0
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ptp1
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
phc2sys
-------
#. Create an instance and add parameter(s). This instance will synchronize the
system clock with the NIC1 |PHC| via the |PTP| port (-s option).
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add phc0 phc2sys
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 uds_address=/var/run/ptp4l-ptp0
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 cmdline_opts='-w -s enp1s0f0'
.. note::
For the -s option in the ``cmdline_opts`` parameter, it is necessary to
add the |PTP| port of NIC1. To find the |PTP| port, find the interface
that contains the ``ptp`` folder:
.. code-block:: none
$ ls /sys/class/net/enp1*/device/ptp
/sys/class/net/enp1s0f0/device/ptp:
ptp0
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 phc0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
T-BC - Dual NIC Deployment with Timing Module
=============================================
This scenario presents an example of |T-BC| configuration where NIC1 is
synchronized via ``ptp4l`` and then NIC2 is synchronized via a clock signal
generated by NIC1.
This configuration can be extended to include additional |NICs|.
.. figure:: figures/t-bc-configuration.PNG
:scale: 110 %
*T-BC configuration*
.. note::
In a setup where Intel E825 and E830 |NICs| are used, the incoming |PTP| and
SyncE clock sources must be connected to the E825 ports only.
clock
-----
#. Create an instance.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add clock0 clock
#. Create an interface to configure NIC1, add parameter(s), and assign the host
interface(s) to it. The SDP0 pin is assigned to channel 1 and will generate
a 1 |PPS| signal to |DPLL|. Input reference clock for |PHC| will be a 156.25 MHz
signal from |DPLL| (TIME_REF). Use |DPLL| clock signal (SyncE) as |TX| reference
clock for |PHY| port.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if0 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 sdp0=output period_sdp0=1pps
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 tspll_cfg=timeref_156.25
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if0 tx_clk=synce
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f0 clk0if0
#. Create an interface to configure the other ports of NIC1. Use |DPLL| clock
signal (SyncE) as |TX| reference clock for |PHY| port.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if1 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if1 tx_clk=synce
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f1 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f2 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f3 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f4 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f5 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f6 clock0if1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp1s0f7 clock0if1
#. Create an interface to configure NIC2, add parameter(s), and assign the host
interface(s) to it. SDP1 pin is assigned to channel 1 and will receive the
signal from |DPLL|. For additional |NICs|, run the following commands for
each |NIC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add clock0if2 clock0
~(keystone_admin)]$ system ptp-interface-parameter-add clock0if2 sdp1=input
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 clock0if2
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 clock0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
ts2phc
------
#. Create an instance and add parameter(s). This instance will synchronize the
|PHCs| with the clock signal generated by NIC1.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ts0 ts2phc
~(keystone_admin)]$ system ptp-instance-parameter-add ts0 cmdline_opts='-s generic'
#. Create an interface, add parameter(s), and assign the host interface(s) of the
|NICs| that will be synchronized by NIC1 clock signal. The clock signal
will be received by the SDP1 pin on channel 1 of each |NIC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-interface-add ts0if0 ts0
~(keystone_admin)]$ system ptp-interface-parameter-add ts0if0 ts2phc.channel=1 ts2phc.pin_index=1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 ts0if0
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ts0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
ptp4l
-----
#. Create an instance for NIC1 and add parameter(s). It is recommended to
create a ``ptp4l`` instance for each |PHC|.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ptp0 ptp4l
~(keystone_admin)]$ system ptp-instance-parameter-add ptp0 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add ptp0 dataset_comparison=G.8275.x
#. Create an interface, add parameter(s), and assign the host interface(s) to it.
.. code-block:: none
~(keystone_admin)$ system ptp-interface-add ptp0if0 ptp0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f0 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f1 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f2 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f3 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f4 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f5 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f6 ptp0if0
~(keystone_admin)$ system host-if-ptp-assign controller-0 enp1s0f7 ptp0if0
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ptp0
#. Repeat the procedure in a similar manner for the additional |NICs|.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add ptp1 ptp4l
~(keystone_admin)]$ system ptp-instance-parameter-add ptp1 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add ptp1 dataset_comparison=G.8275.x
~(keystone_admin)]$ system ptp-interface-add ptp1if0 ptp1
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f0 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f1 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f2 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f3 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f4 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f5 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f6 ptp1if0
~(keystone_admin)]$ system host-if-ptp-assign controller-0 enp2s0f7 ptp1if0
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 ptp1
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply
phc2sys
-------
#. Create an instance and add parameter(s). This instance will synchronize the
system clock with the NIC1 |PHC| via the |PTP| port (-s option).
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-add phc0 phc2sys
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 domainNumber=24
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 uds_address=/var/run/ptp4l-ptp0
~(keystone_admin)]$ system ptp-instance-parameter-add phc0 cmdline_opts='-w -s enp1s0f0'
#. Assign the instance to a host.
.. code-block:: none
~(keystone_admin)]$ system host-ptp-instance-assign controller-0 phc0
#. Apply the configuration.
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-apply