skip to main content
10.1145/3663408.3663419acmotherconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article

Cross-Platform Transpilation of Packet-Processing Programs using Program Synthesis

Published: 03 August 2024 Publication History

Abstract

The proliferation of programmable network devices offers a wide range of device options for developers of packet processing programs. However, there are several differences in programming language usage, hardware resource constraints, and hardware architecture across these devices. Programmers must understand multiple programming languages and hardware designs to write programs for various devices.
We propose an alternative: leveraging program synthesis to build a transpiler, Polyglotter, that outputs programs for target hardware devices from input programs written for source hardware devices. This can reduce the efforts required to write algorithms across platforms. Our evaluation results show that, compared to traditional program rewriting methods, Polyglotter can quickly produce correct results with efficient use of hardware resources. We also outline several directions for future work in such transpilers.

References

[1]
[n. d.]. Intel® Infrastructure Processing Unit (Intel® IPU). https://www.intel.com/content/www/us/en/products/details/network-io/ipu.html. ([n. d.]).
[2]
[n. d.]. NPL Specification. https://github.com/nplang/NPL-Spec. ([n. d.]).
[3]
[n. d.]. P4-16 language specification. https://p4.org/p4-spec/docs/P4-16-v1.1.0-spec.html. ([n. d.]).
[4]
[n. d.]. Pensando Distributed Services Architecture SmartNIC. http://www.servethehome.com/pensando-distributed-services-architecture-smartnic/. ([n. d.]).
[5]
[n. d.]. Product Brief Tofino Page | Barefoot. https://barefootnetworks.com/products/brief-tofino/. ([n. d.]).
[6]
[n. d.]. Trident 4 / BCM56690 Series. https://www.broadcom.com/products/ethernet-connectivity/switching/strataxgs/bcm56690. ([n. d.]).
[7]
Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker. 2014. NetKAT: semantic foundations for networks(POPL ’14). Association for Computing Machinery, New York, NY, USA, 113–126. https://doi.org/10.1145/2535838.2535862
[8]
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. SIGCOMM Comput. Commun. Rev. 43, 4 (aug 2013), 99–110. https://doi.org/10.1145/2534169.2486011
[9]
Ryan Doenges, Tobias Kappé, John Sarracino, Nate Foster, and Greg Morrisett. 2022. Leapfrog: certified equivalence for protocol parsers. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation(PLDI 2022). Association for Computing Machinery, New York, NY, USA, 950–965. https://doi.org/10.1145/3519939.3523715
[10]
Jiaqi Gao, Ennan Zhai, Hongqiang Harry Liu, Rui Miao, Yu Zhou, Bingchuan Tian, Chen Sun, Dennis Cai, Ming Zhang, and Minlan Yu. 2020. Lyra: A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICs. In ACM SIGCOMM.
[11]
Xiangyu Gao, Taegyun Kim, Michael D. Wong, Divya Raghunathan, Aatish Kishan Varma, Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2020. Switch Code Generation Using Program Synthesis(SIGCOMM ’20). New York, NY, USA, 44–61. https://doi.org/10.1145/3387514.3405852
[12]
Xiangyu Gao, Divya Raghunathan, Ruijie Fang, Tao Wang, Xiaotong Zhu, Anirudh Sivaraman, Srinivas Narayana, and Aarti Gupta. 2023. CaT: A Solver-Aided Compiler for Packet-Processing Pipelines. In ACM ASPLOS. New York, NY, USA, 72–88. https://doi.org/10.1145/3582016.3582036
[13]
Glen Gibb, George Varghese, Mark Horowitz, and Nick McKeown. 2013. Design principles for packet parsers. In Architectures for Networking and Communications Systems. IEEE, 13–24.
[14]
Sumit Gulwani, Oleksandr Polozov, and Rishabh Singh. 2017. Program Synthesis. Foundations and Trends® in Programming Languages 4, 1-2 (2017), 1–119. https://doi.org/10.1561/2500000010
[15]
Mary Hogan, Shir Landau-Feibish, Mina Tahmasbi Arashloo, Jennifer Rexford, and David Walker. 2022. Modular Switch Programming Under Resource Constraints. In USENIX NSDI.
[16]
Christos Kozanitis, John Huber, Sushil Singh, and George Varghese. 2010. Leaping Multiple Headers in a Single Bound: Wire-Speed Parsing Using the Kangaroo System. In 2010 Proceedings IEEE INFOCOM. 1–9. https://doi.org/10.1109/INFCOM.2010.5462139
[17]
Muhammad Shahbaz and Nick Feamster. 2015. The case for an intermediate representation for programmable data planes. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research(SOSR ’15). Association for Computing Machinery, New York, NY, USA, Article 3, 6 pages. https://doi.org/10.1145/2774993.2775000
[18]
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.
[19]
John Sonchak, Devon Loehr, Jennifer Rexford, and David Walker. 2021. Lucid: A Language for Control in the Data Plane. In ACM SIGCOMM.
[20]
Hardik Soni, Myriana Rifai, Praveen Kumar, Ryan Doenges, and Nate Foster. 2020. Composing dataplane programs with μ P4. In ACM SIGCOMM.
[21]
Nik Sultana, John Sonchack, Hans Giesen, Isaac Pedisich, Zhaoyang Han, Nishanth Shyamkumar, Shivani Burad, André DeHon, and Boon Thau Loo. 2021. Flightplan: Dataplane disaggregation and placement for p4 programs. In USENIX NSDI.

Index Terms

  1. Cross-Platform Transpilation of Packet-Processing Programs using Program Synthesis

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      APNet '24: Proceedings of the 8th Asia-Pacific Workshop on Networking
      August 2024
      230 pages
      ISBN:9798400717581
      DOI:10.1145/3663408
      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 the author(s) 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].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 03 August 2024

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Programmable switches
      2. code generation
      3. finite state machine
      4. packet processing pipelines;
      5. program synthesis
      6. programmable parser

      Qualifiers

      • Research-article
      • Research
      • Refereed limited

      Conference

      APNet 2024

      Acceptance Rates

      APNet '24 Paper Acceptance Rate 50 of 118 submissions, 42%;
      Overall Acceptance Rate 50 of 118 submissions, 42%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 29
        Total Downloads
      • Downloads (Last 12 months)29
      • Downloads (Last 6 weeks)7
      Reflects downloads up to 17 Jan 2025

      Other Metrics

      Citations

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format.

      HTML Format

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media