DOCA Documentation v3.3.0

DPL Release Notes

This section describes the changes and new features in this software release.

General Features & Enhancements

  • Added support for modifying action parameters for both default and non-default entries.

DPL Development Container

General Constraints

  • P4 Controller support: Only one P4 Controller can be connected to the DPL Runtime daemon at a time.

  • Table and counter object sizes:

    • Must be a power of 2.

    • Must be smaller than 2²³.

    • A P4 table of size N allows for N-1 regular entries and 1 default entry.

Supported RPC Messages

The following RPC messages are supported by the DPL Runtime daemon:

RPC Message

Support Details & Limitations

Write RPC

  • Atomicity: Only CONTINUE_ON_ERROR is supported

  • Batching: Supported

Read RPC

Batching: Supported

Pipeline Config

SetForwardingPipelineConfig and GetForwardingPipelineConfig are supported.

StreamChannel RPC

Supported updates: PacketIn, PacketOut, IdleTimeoutNotification, StreamError.


Entity & Operation Support Matrix (Write/Read RPC)

Instead of listing operations and entities separately, developers can consult this matrix to see exactly what operations are permitted on which entity types.

Entity Type

Read RPC

Write RPC: INSERT

Write RPC: DELETE

Write RPC: MODIFY

TableEntry

Supported

Regular entries only

Regular entries only

Default entry only

CounterEntry (Direct/Indirect)

Supported

Unsupported

Unsupported

Supported

MeterEntry (Direct/Indirect)

Supported

Unsupported

Unsupported

Supported


Metering Limits

This table defines the maximum thresholds based on the selected mode.

Mode

Max CIR

Max CBurst

Max PIR

Max PBurst

Bytes

255,000,000,000

2,147,483,648

510,000,000,000

4,294,967,296

Packets 1

1,992,187,500

16,777,216

3,984,375,000

33,554,432

  1. Packets mode, 1 packet equals 128 bytes

Unsupported Features

The following P4 Runtime features are currently not supported in this release:

Category

Unsupported Items

RPC Messages

Capabilities RPC

StreamChannel Updates

  • MasterArbitrationUpdate

  • DigestList / DigestListAck

  • google.protobuf.Any

Entities

  • ExternEntry

  • ActionProfileMember

  • ActionProfileGroup

  • PacketReplicationEngineEntry

  • ValueSetEntry

  • RegisterEntry

  • DigestEntry


Reference

Issue

P4DT-800

Description: Programs using comparison operators are not supported and will result in an error.

P4DT-859

Description: DPL Development scripts fail with the community edition of docker installed from docker.ce , instead use the official release installed from docker.io.

4540834

Description: Entries insertion/deletion rate may degrade when using tables with idle timeout or delayed counters.

Discovered in version: 1.2.0

The following are known limitations of the DPL Runtime daemon service.

Reference

Issue

4259599

Description: Packets received with double VLAN tags (Dot1AD followed by Dot1Q) are processed with the tags in reversed order. This causes the hardware to misinterpret the inner and outer VLAN structure.

Workaround: Disable RX VLAN offload on the affected VF network device using the following command:

Copy
Copied!
            

ethtool -K <vf_netdev> rxvlan off

Reported in version: 1.2.0

4437411

Description: Packets with broadcast MAC ff:ff:ff:ff:ff:ff transmitted from VFs are not supported by DPL actions nv_add_entry and nv_send_to_controller.

Workaround: N/A

Reported in version: 1.2.0

4439323

Description: Modifying eSwitch multiport mode (enable/disable) while DPL RT Service is active causes system hang.

Workaround: Stop the DPL RT Service before changing esw_multiport settings.

Reported in version: 1.2.0

1141

Description: Debugging packets from the second wire port P1 is not supported.

Workaround: Use wire port P0 for debugging packets.

Reported in version: N/A

The following are known limitations of the DPL Compiler.

Reference

Issue

DPLCOMP-1848

Description: The fields ipv4.protocol and ipv6.next_header cannot be used as match keys in an nv_add_entry table.

Workaround: Use a constant value (e.g., NV_TCP_PROTOCOL) to define the protocol context instead of using the protocol field as a variable key.

Reported in version: 1.3.0

DPLCOMP-2052

Description: Multiple flex parser nodes with same field layout (bit offset and length for the selection field) may fail to load.

Workaround: None

Reported in version 1.5.0

DPLCOMP-2060

Description: Sliced LPM key with a mask of all 1s fails to load.

Workaround: None

Reported in version 1.5.0

DPLCOMP-1149

Description: Cycles in flex parser graph result in load failure with syndrome 0x178645

Workaround: None

Reported in version 1.3.0

DPLCOMP-2071

Description: Building with debug points enabled (--debug-mode=auto or extern) or when the program explicitly calls the nv_send_debug_pkt() extern, a validation error: "<variable name>" is read without initialization due to a compiler optimization in at least one code path" may be incorrectly triggered.

Workaround: Disable debugging

Reported in version 1.5.0

© Copyright 2026, NVIDIA. Last updated on Mar 2, 2026