VMware Telco Cloud Automation(TCA) expedites onboarding of worker node with Silicom STS NICs (STS4 and STS2) for LLS-C1 and LLS-C3 deployments.
The support for Silicom STS has been integrated into VMware Telco Cloud Automation (TCA) for simplifying workload deployments. Silicom timing pod is created and run in a workload cluster managed by VMware Tanzu Kubernetes Grid that is integrated into VMware Telco Cloud Automation. Onboarding of the Silicom device is done through the Kubernetes operator framework in VMware Telco Cloud Automation.
The system clock is synchronized to the high accuracy timing provided by the STS timing pod. DU workloads that run within the VM derive
their timing from the VM.
The timing Pod distributes time to connected RUs using a virtual function (VF) from each physical function (PF).
2.3, 3.x
The following firmware and driver versions (or higher) are recommended
for use with STS cards.
Firmware version | 4.01 0x80014757 1.3256.0 |
ESXi Driver | Icen 1.9.5 |
ice (PCI passthru) | 1.9.11 |
Iavf | 4.5.3 |
tsyncd | 2.1.2.11 |
Enable STS cards through TCA:
Log into the management cluster.
Validate the PF groups and their associated devices by reviewing the output of the esxinfoprofile and esxinfo commands.
List all the ESXi profiles by running the following command:
kubectl get esxinfoprofile -n tca-system
Select the esxinfoprofile for the sts2-ptp-vf host profile by running the following command:
kubectl get esxinfoprofile -n tca-system sts2-ptp-vf-o yaml
Run the following command to obtain all the ESXi information:
kubectl get esxinfo -A
Run the following command to select the ESXInfo for the STS host by matching the ESXi Host FQDN from step 3:
kubectl get esxinfo -n tca-system <esxi-hostname> -o yaml
Attach the STS card’s PF/VF and USB devices.
Onboard a new CSAR with the following spec details added under the infra_requirements: section. See attached csar_additions file.
Add STS PF0 in PCI passthrough mode under the passthrough_devices: section.
Add the VF from other PFs as an SRIOV Network Adapter under the network:devices: section.
Add the USB devices under the usb_devices: section.
Remove the linuxptp, phc2sys and ptp4l settings from the CSAR. See attached csar_deletions file.
Instantiate the Silicom NF CSAR with the modifications detailed in the previous step.
Confirm the names of the STS devices match the names defined in the Silicom NF CSAR.
Log into the worker node VM.
Run the following command to confirm the STS device names match what is defined in the CSAR, e.g. sts-ethX:
ip a
Run the following command to add the helm repository:
helm repo add sts-charts https://silicom-td.github.io/STS_HelmCharts/
Run the following command to confirm the Silicom STS-charts are present:
helm search repo sts-charts
Run the following command to download the sts-charts package:
helm pull sts-charts/sts-silicom
Note: You can ignore the following warnings:
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /home/capv/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure.Location: /home/capv/.kube/config
Un-tar the sts-charts package:
tar -xvzf sts-silicom-0.0.8.tgz
Download the attached gm.yaml file
Using the gm.yaml file, run the following command to install Tsyncd into the tca-system namespace:
helm install -f gm.yaml --debug sts-gm --namespace tca-system ./sts-silicom
Run the following command to confirm there are 4 pods, with the sts-gm prefix, in READY state:
kubectl get pods -n tca-system
Run the following command to confirm the sts-gm-grp service has been created:
kubectl get services -n tca-system
Troubleshooting STS installation:
Use the following commands to review the Tsyncd logs messages and confirm Tsyncd has started without error:
kubectl logs -n tca-system sts-gm-tsy-<podname> -c sts-gm-tsy -f | grep –v APR_QIF_MSG_EVENT_AWAKE
Check GNSS log messages using the following command:
$kubectl logs -n tca-system sts-gm-tsy-<podname> -c sts-gm-gps
Check host time synchronization logs using the following command:
$kubectl logs -n sts-gm-tsy-<podname> -c sts-gm-phc
Note: Replace sts-gm-tsy-<podname> with actual sts-gm-tsy-<podname> value.