What can I help you with?
DOCA Documentation v2.10.0

DPL System Overview

This document provides a high-level overview of the NVIDIA® DOCA Pipeline Language (DPL) system, which enables programmable packet processing on NVIDIA® BlueField® DPUs and SuperNICs using P4-based semantics.

DPL is a domain-specific programming framework based on the P4-16 language. While reusing P4 syntax, DPL introduces NVIDIA-specific semantics and architecture tailored for the BlueField platform. Rather than relying on C-based APIs, developers use DPL to define packet parsing, matching, and processing behavior directly in a high-level, declarative manner. This speeds up development and simplifies pipeline optimization.

A deployed DPL program is dynamically controlled using P4Runtime, an open-source, gRPC-based control plane interface. This allows rules and configurations to be updated at runtime without recompilation. Although DPL is compatible with any P4Runtime-compliant controller, future support for vendor-specific extensions is planned.

The DPL toolkit includes:

  • A compiler for building BlueField-optimized pipelines

  • A runtime service to manage hardware deployment and control-plane interaction

  • Debugging and inspection developer tools for introspecting the pipeline

Together, these components deliver a complete programmable pipeline platform optimized for BlueField devices.

BlueField-3 combines a ConnectX networking ASIC with an embedded Arm subsystem, providing high-performance networking and programmable packet processing. It supports offloading and acceleration of SDN, storage, and security functions.

DOCA Device Types

DPL supports two kinds of DOCA devices:

  • Local device – A PF, VF, or SF that is locally exposed to the system (host or BlueField).

  • Netdev representor – A proxy network interface on BlueField for a device on the host side. Representors allow the DPU to control and inspect traffic flowing to/from host-side devices.

Representor Naming

  • Uplink Representor – p<port_number>

  • PF Representor – pf<port_number>hpf

  • VF Representor – pf<port_number>vf<function_number>

  • SF Representor – en<domain>f<function>pf<port_number>sf<function_number>

Note

The host function's MTU must be smaller than that of both its uplink and representor.


In DPU mode, the BlueField owns NIC resources, and all host traffic flows through a virtual switch on the Arm subsystem before reaching the host.

Key characteristics:

  • Host-side NIC drivers load only after the BlueField completes NIC configuration

  • BlueField allocates all NIC memory (ICM)

  • BlueField configures the embedded switch, and all host traffic is intercepted

A compiled DPL pipeline executes within the embedded switch (eSwitch) and consists of:

  • A programmable packet parser (parse graph)

  • Match/action tables

  • Packet actions (e.g., forward, drop, modify, encrypt)

    DPL_BF3_Host_to_ESwitch-version-2-modificationdate-1744060528193-api-v2.png

    • pf0hpf and pf1hpf are the representors facing the x86 host

    • pf0 and pf1 are the representors facing the network

The DPL solution on the BlueField DPU consists of multiple components working in tandem. These components are outlined below and shown in the following diagram:

DPL_DPU_Control_Plane-version-2-modificationdate-1740113992530-api-v2.png

DPL Compiler

The compiler, typically run from a host development system, generates:

  • P4Info file – Target-independent protobuf description used by controllers

  • Device config (.dplconfig) – Binary blob for loading into BlueField hardware

  • Optional debug file – Used by inspection tools

Info

P4 language reference: P4-16 v1.2.4 Documentation.


P4Runtime Controller

The P4Runtime Controller manages real-time updates and control of the pipeline. It must conform to P4Runtime v1.3.0 and communicates with BlueField using gRPC over TCP (default port 9559). Capabilities include:

  • Installing/removing rules

  • Querying table state

  • Handling packet-in/out traffic

DPL Runtime Service (dpl_rtd)

The runtime service runs on the BlueField and:

  • Hosts the gRPC P4Runtime server

  • Processes incoming controller commands

  • Loads compiled pipeline artifacts

  • Interfaces with the DOCA HWS driver

  • Manages parse graphs, match tables, and state

  • Provides debug and monitoring services

DPL Nspect

DPL Nspect is a host-side CLI tool for:

  • Viewing table contents

  • Debugging DPL pipelines

  • Tracing packet path and action outcomes

It communicates with the runtime service's internal debug server.

P4Runtime Server

Implements gRPC endpoints for standard P4Runtime protocol messages. Converts P4Info operations into hardware actions using the DOCA HWS driver. The server is hosted within the DPL Runtime Service.

DPL Nspect Server

A backend service in the runtime daemon that handles debug and monitoring traffic. Communicates with the Nspect client and debugger tools over gRPC.

DOCA HWS Driver

The DOCA HWS Driver provides low-level APIs for pipeline construction and table management in BlueField hardware. The DPL compiler and runtime interface with this driver to install flows, modify match criteria, and define actions.

eSwitch Management

Developers are free to manage the eSwitch using tools like:

  • OVS (e.g., DOCA OVS)

  • DPDK-based apps

  • DOCA management interfaces

DPL does not constrain how virtual interfaces or bridges are configured.

© Copyright 2025, NVIDIA. Last updated on May 5, 2025.