Uncovering bugs in p4 programs with assertion-based verification

L Freire, M Neves, L Leal, K Levchenko… - Proceedings of the …, 2018 - dl.acm.org
Proceedings of the Symposium on SDN Research, 2018dl.acm.org
Recent trends in software-defined networking have extended network programmability to the
data plane through programming languages such as P4. Unfortunately, the chance of
introducing bugs in the network also increases significantly in this new context. Existing data
plane verification approaches are unable to model P4 programs, or they present severe
restrictions in the set of properties that can be modeled. In this paper, we introduce a data
plane program verification approach based on assertion checking and symbolic execution …
Recent trends in software-defined networking have extended network programmability to the data plane through programming languages such as P4. Unfortunately, the chance of introducing bugs in the network also increases significantly in this new context. Existing data plane verification approaches are unable to model P4 programs, or they present severe restrictions in the set of properties that can be modeled. In this paper, we introduce a data plane program verification approach based on assertion checking and symbolic execution. Network programmers annotate P4 programs with assertions expressing general security and correctness properties. Once annotated, these programs are transformed into C-based models and all their possible paths are symbolically executed. Results show that the proposed approach, called ASSERT-P4, can uncover a broad range of bugs and software flaws. Furthermore, experimental evaluation shows that it takes less than a minute for verifying various P4 applications proposed in the literature.
ACM Digital Library