NVIDIA
NVIDIA
DOCA Firefly
Container
NVIDIA
NVIDIA
DOCA Firefly

The DOCA Firefly service provides time synchronization services leveraging the hardware acceleration of the NVIDIA DPUs.

Introduction

The DOCA Firefly service enables time syncing services based on PTP4L. It can also enable PPS if the used DPU supports this capability.

PTP

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 stored with the rest of the .yaml configurations as were pulled from NGC in the previous steps (See "Installation and Getting Started") or it is found in the resources page under configs.

The main environment variables that should be adjusted according to the setup are the 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

DefaultMediaTelco (L2)Custom
PurposeAny user that requires PTPMedia productionsTelco networksCustom configuration
PTPEnabledEnabledEnabledNo default
PTP profilePTP default profileSMPTE 2059-2G.8275.1Set by the user
PTP Client / Server**BothClient OnlyBothSet by the user
PHC2SYSEnabledEnabledEnabledNo default
PPS (In/Out)EnabledEnabledEnabledNo default
PTP MonitorDisabledDisabledEnabledNo default
SyncEDisabledDisabledEnabledNo default
ServoDisabledDisabledDisabledNo 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.

Documentation

The DOCA Firefly Service Guide is available here.

License & EULA

This DOCA Microservice is licensed under the NVIDIA Networking Product Agreement. By pulling and using this product, you accept the terms and conditions of this license.

Technical Support

Use the NVIDIA Developers forum for questions regarding this Software.

Enterprise Support

Get access to knowledge base articles and support cases or submit a ticket.

Publisher
NVIDIA
NVIDIA
Latest Tag1.7.6-doca3.4.0
UpdatedJune 16, 2026 UTC
Compressed Size254.53 MB
Multinode SupportNo
Multi-Arch SupportYes

NVIDIA uses cookies to improve your experience on our web site. We and our third-party partners also use cookies and other tools to collect and record information you provide as well as information about your interactions with our websites for performance improvement, analytics, and to assist in marketing efforts. By clicking "Accept All", you consent to our use of cookies and other tools as described in our Cookie Policy. You can manage your cookie settings by clicking on "Manage Settings." By continuing to use this site or by clicking one of the buttons below, you agree to our Terms of Service (which contains important waivers). Please see our Privacy Policy for more information on our privacy practices.