DOCA Documentation v2.10.0

Loading DPL Applications

NVIDIA DPL programs are deployed to the NVIDIA® BlueField® networking platform (DPU or SuperNIC) using the P4Runtime API. This allows platform-independent, standards-based integration with SDN controllers.

The DPL compiler generates a pipeline binary optimized for execution on BlueField. Pipeline loading and control—such as installing the program and populating P4 tables—are handled via the P4Runtime API, an open and well-defined interface.

The P4Runtime server, running on the BlueField device, enables a P4 Controller to:

  • Connect over gRPC

  • Set the ForwardingPipelineConfig (i.e., install the compiled DPL binary and p4info)

  • Query the device for its current pipeline config and table state

  • Maintain runtime P4 tables as defined in the DPL source

This model enables integration with open-source, proprietary, or custom-built controllers in a standardized way.

Before loading a DPL application, ensure the following services and components are properly set up:

The a DPL application can be loaded using:

In the following example we'll be using the P4Runtime controller bundled within the DPL Development Container.

Using p4runtime_sh.sh Script

Running the script with no arguments displays the usage information:

Copy
Copied!
            

usage: p4runtime_sh.sh -i <docker image> -p <program_folder> -a <dpl_rtd_ip:port> [OPTIONS]


Example Command

Copy
Copied!
            

p4runtime_sh.sh -i doca_p4_dev:latest -p /root/hello_packet/_out -a 192.168.1.100:9559 --device-id 1000

Arguments:

After successful loading, the script launches an interactive Python shell connected to the P4Runtime server. From here, you can inspect and manipulate tables (see p4runtime_sh Usage).

DPL table entries are added via a P4Runtime controller, which may run remotely or locally on BlueField.

  • The standard gRPC-based controller model supports ~50K rule insertions per second

  • For use cases requiring high-speed (1M+) rule insertions, NVIDIA is introducing a bulk insertion API extension to the P4Runtime protobuf specification

    Note

    This feature is planned for future releases.

© Copyright 2025, NVIDIA. Last updated on Mar 23, 2025.