Changes and New Features
This section describes the changes and added features in this software release:
-
Added support for large table sizes up to 32M
-
Added support for comparison operators in expressions
-
Added runtime debugger support for both Rx and Tx packets
-
Added extern to statefully track TCP sequence and acknowledgement numbers
-
Added idle timeout support for high update rate tables
Capabilities and Limitations
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_ERRORatomicity 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/PIR
Max CBurst/PBurst
Bytes
255,000,000,000
80,000,000
Packets
1,992,187,500
625,000
We don't have a way to export this macro.
-
-
-
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
-
-
-
DPL Nspect
-
CSV output is no longer supported; the
--csvargument has been removed. -
JSON output is recommended for automated tools.
-
Limitation (P4DT-800): Programs using comparison operators are not supported and will result in an error.
DPL Debugger
-
Limitation (P4DT-800): Programs using comparison operators are not supported and will result in an error.
DPL Development Container
Running any of the scripts may result in the following error:
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "/tmp/tmp.2STfXHaz03": is a directory: unknown: permission denied
As a workaround, do not use the community edition of docker installed from docker.ce, instead use the official release installed from docker.io.
Bug Fixes
|
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 |
|
Discovered in version: 1.1.0 |
|
|
4467855 |
Description: Direct counter data for some table entries may be missing from the output of the |
|
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 |
Known Issues
The following are known limitations of the DPL Runtime daemon service.
|
Reference |
Issue |
|---|---|
|
4400696 |
Description: Counter resource is limited to 16M hardware counters, but a portion is reserved by the Kernel driver, reducing the available count for user applications. Exceeding this limit may cause counter allocation failures. |
|
Workaround: N/A |
|
|
Reported in version: 1.2.0 |
|
|
4417192 |
Description: Modify Header actions are limited to 16M hardware counters, but actual usable counters are fewer since some are reserved by the Kernel driver. Exceeding this limit may result in insertion failures. |
|
Workaround: N/A |
|
|
Reported in version: 1.2.0 |
|
|
4259599 |
Description: Packets with double VLAN tags (Dot1AD followed by Dot1Q) are received with reversed tag order. |
|
Workaround: Disable RX VLAN offload on the VF using:
|
|
|
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 |
|
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 |
|
|
Reported in version: 1.2.0 |
|
|
4540834 |
Description: Entries insertion/deletion rate may degrade when using tables with idle timeout or delayed counters. |
|
Workaround: Adjust the polling interval to balance accuracy and performance on the DPL admin tool using:
|
|
|
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 |
Last updated: