NGC | Catalog
CatalogContainersDOCA Firefly

DOCA Firefly

For copy image paths and more information, please view on a desktop device.
Logo for DOCA Firefly

Description

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

Publisher

NVIDIA

Latest Tag

1.0.0-doca1.5.0

Modified

November 9, 2022

Compressed Size

79.05 MB

Multinode Support

No

Multi-Arch Support

No

1.0.0-doca1.5.0 (Latest) Scan Results

Linux / arm64

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 (TBD link) 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:

wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/doca/doca_container_configs/versions/1.5.0/files/configs/1.5.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 following env variables should be adjusted according to setup:

  • 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 Media Default
Purpose Media productions Any user that requires PTP
Content PTP PTP
PTP profile SMPTE 2059-2 PTP default profile
PPS in Enabled Enabled
PPS out Enabled Enabled
PTP Client / Server** Client Only Both

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

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.