ABSTRACT
The rise of programmable network devices and the P4 programming language has sparked an interest in developing new applications for packet processing data planes. Current data-plane programming models allow developers to express packet processing on a synchronous packet-by-packet basis, motivated by the goal of line rate processing in feed-forward pipelines. But some important data-plane operations do not naturally fit into this programming model. Sometimes we want to perform periodic tasks, or update the same state variables multiple times, or base a decision on state sitting at a different pipeline stage. While a P4-programmable device might contain special features to handle these tasks, such as packet generators and recirculation paths, there is currently no clean and consistent way to expose them to P4 programmers. We therefore propose a common, general way to express event processing using the P4 language, beyond just processing packet arrival and departure events. We believe that this more general notion of event processing can be supported without sacrificing line rate packet processing and we have developed a prototype event-driven architecture on the NetFPGA SUME platform to serve as an initial proof of concept.
Supplemental Material
- Mohammad Alizadeh, Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut, Francis Matus, Rong Pan, Navindra Yadav, George Varghese, et al. 2014. CONGA: Distributed congestion-aware load balancing for datacenters. In ACM SIGCOMM CCR, Vol. 44. ACM, 503--514.Google ScholarDigital Library
- 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 Computer Communication Review, Vol. 43. ACM, 99--110.Google ScholarDigital Library
- Xiaoqi Chen, Shir Landau Feibish, Yaron Koral, Jennifer Rexford, and Ori Rottenstreich. 2018. Catching the Microburst Culprits with Snappy. In Proc. of the Workshop on Self-Driving Networks. ACM, 22--28.Google ScholarDigital Library
- Sharad Chole, Andy Fingerhut, Sha Ma, Anirudh Sivaraman, Shay Vargaftik, Alon Berger, Gal Mendelson, Mohammad Alizadeh, Shang-Tse Chuang, Isaac Keslassy, et al. 2017. drmt: Disaggregated programmable switching. In Proc. of ACM Sigcomm. ACM, 1--14.Google ScholarDigital Library
- Graham Cormode and Shan Muthukrishnan. 2005. An improved data stream summary: the count-min sketch and its applications. Journal of Algorithms 55, 1 (2005), 58--75.Google ScholarDigital Library
- Huynh Tu Dang, Marco Canini, Fernando Pedone, and Robert Soulé. 2016. Paxos made switch-y. ACM SIGCOMM CCR 46, 2 (2016), 18--24.Google ScholarDigital Library
- Sally Floyd and Van Jacobson. 1993. Random early detection gateways for congestion avoidance. IEEE/ACM Transactions on networking 4 (1993), 397--413.Google Scholar
- Mark Handley, Costin Raiciu, Alexandru Agache, Andrei Voinescu, Andrew W Moore, Gianni Antichi, and Marcin Wójcik. 2017. Re-architecting datacenter networks and stacks for low latency and high performance. In Proc. of the Conference of ACM Sigcomm. ACM, 29--42.Google ScholarDigital Library
- Juha Heinanen and Roch Guérin. 1999. A single rate three color marker. Technical Report.Google Scholar
- 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 16th USENIX NSDI Symposium. 161--176.Google Scholar
- Stephen Ibanez, Gordon Brebner, Nick McKeown, and Noa Zilberman. 2019. The P4-> NetFPGA Workflow for Line-Rate Packet Processing. In Proc. of ACM/SIGDA International Symposium on Field-Programmable Gate Arrays. ACM, 1--9.Google Scholar
- Xin Jin, Xiaozhou Li, Haoyu Zhang, Nate Foster, Jeongkeun Lee, Robert Soulé, Changhoon Kim, and Ion Stoica. 2018. Netchain: Scale-free subrtt coordination. In 15th USENIX NSDI Symposium. 35--49.Google Scholar
- 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. ACM, 121--136.Google ScholarDigital Library
- Naga Katta, Mukesh Hira, Changhoon Kim, Anirudh Sivaraman, and Jennifer Rexford. 2016. Hula: Scalable load balancing using programmable data planes. In Proc. of the Symposium on SDN Research. ACM, 10.Google ScholarDigital Library
- Yuliang Li, Rui Miao, Changhoon Kim, and Minlan Yu. 2016. FlowRadar: a better NetFlow for data centers. In 13th USENIX NSDI Symposium. 311--324.Google Scholar
- Dong Lin and Robert Morris. 1997. Dynamics of random early detection. In ACM SIGCOMM CCR, Vol. 27. ACM, 127--137.Google ScholarDigital Library
- Shouxi Luo, Hongfang Yu, and Laurent Vanbever. 2017. Swing state: Consistent updates for stateful and programmable data planes. In Proc. of the Symposium on SDN Research. ACM, 115--121.Google ScholarDigital Library
- 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 Proc. of the ACM Sigcomm Conference. ACM, 15--28.Google ScholarDigital Library
- Barefoot Networks. 2019. Tofino - World's Fastest P4-programmable Ethernet Switch ASICs. (2019). https://barefootnetworks.com/products/brief-tofino/Google Scholar
- P4.org. 2018. In-band Network Telemetry (INT) Dataplane Specification. (2018). https://github.com/p4lang/p4-applications/blob/master/docs/INT.pdfGoogle Scholar
- P4.org. 2018. P4 Portable Switch Architecture (PSA). (2018). https://p4.org/p4-spec/docs/PSA-v1.1.0.htmlGoogle Scholar
- Rong Pan, Lee Breslau, Balaji Prabhakar, and Scott Shenker. 2003. Approximate fairness through differential dropping. ACM SIGCOMM Computer Communication Review 33, 2 (2003), 23--39.Google ScholarDigital Library
- Rong Pan, Preethi Natarajan, Chiara Piglione, Mythili Suryanarayana Prabhu, Vijay Subramanian, Fred Baker, and Bill VerSteeg. 2013. PIE: A lightweight control scheme to address the bufferbloat problem. In IEEE 14th International Conference on High Performance Switching and Routing (HPSR). IEEE, 148--155.Google ScholarCross Ref
- Salvatore Pontarelli, Roberto Bifulco, Marco Bonola, Carmelo Cascone, Marco Spaziani, Valerio Bruschi, Davide Sanvito, Giuseppe Siracusano, Antonio Capone, Michio Honda, et al. 2019. Flowblaze: Stateful packet processing in hardware. In 16th USENIX NSDI Symposium.Google Scholar
- Roshan Sedar, Michael Borokhovich, Marco Chiesa, Gianni Antichi, and Stefan Schmid. 2018. Supporting emerging applications with low-latency failover in p4. (2018).Google Scholar
- 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 Proceedings of the 2016 ACM SIGCOMM Conference. ACM, 15--28.Google ScholarDigital Library
- Anirudh Sivaraman, Suvinay Subramanian, Mohammad Alizadeh, Sharad Chole, Shang-Tse Chuang, Anurag Agrawal, Hari Balakrishnan, Tom Edsall, Sachin Katti, and Nick McKeown. 2016. Programmable packet scheduling at line rate. In Proc. of ACM SIGCOMM Conference. ACM, 44--57.Google ScholarDigital Library
- Xilinx. 2018. SDNet. (2018). https://www.xilinx.com/products/design-tools/software-zone/sdnet.htmlGoogle Scholar
Recommendations
Reprogrammable network packet processing on the field programmable port extender (FPX)
FPGA '01: Proceedings of the 2001 ACM/SIGDA ninth international symposium on Field programmable gate arraysA prototype platform has been developed that allows processing of packets at the edge of a multi-gigabit-per-second network switch. This system, the Field Programmable Port Extender (FPX), enables packet processing functions to be implemented as modular ...
Study of temporal behaviour of packet loss in packet switches with bursty traffic arrivals
The study of packet loss is of great importance to the design of fast packet switching systems. Fast packet switching is generally accepted as the best technique for designing high-speed computer networks. Due to the high throughput demands and the ...
Testing Event-Driven Programs in Processing
ESSE '20: Proceedings of the 2020 European Symposium on Software EngineeringEvent-driven programming is a paradigm that is widely used in many fields. Processing is a set of programming languages and environments specialized in event-driven programming for interactive graphical applications. It provides only low-level event-...
Comments