-- Title: Control Plane API for Runtime Programmablility (FlexCore)
-- Abstract: The current P4 ecosystem primarily targets compile-time programming of network devices, but runtime device reconfigurations in real time have not received sufficient attention. This unfortunately restricts the velocity of change: reprogramming a P4 device incurs intrusive change as it requires a complete reflash. In a production network, such reconfigurations need to be carefully planned, e.g., via network management procedures such as draining and rerouting traffic from the target node, re-imaging the data plane, and redirecting traffic back to its original route. FlexCore investigates design techniques for runtime programmable targets, and proposes target-independent control plane API for runtime programming of network devices. Our proposed API is generally applicable to P4-based switch ASICs, programmable NICs, and software targets, and our current implementation is for a merchant silicon based upon the Nvidia Spectrum-2 SN3300 series. This new API enables partial reconfiguration of programmable data planes at runtime with minimum resource overheads, without service disruption, while processing packets with consistency guarantees. The full design will be presented at NSDI 2022, and this talk focuses on the implications for the P4Runtime design. This is joint work from a group of academic and industry researchers: Jiarong Xing, Kuo-Feng Hsu (Rice), Matty Kadosh, Alan Lo, Yonathan Piasetzky (Nvidia), Arvind Krishnamurthy (UW), Ang Chen (Rice).