Linux / amd64
The DOCA Firefly service enables time syncing services based on PTP4L. It can also enable PPS if the used DPU supports this capability.
The Precision Time Protocol (PTP) is a protocol used to synchronize clocks in a network. When used in conjunction with hardware support, PTP is capable of sub-microsecond accuracy, which is far better than is normally obtainable with NTP (Network Time Protocol). PTP support is divided between the kernel and user space. The ptp4l program implements the PTP boundary clock and ordinary clock. With hardware time stamping, it is used to synchronize the PTP hardware clock to the master clock.
All preparation steps are listed under DOCA's Container Deployment User Guide.
Note: The DOCA Service container is configured for K8S-based deployment, hence the use of the docker pull
command is discouraged.
As explained in the service's documentation there are some resource allocation steps needed before the service can be executed. It is recommended to go over the service's user guide and follow the instructions that match the DPU on which the service will be deployed.
The .yaml configuration for our container is doca_firefly.yaml:
wget https://api.ngc.nvidia.com/v2/resources/nvidia/doca/doca_container_configs/versions/2.9.0v2/files/configs/2.9.0/doca_firefly.yaml
Note: The file is also stored with the rest of the .yaml configurations as were pulled from NGC in the previous steps (See "Installation and Getting Started").
The main environment variables that should be adjusted according to the setup are the following:
Default | Media | Telco (L2) | Custom | |
---|---|---|---|---|
Purpose | Any user that requires PTP | Media productions | Telco networks | Custom configuration |
PTP | Enabled | Enabled | Enabled | No default |
PTP profile | PTP default profile | SMPTE 2059-2 | G.8275.1 | Set by the user |
PTP Client / Server** | Both | Client Only | Both | Set by the user |
PHC2SYS | Enabled | Enabled | Enabled | No default |
PPS (In/Out) | Enabled | Enabled | Enabled | No default |
PTP Monitor | Disabled | Disabled | Enabled | No default |
SyncE | Disabled | Disabled | Enabled | No default |
Servo | Disabled | Disabled | Disabled | No default |
Note: "client only" is relevant to one PTP interface only. If more than one PTP interface is provided in the YAML file, both modes are enabled.
Simply copy the doca_firefly.yaml
file to the /etc/kubelet.d
directory. Kubelet will automatically pull the container image from NGC, and spawn a pod executing the container. The DOCA Firefly service will start executing right away.
# View currently active pods, and their IDs (it might take up to 20 seconds for the pod to start)
crictl pods
# View currently active containers, and their IDs
crictl ps
# Examine logs of a given container
crictl logs
# Examine kubelet logs, in case something didn't work as expected
journalctl -u kubelet
Please refer to the documentation for more information.
The DOCA Firefly Service Guide is available here.
DOCA is licensed under the NVIDIA DOCA License. By pulling and using the container, you accept the terms and conditions of this license.
Use the NVIDIA Developers forum for questions regarding this Software.