Dependently-Typed Data Plane Programming

06/07/2022
by   Matthias Eichholz, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/22/2021

Cameleer: a Deductive Verification Tool for OCaml

OCaml is particularly well-fitted for formal verification. On one hand, ...
research
05/28/2021

Gobra: Modular Specification and Verification of Go Programs (extended version)

Go is an increasingly-popular systems programming language targeting, es...
research
05/18/2020

PubSub implementation in Haskell with formal verification in Coq

In the cloud, the technology is used on-demand without the need to insta...
research
10/06/2017

Fibred Computational Effects

Dependent types provide a lightweight and modular means to integrate pro...
research
03/03/2019

Oxide: The Essence of Rust

Rust is a major advancement in industrial programming languages due in l...
research
11/27/2012

On the Use of Underspecified Data-Type Semantics for Type Safety in Low-Level Code

In recent projects on operating-system verification, C and C++ data type...
research
01/31/2022

Network Programming via Computable Products

The User Plane Function (UPF) aims to provide network services in the 3G...

Please sign up or login with your details

Forgot password? Click here to reset