Abstract
Programmable data plane technologies enable the systematic reconfiguration of the low-level processing steps applied to network packets and are key drivers toward realizing the next generation of network services and applications. This survey presents recent trends and issues in the design and implementation of programmable network devices, focusing on prominent abstractions, architectures, algorithms, and applications proposed, debated, and realized over the past years. We elaborate on the trends that led to the emergence of this technology and highlight the most important pointers from the literature, casting different taxonomies for the field, and identifying avenues for future research.
- Martin Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irving et al. 2016. TensorFlow: A system for large-scale machine learning. In OSDI’16. USENIX.Google Scholar
- Andrei Alexandru Agape, Madalin Claudiu Danceanu, Rene Rydhof Hansen, and Stefan Schmid. 2021. P4Fuzz: Compiler fuzzer for dependable programmable dataplanes. In ICDCN’21. ACM.Google Scholar
- Mohammad Al-Fares, Sivasankar Radhakrishnan, Barath Raghavan, Nelson Huang, and Amin Vahdat. 2010. Hedera: Dynamic flow scheduling for data center networks. In NSDI’10. USENIX.Google Scholar
- Omid Alipourfard and Minlan Yu. 2018. Decoupling algorithms and optimizations in network functions. In HotNets’18. ACM.Google Scholar
- Mohammad Alizadeh, Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut et al. 2014. CONGA: Distributed congestion-aware load balancing for datacenters. In SIGCOMM’14. ACM.Google Scholar
- Noga Alon, Yossi Matias, and Mario Szegedy. 1996. The space complexity of approximating the frequency moments. In STOC’96. ACM.Google Scholar
- 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’14. ACM.Google Scholar
- Gianni Antichi, Theophilus Benson, Nate Foster, Fernando M. V. Ramos, and Justine Sherry. 2019. Programmable network data planes. Dagstuhl Rep. 9, 3 (2019), 178–201. DOI:https://doi.org/10.4230/DagRep.9.3.178Google Scholar
- Mina Tahmasbi Arashloo, Yaron Koral, Michael Greenberg, Jennifer Rexford, and David Walker. 2016. SNAP: Stateful network-wide abstractions for packet processing. In SIGCOMM’16. ACM.Google ScholarDigital Library
- Jiasong Bai, Jun Bi, Peng Kuang et al. 2018. NS4: Enabling programmable data plane simulation. In SOSR’18. ACM.Google Scholar
- Manu Bansal, Aaron Schulman, and Sachin Katti. 2015. Atomix: A framework for deploying signal processing applications on wireless infrastructure. In NSDI’15. USENIX.Google Scholar
- David Barach, Leonardo Linguaglossa, Damjan Marion et al. 2018. High-speed software data plane via vectorized packet processing. IEEE Commun. 56, 12 (2018).Google Scholar
- Tom Barbette, Cyril Soldani, and Laurent Mathy. 2015. Fast userspace packet processing. In ANCS’15. IEEE.Google Scholar
- S. Bera, S. Misra, and A. V. Vasilakos. 2017. Software-defined networking for Internet of Things: A survey. IEEE Internet Things J. 4, 6 (2017).Google ScholarCross Ref
- Giuseppe Bianchi, Marco Bonola, Antonio Capone, and Carmelo Cascone. 2014. OpenState: Programming platform-independent stateful Openflow applications inside the switch. SIGCOMM Comput. Commun. Rev. 44, 2 (2014).Google ScholarDigital Library
- Giuseppe Bianchi, Marco Bonola, Salvatore Pontarelli, Davide Sanvito, Antonio Capone, and Carmelo Cascone. 2016. Open Packet Processor: A programmable architecture for wire speed platform-independent stateful in-network processing. arxiv:1605.01977.Google Scholar
- Marcin Bienkowski, Jan Marcinkowski, Maciej Pacut, Stefan Schmid, and Aleksandra Spyra. 2017. Online tree caching. In SPAA’17. ACM.Google Scholar
- Marcin Bienkowski, Nadi Sarrar, Stefan Schmid, and Steve Uhlig. 2018. Online aggregation of the forwarding information base: Accounting for locality and churn. IEEE/ACM Trans. Netw. 26, 1 (2018).Google ScholarDigital Library
- Roberto Bifulco and Anton Matsiuk. 2015. Towards scalable SDN switches: Enabling faster flow table entries installation. In SIGCOMM’15. ACM.Google Scholar
- Nicola Bonelli, Stefano Giordano, Gregorio Procissi, and Luca Abeni. 2014. A purely functional approach to packet processing. In ANCS’14. ACM.Google Scholar
- Michael Borokhovich, Clement Rault, Liron Schiff, and Stefan Schmid. 2018. The show must go on: Fundamental data plane connectivity services for dependable SDNs. Elsevier Comp. Comm. 116 (2018).Google Scholar
- Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco et al. 2014. P4: Programming protocol-independent packet processors. ACM SIGCOMM Comput. Commun. Rev. 44, 3 (2014).Google ScholarDigital Library
- Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick McKeown et al. 2013. Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN. In SIGCOMM’13. ACM.Google Scholar
- Gordon Brebner and Weirong Jiang. 2014. High-speed packet processing using reconfigurable computing. IEEE Micro. 34, 1 (2014).Google ScholarCross Ref
- Anat Bremler-Barr, David Hay, Idan Moyal, and Liron Schiff. 2017. Load balancing memcached traffic using software defined networking. In IFIP Networking’17. IEEE.Google Scholar
- Marco Spaziani Brunella, Giacomo Belocchi, Marco Bonola, Salvatore Pontarelli, Giuseppe Siracusano et al. 2020. hXDP: Efficient software packet processing on FPGA NICs. In OSDI’20. USENIX.Google Scholar
- Brandon Butler. 2017. What is intent-based networking? Retrieved from https://www.networkworld.com/article/3202699/lan-wan/what-is-intent-based-networking.html.Google Scholar
- Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, and Van Jacobson. 2017. BBR: Congestion-based congestion control. Commun. ACM 60, 2 (2017).Google ScholarDigital Library
- Martin Casado, Michael J. Freedman, Justin Pettit, Jianying Luo, Nick McKeown, and Scott Shenker. 2007. Ethane: Taking control of the enterprise. In SIGCOMM’07. ACM.Google Scholar
- Calin Cascaval and Dan Daly. 2017. P4 Architectures. Retrieved from https://p4.org/assets/p4-ws-2017-p4-architectures.pdf.Google Scholar
- Huan Chen and Theophilus Benson. 2017. Hermes: Providing tight control over high-performance SDN switches. In CoNEXT’17. ACM.Google Scholar
- Sharad Chole, Andy Fingerhut, Sha Ma, Anirudh Sivaraman, Shay Vargaftik, Alon Berger, Gal Mendelson, Mohammad Alizadeh, Shang-Tse Chuang et al. 2017. dRMT: Disaggregated programmable switching. In SIGCOMM’17. ACM.Google Scholar
- P4 Language Consortium. 2020. P4 Expert Roundtable Series 2020. Retrieved from https://p4.org/events/2020-p4-summit/.Google Scholar
- P4 Language Consortium. 2020. P4 Runtime. Retrieved from https://p4.org/p4-runtime.Google Scholar
- Intel Corporation. 2010. IXP4XX Product Line of Network Processors. Retrieved from https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ixp4xx-product-line-network-processors-spec-update.pdf.Google Scholar
- Intel Corporation. 2013. Intel Ethernet Switch FM6000 Series. Retrieved from https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ethernet-switch-fm6000-series-brief.pdf.Google Scholar
- Intel Corporation. 2020. Data Direct I/O. Retrieved from https://www.intel.com/content/www/us/en/io/data-direct-i-o-technology.html.Google Scholar
- Intel Corporation. 2020. Intel Tofino. Retrieved from https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/tofino-series/tofino.html.Google Scholar
- Paolo Costa, Austin Donnelly, Antony Rowstron, and Greg O’Shea. 2012. Camdoop: Exploiting in-network aggregation for big data applications. In NSDI’12. USENIX.Google ScholarDigital Library
- Levente Csikor, Dinil Mon Divakaran, Min Suk Kang, Attila Kőrösi, Balázs Sonkoly, Dávid Haja, Dimitrios P. Pezaros, Stefan Schmid, and Gábor Rétvári. 2019. Tuple space explosion: A denial-of-service attack against a software packet classifier. In CoNEXT’19. ACM.Google Scholar
- Andrew R. Curtis, Jeffrey C. Mogul, Jean Tourrilhes, Praveen Yalagandula, Puneet Sharma, and Sujata Banerjee. 2011. DevoFlow: Scaling flow management for high-performance networks. ACM SIGCOMM Comput. Commun. Rev. 41, 4 (2011).Google ScholarDigital Library
- Michael Dalton, David Schultz, Jacob Adriaens, Ahsan Arefin, Anshuman Gupta, Brian Fahs et al. 2018. Andromeda: Performance, isolation, and velocity at scale in cloud network virtualization. In NSDI’18. USENIX.Google Scholar
- Huynh Tu Dang, Marco Canini, Fernando Pedone et al. 2016. Paxos made switch-y. SIGCOMM Comput. Commun. Rev. 46, 2 (2016).Google ScholarDigital Library
- Huynh Tu Dang, Daniele Sciascia, Marco Canini, Fernando Pedone, and Robert Soulé. 2015. NetPaxos: Consensus at network speed. In SOSR’15. ACM.Google Scholar
- T. Dargahi, A. Caponi, M. Ambrosin, G. Bianchi, and M. Conti. 2017. A survey on the security of stateful SDN data planes. IEEE Commun. Surv. Tutor. 19, 3 (2017).Google Scholar
- Jeffrey Dean, Greg S. Corrado, Rajat Monga, Kai Chen, Matthieu Devin, Quoc V. Le, Mark Z. Mao, Marc’Aurelio Ranzato, Andrew Senior et al. 2012. Large scale distributed deep networks. In NIPS’12. Curran Associates Inc.Google Scholar
- Richard Draves, Christopher King, Srinivasan Venkatachary, and Brian Zill. 1999. Constructing optimal IP routing tables. In INFOCOM’99. IEEE.Google Scholar
- Dragos Dumitrescu, Radu Stoenescu, Matei Popovici, Lorina Negreanu, and Costin Raiciu. 2019. Dataplane equivalence and its applications. In NSDI’19. USENIX.Google Scholar
- R. Duncan and P. Jungck. 2009. packetC: Language for high performance packet processing. In HPCC’09. IEEE.Google Scholar
- Norbert Egi, Adam Greenhalgh, Mark Handley, Mickael Hoerdt, Felipe Huici, and Laurent Mathy. 2008. Towards high performance virtual routers on commodity hardware. In CoNEXT’08. ACM.Google Scholar
- Alireza Farshin, Amir Roozbeh, Gerald Q. Maguire Jr., and Dejan Kostić. 2020. Reexamining direct cache access to optimize I/O intensive applications for multi-hundred-gigabit networks. In ATC’20. USENIX.Google Scholar
- Nick Feamster, Jennifer Rexford, and Ellen Zegura. 2013. The road to SDN. ACM Queue. Queue 11, 12 (12 2013). DOI:https://doi.org/10.1145/2559899.2560327Google Scholar
- Anja Feldman and S. Muthukrishnan. 2000. Tradeoffs for packet classification. In INFOCOM 2000. IEEE.Google Scholar
- Daniel Firestone, Andrew Putnam, Sambhrama Mundkur et al. 2018. Azure accelerated networking: SmartNICs in the public cloud. In NSDI’18. USENIX.Google Scholar
- Alex Forencich, Alex C. Snoeren, George Porter, and George Papen. 2020. Corundum: An open-source 100-Gbps NIC. In FPGA’20. IEEE.Google Scholar
- Nate Foster, Arjun Guha, Mark Reitblatt, Alec Story, Michael J. Freedman, Naga Praveen Katta, Christopher Monsanto, Joshua Reich et al. 2013. Languages for software-defined networks. IEEE Comm. Mag. 51, 2 (2013).Google ScholarCross Ref
- Open Networking Foundation. 2020. Stratum: Enabling the era of next generation SDN. Retrieved from https://stratumproject.org.Google Scholar
- Jing Fu and Jennifer Rexford. 2008. Efficient IP-address lookup with a shared forwarding table for multiple virtual routers. In CoNEXT’08. ACM.Google Scholar
- Eli Gafni and Dimitri Bertsekas. 1981. Distributed algorithms for generating loop-free routes in networks with frequently changing topology. IEEE Trans. Commun. 29, 1 (1981), 11–18.Google ScholarCross Ref
- Aaron Gember-Jacobson, Raajay Viswanathan, Chaithan Prakash, Robert Grandl, Junaid Khalid, Sourav Das, and Aditya Akella. 2014. OpenNF: Enabling innovation in network function control. ACM SIGCOMM Comput. Commun. Rev. 44, 4 (2014).Google Scholar
- Mojgan Ghasemi, Theophilus Benson, and Jennifer Rexford. 2017. Dapper: Data plane performance diagnosis of tcp. In SOSR’17. ACM.Google ScholarDigital Library
- Glen Gibb, George Varghese, Mark Horowitz, and Nick McKeown. 2013. Design principles for packet parsers. In ANCS’13. ACM.Google Scholar
- Younghwan Go, Muhammad Asim Jamshed, YoungGyoun Moon, Changho Hwang, and KyoungSoo Park. 2017. APUNet: Revitalizing GPU as packet processing accelerator. In NSDI’17. USENIX.Google Scholar
- Yanlei Gong, Xiong Wang, Mehdi Malboubi, Sheng Wang, Shizhong Xu, and Chen-Nee Chuah. 2015. Towards accurate online traffic matrix estimation in software-defined networks. In SOSR’15. ACM.Google Scholar
- Andy Gospodarek. 2017. The Rise of SmartNICs—Offloading dataplane traffic to...software. Retrieved from https://youtu.be/AGSy51VlKaM.Google Scholar
- Mukul Goyal, Mohd Soperi, Emmanuel Baccelli et al. 2012. Improving convergence speed and scalability in OSPF: A survey. IEEE Commun. Surv. Tutor. 14, 2 (2012).Google Scholar
- Richard L. Graham, Devendar Bureddy, Pak Lui et al. 2016. Scalable hierarchical aggregation protocol (SHArP): A hardware architecture for efficient data reduction. In COM-HPC’16. IEEE.Google Scholar
- Adam Greenhalgh, Felipe Huici, Mickael Hoerdt, Panagiotis Papadimitriou, Mark Handley, and Laurent Mathy. 2009. Flow processing and the rise of commodity network hardware. ACM SIGCOMM Comput. Commun. Rev. 39, 2 (2009).Google ScholarDigital Library
- Arpit Gupta, Rob Harrison, Marco Canini, Nick Feamster, Jennifer Rexford, and Walter Willinger. 2018. Sonata: Query-driven streaming network telemetry. In SIGCOMM’18. ACM.Google Scholar
- Jong Hun Han, Prashanth Mundkur, Charalampos Rotsos et al. 2015. Blueswitch: Enabling provably consistent configuration of network switches. In ACM/IEEE ANCS’15.Google Scholar
- Sangjin Han, Keon Jang, Aurojit Panda, Shoumik Palkar, Dongsu Han, and Sylvia Ratnasamy. 2015. SoftNIC: A software NIC to augment hardware. Technical Report UCB/EECS-2015-155. UC Berkeley.Google Scholar
- Sangjin Han, Keon Jang, KyoungSoo Park, and Sue Moon. 2010. PacketShader: A GPU-accelerated software router. In SIGCOMM’10. ACM.Google Scholar
- F. E. Heart, R. E. Kahn, S. M. Ornstein, W. R. Crowther, and D. C. Walden. 1970. The interface message processor for the ARPA computer network. In ACM AFIPS’70 (Spring). ACM.Google Scholar
- Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann et al. 2018. The express data path: Fast programmable packet processing in the operating system kernel. In CoNEXT’18. ACM.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 NSDI’19. USENIX.Google Scholar
- Michio Honda, Felipe Huici, Giuseppe Lettieri, and Luigi Rizzo. 2015. mSwitch: A highly-scalable, modular software switch. In SOSR’15. ACM.Google Scholar
- 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 SIGCOMM’17. ACM.Google Scholar
- Stephen Ibanez, Gordon Brebner, Nick McKeown, and Noa Zilberman. 2019. The P4->NetFPGA workflow for line-rate packet processing. In FPGA’19. ACM.Google Scholar
- Netronome Systems Inc.2020. Netronome NFP-4000 Flow Processor. Retrieved. from https://www.netronome.com/media/documents/PB_NFP-4000-7-20.pdf.Google Scholar
- Xilinx Inc.2020. Vivado High-Level Synthesis. Retrieved from https://www.xilinx.com/products/design-tools/vivado.htmlGoogle Scholar
- Raj Jain and Sudipta Paul. 2013. Network virtualization and software defined networking for cloud computing: A survey. IEEE Commun. Mag. 51, 11 (2013).Google ScholarCross Ref
- Theo Jepsen, Daniel Alvarez, Nate Foster et al. 2019. Fast string searching on PISA. In SOSR’19. ACM.Google Scholar
- Vimalkumar Jeyakumar, Mohammad Alizadeh, Yilong Geng et al. 2014. Millions of little minions: Using packets for low latency network programming and visibility. ACM SIGCOMM Comput. Commun. Rev. 44, 4 (2014).Google Scholar
- Xin Jin, Eric Keller, and Jennifer Rexford. 2012. Virtual switching without a hypervisor for a more secure cloud. In HotICE’12. USENIX.Google Scholar
- 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 NSDI’18. USENIX.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 SOSP’17. ACM.Google Scholar
- Chen Jing. 2018. Zero-Copy Optimization for Alibaba Cloud Smart NIC Solution. Retrieved from http://www.alibabacloud.com/blog/zero-copy-optimization-for-alibaba-cloud-smart-nic-solution_593986.Google Scholar
- Lavanya Jose, Lisa Yan, George Varghese, and Nick McKeown. 2015. Compiling packet programs to reconfigurable switches. In NSDI’15. USENIX.Google Scholar
- Murad Kablan, Azzam Alsudais, Eric Keller, and Franck Le. 2017. Stateless network functions: Breaking the tight coupling of state and processing. In NSDI’17. USENIX.Google Scholar
- Anuj Kalia, Dong Zhou, Michael Kaminsky, and David G. Andersen. 2015. Raising the bar for using GPUs in software packet processing. In NSDI’15. USENIX.Google Scholar
- Georgios P. Katsikas, Tom Barbette, Dejan Kostić, Rebecca Steinert, and Gerald Q. Maguire Jr. 2018. Metron: NFV service chains at the true speed of the underlying hardware. In NSDI’18. USENIX.Google Scholar
- Naga Katta, Omid Alipourfard, Jennifer Rexford, and David Walker. 2016. CacheFlow: Dependency-aware rule-caching for software-defined networks. In SOSR’16. ACM.Google Scholar
- Naga Katta, Mukesh Hira, Changhoon Kim, Anirudh Sivaraman, and Jennifer Rexford. 2016. Hula: Scalable load balancing using programmable data planes. SOSR. In SOSR’16. ACM, 10.Google Scholar
- S. Keshav and R. Sharma. 1998. Issues and trends in router design. IEEE Commun. Mag. 36, 5 (5 1998). DOI:https://doi.org/10.1109/35.668285.Google ScholarDigital Library
- Junaid Khalid, Aaron Gember-Jacobson, Roney Michael, Anubhavnidhi Abhashkumar, and Aditya Akella. 2016. Paving the way for NFV: Simplifying middlebox modifications using StateAlyzr. In NSDI’16. USENIX.Google Scholar
- Changhoon Kim, Anirudh Sivaraman, Naga Katta et al. 2015. In-band network telemetry via programmable dataplanes. In ACM SIGCOMM’15 Demos. ACM.Google Scholar
- Hyojoon Kim, Joshua Reich, Arpit Gupta, Muhammad Shahbaz, Nick Feamster, and Russ Clark. 2015. Kinetic: Verifiable dynamic network control. In NSDI’15. USENIX.Google Scholar
- Kirill Kogan, Sergey Nikolenko, Ori Rottenstreich, William Culhane, and Patrick Eugster. 2014. SAX-PAC (Scalable And eXpressive PAcket Classification). In SIGCOMM’14. ACM.Google Scholar
- Eddie Kohler, Robert Morris, Benjie Chen, John Jannotti, and M. Frans Kaashoek. 2000. The click modular router. ACM Trans. Comput. Syst. 18, 3 (2000).Google ScholarDigital Library
- Teemu Koponen, Keith Amidon, Peter Balland et al. 2014. Network virtualization in multi-tenant datacenters. In NSDI’14. USENIX.Google Scholar
- Diego Kreutz, Fernando M. V. Ramos, Paulo Esteves Verissimo, Christian Esteve Rothenberg, Siamak Azodolmolky, and Steve Uhlig. 2015. Software-defined networking: A comprehensive survey. Proc. IEEE 103, 1 (2015), 14–76.Google ScholarCross Ref
- Sameer G. Kulkarni, Wei Zhang, Jinho Hwang et al. 2017. NFVnice: Dynamic backpressure and scheduling for NFV service chains. In SIGCOMM’17. ACM.Google Scholar
- Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978), 8. DOI: http://doi.acm.org/10.1145/359545.359563Google ScholarDigital Library
- Rafael Laufer, Massimo Gallo, Diego Perino, and Anandatirtha Nandugudi. 2016. CliMB: Enabling network function composition with click middleboxes. In HotMiddlebox’16. ACM.Google Scholar
- Maysam Lavasani, Larry Dennison, and Derek Chiou. 2012. Compiling high throughput network processors. In ACM/SIGDA FPGA’12.Google Scholar
- P. H. W. Leong. 2008. Recent trends in FPGA architectures and applications. In DELTA’08. IEEE.Google Scholar
- Tamás Lévai, Felicián Németh, Barath Raghavan, and Gábor Rétvári. 2020. Batchy: Batch-scheduling data flow graphs with service-level objectives. In USENIX NSDI’20. USENIX.Google Scholar
- Bojie Li, Kun Tan, Layong (Larry) Luo et al. 2016. ClickNP: Highly flexible and high performance network processing with reconfigurable hardware. In ACM SIGCOMM’16. ACM.Google Scholar
- Xiaozhou Li, Raghav Sethi, Michael Kaminsky, David G. Andersen, and Michael J. Freedman. 2016. Be fast, cheap, and in control with SwitchKV. In NSDI’16. USENIX.Google Scholar
- L. Linguaglossa, S. Lange, S. Pontarelli, G. Rétvári, D. Rossi, T. Zinner, R. Bifulco et al. 2019. Survey of performance acceleration techniques for network function virtualization. Proc. IEEE 107, 4 (2019).Google Scholar
- Alex X. Liu, Chad R. Meiners, and Eric Torng. 2010. TCAM Razor: A systematic approach towards minimizing packet classifiers in TCAMs. IEEE/ACM Trans. Netw. 18, 2 (Apr. 2010), 490–500. DOI:https://doi.org/10.1109/TNET.2009.2030188Google ScholarDigital Library
- Junda Liu, Aurojit Panda, Ankit Singla, Brighten Godfrey, Michael Schapira, and Scott Shenker. 2013. Ensuring connectivity via data plane mechanisms. In NSDI’13. USENIX.Google Scholar
- Ming Liu, Tianyi Cui, Henry Schuh, Arvind Krishnamurthy, Simon Peter, and Karan Gupta. 2019. Offloading distributed applications onto SmartNICs using iPipe. In SIGCOMM’19. ACM.Google Scholar
- Ming Liu, Liang Luo, Jacob Nelson, Luis Ceze, Arvind Krishnamurthy, and Kishore Atreya. 2017. IncBricks: Toward in-network computation with an in-network cache. SIGOPS Oper. Syst. Rev. 51, 2 (2017).Google ScholarCross Ref
- Ming Liu, Simon Peter, Arvind Krishnamurthy, and Phitchaya Mangpo Phothilimthana. 2019. E3: Energy-efficient microservices on SmartNIC-accelerated servers. In ATC’19. USENIX.Google Scholar
- Yaoqing Liu, Beichuan Zhang, and Lan Wang. 2013. FIFA: Fast incremental FIB aggregation. In INFOCOM’13. IEEE.Google Scholar
- 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 SIGCOMM’16. ACM, New York, NY.Google Scholar
- Shouxi Luo, Hongfang Yu, and Laurent Vanbever. 2017. Swing state: Consistent updates for stateful and programmable data planes. In SOSR’17. ACM.Google Scholar
- T. Lévai, G. Pongrácz, P. Megyesi, P. Vörös, S. Laki, F. Németh, and G. Rétvári. 2018. The price for programmability in the software data plane: The vendor perspective. IEEE J. Select. Areas Commun. 36, 12 (2018).Google ScholarDigital Library
- Yadi Ma and Suman Banerjee. 2012. A smart pre-classifier to reduce power consumption of TCAMs for multi-dimensional packet classification. ACM SIGCOMM Comput. Commun. Rev. 42, 4 (2012).Google ScholarDigital Library
- Luo Mai, Lukas Rupprecht, Abdul Alim et al. 2014. NetAgg: Using middleboxes for application-specific on-path aggregation in data centres. In CoNEXT’14. ACM.Google Scholar
- Joao Martins, Mohamed Ahmed, and Costin Raiciu. 2014. ClickOS and the art of network function virtualization. In NSDI’14. USENIX.Google Scholar
- James McCauley, Aurojit Panda, Arvind Krishnamurthy, and Scott Shenker. 2019. Thoughts on load distribution and the role of programmable switches. ACM SIGCOMM Comput. Commun. Rev. 49, 1 (2019).Google ScholarDigital Library
- Nick McKeown. 2017. Programmable forwarding planes are here to stay. In SIGCOMM NetPL’17. ACM.Google Scholar
- Nick McKeown, Tom Anderson, Hari Balakrishnan et al. 2008. OpenFlow: Enabling innovation in campus networks. ACM SIGCOMM Comput. Commun. Rev. 38, 2 (3 2008).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 SIGCOMM’17. ACM.Google Scholar
- Oliver Michel, Gábor Rétvári, Roberto Bifulco, and Stefan Schmid. 2020. The Programmable Data Plane Reading List. Retrieved from https://programmabledataplane.review/.Google Scholar
- Oliver Michel, John Sonchack, Eric Keller, and Jonathan M. Smith. 2018. Packet-level analytics in software without compromises. In HotCloud’18. USENIX.Google Scholar
- Radhika Mittal, Rachit Agarwal, Sylvia Ratnasamy et al. 2016. Universal packet scheduling. In NSDI’16. USENIX.Google Scholar
- Edgar Costa Molero, Stefano Vissicchio, and Laurent Vanbever. 2018. Hardware-accelerated network control planes. In HotNets’18. ACM.Google Scholar
- László Molnár, Gergely Pongrácz, Gábor Enyedi et al. 2016. Dataplane specialization for high-performance OpenFlow software switching. In SIGCOMM’16. ACM.Google Scholar
- Christopher Monsanto, Nate Foster, Rob Harrison, and David Walker. 2012. A compiler and run-time system for network programming languages. In ACM POPL’12. ACM.Google Scholar
- Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker. 2013. Composing software-defined networks. In NSDI’13. USENIX.Google Scholar
- Masoud Moshref, Apoorv Bhargava, and Adhip Gupta. 2014. Flow-level state transition as a new switch primitive for SDN. In HotSDN’14. ACM.Google Scholar
- Srinivas Narayana, Anirudh Sivaraman, Vikram Nathan et al. 2017. Language-directed hardware design for network performance monitoring. In SIGCOMM’17. ACM.Google Scholar
- Arista Networks. 2018. Four key trends in the networked use of FPGAs. Retrieved from https://www.arista.com/assets/data/pdf/Whitepapers/Trends-in-FPGA-WP.pdf.Google Scholar
- Bruno Astuto A. Nunes, Marc Mendonca, Xuan-Nam Nguyen et al. 2014. A survey of software-defined networking: Past, present, and future of programmable networks. IEEE Commun. Surv. Tutor. 16, 3 (2014).Google Scholar
- J. Ordonez-Lucena, P. Ameigeiras, D. Lopez, J. J. Ramos-Munoz, J. Lorca, and J. Folgueira. 2017. Network slicing for 5G with SDN/NFV: Concepts, architectures, and challenges. IEEE Commun. Mag. 55, 5 (2017).Google ScholarDigital Library
- Shoumik Palkar, Chang Lan, Sangjin Han, Keon Jang, Aurojit Panda, Sylvia Ratnasamy, Luigi Rizzo, and Scott Shenker. 2015. E2: A framework for NFV applications. In SOSP’15. ACM.Google Scholar
- Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, and Scott Shenker. 2016. NetBricks: Taking the V out of NFV. In OSDI’16. USENIX.Google Scholar
- Vincent Douglas Park and M. Scott Corson. 1997. A highly adaptive distributed routing algorithm for mobile wireless networks. In INFOCOM’97. IEEE, 1405–1413.Google Scholar
- Justin Pettit, Ben Pfaff, Chris Wright, and Madhu Venugopal. 2015. OVN, Bringing Native Virtual Networking to OVS. Retrieved from http://networkheresy.com/ovn-bringing-native-virtual-networking-to-ovs.Google Scholar
- BenPfaff. 2013. RFC 7047: The Open vSwitch Database Management Protocol. Retrieved from https://tools.ietf.org/html/rfc7047.Google Scholar
- Ben Pfaff. 2016. Converging approaches in software switches. Retrieved from https://benpfaff.org/ blp/keynote.pdf.Google Scholar
- Ben Pfaff, Justin Pettit, Teemu Koponen, Ethan J. Jackson, Andy Zhou, Jarno Rajahalme, Jesse Gross, Alex Wang, Jonathan Stringer et al. 2015. The design and implementation of open vSwitch. In NSDI’15. USENIX.Google Scholar
- Phitchaya Mangpo Phothilimthana, Ming Liu, Antoine Kaufmann, Simon Peter, Rastislav Bodik, and Thomas Anderson. 2018. Floem: A programming system for NIC-accelerated network applications. In OSDI’18. USENIX.Google Scholar
- Gergely Pongrácz, László Molnár, Zoltán Lajos Kis, and Zoltán Turányi. 2013. Cheap silicon: A myth or reality? Picking the right data plane hardware for software defined networking. In HotSDN’13. ACM.Google Scholar
- Salvatore Pontarelli, Roberto Bifulco, Marco Bonola, Carmelo Cascone, Marco Spaziani, Valerio Bruschi, Davide Sanvito, Giuseppe Siracusano et al. 2019. FlowBlaze: Stateful packet processing in hardware. In NSDI’19. USENIX.Google Scholar
- Diana Andreea Popescu, Gianni Antichi, and Andrew W. Moore. 2017. Enabling fast hierarchical heavy hitter detection using programmable data planes. In SOSR’17. ACM.Google Scholar
- DPDK Project. 2020. Data Plane Development Kit. Retrieved from https://www.dpdk.org/.Google Scholar
- The Fast Data Project. 2019. FD.io. Retrieved from https://fd.io.Google Scholar
- Zafar Ayyub Qazi, Cheng-Chun Tu, Luis Chiang, Rui Miao, Vyas Sekar, and Minlan Yu. 2013. SIMPLE-fying middlebox policy enforcement using SDN. ACM SIGCOMM Comput. Commun. Rev. 43, 4 (2013).Google ScholarDigital Library
- Shriram Rajagopalan, Dan Williams, Hani Jamjoom, and Andrew Warfield. 2013. Split/merge: System support for elastic execution in virtual middleboxes. In NSDI’13. USENIX.Google Scholar
- Gábor Rétvári, László Molnár, Gergely Pongrácz, and Gábor Enyedi. 2017. Dynamic compilation and optimization of packet processing programs. In NetPL’17. ACM.Google Scholar
- Gábor Rétvári, János Tapolcai, Attila Kőrösi, András Majdán, and Zalán Heszberger. 2013. Compressing IP forwarding tables: Towards entropy bounds and beyond. In SIGCOMM’13. ACM.Google Scholar
- Luigi Rizzo. 2012. Netmap: A novel framework for fast packet I/O. In ATC’12. USENIX.Google Scholar
- Luigi Rizzo and Giuseppe Lettieri. 2012. VALE, a switched ethernet for virtual machines. In CoNEXT’12. ACM.Google Scholar
- Fabian Ruffy, Tao Wang, and Anirudh Sivarama. 2020. Gauntlet: Finding bugs in compilers for programmable packet processing. In OSDI’20. USENIX.Google Scholar
- Davide Sanvito, Giuseppe Siracusano, and Roberto Bifulco. 2018. Can the network be the AI accelerator?SIGCOMM NetCompute. In SIGCOMM Workshop on In-Network Computing (NetCompute). ACM, 20–25.Google Scholar
- Amedeo Sapio, Ibrahim Abdelaziz, Abdulla Aldilaijan, Marco Canini, and Panos Kalnis. 2017. In-network computation is a dumb idea whose time has come. In HotNets’17. ACM.Google Scholar
- Liron Schiff, Stefan Schmid, and Petr Kuznetsov. 2016. In-band synchronization for distributed SDN control planes. ACM SIGCOMM Comput. Commun. Rev. 46, 1 (2016).Google ScholarDigital Library
- Beverly Schwartz, Alden W. Jackson, W. Timothy Strayer et al. 2000. Smart packets: Applying active networks to network management. ACM Trans. Comput. Syst. 18, 1 (2000).Google ScholarDigital Library
- Vyas Sekar, Norbert Egi, Sylvia Ratnasamy et al. 2012. Design and implementation of a consolidated middlebox architecture. In NSDI’12. USENIX.Google Scholar
- S. Sezer, S. Scott-Hayward, P. K. Chouhan et al. 2013. Are we ready for SDN? Implementation challenges for software-defined networks. IEEE Comm. Mag. 51, 7 (2013).Google ScholarCross Ref
- Muhammad Shahbaz, Sean Choi, Ben Pfaff, Changhoon Kim, Nick Feamster, Nick McKeown, and Jennifer Rexford. 2016. PISCES: A programmable, protocol-independent software switch. In SIGCOMM’16. ACM.Google ScholarDigital Library
- Muhammad Shahbaz and Nick Feamster. 2015. The case for an intermediate representation for programmable data planes. In SOSR’15. ACM.Google Scholar
- Naveen Kr. Sharma, Antoine Kaufmann, Thomas Anderson et al. 2017. Evaluating the power of flexible packet processing for network resource allocation. In NSDI’17. USENIX.Google Scholar
- Naveen Kr. Sharma, Ming Liu, Kishore Atreya, and Arvind Krishnamurthy. 2018. Approximating fair queueing on reconfigurable switches. In NSDI’18. USENIX.Google Scholar
- Vishal Shrivastav. 2019. Fast, scalable, and programmable packet scheduler in hardware. In SIGCOMM’19. ACM.Google Scholar
- Zhaogang Shu, Jiafu Wan, Di Li, Jiaxiang Lin, Athanasios V. Vasilakos, and Muhammad Imran. 2016. Security in software-defined networking: Threats and countermeasures. Springer Mob. Netw. Appl. 21, 5 (2016).Google Scholar
- Giuseppe Siracusano and Roberto Bifulco. 2018. In-network Neural Networks. arxiv:1801.05731.Google Scholar
- Anirudh Sivaraman, Alvin Cheung, Mihai Budiu et al. 2016. Packet transactions: High-level programming for line-rate switches. In SIGCOMM’16. ACM.Google Scholar
- Anirudh Sivaraman, Suvinay Subramanian, Mohammad Alizadeh et al. 2016. Programmable packet scheduling at line rate. In SIGCOMM’16. ACM.Google Scholar
- Vibhaalakshmi Sivaraman, Srinivas Narayana, Ori Rottenstreich, S. Muthukrishnan, and Jennifer Rexford. 2017. Heavy-hitter detection entirely in the data plane. In SOSR’17. ACM.Google Scholar
- John Sonchack, Oliver Michel, Adam J. Aviv, Eric Keller, and Jonathan M. Smith. 2018. Scaling hardware accelerated network monitoring to concurrent and dynamic queries with *flow. In ATC’18. USENIX.Google Scholar
- V. Srinivasan, S. Suri, and G. Varghese. 1999. Packet classification using tuple space search. In SIGCOMM’99. ACM.Google Scholar
- W. P. Stevens, G. J. Myers, and L. L. Constantine. 1974. Structured design. IBM Syst. J. 13, 2 (1974).Google ScholarDigital Library
- Chen Sun, Jun Bi, Zhilong Zheng, Heng Yu, and Hongxin Hu. 2017. NFP: Enabling network function parallelism in NFV. In SIGCOMM’17. ACM.Google ScholarDigital Library
- Kashyap Thimmaraju, Saad Hermak, Gábor Rétvári, and Stefan Schmid. 2019. MTS: Bringing multi-tenancy to virtual networking. In ATC’19. USENIX.Google Scholar
- Kashyap Thimmaraju, Bhargava Shastry, Tobias Fiebig, Felicitas Hetzelt, Jan-Pierre Seifert et al. 2017. The vAMP attack: Taking control of cloud systems via the unified packet parser. In CCSW’17. ACM.Google Scholar
- Kashyap Thimmaraju, Bhargava Shastry, Tobias Fiebig, Felicitas Hetzelt, Jean-Pierre Seifert, Anja Feldmann, and Stefan Schmid. 2018. Taking control of SDN-based cloud systems via the data plane. In SOSR’18. ACM.Google Scholar
- Amin Tootoonchian, Aurojit Panda, Chang Lan, Melvin Walls, Katerina Argyraki, Sylvia Ratnasamy, and Scott Shenker. 2018. ResQ: Enabling SLOs in network function virtualization. In NSDI’18. USENIX.Google Scholar
- Zartash Afzal Uzmi, Markus Nebel, Ahsan Tariq, Sana Jawad, Ruichuan Chen, Aman Shaikh, Jia Wang, and Paul Francis. 2011. SMALTA: Practical and near-optimal FIB aggregation. In CoNEXT’11. ACM.Google ScholarDigital Library
- Javier Verdú, Mario Nemirovsky, Jorge García, and Mateo Valero. 2008. Workload characterization of stateful networking applications. In ISHPC’08. Springer.Google Scholar
- Andreas Voellmy, Junchang Wang, Y. Richard Yang, Bryan Ford, and Paul Hudak. 2013. Maple: Simplifying SDN programming using algorithmic policies. ACM SIGCOMM Comput. Commun. Rev. 43, 4 (2013).Google ScholarDigital Library
- Han Wang, Robert Soulé, and Huynh Tu Dang. 2017. P4FPGA: A rapid prototyping framework for P4. In SOSR’17.Google Scholar
- Damon Wischik, Mark Handley, and Marcelo Bagnulo Braun. 2008. The resource pooling principle. ACM SIGCOMM Comput. Commun. Rev. 38, 5 (2008).Google ScholarDigital Library
- Shinae Woo, Justine Sherry, Sangjin Han, Sue Moon, Sylvia Ratnasamy, and Scott Shenker. 2018. Elastic scaling of stateful network functions. In NSDI’18. USENIX.Google Scholar
- L. Yang et al. 2004. RFC 3746: Forwarding and Control Element Separation (ForCES) Framework. Retrieved from https://tools.ietf.org/html/rfc3746.Google Scholar
- Mao Yang, Yong Li, Depeng Jin, Lieguang Zeng, Xin Wu, and Athanasios Vasilakos. 2015. Software-defined and virtualized future mobile and wireless networks: A survey. Mob. Netw. Applic. 20, 1 (2015).Google ScholarDigital Library
- T. Yang, G. Xie, A. X. Liu et al. 2018. Constant IP lookup with FIB explosion. IEEE/ACM Trans. Netw. 26, 4 (2018).Google ScholarDigital Library
- Minlan Yu, Lavanya Jose, and Rui Miao. 2013. Software defined traffic measurement with OpenSketch. In NSDI’13.Google Scholar
- Yifei Yuan, Dong Lin, Rajeev Alur, and Boon Thau Loo. 2015. Scenario-based programming for SDN policies. In CoNEXT’15. ACM.Google Scholar
- Dong Zhou, Bin Fan, Hyeontaek Lim, Michael Kaminsky, and David G. Andersen. 2013. Scalable, high performance ethernet forwarding with CuckooSwitch. In CoNEXT’13. ACM.Google Scholar
- Noa Zilberman, Yury Audzevich, G. Adam Covington, and Andrew W. Moore. 2014. NetFPGA SUME: Toward 100 Gbps as research commodity. IEEE Micro 34, 5 (2014).Google Scholar
- Noa Zilberman, Philip M. Watts, Charalampos Rotsos, and Andrew W. Moore. 2015. Reconfigurable network systems and software-defined networking. Proc. IEEE 103, 7 (2015).Google Scholar
Index Terms
- The Programmable Data Plane: Abstractions, Architectures, Algorithms, and Applications
Recommendations
Precise Time-synchronization in the Data-Plane using Programmable Switching ASICs
SOSR '19: Proceedings of the 2019 ACM Symposium on SDN ResearchCurrent implementations of time synchronization protocols (e.g. PTP) in standard industry-grade switches handle the protocol stack in the slow-path (control-plane). With new use cases of in-network computing using programmable switching ASICs, global ...
The case for an intermediate representation for programmable data planes
SOSR '15: Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking ResearchSoftware-Defined Networking (SDN) switch vendors are interested in extending switch data planes to support new and continuously evolving network protocols (e.g., NVGRE, VXLAN). Numerous commercial programmable data plane devices already enable a ...
A survey on data plane programming with P4: Fundamentals, advances, and applied research
AbstractProgrammable data planes allow users to define their own data plane algorithms for network devices including appropriate data plane application programming interfaces (APIs) which may be leveraged by user-defined software-defined ...
Comments