P4Runtime Overview and Scope
mainP4Runtime is a control plane specification designed to provide vendor-independent, protocol-independent runtime APIs for P4-defined data planes. It allows a controller to manage P4 built-in objects (tables, Value Sets) and Portable Switch Architecture (PSA) externs (e.g., Counters, Meters, Action Profiles).
Key Capabilities:
- Runtime Control: Manage P4 entities and PSA externs.
- Extension Mechanism: Control architecture-specific (non-PSA) externs.
- Session Management: Support for SDN use-cases and controller replication.
- Role Partitioning: Divide P4 forwarding elements into different roles for different controllers.
- Packet I/O: Stream packets to and from the control plane.
- Batching: Support for atomic operations.
- Reconfiguration: In-the-field device reconfiguration with new P4 programs.
Compatibility Note: P4Runtime is designed for P4~16~ (version 1.2.4 or later). It is recommended to use P4~16~ 1.2.5. P4~14~ programs must be translated to P4~16~ to be compatible.