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

skip to main content
research-article

P4RROT: Generating P4 Code for the Application Layer

Published: 20 April 2023 Publication History

Abstract

Throughput and latency critical applications could often benefit of performing computations close to the client. To enable this, distributed computing paradigms such as edge computing have recently emerged. However, with the advent of programmable data planes, computations cannot only be performed by servers but they can be offloaded to network switches. Languages like P4 enable to flexibly reprogram the entire packet processing pipeline. Though these devices promise high throughput and ultra-low response times, implementing application-layer tasks in the data plane programming language P4 is still challenging for an application developer who is not familiar with networking domain. In this paper, we first identify and examine obstacles and pain points one can experience when offloading server-based computations to the network. Then we present P4rrot, a code generator (in form of a library) which allows to overcome these limitations by providing a user-friendly API to describe computations to be offloaded. After discussing the design choices behind P4rrot, we introduce our proof-of-concept implementation for two P4 targets: Netronome SmartNIC and BMv2. To demonstrate the applicability of P4rrot, we investigate case studies in the context of publish-subscribe sensor data processing and real-time data streaming, supporting, in particular, MQTT-SN and MoldUDP packets.

References

[1]
Martín Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irving, Michael Isard, et al. 2016. Tensorflow: A system for large-scale machine learning. In 12th {USENIX} symposium on operating systems design and implementation ({OSDI} 16). 265--283.
[2]
Fabricio E Rodriguez Cesen, Levente Csikor, Carlos Recalde, Christian Esteve Rothenberg, and Gergely Pongrácz. 2020. Towards Low Latency Industrial Robot Control in Programmable Data Planes. In 2020 6th IEEE Conference on Network Softwarization (NetSoft). IEEE, 165--169.
[3]
John Dilley, Bruce Maggs, Jay Parikh, Harald Prokop, Ramesh Sitaraman, and Bill Weihl. 2002. Globally distributed content delivery. IEEE Internet Computing 6, 5 (2002), 50--58.
[4]
Paul Emmerich, Sebastian Gallenmüller, Daniel Raumer, Florian Wohlfart, and Georg Carle. 2015. Moongen: A scriptable high-speed packet generator. In Proceedings of the 2015 Internet Measurement Conference. 275--287.
[5]
Arpit Gupta, Rob Harrison, Marco Canini, Nick Feamster, Jennifer Rexford, and Walter Willinger. 2018. Sonata: Query-driven streaming network telemetry. In Proceedings of the 2018 conference of the ACM special interest group on data communication. 357--371.
[6]
Theo Jepsen, Ali Fattaholmanan, Masoud Moshref, Nate Foster, Antonio Carzaniga, and Robert Soulé. 2020. Forwarding and routing with packet subscriptions. In Proceedings of the 16th International Conference on emerging Networking EXperiments and Technologies. 282--294.
[7]
Xin Jin, Xiaozhou Li, Haoyu Zhang, Robert Soulé, Jeongkeun Lee, Nate Foster, Changhoon Kim, and Ion Stoica. 2017. Netcache: Balancing key-value stores with fast in-network caching. In Proceedings of the 26th Symposium on Operating Systems Principles. 121--136.
[8]
Qiao Kang, Lei Xue, Adam Morrison, Yuxin Tang, Ang Chen, and Xiapu Luo. 2020. Programmable {In-Network} Security for Context-aware {BYOD} Policies. In 29th USENIX Security Symposium (USENIX Security 20). 595--612.
[9]
Nikhil Ketkar. 2017. Introduction to keras. In Deep learning with Python. Springer, 97--111.
[10]
Diego Kreutz, Fernando M. V. Ramos, Paulo Esteves Veríssimo, Christian Esteve Rothenberg, Siamak Azodolmolky, and Steve Uhlig. 2015. Software-Defined Networking: A Comprehensive Survey. Proc. IEEE 103, 1 (2015), 14--76.
[11]
Sándor Laki, Csaba Györgyi, József Pető, Péter Vörös, and Géza Szabó. 2022. In-Network Velocity Control of Industrial Robot Arms. In Proceedings of 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI'22).
[12]
Oliver Michel, Roberto Bifulco, Gabor Retvari, and Stefan Schmid. 2021. The Programmable Data Plane: Abstractions, Architectures, Algorithms, and Applications. In Proc. ACM Computing Surveys (CSUR).
[13]
Vikram Nathan, Srinivas Narayana, Anirudh Sivaraman, Prateesh Goyal, Venkat Arun, Mohammad Alizadeh, Vimalkumar Jeyakumar, and Changhoon Kim. 2017. Demonstration of the marple system for network performance monitoring. In Proceedings of the SIGCOMM Posters and Demos. 57--59.
[14]
P4Lang. 2015. Packet Test Framework. (2015). https://github.com/p4lang/ptf
[15]
John Sonchack, Devon Loehr, Jennifer Rexford, and David Walker. 2021. Lucid: a language for control in the data plane. In Proceedings of the 2021 ACM SIGCOMM 2021 Conference. 731--747.
[16]
Jonathan Vestin, Andreas Kassler, and Johan Åkerberg. 2018. FastReact: In-network control and caching for industrial control networks using programmable data planes. In 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA), Vol. 1. IEEE, 219--226.
[17]
Eder Ollora Zaballa and Zifan Zhou. 2019. Graph-To-P4: A P4 boilerplate code generator for parse graphs. In 2019 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). IEEE, 1--2.

Cited By

View all
  • (2024)NetCL: A Unified Programming Framework for In-Network ComputingProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.1109/SC41406.2024.00051(1-20)Online publication date: 17-Nov-2024
  • (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)Toward Highly Reliable Programmable Data Planes: Verification of P4 Code Generation2023 IEEE 9th International Conference on Network Softwarization (NetSoft)10.1109/NetSoft57336.2023.10175397(1-5)Online publication date: 19-Jun-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGCOMM Computer Communication Review
ACM SIGCOMM Computer Communication Review  Volume 53, Issue 1
January 2023
70 pages
ISSN:0146-4833
DOI:10.1145/3594255
  • Editor:
  • Steve Uhlig
Issue’s Table of Contents
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 April 2023
Published in SIGCOMM-CCR Volume 53, Issue 1

Check for updates

Author Tags

  1. P4
  2. code generation
  3. offloading
  4. programmable data planes

Qualifiers

  • Research-article

Funding Sources

  • Ministry of Innovation and Technology of Hungary from the National Research, Development and Innovation
  • German Bundesministerium fur Bildung und Forschung (BMBF)

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)119
  • Downloads (Last 6 weeks)16
Reflects downloads up to 26 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)NetCL: A Unified Programming Framework for In-Network ComputingProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.1109/SC41406.2024.00051(1-20)Online publication date: 17-Nov-2024
  • (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)Toward Highly Reliable Programmable Data Planes: Verification of P4 Code Generation2023 IEEE 9th International Conference on Network Softwarization (NetSoft)10.1109/NetSoft57336.2023.10175397(1-5)Online publication date: 19-Jun-2023

View Options

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