Title
Verification of P4 programs in feasible time using assertions
Abstract
ABSTRACTRecent trends in software-defined networking have extended network programmability to the data plane. Unfortunately, the chance of introducing bugs increases significantly. Verification can help prevent bugs by assuring that the program does not violate its requirements. Although research on the verification of P4 programs is very active, we still need tools to make easier for programmers to express properties and to rapidly verify complex invariants. In this paper, we leverage assertions and symbolic execution to propose a more general P4 verification approach. Developers annotate P4 programs with assertions expressing general network correctness properties; the result is transformed into C models and all possible paths symbolically executed. We implement a prototype, and use it to show the feasibility of the verification approach. Because symbolic execution does not scale well, we investigate a set of techniques to speed up the process for the specific case of P4 programs. We use the prototype implemented to show the gains provided by three speed up techniques (use of constraints, program slicing, parallelization), and experiment with different compiler optimization choices. We show our tool can uncover a broad range of bugs, and can do it in less than a minute considering various P4 applications.
Year
DOI
Venue
2018
10.1145/3281411.3281421
CONEXT
Keywords
Field
DocType
P4, Verification, Programmable Data Planes
Program slicing,Forwarding plane,Programming language,Network programmability,Computer science,Correctness,Optimizing compiler,Invariant (mathematics),Symbolic execution,Distributed computing,Speedup
Conference
Citations 
PageRank 
References 
3
0.41
19
Authors
4
Name
Order
Citations
PageRank
Miguel C. Neves1314.05
Lucas Freire2101.26
Alberto E. Schaeffer Filho312220.30
Marinho P. Barcellos452834.59