What can I help you with?
DOCA Documentation v3.0.0

DPL Service Configuration

The DPL Runtime Service supports three types of configuration files. These files follow a simplified ini-style format, allowing repeated sections (e.g., [INTERFACE]) and using # for comments instead of ;.

Path: /etc/dpl_rt_service/dpl_rt.conf

This file configures core behavior for the DPL Runtime Service, including logging and gRPC server bindings.

Copy
Copied!
            

# General configuration for DPL Runtime Service Example   [LOGGING] log_file_path=/var/log/doca/dpl_rt_service/dpl_rtd.log log_level=INFO # Valid log levels: DISABLE, CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE   [P4RT_RPC_SERVER] server_address=[::] server_tcp_port=9559   [DPL_ADMIN_RPC_SERVER] server_address=[::] server_tcp_port=9600   [DPL_NSPECT_RPC_SERVER] server_address=[::] server_tcp_port=9560   [DPL_PACKET_IO] enabled=true   [DPL_SHM] enabled=true

Note

You can dynamically change the logging level using the DPL Admin client, but this would not persist across restarts unless updated in the configuration file.

Note

This file also controls the TCP binding of the three gRPC servers:

  • You can specify server_address as [::] (IPv6 ANY) to allow connections from all interfaces, including IPv4

  • Alternatively, you can restrict it to a specific IP address (e.g., a management interface)

  • Each gRPC server (P4Runtime, DPL Admin, DPL Nspect) can use a custom TCP port if needed

This allows fine-grained control over how and where remote clients connect to the DPL Runtime Service.

  • P4RT_RPC_SERVER – Listens for P4Runtime clients. A sample open-source client is included in the DPL Dev container.

  • DPL_ADMIN_RPC_SERVER – Receives administrative requests via the p4admin tool

  • DPL_NSPECT_RPC_SERVER – Listens for the dpl_nspect debugger client

To enable TLS authentication for the gRPC server connections add the following flags and provided the required info:

Copy
Copied!
            

server_cert=/path/to/server.crt ca_cert=/path/to/ca.crt server_key=/path/to/server.key

Path: /etc/dpl_rt_service/system.conf

This file tunes how the DPL Runtime Service interacts with hardware.

Example:

Copy
Copied!
            

# System-level performance tuning   [HAL] queue_size=1024 queues_num=1 burst_size=32

Warning

Do not modify these settings unless instructed by NVIDIA Support. They directly impact performance characteristics such as rule update rate and latency.

Path: /etc/dpl_rt_service/devices.d/<device-id>.conf (e.g., /etc/dpl_rt_service/devices.d/1000.conf)

A configuration template is available at /etc/dpl_rt_service/devices.d/NAME.conf.template.

This file defines the device, its interfaces, and how they map to DPL Port IDs used in DPL programs.

Note

If using SFs or SR-IOV VFs, make sure to reference their representor interfaces in the configuration file, not the SF/VF interfaces themselves.

DPL Port ID Mapping

Each physical or virtual interface is assigned a logical DPL Port ID. You must ensure consistency between your DPL program and this configuration.

Supported interface types:

  • Uplink netdev interface (e.g., p0)

  • PF representor (e.g., pf0hpf)

  • VF representor (e.g., pf0vf0)

  • SF representor (e.g., en3f0pf0sf1)

Note

All listed interfaces must belong to the same uplink port.


DPL Port ID Rules

Condition

Requirement

Reserved value

UINT32_MAX

DPL device ID

Must be a positive integer

DPL interface ID

Integer between 0 and UINT32_MAX

Number of uplink ports per config file

Only one


Example DPL Device Configuration File

Copy
Copied!
            

# Example of a possible DPL RT Service Device configuration file: # # This configuration file specifies the DPL device and its interfaces # and their DPL Port IDs that will be used by a DPL program. # # The DPL Port IDs are assigned by the user. The user decides which # DPL Port ID is assigned to which ConnectX/DPU interface. This mapping # is critical for achieving the desired results when adding table entries. # For DPL device, the ID must be an integer number greater than zero. # # The configuration file consists of following sections: # - [DEVICE] section: Must appear only once. # - [P4_RT_CONTROLLER] section: Must appear only once. # - [INTERFACE] section: Must be repeated for each DPL Port (network interface).   [DEVICE] # The DPL Device ID, used for connecting a controller to manage this device's tables. dpl_device_id=1000   # Cache counter - decrease HW accesses - when expired an HW access will occur upon request. dpl_counter_cache_timeout=0   # Sets counter polling interval for idle-timeout. [seconds] idle_timeout_polling_interval=2   [P4_RT_CONTROLLER] # Packets delivered to the DPL RT Service from a controller will have this source DPL Port ID. # So, this ID can be used for matching traffic originated from the controller. p4_controller_port_id=9876   [INTERFACE] # Interface name on the system to attach to this DPL device. interface=p0   # DPL Port ID, used to reference this port by the DPL program and/or when updating table entries. dpl_logical_port_id=0   # Ethernet frame size. mtu=1514   # Only uncomment and provide this if you wish to override the interface's MAC address. # mac=00:00:00:00:00:00   [INTERFACE] interface=pf0hpf dpl_logical_port_id=65535 mtu=1514 # mac=00:00:00:00:00:00   [INTERFACE] interface=pf0vf0 dpl_logical_port_id=1 mtu=1514 # mac=00:00:00:00:00:00   [INTERFACE] interface=pf0vf1 dpl_logical_port_id=2 mtu=1514 # mac=00:00:00:00:00:00

Note

mtu and mac fields are currently placeholders for future functionality. They are returned by queries but have no runtime effect at this time.


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