NGC | Catalog
CatalogContainersDOCA Firefly

DOCA Firefly

Logo for DOCA Firefly
The DOCA Firefly service provides time synchronization services leveraging the hardware acceleration of the NVIDIA DPUs.
Latest Tag
April 1, 2024
Compressed Size
187.38 MB
Multinode Support
Multi-Arch Support
1.3.1-doca2.5.1-host (Latest) Security Scan Results

Linux / amd64

Sorry, your browser does not support inline SVG.


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.

Installation and Getting Started

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.

Preparation steps for the DOCA Service

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.

Adjusting the .yaml configuration

The .yaml configuration for our container is 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 setup are following:

  • PROFILE - Preferred profile according to use case, options are default and media. See table in next section for details on each profile.
  • PTP_INTERFACE - The NIC netdev interface used for ptp4l. Make sure that the provided interface provided is "up" and that it has a configured ip address.
  • PTP_CONFIG_FILE - Each profile has a default config file that can be used. However, the user can set a custom config file by providing it in the /etc/firefly directory.

Firefly profiles

Profiles Default Media Custom
Purpose Any user that requires PTP Media productions Custom configuration
PTP Enabled Enabled No default
PTP profile PTP default profile SMPTE 2059-2 Set by the user
PTP Client / Server** Both Client Only Set by the user
PHC2SYS Enabled Enabled No default
PPS (In/Out) Enabled Enabled No default
PTP Monitor 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.

Spawning the container

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

License & EULA

DOCA is licensed under the NVIDIA DOCA License. By pulling and using the container, you accept the terms and conditions of this license.

Technical Support

Use the NVIDIA Developers forum for questions regarding this Software.