DOCA Services
This is an overview of the set of services provided by DOCA and their purpose.
DOCA services are DOCA-based products, wrapped in a container for fast and easy deployment on top of the NVIDIA® BlueField® DPU. DOCA services leverage DPU capabilities to offer telemetry, time synchronization, networking solutions, and more.
Services containers can be found under the official NGC catalog, labeled under the "DOCA" and "DPU" NGC labels, as well as the built-in NVIDIA platform option ("DOCA") on the container catalog.
The following services are not available in the NGC catalog:
DOCA Management Service
For information on the deployment of the services, refer to the NVIDIA BlueField Container Deployment Guide.
DOCA-based containers consist of two main categories:
DOCA Base Images – containerized DOCA environments for both runtime and development. Used either by developers for their development environment or in the process of containerizing a DOCA-based solution.
DOCA Services – containerized DOCA-based products
The process of developing and containerizing a DOCA-based product is described in the following sections.
Development
Before containerizing a product, users must first design and develop it using the same process for a bare-metal deployment on the BlueField DPU.
This process consists of the steps:
Identifying the requirements for the DOCA-based solution.
Reviewing the feature set offered by the DOCA SDK libraries, as shown in detail in their respective programming guides.
Starting the development process by following our Developer Guide to make the best use of our provided tips and tools.
Testing the developed solution.
Once the developed product is mature enough, it is time to start containerizing it.
Containerization
In this process, it is recommended to make use of DOCA's provided base-images, as available on DOCA's NGC page.
Three image flavors are provided:
base-rt
– includes the DOCA runtime, using the most basic runtime environment required by DOCA's SDKfull-rt
– builds on the previous image and includes the full list of runtime packages, which are all user-mode components that can be found under the doca-runtime packagedevel
– builds on the previous image and adds headers and development tools for developing and debugging DOCA applications. This image is particularly useful for multi-stage builds.
All images are preconfigured to use to the DOCA repository of the matching DOCA version. This means that installing an additional DOCA package as part of a Dockerfile / within the development container can be done using the following commands:
apt update
apt install <package
name>
For DOCA and CUDA environments, there are similar flavors for these images combined with CUDA's images:
base-rt
(DOCA) +base
(CUDA)full-rt
(DOCA) +runtime
(CUDA)devel
(DOCA) +devel
(CUDA)
Once the containerized solution is mature enough, users may start profiling it in preparation for a production-grade deployment.
DOCA provides base images for both the DPU and the Host. For host-related DOCA base images, please refer to the image tag suffixed with "-host".
Profiling
As mentioned in the NVIDIA BlueField Container Deployment Guide, the current deployment model of containers on top of the DPU is based on kubelet-standalone. And more specifically, this Kubernetes-based deployment makes use of YAML files to describe the resources required by the pod such as:
CPU
RAM
Huge pages
It is recommended to profile your product so as to estimate the resources it requires (under regular deployments, as well as under stress testing) so that the YAML would contain an accurate "resources" section. This allows an administrator to better understand what the requirements are for deploying your service, as well as allow the k8s infrastructure to ensure that the service is not misbehaving once deployed.
Once done, the containerized DOCA-based product is ready for the final testing rounds, after which it will be ready for deployment in production environments.
Container Deployment
The NVIDIA BlueField Container Deployment Guide provides an overview and deployment configuration of DOCA containers for NVIDIA® BlueField® DPU.
DOCA BlueMan
DOCA BlueMan service runs in the DPU as a standalone web dashboard and consolidates all the basic information, health, and telemetry counters into a single interface. This friendly, easy-to-use web dashboard acts as a one-stop shop for all the information needed to monitor the DPU.
DOCA Firefly
DOCA Firefly service provides precision time protocol (PTP) based time syncing services to the BlueField DPU . PTP is used to synchronize clocks in a network which, when used in conjunction with hardware support, PTP is capable of sub-microsecond accuracy, which is far better than what is normally obtainable with network time protocol (NTP).
DOCA Flow Inspector
DOCA Flow Inspector service allows monitoring real-time data and extraction of telemetry components which can be utilized by various services for security, big data and more.
Specific mirrored packets can be transferred to Flow Inspector for parsing and analyzing. These packets are forwarded to DTS, which gathers predefined statistics determined by various telemetry providers.
DOCA HBN
DOCA Host-Based Networking service orchestrates network connectivity of dynamically created VMs/containers on cloud servers. HBN service is a BGP router that supports EVPN extension to enable multi-tenant clouds.
At its core, HBN is the Linux networking acceleration driver of the DPU, Netlink-to-DOCA daemon which seamlessly accelerates Linux networking using DOCA hardware programming APIs.
DOCA Management Service
DOCA SNAP
DOCA SNAP service technology encompasses a family of services that enable hardware-accelerated virtualization of local storage running on NVIDIA® BlueField® products.
DOCA Telemetry
DOCA Telemetry service (DTS) collects data from built-in providers and from external telemetry applications. Collected data is stored in binary format locally on the DPU and can be propagated onwards using Prometheus endpoint pulling, pushing to Fluent Bit, or using other supported providers. Exporting NetFlow packets collected using the DOCA Telemetry NetFlow API is a great example of DTS usage.
DOCA UROM
DOCA UROM service provides a framework for offloading significant portions of HPC software stack directly from the host and to the BlueField networking platform.
DOCA Virtio-net
DOCA virtio-net service enables the creation of virtio-net PCIe devices directly within systems connected to the BlueField platform. Unlike traditional virtualization environments where virtio-net devices are emulated by QEMU from the hypervisor, or where specific tasks like dataplane processing are offloaded to the NIC (like in vDPA solutions), BlueField's virtio-net PCIe devices efficiently offload both data and control planes to the BlueField device. Leveraging the advanced technology of the BlueField family, built on a foundation of virtual switching and OVS, the virtio-net service allows devices to fully exploit software-defined networking (SDN) capabilities and hardware offloading techniques, enhancing overall performance and efficiency in virtualized environments.
OpenvSwitch Acceleration (OVS in DOCA)
OVS-DOCA is a virtual switch service, designed to work with NVIDIA NICs and DPUs to utilize ASAP2 (Accelerated Switching and Packet Processing) technology for data-path acceleration, providing the most efficient performance and feature set due to its architecture and use of DOCA libraries.
For questions, comments, and feedback, please contact us at DOCA-Feedback@exchange.nvidia.com.