diff --git a/doc/source/planning/kubernetes/verified-commercial-hardware.rst b/doc/source/planning/kubernetes/verified-commercial-hardware.rst index ca15b6959..4a2cb3bea 100755 --- a/doc/source/planning/kubernetes/verified-commercial-hardware.rst +++ b/doc/source/planning/kubernetes/verified-commercial-hardware.rst @@ -61,6 +61,8 @@ Supported hardware components for use with |prod| are listed here. | | | | | - NVIDIA Mellanox MCX4121A-ACAT (ConnectX-4) Lx 10G/25G | | | | + | | - Silicom TimeSync STS2 | + | | | +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | NICs Verified for SR-IOV | - Intel 82599 (Niantic) 10G | | | | @@ -78,6 +80,8 @@ Supported hardware components for use with |prod| are listed here. | | | | | - Broadcom 57504 | | | | + | | - Silicom TimeSync STS2 | + | | | | | .. note:: | | | For Mellanox NICs, SR-IOV must be enabled in the NIC firmware. | | | | @@ -93,6 +97,8 @@ Supported hardware components for use with |prod| are listed here. | | | | | - NVIDIA Mellanox MCX623106AC-CDAT, MCX623106AN-CDAT (ConnectX-6) 100G | | | | + | | - Silicom TimeSync STS2 | + | | | +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | NIC for High-precision timing synchronization with IEEE | - Intel E810-XXVDA4T (Columbiaville - Westport Channel) 25G | | 1588 PTP, SyncE and GNSS | | diff --git a/doc/source/system_configuration/kubernetes/configure-silicom-sts-ptp-application-1bc4a8d07aad.rst b/doc/source/system_configuration/kubernetes/configure-silicom-sts-ptp-application-1bc4a8d07aad.rst new file mode 100644 index 000000000..daa81c79c --- /dev/null +++ b/doc/source/system_configuration/kubernetes/configure-silicom-sts-ptp-application-1bc4a8d07aad.rst @@ -0,0 +1,98 @@ +.. _configure-silicom-sts-ptp-application-1bc4a8d07aad: + +====================================================== +Configure PTP on Silicom TimeSync (STS) Server Adapter +====================================================== + + +The Silicom TimeSync Server Adapter (STS) provides local time sync support via +a local GNSS module which is based on Intel E810 chipset. + +For additional information, see +https://www.silicom-usa.com/pr/server-adapters/networking-adapters/10-gigabit-ethernet-networking-adapters/p410g8ts81-timesync-server-adapter/ + +The Silicom STS card operates in two modes: regular NIC mode and timing mode. + +Packaged as a system application, the sts-silicom application provides +the ability to configure the STS cards in timing mode and specify time sync +parameters using helm-overrides. + +.. rubric:: |context| + +On multi-node systems, a homogenous deployment of the Silicom TimeSync (STS) +cards is necessary since it's not possible to specify different configurations +for different nodes. + + +.. rubric:: **Limitations** + +.. include:: configuring-ptp-service-using-the-cli.rst + :start-after: begin-silicom-ptp-limitations + :end-before: end-silicom-ptp-limitations + +.. rubric:: |proc| + +The following example uses a Grand Master deployment on port ``enp81s0f3`` with +``twoStep`` mode enabled: + +#. Install the application. + + ~(keystone_admin)]$ system application-upload /usr/local/share/applications/helm/sts-silicom-.tgz + + +#. Create the configuration file and apply it. + + .. code-block:: + + $ cat << EOF > sts_override.yaml + Spec: + profileID: 2 + ports: + - ethName: enp81s0f3 + ql: 4 + ethPort: 4 + masterPortMask_GM: 0x8 + syncePortMask_GM: 0x8 + twoStep: 1 + EOF + + ~(keystone_admin)]$ system helm-override-update sts-silicom sts-silicom sts-silicom --values sts_override.yaml + + ~(keystone_admin)]$ system application-apply sts-silicom + +#. Check if the application is applied. + + .. code-block:: + + ~(keystone_admin)]$ system application-show sts-silicom + +.. rubric:: |postreq| + +To update the application, remove and re-apply it with the new configuration. + +#. Remove the application. + +.. code-block:: none + + ~(keystone_admin)]$ system application-remove sts-silicom + +#. Edit ``sts_override.yaml``. + +#. Apply the new configuration. + + .. code-block:: none + + ~(keystone_admin)]$ system helm-override-update sts-silicom sts-silicom sts-silicom --values sts_override.yaml + ~(keystone_admin)]$ system application-apply sts-silicom + + +For more details on the configuration parameters, please consult the following +Silicom documentation: + +https://github.com/silicom-ltd/STS_HelmCharts + +From https://silicom.ftptoday.com, under /STS/STS_Docs/ (credentials +required): + +* STS_Products_Line_Quick_Start_Guide_v1.60.pdf +* Linux_TSync_Prog_Guide_V2.4.pdf diff --git a/doc/source/system_configuration/kubernetes/configuring-ptp-service-using-the-cli.rst b/doc/source/system_configuration/kubernetes/configuring-ptp-service-using-the-cli.rst index 8023008ff..6c91aae26 100644 --- a/doc/source/system_configuration/kubernetes/configuring-ptp-service-using-the-cli.rst +++ b/doc/source/system_configuration/kubernetes/configuring-ptp-service-using-the-cli.rst @@ -235,19 +235,70 @@ Create an interface and assign to ports PTP Limitations --------------- -NICs using the Intel Ice NIC driver may report the following in the ``ptp4l`` -logs, which might coincide with a |PTP| port switching to ``FAULTY`` before -re-initializing. -.. code-block:: none +* NICs using the IntelĀ® ice driver may report the following error in the + ``ptp4l`` logs, which results in a |PTP| port switching to ``FAULTY`` before + re-initializing. - ptp4l[80330.489]: timed out while polling for tx timestamp - ptp4l[80330.489]: increasing tx_timestamp_timeout may correct this issue, but it is likely caused by a driver bug + .. note:: + + |PTP| ports frequently switching to ``FAULTY`` may degrade the accuracy of + the |PTP| timing. + + .. code-block:: none + + ptp4l[80330.489]: timed out while polling for tx timestamp + ptp4l[80330.489]: increasing tx_timestamp_timeout may correct this issue, but it is likely caused by a driver bug + + .. note:: -This is due to a limitation of the Intel Ice driver. The recommended workaround -is to set the ``tx_timestamp_timeout`` parameter to 700 (ms) in the ``ptp4l`` -config. + This is due to a limitation with the IntelĀ® ice driver as the driver + cannot guarantee the time interval to return the timestamp to the + ``ptp4l`` user space process which results in the occasional timeout + error message. -.. code-block:: none + **Workaround**: The workaround recommended by Intel is to increase the + ``tx_timestamp_timeout`` parameter in the ``ptp4l`` config. The increased + timeout value gives more time for the ice driver to provide the timestamp to + the ``ptp4l`` user space process. Timeout values of 50ms and 700ms have been + validated. However, the user can use a different value if it is more suitable + for their system. - ~(keystone_admin)]$ system ptp-instance-parameter-add ptp-inst1 tx_timestamp_timeout=700 \ No newline at end of file + .. code-block:: none + + ~(keystone_admin)]$ system ptp-instance-parameter-add tx_timestamp_timeout=700 + ~(keystone_admin)]$ system ptp-instance-apply + + .. note:: + + The ``ptp4l`` timeout error log may also be caused by other underlying + issues, such as NIC port instability. Therefore, it is recommended to + confirm the NIC port is stable before adjusting the timeout values. + +.. begin-silicom-ptp-limitations + +* Silicom and Intel based Time Sync NICs may not be deployed on the same system + due to conflicting time sync services and operations. + + |PTP| configuration for Silicom TimeSync (STS) cards is handled separately + from |prod| host |PTP| configuration and may result in configuration + conflicts if both are used at the same time. + + The sts-silicom application provides a dedicated ``phc2sys`` instance which + synchronizes the local system clock to the Silicom TimeSync (STS) card. Users + should ensure that ``phc2sys`` is not configured via |prod| |PTP| Host + Configuration when the sts-silicom application is in use. + + Additionally, if |prod| |PTP| Host Configuration is being used in parallel + for non-STS NICs, users should ensure that all ``ptp4l`` instances do not use + conflicting ``domainNumber`` values. + +* When the Silicom TimeSync (STS) card is configured in timing mode using the + sts-silicom application, the card goes through an initialization process on + application apply and server reboots. The ports will bounce up and down + several times during the initialization process, causing network traffic + disruption. Therefore, configuring the platform networks on the Silicom + TimeSync (STS) card is not supported since it will cause platform + instability. + +.. end-silicom-ptp-limitations diff --git a/doc/source/system_configuration/kubernetes/index-sysconf-kub-78f0e1e9ca5a.rst b/doc/source/system_configuration/kubernetes/index-sysconf-kub-78f0e1e9ca5a.rst index 18d30ba7c..2285ce172 100644 --- a/doc/source/system_configuration/kubernetes/index-sysconf-kub-78f0e1e9ca5a.rst +++ b/doc/source/system_configuration/kubernetes/index-sysconf-kub-78f0e1e9ca5a.rst @@ -54,6 +54,7 @@ PTP Server Configuration instance-specific-considerations-d9d9509c79dd remove-ptp-configurations-4885c027dfa5 advanced-ptp-configuration-334a08dc50fb + configure-silicom-sts-ptp-application-1bc4a8d07aad ptp-instance-examples-517dce312f56 ptp-instance-troubleshooting-7a7c576ee57a