Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3482898.3483352acmconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article

DBVal: Validating P4 Data Plane Runtime Behavior

Published: 08 November 2021 Publication History

Abstract

The P4 software ecosystem to operate programmable data planes is increasingly becoming complex. The packet-processing behavior is defined by several components: the P4 program, the compiler that maps P4 programs to resource-constrained switch pipeline, the control-plane program that installs rules, and the switch software agents that configure the data plane. Bugs in any one or more of these components would potentially introduce packet-processing errors in the data plane. Prior work verifies P4 programs before deployment and found many program bugs. But bugs can happen in other components after the program deployment and may not be found during testing and only manifest themselves in production.
In this work, our goal is to detect packet-processing errors induced by bugs that are not caught (or are difficult to catch) before the P4 program deployment. Our key idea is to let P4 programmers specify the intended packet-processing behavior and validate the actual packet-processing behavior against the intended behavior at runtime. We obtain intended behavior from the P4 programmers in the form of assertions, where each assertion specifies which tables and actions should be applied and in what order on a certain subset of traffic. Next, the assertions are compiled and translated to P4 implementation such that the implementation efficiently tracks the packet execution path, that is, the set of tables applied and actions executed, and then validates the tracked behavior at line rate. We show that our techniques can be used to effectively detect bugs that are difficult, if not impossible, to catch with existing techniques for testing and verifying programmable data planes.

References

[1]
2012. C Minimal Perfect Hashing Library.Retrieved June 2021 from http://cmph.sourceforge.net/
[2]
2015. BMv2 switch.p4.Retrieved May 2021 from https://github.com/p4lang/switch
[3]
2016. Netronome Agilio CX SmartNICs.Retrieved June 2021 from https://www.netronome.com/products/agilio-cx/
[4]
2017. Network path not found? Forward Networks Blog.Retrieved February 2021 from https://bit.ly/2FzpEEZ
[5]
2017. P4 tutorials.Retrieved February 2020 from https://github.com/p4lang
[6]
2017. p4c issues.https://github.com/p4lang/p4c/issues
[7]
2018. Intel FPGAs and Programmable Devices.https://www.intel.in/content/www/in/en/products/programmable.html
[8]
2019. flowlet_switching.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/exercises/05-Flowlet_Switching/solution/p4src/flowlet_switching.p4
[9]
2019. forwarding.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/examples/ip_forwarding/forwarding.p4
[10]
2019. heavy_hitter.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/examples/heavy_hitter/heavy_hitter.p4
[11]
2019. mpls.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/exercises/04-MPLS/mpls_basics/solution/basics.p4
[12]
2019. P4 learning.Retrieved January 2021 from https://github.com/nsg-ethz/p4-learning
[13]
2019. P4 programs survey.Retrieved June 2021 from https://github.com/muhe1991/p4-programs-survey
[14]
2019. stateful_firewall.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/examples/stateful_firewall/stateful_firewall.p4
[15]
2019. traceroutable.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/exercises/09-Traceroutable/solution/p4src/traceroutable.p4
[16]
2020. BMV2 software switch.Retrieved April 2021 from https://github.com/p4lang/behavioral-model
[17]
2020. Tofino, World's Fastest P4-Programmable Ethernet Switch ASICs.Retrieved November 2019 from https://www.barefootnetworks.com/products/brief-tofino/
[18]
2021. DBVal code.https://github.com/networked-systems-iith/DBValidator.git
[19]
2021. fast_reroute.p4.Retrieved June 2021 from https://github.com/nsg-ethz/p4-learning/blob/master/exercises/12-Fast-Reroute/solution/p4src/fast_reroute.p4
[20]
Andrei-Alexandru Agape, Madalin Claudiu Danceanu, Rene Rydhof Hansen, and Stefan Schmid. 2021. P4Fuzz: Compiler Fuzzer for Dependable Programmable Dataplanes. In International Conference on Distributed Computing and Networking 2021.
[21]
Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker. 2014. NetKAT: Semantic Foundations for Networks. In POPL.
[22]
Jiasong Bai, Menghao Zhang, Guanyu Li, Chang Liu, Mingwei Xu, and Hongxin Hu. 2020. FastFE: Accelerating ML-based Traffic Analysis with Programmable Switches. In ACM SIGCOMM SPIN workshop.
[23]
Thomas Ball and James R. Larus. 1996. Efficient Path Profiling. In MICRO.
[24]
Ryan Beckett, Xuan Kelvin Zou, Shuyuan Zhang, Sharad Malik, Jennifer Rexford, and David Walker. 2014. An Assertion Language for Debugging SDN Applications. In Workshop on Hot topics in software defined networking.
[25]
Pietro Bressana, Noa Zilberman, and Robert Soulé. 2020. Finding hard-to-find data plane bugs with a PTA. In CoNEXT.
[26]
Marco Canini, Daniele Venzano, Peter Perešíni, Dejan Kostić, and Jennifer Rexford. 2012. A NICE Way to Test OpenFlow Applications. In USENIX NSDI.
[27]
Marinos Dimolianis, Adam Pavlidis, and Vasilis Maglaris. 2020. A Multi-Feature DDoS Detection Schema on P4 Network Hardware. In ICIN.
[28]
Dragos Dumitrescu, Radu Stoenescu, Lorina Negreanu, and Costin Raiciu. 2020. bf4: towards bug-free P4 programs. In ACM SIGCOMM.
[29]
Lucas Freire, Miguel Neves, Lucas Leal, Kirill Levchenko, Alberto Schaeffer-Filho, and Marinho Barcellos. 2018. Uncovering Bugs in P4 Programs with Assertion-Based Verification. In ACM SOSR.
[30]
Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar, David Mazières, and Nick McKeown. 2014. I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks. In USENIX NSDI.
[31]
Kuo-Feng Hsu, Ryan Beckett, Ang Chen, Jennifer Rexford, and David Walker. 2020. Contra: A Programmable System for Performance-aware Routing. In USENIX NSDI.
[32]
Theo Jepsen, Ali Fattaholmanan, Masoud Moshref, Nate Foster, Antonio Carzaniga, and Robert Soulé. 2020. Forwarding and Routing with Packet Subscriptions. In CoNEXT.
[33]
Qiao Kang, Jiarong Xing, and Ang Chen. 2019. Automated Attack Discovery in Data Plane Systems. In USENIX CSET.
[34]
Qiao Kang, Lei Xue, Adam Morrison, Yuxin Tang, Ang Chen, and Xiapu Luo. 2020. Programmable In-Network Security for Context-aware BYOD Policies. In USENIX Security.
[35]
Naga Katta, Omid Alipourfard, Jennifer Rexford, and David Walker. 2016. CacheFlow: Dependency-Aware Rule-Caching for Software-Defined Networks. In ACM SOSR.
[36]
Naga Katta, Mukesh Hira, Changhoon Kim, Anirudh Sivaraman, and Jennifer Rexford. 2016. HULA: Scalable Load Balancing UsingProgrammable Data Planes. In ACM SOSR.
[37]
Daehyeok Kim, Zaoxing Liu, Yibo Zhu, Changhoon Kim, Jeongkeun Lee, Vyas Sekar, and Srinivasan Seshan. 2020. TEA: Enabling State-Intensive Network Functions on Programmable Switches. In ACM SIGCOMM.
[38]
Suriya Kodeswaran, Mina Tahmasbi Arashloo, Praveen Tammana, and Jennifer Rexford. 2020. Tracking P4 Program Execution in the Data Plane. In ACM SOSR.
[39]
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 ACM SIGCOMM.
[40]
Nuno Lopes, Nikolaj Bjørner, Nick McKeown, Andrey Rybalchenko, Dan Talayco, and George Varghese. 2016. Automatically Verifying Reachability and Well-Formedness in P4 Networks. MSR Technical Report, MSR-TR-2016-65(2016).
[41]
Roland Meier, Thomas Holterbach, Stephan Keck, Matthias Stähli, Vincent Lenders, Ankit Singla, and Laurent Vanbever. 2019. (Self) Driving Under the Influence: Intoxicating Adversarial Network Inputs. In ACM HotNets.
[42]
Rui Miao, Hongyi Zeng, Changhoon Kim, Jeongkeun Lee, and Minlan Yu. 2017. Silkroad: Making stateful layer-4 load balancing fast and cheap using switching asics. In ACM SIGCOMM.
[43]
Miguel Neves, Lucas Freire, Alberto Schaeffer-Filho, and Marinho Barcellos. 2018. Verification of P4 Programs in Feasible Time using Assertions. In CoNEXT.
[44]
Andres Nötzli, Jehandad Khan, Andy Fingerhut, Clark Barrett, and Peter Athanas. 2018. P4pktgen: Automated Test Case Generation for P4 Programs. In ACM SOSR.
[45]
O'Connor Vachuska Peterson, Cascone and Davie. 2020. Software-Defined Networks: A Systems Approach.https://sdn.systemsapproach.org/ Accessed: June 2021.
[46]
Fabian Ruffy, Tao Wang, and Anirudh Sivaraman. 2020. Gauntlet: Finding Bugs in Compilers for Programmable Packet Processing. In USENIX OSDI.
[47]
Apoorv Shukla, Seifeddine Fathalli, Thomas Zinner, Artur Hecker, and Stefan Schmid. 2020. P4CONSIST: Toward Consistent P4 SDNs. IEEE Journal on Selected Areas in Communications38, 7 (2020), 1293--1307.
[48]
Apoorv Shukla, Kevin Hudemann, Zsolt Vági, Lily Hügerich, Georgios Smaragdakis, Artur Hecker, Stefan Schmid, and Anja Feldmann. 2021. Fix with P6: Verifying Programmable Switches at Runtime. In IEEE INFOCOM.
[49]
Apoorv Shukla, Kevin Nico Hudemann, Artur Hecker, and Stefan Schmid. 2019. Runtime Verification of P4 Switches with Reinforcement Learning. In Workshop on Network Meets AI & ML.
[50]
Radu Stoenescu, Dragos Dumitrescu, Matei Popovici, Lorina Negreanu, and Costin Raiciu. 2018. Debugging P4 Programs with Vera. In ACM SIGCOMM.
[51]
Hongyi Zeng, Peyman Kazemian, George Varghese, and Nick McKeown. 2012. Automatic Test Packet Generation. In CoNEXT.
[52]
Yu Zhou, Jun Bi, Tong Yang, Kai Gao, Cheng Zhang, Jiamin Cao, and Yangyang Wang. 2018. KeySight: Troubleshooting Programmable Switches via Scalable High-Coverage Behavior Tracking. In ICNP.

Cited By

View all
  • (2023)Runtime Verification for Programmable SwitchesIEEE/ACM Transactions on Networking10.1109/TNET.2023.323493131:4(1822-1837)Online publication date: 13-Jan-2023
  • (2023)Vulnerabilities and Attacks of Inter-device Coordination in Programmable Networks2023 IEEE/ACM 31st International Symposium on Quality of Service (IWQoS)10.1109/IWQoS57198.2023.10188714(01-10)Online publication date: 19-Jun-2023
  • (2023)HULA: Dynamic and Scalable Load Balancing Mechanism for Data Plane of SDN2023 Fifth International Conference on Electrical, Computer and Communication Technologies (ICECCT)10.1109/ICECCT56650.2023.10179849(1-9)Online publication date: 22-Feb-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SOSR '21: Proceedings of the ACM SIGCOMM Symposium on SDN Research (SOSR)
October 2021
190 pages
ISBN:9781450390842
DOI:10.1145/3482898
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 November 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Bug Detection
  2. Programmable Data Planes
  3. Runtime Validation
  4. Software-Defined Networks

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SOSR '21
Sponsor:
SOSR '21: The ACM SIGCOMM Symposium on SDN Research
October 11 - 12, 2021
Virtual Event, USA

Acceptance Rates

Overall Acceptance Rate 7 of 43 submissions, 16%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)81
  • Downloads (Last 6 weeks)7
Reflects downloads up to 26 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Runtime Verification for Programmable SwitchesIEEE/ACM Transactions on Networking10.1109/TNET.2023.323493131:4(1822-1837)Online publication date: 13-Jan-2023
  • (2023)Vulnerabilities and Attacks of Inter-device Coordination in Programmable Networks2023 IEEE/ACM 31st International Symposium on Quality of Service (IWQoS)10.1109/IWQoS57198.2023.10188714(01-10)Online publication date: 19-Jun-2023
  • (2023)HULA: Dynamic and Scalable Load Balancing Mechanism for Data Plane of SDN2023 Fifth International Conference on Electrical, Computer and Communication Technologies (ICECCT)10.1109/ICECCT56650.2023.10179849(1-9)Online publication date: 22-Feb-2023

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