Merge "Silicom NIC PTP support (r8, dsR8)"

This commit is contained in:
Zuul 2023-05-12 17:39:02 +00:00 committed by Gerrit Code Review
commit e199398608
4 changed files with 167 additions and 11 deletions

View File

@ -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 | |

View File

@ -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-<n.n-nn>.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

View File

@ -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
.. code-block:: none
~(keystone_admin)]$ system ptp-instance-parameter-add <instance_name> 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

View File

@ -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