Affiliation:
1. TU Darmstadt, Germany
2. Cornell University, USA
Abstract
Programming languages like P4 enable specifying the behavior of network data planes in software. However, with increasingly powerful and complex applications running in the network, the risk of faults also increases. Hence, there is growing recognition of the need for methods and tools to statically verify the correctness of P4 code, especially as the language lacks basic safety guarantees. Type systems are a lightweight and compositional way to establish program properties, but there is a significant gap between the kinds of properties that can be proved using simple type systems (e.g., SafeP4) and those that can be obtained using full-blown verification tools (e.g., p4v). In this paper, we close this gap by developing Π4, a dependently-typed version of P4 based on decidable refinements. We motivate the design of Π4, prove the soundness of its type system, develop an SMT-based implementation, and present case studies that illustrate its applicability to a variety of data plane programs.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Synchronous Programming with Refinement Types;Proceedings of the ACM on Programming Languages;2024-08-15
2. HOL4P4: Mechanized Small-Step Semantics for P4;Proceedings of the ACM on Programming Languages;2024-04-29
3. P4R-Type: A Verified API for P4 Control Plane Programs;Proceedings of the ACM on Programming Languages;2023-10-16
4. P4Cub: A Little Language for Big Routers;Proceedings of the 12th ACM SIGPLAN International Conference on Certified Programs and Proofs;2023-01-11
5. SwitchLog: A Logic Programming Language for Network Switches;Practical Aspects of Declarative Languages;2023