skip to main content
10.1145/3422604.3425933acmconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article
Public Access

Elastic Switch Programming with P4All

Published:04 November 2020Publication History

ABSTRACT

The P4 language enables a range of new network applications. However, it is still far from easy to implement and optimize P4 programs for PISA hardware. Programmers must engage in a tedious "trial and error" process wherein they write their program (guessing it will fit within the hardware) and then check by compiling it. If it fails, they repeat the process. In this paper, we argue that programmers should define elastic data structures that stretch automatically to make use of available switch resources. We present P4All, an extension of P4 that supports elastic switch programming. Elastic data structures also make P4All modules reusable across different applications and hardware targets, where resource needs and constraints may vary.Our design is oriented around use of symbolic primitives (integers that may take on a range of possible values at compile time), arrays, and loops. We show how to use these primitive mechanisms to build a range of reusable libraries such as hash tables, Bloom filters, sketches, and key-value stores. We also explain the important role that elasticity plays in modular programming, and we allow programmers to declare utility functions that control the relative share of data-plane resources apportioned to each module.

References

  1. R. Ben-Basat, X. Chen, G. Einziger, and O. Rottenstreich. 2018. Efficient Measurement on Programmable Switches Using Probabilistic Recirculation. In IEEE International Conference on Network Protocols. 313--323.Google ScholarGoogle Scholar
  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. ACM SIGCOMM Computer Communication Review, Vol. 44, 3 (2014), 87--95.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick McKeown, Martin Izzard, Fernando Mujica, and Mark Horowitz. 2013. Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN. In ACM SIGCOMM. 99--110.Google ScholarGoogle Scholar
  4. Lee Breslau, Pei Cao, Li Fan, Graham Phillips, and Scott Shenker. 1999. Web Caching and Zipf-like Distributions: Evidence and Implications. In IEEE INFOCOM. 126--134.Google ScholarGoogle Scholar
  5. Graham Cormode and S. Muthukrishnan. 2005 a. An Improved Data Stream Summary: The Count-min Sketch and Its Applications. Journal of Algorithms, Vol. 55, 1 (April 2005), 58--75. https://doi.org/10.1016/j.jalgor.2003.12.001Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Graham Cormode and S. Muthukrishnan. 2005 b. Summarizing and Mining Skewed Data Streams. In Proceedings of the 2005 SIAM International Conference on Data Mining, SDM 2005, Newport Beach, CA, USA, April 21--23, 2005, Hillol Kargupta, Jaideep Srivastava, Chandrika Kamath, and Arnold Goodman (Eds.). SIAM, 44--55. https://doi.org/10.1137/1.9781611972757.5Google ScholarGoogle ScholarCross RefCross Ref
  7. Xiangyu Gao, Taegyun Kim, Aatish Kishan Varma, Anirudh Sivaraman, and Srinivas Narayana. 2019. Autogenerating Fast Packet-Processing Code Using Program Synthesis. In ACM SIGCOMM Workshop on Hot Topics in Networks. 150--160. https://doi.org/10.1145/3365609.3365858Google ScholarGoogle Scholar
  8. Arpit Gupta, Rob Harrison, Marco Canini, Nick Feamster, Jennifer Rexford, and Walter Willinger. 2018. Sonata: Query-driven Streaming Network Telemetry. In ACM SIGCOMM. ACM, 357--371. https://doi.org/10.1145/3230543.3230555Google ScholarGoogle Scholar
  9. Rob Harrison, Qizhe Cai, Arpit Gupta, and Jennifer Rexford. 2018. Network-Wide Heavy Hitter Detection with Commodity Switches. In Symposium on SDN Research. Article Article 8, 7 pages.Google ScholarGoogle Scholar
  10. Thomas Holterbach, Edgar Costa Molero, Maria Apostolaki, Alberto Dainotti, Stefano Vissicchio, and Laurent Vanbever. 2019. Blink: Fast Connectivity Recovery Entirely in the Data Plane. In USENIX Symposium on Networked Systems Design and Implementation. Boston, MA, 161--176. https://www.usenix.org/conference/nsdi19/presentation/holterbachGoogle ScholarGoogle Scholar
  11. Qun Huang, Xin Jin, Patrick P. C. Lee, Runhui Li, Lu Tang, Yi-Chao Chen, and Gong Zhang. 2017. SketchVisor: Robust Network Measurement for Software Packet Processing. In ACM SIGCOMM. 113--126.Google ScholarGoogle Scholar
  12. Qun Huang, Patrick P. C. Lee, and Yungang Bao. 2018. SketchLearn: Relieving User Burdens in Approximate Measurement with Automated Statistical Inference. In ACM SIGCOMM. 576--590. https://doi.org/10.1145/3230543.3230559Google ScholarGoogle Scholar
  13. Theo Jepsen, Masoud Moshref, Antonio Carzaniga, Nate Foster, and Robert Soulé. 2018. Life in the Fast Lane: A Line-Rate Linear Road. In Symposium on SDN Research. Article Article 10, 7 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Xin Jin, Xiaozhou Li, Haoyu Zhang, Nate Foster, Jeongkeun Lee, Robert Soulé, Changhoon Kim, and Ion Stoica. 2018. NetChain: Scale-Free Sub-RTT Coordination. In USENIX Symposium on Networked Systems Design and Implementation. Renton, WA, 35--49. https://www.usenix.org/conference/nsdi18/presentation/jinGoogle ScholarGoogle Scholar
  15. Xin Jin, Xiaozhou Li, Haoyu Zhang, Robert Soule, Jeongkeun Lee, Nate Foster, Changhoon Kim, and Ion Stoica. 2017. NetCache: Balancing Key-Value Stores with Fast In-Network Caching. In Symposium on Operating System Principles.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lavanya Jose, Lisa Yan, George Varghese, and Nick McKeown. 2015. Compiling Packet Programs to Reconfigurable Switches. In USENIX Conference on Networked Systems Design and Implementation. USENIX Association, USA, 103--115.Google ScholarGoogle Scholar
  17. K. Rustan M. Leino and Philipp Rümmer. 2010. A Polymorphic Intermediate Verification Language: Design and Logical Encoding. In Tools and Algorithms for the Construction and Analysis of Systems,, Javier Esparza and Rupak Majumdar (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 312--327.Google ScholarGoogle Scholar
  18. Yuliang Li, Rui Miao, Changhoon Kim, and Minlan Yu. 2016. FlowRadar: A Better NetFlow for Data Centers. In USENIX Symposium on Networked Systems Design and Implementation. Santa Clara, CA, 311--324. https://www.usenix.org/conference/nsdi16/technical-sessions/presentation/li-yuliangGoogle ScholarGoogle Scholar
  19. Zaoxing Liu, Ran Ben-Basat, Gil Einziger, Yaron Kassner, Vladimir Braverman, Roy Friedman, and Vyas Sekar. 2019. NitroSketch: Robust and General Sketch-Based Monitoring in Software Switches. In ACM SIGCOMM. 334--350. https://doi.org/10.1145/3341302.3342076Google ScholarGoogle Scholar
  20. Zaoxing Liu, Antonis Manousis, Gregory Vorsanger, Vyas Sekar, and Vladimir Braverman. 2016. One Sketch to Rule Them All: Rethinking Network Flow Monitoring with UnivMon. In ACM SIGCOMM. 101--114. https://doi.org/10.1145/2934872.2934906Google ScholarGoogle Scholar
  21. 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. 15--28.Google ScholarGoogle Scholar
  22. Travis E Oliphant. 2006. A guide to NumPy. Vol. 1. Trelgol Publishing USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Recep Ozdag. 2012. Intel® Ethernet Switch FM6000 Series--Software Defined Networking. goo.gl/AnvOvX.Google ScholarGoogle Scholar
  24. P4 Language Consortium. 2018. P416 Language Specifications. (2018). https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.pdfGoogle ScholarGoogle Scholar
  25. Naveen Kr. Sharma, Antoine Kaufmann, Thomas Anderson, Arvind Krishnamurthy, Jacob Nelson, and Simon Peter. 2017. Evaluating the Power of Flexible Packet Processing for Network Resource Allocation. In USENIX Networked Systems Design and Implementation. 67--82. https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/sharmaGoogle ScholarGoogle Scholar
  26. Naveen Kr. Sharma, Ming Liu, Kishore Atreya, and Arvind Krishnamurthy. 2018. Approximating Fair Queueing on Reconfigurable Switches. In USENIX Symposium on Networked Systems Design and Implementation. Renton, WA, 1--16. https://www.usenix.org/conference/nsdi18/presentation/sharmaGoogle ScholarGoogle Scholar
  27. Anirudh Sivaraman, Alvin Cheung, Mihai Budiu, Changhoon Kim, Mohammad Alizadeh, Hari Balakrishnan, George Varghese, Nick McKeown, and Steve Licking. 2016. Packet Transactions: High-Level Programming for Line-Rate Switches. In ACM SIGCOMM. 15--28.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Vibhaalakshmi Sivaraman, Srinivas Narayana, Ori Rottenstreich, S. Muthukrishnan, and Jennifer Rexford. 2017. Heavy-Hitter Detection Entirely in the Data Plane. In ACM SIGCOMM Symposium on SDN Research. ACM, 164--176. https://doi.org/10.1145/3050220.3063772Google ScholarGoogle Scholar
  29. Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. 2006. Combinatorial Sketching for Finite Programs. In Architectural Support for Programming Languages and Operating Systems. 404--415.Google ScholarGoogle Scholar
  30. Emina Torlak and Rastislav Bodik. 2014. A Lightweight Symbolic Virtual Machine for Solver-aided Host Languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation. 530--541. https://doi.org/10.1145/2594291.2594340Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Tong Yang, Jie Jiang, Peng Liu, Qun Huang, Junzhi Gong, Yang Zhou, Rui Miao, Xiaoming Li, and Steve Uhlig. 2018. Elastic Sketch: Adaptive and Fast Network-wide Measurements. In ACM SIGCOMM. ACM, 561--575. https://doi.org/10.1145/3230543.3230544Google ScholarGoogle Scholar

Index Terms

  1. Elastic Switch Programming with P4All

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      HotNets '20: Proceedings of the 19th ACM Workshop on Hot Topics in Networks
      November 2020
      228 pages
      ISBN:9781450381451
      DOI:10.1145/3422604

      Copyright © 2020 ACM

      Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States 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.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 4 November 2020

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate110of460submissions,24%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader