Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3281411.3281421acmconferencesArticle/Chapter ViewAbstractPublication PagesconextConference Proceedingsconference-collections
research-article

Verification of P4 programs in feasible time using assertions

Published: 04 December 2018 Publication History

Abstract

Recent 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.

Supplementary Material

ZIP File (p73-neves.zip)
Supplemental material.
MP4 File (p73-neves.mp4)

References

[1]
Ryan Beckett, Xuan Kelvin Zou, Shuyuan Zhang, Sharad Malik, Jennifer Rexford, and David Walker. 2014. An Assertion Language for Debugging SDN Applications. In Proceedings of the Third Workshop on Hot Topics in Software Defined Networking (HotSDN '14). ACM, New York, NY, USA, 91--96.
[2]
Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, and David Walker. 2014. P4: Programming Protocol-independent Packet Processors. SIGCOMM Comput. Commun. Rev. 44, 3 (July 2014), 87--95.
[3]
Stefan Bucur, Vlad Ureche, Cristian Zamfir, and George Candea. 2011. Parallel Symbolic Execution for Automated Real-world Software Testing. In Proceedings of the Sixth Conference on Computer Systems (EuroSys '11). ACM, New York, NY, USA, 183--198.
[4]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08). USENIX Association, Berkeley, CA, USA, 209--224. http://dl.acm.org/citation.cfm?id=1855741.1855756
[5]
Huynh Tu Dang, Marco Canini, Fernando Pedone, and Robert Soulé. 2016. Paxos Made Switch-y. SIGCOMM Comput. Commun. Rev. 46, 2 (May 2016), 18--24.
[6]
Huynh Tu Dang, Daniele Sciascia, Marco Canini, Fernando Pedone, and Robert Soulé. 2015. NetPaxos: Consensus at Network Speed. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR '15). ACM, New York, NY, USA, Article 5, 7 pages.
[7]
Huynh Tu Dang, Han Wang, Theo Jepsen, Gordon Brebner, Changhoon Kim, Jennifer Rexford, Robert Soulé, and Hakim Weatherspoon. 2017. Whippersnapper: AP4 Language Benchmark Suite. In Proceedings of the Symposium on SDN Research (SOSR '17). ACM, New York, NY, USA, 95--101.
[8]
Mihai Dobrescu and Katerina Argyraki. 2014. Software Dataplane Verification. In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI 14). USENIX Association, Seattle, WA, 101--114. https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/dobrescu
[9]
Seyed K. Fayaz, Tianlong Yu, Yoshiaki Tobioka, Sagar Chaki, and Vyas Sekar. 2016. BUZZ: Testing Context-Dependent Policies in Stateful Networks. In 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16). USENIX Association, Santa Clara, CA, 275--289. https://www.usenix.org/conference/nsdi16/technical-sessions/presentation/fayaz
[10]
Tomas G. Edwards and Nick Ciarleglio. 2017. Timestamp-Aware RTP Video Switching Using Programmable Data Plan. Industrial Demo. In ACM SIGCOMM.
[11]
Mojgan Ghasemi, Theophilus Benson, and Jennifer Rexford. 2017. Dapper: Data Plane Performance Diagnosis of TCP. In Proceedings of the Symposium on SDN Research (SOSR '17). ACM, New York, NY, USA, 61--74.
[12]
Alex Horn, Ali Kheradmand, and Mukul Prasad. 2017. Delta-net: Real-time Network Verification Using Atoms. In 14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 17). USENIX Association, Boston, MA, 735--749. https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/horn-alex
[13]
Theo Jepsen, Leandro Pacheco de Sousa, Huynh Tu Dang, Fernando Pedone, and Robert Soulé. 2017. Gotthard: Network Support for Transaction Processing. In Proceedings of the Symposium on SDN Research (SOSR '17). ACM, New York, NY, USA, 185--186.
[14]
Peyman Kazemian, Michael Chang, Hongyi Zeng, George Varghese, Nick McKeown, and Scott Whyte. 2013. Real Time Network Policy Checking Using Header Space Analysis. In Presented as part of the 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI 13). USENIX, Lombard, IL, 99--111. https://www.usenix.org/conference/nsdi13/technical-sessions/presentation/kazemian
[15]
Peyman Kazemian, George Varghese, and Nick McKeown. 2012. Header Space Analysis: Static Checking for Networks. In Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation (NSDI'12). USENIX Association, Berkeley, CA, USA, 9--9. http://dl.acm.org/citation.cfm?id=2228298.2228311
[16]
Ahmed Khurshid, Wenxuan Zhou, Matthew Caesar, and P. Brighten Godfrey. 2012. VeriFlow: Verifying Network-wide Invariants in Real Time. In Proceedings of the First Workshop on Hot Topics in Software Defined Networks (HotSDN '12). ACM, New York, NY, USA, 49--54.
[17]
Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. 2015. Frama-C: A Software Analysis Perspective. Form. Asp. Comput. 27, 3 (May 2015), 573--609.
[18]
The P4.org language consortium. 2016. VSS Example. https://github.com/p4lang/p4c/blob/master/testdata/p4_16_samples/vss-example.p4. (2016).
[19]
The P4.org language consortium. 2017. MRI Exercise. https://github.com/p4lang/tutorials/blob/master/SIGCOMM_2017/exercises/mri/solution/mri.p4. (2017).
[20]
The P4.org language consortium. 2017. P4 reference compiler. https://github.com/p4lang/p4c. (2017).
[21]
The P4.org language consortium. 2018. Switch. https://github.com/p4lang/switch. (2018).
[22]
Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO '04). IEEE Computer Society, Washington, DC, USA, 75--. http://dl.acm.org/citation.cfm?id=977395.977673
[23]
Yuliang Li, Rui Miao, Changhoon Kim, and Minlan Yu. 2016. LossRadar: Fast Detection of Lost Packets in Data Center Networks. In Proceedings of the 12th International on Conference on Emerging Networking EXperiments and Technologies (CoNEXT '16). ACM, New York, NY, USA, 481--495.
[24]
Jed Liu, William Hallahan, Cole Schlesinger, Milad Sharif, Jeongkeun Lee, Robert Soulé, Han Wang, Călin Caşcaval, Nick McKeown, and Nate Foster. 2018. P4V: Practical Verification for Programmable Data Planes. In Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication (SIGCOMM '18). ACM, New York, NY, USA, 490--503.
[25]
Nuno P. Lopes, Nikolaj Bjørner, Patrice Godefroid, Karthick Jayaraman, and George Varghese. 2015. Checking Beliefs in Dynamic Networks. In 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15). USENIX Association, Oakland, CA, 499--512. https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/lopes
[26]
Haohui Mai, Ahmed Khurshid, Rachit Agarwal, Matthew Caesar, P. Brighten Godfrey, and Samuel Talmadge King. 2011. Debugging the Data Plane with Anteater. In Proceedings of the ACM SIGCOMM 2011 Conference (SIGCOMM '11). ACM, New York, NY, USA, 290--301.
[27]
George Varghese Nuno Lopes Nikolaj Bjorner Andrey Rybalchenko Nick McKeown, Dan Talayco. 2016. Automatically verifying reachability and well-formedness in P4 Networks. Technical Report.
[28]
Andres Nötzli, Jehandad Khan, Andy Fingerhut, Clark Barrett, and Peter Athanas. 2018. P4Pktgen: Automated Test Case Generation for P4 Programs. In Proceedings of the Symposium on SDNResearch (SOSR '18). ACM, New York, NY, USA, Article 5, 7 pages.
[29]
Aurojit Panda, Ori Lahav, Katerina Argyraki, Mooly Sagiv, and Scott Shenker. 2017. Verifying Reachability in Networks with Mutable Datapaths. In 14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 17). USENIX Association, Boston, MA, 699--718. https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/panda-mutable-datapaths
[30]
S. Signorello, R. State, J. Francois, and O. Festor. 2016. NDN.p4: Programming information-centric data-planes. In 2016 IEEE NetSoft Conference and Workshops (NetSoft). 384--389.
[31]
Anirudh Sivaraman, Changhoon Kim, Ramkumar Krishnamoorthy, Advait Dixit, and Mihai Budiu. 2015. DC.P4: Programming the Forwarding Plane of a Datacenter Switch. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR '15). ACM, New York, NY, USA, Article 2, 8 pages.
[32]
Sooel Son, Seungwon Shin, Vinod Yegneswaran, Phillip Porras, and Guofei Gu. 2013. Model checking invariant security properties in OpenFlow. In 2013 IEEE International Conference on Communications (ICC). IEEE, 1974--1979.
[33]
Radu Stoenescu, Dragos Dumitrescu, Matei Popovici, Lorina Negreanu, and Costin Raiciu. 2018. Debugging P4 Programs with Vera. In Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication (SIGCOMM '18). ACM, New York, NY, USA, 518--532.
[34]
Radu Stoenescu, Matei Popovici, Lorina Negreanu, and Costin Raiciu. 2016. Sym-Net: Scalable Symbolic Execution for Modern Networks. In Proceedings of the 2016 ACM SIGCOMM Conference (SIGCOMM '16). ACM, New York, NY, USA, 314--327.
[35]
Yaron Velner, Kalev Alpernas, Aurojit Panda, Alexander Rabinovich, Mooly Sagiv, Scott Shenker, and Sharon Shoham. 2016. Some Complexity Results for Stateful Network Verification. In Proceedings of the 22Nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 9636. Springer-Verlag New York, Inc., New York, NY, USA, 811--830.
[36]
Mark Weiser. 1981. Program Slicing. In Proceedings of the 5th International Conference on Software Engineering (ICSE '81). IEEE Press, Piscataway, NJ, USA, 439--449. http://dl.acm.org/citation.cfm?id=800078.802557

Cited By

View all
  • (2024)Generating P4 Dataplanes Using LLMs2024 IEEE 25th International Conference on High Performance Switching and Routing (HPSR)10.1109/HPSR62440.2024.10635926(31-36)Online publication date: 22-Jul-2024
  • (2023)Runtime Verification for Programmable SwitchesIEEE/ACM Transactions on Networking10.1109/TNET.2023.323493131:4(1822-1837)Online publication date: Aug-2023
  • (2023)Stalker Attacks: Imperceptibly Dropping Sketch Measurement Accuracy on Programmable SwitchesIEEE Transactions on Information Forensics and Security10.1109/TIFS.2023.331512818(5832-5847)Online publication date: 2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
CoNEXT '18: Proceedings of the 14th International Conference on emerging Networking EXperiments and Technologies
December 2018
408 pages
ISBN:9781450360807
DOI:10.1145/3281411
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 December 2018

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. P4
  2. programmable data planes
  3. verification

Qualifiers

  • Research-article

Conference

CoNEXT '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 198 of 789 submissions, 25%

Upcoming Conference

CoNEXT '24

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)50
  • Downloads (Last 6 weeks)4
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Generating P4 Dataplanes Using LLMs2024 IEEE 25th International Conference on High Performance Switching and Routing (HPSR)10.1109/HPSR62440.2024.10635926(31-36)Online publication date: 22-Jul-2024
  • (2023)Runtime Verification for Programmable SwitchesIEEE/ACM Transactions on Networking10.1109/TNET.2023.323493131:4(1822-1837)Online publication date: Aug-2023
  • (2023)Stalker Attacks: Imperceptibly Dropping Sketch Measurement Accuracy on Programmable SwitchesIEEE Transactions on Information Forensics and Security10.1109/TIFS.2023.331512818(5832-5847)Online publication date: 2023
  • (2023)Packet processing and data plane program verification: A survey with tools, techniques, and challengesInternational Journal of Communication Systems10.1002/dac.555436:14Online publication date: 14-Jun-2023
  • (2022)Leapfrog: certified equivalence for protocol parsersProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523715(950-965)Online publication date: 9-Jun-2022
  • (2021)P4UpdateProceedings of the 17th International Conference on emerging Networking EXperiments and Technologies10.1145/3485983.3494845(175-190)Online publication date: 2-Dec-2021
  • (2021)AquilaProceedings of the 2021 ACM SIGCOMM 2021 Conference10.1145/3452296.3472937(17-32)Online publication date: 9-Aug-2021
  • (2021)Dynamic Property Enforcement in Programmable Data PlanesIEEE/ACM Transactions on Networking10.1109/TNET.2021.306833929:4(1540-1552)Online publication date: Aug-2021
  • (2021)Fix with P6: Verifying Programmable Switches at RuntimeIEEE INFOCOM 2021 - IEEE Conference on Computer Communications10.1109/INFOCOM42981.2021.9488772(1-10)Online publication date: 10-May-2021
  • (2021)Visual Editor for Streamlining P4-based Programmable Parser Development2021 IEEE International Conference on Communication, Networks and Satellite (COMNETSAT)10.1109/COMNETSAT53002.2021.9530834(225-230)Online publication date: 17-Jul-2021
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media