Debugging P4 programs with vera
Radu Stoenescu,Dragos Dumitrescu,Matei Popovici,Lorina Negreanu,Costin Raiciu +4 more
- 07 Aug 2018
- pp 518-532
TL;DR: Vera is a tool that verifies P4 programs using symbolic execution and automatically uncovers a number of common bugs including parsing/deparsing errors, invalid memory accesses, loops and tunneling errors as well as verifying user-specified properties in a novel language the authors call NetCTL.
read more
Abstract: We present Vera, a tool that verifies P4 programs using symbolic execution. Vera automatically uncovers a number of common bugs including parsing/deparsing errors, invalid memory accesses, loops and tunneling errors, among others. Vera can also be used to verify user-specified properties in a novel language we call NetCTL. To enable scalable, exhaustive verification of P4 program snapshots, Vera automatically generates all valid header layouts and uses a novel data-structure for match-action processing optimized for verification. These techniques allow Vera to scale very well: it only takes between 5s-15s to track the execution of a purely symbolic packet in the largest P4 program currently available (6KLOC) and can compute SEFL model updates in milliseconds. Vera can also explore multiple concrete dataplanes at once by allowing the programmer to insert symbolic table entries; the resulting verification highlights possible control plane errors. We have used Vera to analyze many P4 programs including the P4 tutorials, P4 programs in the research literature and the switch code from https://p4.org. Vera has found several bugs in each of them in seconds/minutes.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
p4v: practical verification for programmable data planes
Jed Liu,William T. Hallahan,Cole Schlesinger,Milad Sharif,Jeongkeun Lee,Robert Soulé,Han Wang,Calin Cascaval,Nick McKeown,Nate Foster +9 more
- 07 Aug 2018
TL;DR: The design and implementation of p4v is presented, a practical tool for verifying data planes described using the P4 programming language that adds several key innovations including a novel mechanism for incorporating assumptions about the control plane and domain-specific optimizations which are needed to scale to large programs.
An Exhaustive Survey on P4 Programmable Data Plane Switches: Taxonomy, Applications, Challenges, and Future Trends
TL;DR: Programmable switches have attracted significant attention from both the research community and the industry, permitting operators and programmers in general to run customized packet processing functions as discussed by the authors, paving the way for an unprecedented wave of innovation and experimentation by reducing the time of designing, testing, and adopting new protocols; enabling a customized, top-down approach to develop network applications; providing granular visibility of packet events defined by the programmer; reducing complexity and enhancing resource utilization of programmable switches; and drastically improving the performance of applications that are offloaded to the data plane.
145
•Posted Content
A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research.
Frederik Hauser,Marco Häberle,Daniel Merling,Steffen Lindner,Vladimir Gurevich,Florian Zeiger,Reinhard Frank,Michael Menth +7 more
TL;DR: In this paper, the authors give a tutorial of data plane programming models, the P4 programming language, architectures, compilers, targets, and data plane APIs, and discuss potential next steps based on their findings.
105
Advancing SDN from OpenFlow to P4: A Survey
TL;DR: This work is an extensive survey of the P4 language covering domains of application, a detailed overview of the language and future directions.
71
Validating datacenters at scale
Karthick Jayaraman,Nikolaj Bjørner,Jitu Padhye,Amar Agrawal,Ashish Bhargava,Paul-Andre C Bissonnette,Shane Foster,Andrew Helwer,Mark Kasten,Ivan Lee,Anup Namdhari,Haseeb Niaz,Aniruddha Parkhi,Hanukumar Pinnamraju,Adrian Power,Neha Milind Raje,Parag Sharma +16 more
- 19 Aug 2019
TL;DR: It is described how intent is automatically derived from network architectures and verification is incorporated as prechecks for making changes, live monitoring, and for evolving legacy policies, and how network verification, grounded in architectural constraints, can be integral to operating a reliable cloud at scale.
68
References
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
Cristian Cadar,Daniel Dunbar,Dawson Engler +2 more
- 08 Dec 2008
TL;DR: A new symbolic execution tool, KLEE, capable of automatically generating tests that achieve high coverage on a diverse set of complex and environmentally-intensive programs, and significantly beat the coverage of the developers' own hand-written test suite is presented.
P4: programming protocol-independent packet processors
Pat Bosshart,Daniel P. Daly,Glen Gibb,Martin J. Izzard,Nick McKeown,Jennifer Rexford,Cole Schlesinger,Daniel Talayco,Amin Vahdat,George Varghese,David Walker +10 more
- 28 Jul 2014
TL;DR: This paper proposes P4 as a strawman proposal for how OpenFlow should evolve in the future, and describes how to use P4 to configure a switch to add a new hierarchical label.
The click modular router
TL;DR: On conventional PC hardware, the Click IP router achieves a maximum loss-free forwarding rate of 333,000 64-byte packets per second, demonstrating that Click's modular and flexible architecture is compatible with good performance.
2.6K
•Proceedings Article
VeriFlow: verifying network-wide invariants in real time
Ahmed Khurshid,Xuan Kelvin Zou,Wenxuan Zhou,Matthew Caesar,P. Brighten Godfrey +4 more
- 02 Apr 2013
TL;DR: VeriFlow as discussed by the authors is a layer between a software-defined networking controller and network devices that checks for network-wide invariant violations dynamically as each forwarding rule is inserted, modified or deleted.
S2E: a platform for in-vivo multi-path analysis of software systems
Vitaly Chipounov,Volodymyr Kuznetsov,George Candea +2 more
- 05 Mar 2011
TL;DR: S2E's use in developing practical tools for comprehensive performance profiling, reverse engineering of proprietary software, and bug finding for both kernel-mode and user-mode binaries is demonstrated.