DOCA Documentation v3.2.0

DPL Release Notes

This section describes the changes and added features in this software release:

General Features & Enhancements

  • Increased support for large table sizes up to 20M entries.

  • Added support for comparison operators within expressions.

  • Enabled runtime debugger support for both Rx (Receive) and Tx (Transmit) packets.

  • Implemented an extern to statefully track TCP sequence and acknowledgement numbers.

  • Added idle timeout support optimized for high-update-rate tables.

  • Enabled support for Meter EBURST configuration.

Nspect CLI

  • Introduced a new command to display real-time performance statistics.

  • Added a command to view detailed metrics and values for meters.

  • Updated to display meter details for each table entry.

  • Enhanced to list direct externs (counters, meters, etc.) for each table.

  • Devices command:

    • Now indicates if a device is operating in multiport e-switch mode.

    • Displays the load timestamp and duration for the currently loaded program.

Runtime Debugger

  • Added the ability to insert debug points anywhere within apply blocks without requiring source code externs.

P4 Runtime

  • Table and Counter Object Size Constraints:

    • The size of any P4 table or counter object must be a power of 2, and smaller than 2²³.

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

  • P4 Controller Support:

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

  • RPC Message Support:

    • Supported RPC Messages:

      • Write RPC:

        • Only CONTINUE_ON_ERROR atomicity is supported.

        • Batching is supported.

        • Supported entities:

          • TableEntry

          • CounterEntry

          • DirectCounterEntry

          • MeterEntry

          • DirectMeterEntry

        • INSERT Operation:

          • Supports regular entries only.

        • DELETE Operation:

          • Supports regular entries only.

        • MODIFY Operation:

          • Supports default entry only.

          • Supports indirect and direct counter entries.

          • Supports indirect and direct meter entries.

          • Metering Limits:

            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. Packet equals 128 bytes in this mode.

      • Read RPC:

          • Batching is supported.

          • Supported entities:

            • TableEntry

            • CounterEntry

            • DirectCounterEntry

            • MeterEntry

            • DirectMeterEntry

        • SetForwardingPipelineConfig RPC

        • GetForwardingPipelineConfig RPC

        • StreamChannel RPC:

          • PacketIn

          • PacketOut

          • IdleTimeoutNotification

          • StreamError

      • Unsupported RPC Messages:

        • Capabilities RPC

      • Unsupported Entities:

        • ExternEntry

        • ActionProfileMember

        • ActionProfileGroup

        • PacketReplicationEngineEntry

        • ValueSetEntry

        • RegisterEntry

        • DigestEntry

      • Unsupported StreamChannel Request/Response Updates:

        • MasterArbitrationUpdate

        • DigestList / DigestListAck

        • google.protobuf.Any

Reference

Issue

4280302

Description: Concurrent counter reads from multiple threads by a P4Runtime client could theoretically lead to race conditions and incorrect results.

Discovered in version: 1.1.0

4467130

Description: API dpl_rt_controller_table_entry_counter() may hang forever if called right after adding a new entry using dpl_rt_controller_table_entry_add().

Discovered in version: 1.1.0

4467855

Description: Direct counter data for some table entries may be missing from the output of the ./dpl_nspect.sh query command.

Discovered in version: 1.1.0

4548630

Description: DPL RT Service erroneously allows inserting entries into keyless tables (tables defined without keys in the DPL program).

Discovered in version: 1.1.0

4552694

Description: DPL RT Service fails to correctly configure default actions for tables forwarding to High Update Rate tables, leading to packet drops when entries are missing.

Discovered in version: 1.1.0

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.

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

Reference

Issue

4400696

Description: The total resource for hardware counters is limited to 16 million (16M) counters across the hardware. A portion of this total capacity is reserved by the kernel driver, which reduces the number of counters available for user applications. If user applications attempt to allocate more than the remaining available count, it will cause counter allocation failures.

Workaround: N/A

Reported in version: 1.2.0

4417192

Description: Counter resources dedicated to Header actions (e.g., used for flow counting) are limited to 16 million (16M) hardware counters in total. The number of usable counters for user applications is significantly reduced because a portion of this 16M capacity is permanently reserved by the kernel driver. Attempting to exceed the available count for header action counters will result in insertion failures when defining new flows.

Workaround: N/A

Reported in version: 1.2.0

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

4540834

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

Workaround: A djust the polling interval to balance accuracy and performance on the DPL admin tool using:

Copy
Copied!
            

dpl_admin set-idle-timeout-polling-interval -d <device_id> -i <interval_in_sec>

Reported in version: 1.2.0

4548632

Description: 32M sized table is not supported.

Workaround: Use 2 16M tables.

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

© Copyright 2025, NVIDIA. Last updated on Nov 20, 2025