ABSTRACT
This paper introduces NIKSS (Native In-Kernel SDN Switch), a novel programmable software switch for Software-Defined Networking. NIKSS leverages P4 as a high-level programming abstraction, Portable Switch Architecture (PSA) as a fully-featured P4 forwarding model and eBPF as a packet processing engine. The main component of NIKSS is the PSA-eBPF compiler that translates P4 programs into code that runs inside the eBPF execution environment. However, enabling a high degree of programmability for data planes without sacrificing performance or operability is a challenge. Therefore, NIKSS provides two alternative designs of generated code, with different trade-offs between supported PSA features and achieved performance. We demonstrate that NIKSS can be used successfully as a P4 software switch, with an acceptable performance gap compared to native eBPF programming. We also provide an extensive performance evaluation, proving that NIKSS might be a viable alternative to existing software switches.
- 2022. Cilium. https://github.com/cilium/cilium.Google Scholar
- Manikandan Arumugam, Deepak Bansal, Navdeep Bhatia, James Boerner, Simon Capper, Changhoon Kim, Sarah McClure, Neeraj Motwani, Ranga Narasimhan, Urvish Panchal, Tommaso Pimpo, Ariff Premji, Pranjal Shrivastava, and Rishabh Tewari. 2022. Bluebird: High-performance SDN for Bare-metal Cloud Services. In 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22). USENIX Association, Renton, WA, 355--370. https://www.usenix.org/conference/nsdi22/presentation/arumugamGoogle Scholar
- Hirochika Asai. 2020. Palmtrie: A Ternary Key Matching Algorithm for IP Packet Filtering Rules. In Proceedings of the 16th International Conference on Emerging Networking EXperiments and Technologies (Barcelona, Spain) (CoNEXT '20). Association for Computing Machinery, New York, NY, USA, 323--335. Google ScholarDigital Library
- Pankaj Berde, Matteo Gerola, Jonathan Hart, Yuta Higuchi, Masayoshi Kobayashi, Toshio Koide, Bob Lantz, Brian O'Connor, Pavlin Radoslavov, William Snow, and Guru Parulkar. 2014. ONOS: Towards an Open, Distributed SDN OS. In Proceedings of the Third Workshop on Hot Topics in Software Defined Networking (Chicago, Illinois, USA) (HotSDN '14). Association for Computing Machinery, New York, NY, USA, 1--6. Google ScholarDigital Library
- 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. SIGCOMM Comput. Commun. Rev. 44, 3 (July 2014), 87--95. 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. SIGCOMM Comput. Commun. Rev. 43, 4 (aug 2013), 99--110. Google ScholarDigital Library
- Scott Bradner and Jim McQuaid. 1999. Benchmarking Methodology for Network Interconnect Devices. RFC 2544.Google Scholar
- Marco Spaziani Brunella, Giacomo Belocchi, Marco Bonola, Salvatore Pontarelli, Giuseppe Siracusano, Giuseppe Bianchi, Aniello Cammarano, Alessandro Palumbo, Luca Petrucci, and Roberto Bifulco. 2020. hXDP: Efficient Software Packet Processing on FPGA NICs. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). USENIX Association, 973--990.Google Scholar
- Mihai Budiu and Chris Dodd. 2017. The P416 Programming Language. SIGOPS Oper. Syst. Rev. 51, 1 (Sept. 2017), 5--14. Google ScholarDigital Library
- Paul Chaignon, Kahina Lazri, Jérôme François, Thibault Delmas, and Olivier Festor. 2018. Oko: Extending Open vSwitch with Stateful Filters. In Proceedings of the Symposium on SDN Research (Los Angeles, CA, USA) (SOSR '18). ACM, New York, NY, USA, Article 13, 13 pages. Google ScholarDigital Library
- Cong Wang. 2021. bpf: introduce timeout hash map. https://lwn.net/Articles/843877/.Google Scholar
- Andrew R. Curtis, Wonho Kim, and Praveen Yalagandula. 2011. Mahout: Low-overhead datacenter traffic management using end-host-based elephant detection. In 2011 Proceedings IEEE INFOCOM. 1629--1637. Google ScholarCross Ref
- David Ahern. 2020. Add support for XDP in egress path. https://lwn.net/Articles/813406/.Google Scholar
- Thiago A. Navarro do Amaral, Raphael V. Rosa, David F. Cruz Moura, and Christian E. Rothenberg. 2021. An In-Kernel Solution Based on XDP for 5G UPF: Design, Prototype and Performance Evaluation. In 2021 17th International Conference on Network and Service Management (CNSM). 146--152.Google Scholar
- DPDK project. 2021. DPDK ACL library. https://doc.dpdk.org/guides/prog_guide/packet_classif_access_ctrl.html.Google Scholar
- DPDK project. 2021. The Software Switch (SWX) Pipeline. https://doc.dpdk.org/guides/prog_guide/packet_framework.html#the-software-switch-swx-pipeline.Google Scholar
- Ericsson. 2020. Cloud SDN. https://www.ericsson.com/en/portfolio/digital-services/cloud-infrastructure/cloud-sdn.Google Scholar
- Mihai Budiu Fabian Ruffy, William Tu. 2018. P4C-XDP: Programming the Linux Kernel Forwarding Plane Using P4. In Linux Plumbers Conference. Vancouver.Google Scholar
- Daniel Firestone, Andrew Putnam, Sambhrama Mundkur, Derek Chiou, Alireza Dabagh, Mike Andrewartha, Hari Angepat, Vivek Bhanu, Adrian Caulfield, Eric Chung, Harish Kumar Chandrappa, Somesh Chaturmohta, Matt Humphrey, Jack Lavier, Norman Lam, Fengfen Liu, Kalin Ovtcharov, Jitu Padhye, Gautham Popuri, Shachar Raindel, Tejas Sapre, Mark Shaw, Gabriel Silva, Madhan Sivakumar, Nisheeth Srivastava, Anshuman Verma, Qasim Zuhair, Deepak Bansal, Doug Burger, Kushagra Vaid, David A. Maltz, and Albert Greenberg. 2018. Azure Accelerated Networking: SmartNICs in the Public Cloud. In Proceedings of the 15th USENIX Conference on Networked Systems Design and Implementation (Renton, WA, USA) (NSDI'18). USENIX Association, USA, 51--64.Google Scholar
- Open Platform for NFV. July 2021. NFVbench. https://docs.anuket.io/projects/nfvbench/en/latest/.Google Scholar
- Nate Foster, Nick McKeown, Jennifer Rexford, Guru Parulkar, Larry Peterson, and Oguz Sunay. 2020. Using Deep Programmability to Put Network Owners in Control. SIGCOMM Comput. Commun. Rev. 50, 4 (Oct. 2020), 82--88.Google ScholarDigital Library
- P. Gupta and N. McKeown. 2001. Algorithms for packet classification. IEEE Network 15, 2 (2001), 24--32. Google ScholarDigital Library
- 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. EECS Department, University of California, Berkeley. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-155.htmlGoogle Scholar
- Hangbin Liu. 2021. xdp: add a new helper for dev map multicast support. https://lwn.net/Articles/845106/.Google Scholar
- Frederik Hauser, Marco Häberle, Daniel Merling, Steffen Lindner, Vladimir Gurevich, Florian Zeiger, Reinhard Frank, and Michael Menth. 2021. A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research. ArXiv abs/2101.10632 (2021).Google Scholar
- Peng He, Gaogang Xie, Kavé Salamatian, and Laurent Mathy. 2014. Meta-algorithms for Software-Based Packet Classification. In 2014 IEEE 22nd International Conference on Network Protocols. 308--319.Google Scholar
- Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann, John Fastabend, Tom Herbert, David Ahern, and David Miller. 2018. The eXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel. In Proceedings of the 14th International Conference on Emerging Networking EXperiments and Technologies (Heraklion, Greece) (CoNEXT '18). ACM, New York, NY, USA, 54--66. Google ScholarDigital Library
- Hopps, Christian. 2019. Katran: A high performance layer 4 load balancer.Google Scholar
- Cisco Inc. 2021. TRex: Realistic Traffic Generator. https://trex-tgn.cisco.com/Google Scholar
- Intel. March 2021. P416 Intel Tofino Native Architecture - Public Version. https://github.com/barefootnetworks/Open-Tofino.Google Scholar
- Intel DPDK. 2022. Data Plane Development Kit. Retrieved December 11, 2021 from www.dpdk.orgGoogle Scholar
- Jonathan Corbet. 2014. BPF: the universal in-kernel virtual machine. https://lwn.net/Articles/599755/Google Scholar
- Jonathan Corbet. 2019. Concurrency management in BPF. https://lwn.net/Articles/779120/Google Scholar
- Changhoon Kim, Matthew Caesar, Alexandre Gerber, and Jennifer Rexford. 2009. Revisiting Route Caching: The World Should Be Flat. In Passive and Active Network Measurement, Sue B. Moon, Renata Teixeira, and Steve Uhlig (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 3--12.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 (Aug. 2000), 263--297. Google ScholarDigital Library
- Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. 2008. OpenFlow: Enabling Innovation in Campus Networks. SIGCOMM Comput. Commun. Rev. 38, 2 (March 2008), 69--74. Google ScholarDigital Library
- Sebastiano Miano, Matteo Bertrone, Fulvio Risso, Mauricio Vásquez Bernal, Yunsong Lu, and Jianwen Pi. 2019. Securing Linux with a Faster and Scalable Iptables. SIGCOMM Comput. Commun. Rev. 49, 3 (Nov. 2019), 2--17. Google ScholarDigital Library
- S. Miano, M. Bertrone, F. Risso, M. Tumolo, and M. V. Bernal. 2018. Creating Complex Network Services with eBPF: Experience and Lessons Learned. In 2018 IEEE 19th International Conference on High Performance Switching and Routing (HPSR). 1--8. Google ScholarCross Ref
- Sebastiano Miano, Fulvio Risso, Mauricio Vásquez Bernal, Matteo Bertrone, and Yunsong Lu. 2021. A Framework for eBPF-Based Network Functions in an Era of Microservices. IEEE Transactions on Network and Service Management 18, 1 (2021), 133--151.Google ScholarDigital Library
- Sebastiano Miano, Alireza Sanaee, Fulvio Risso, Gabor Retvari, and Gianni Antichi. 2022. Domain Specific Run Time Optimization for Software Data Planes. In Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '22) (Lausanne, Switzerland). Association for Computing Machinery, New York, NY, USA.Google ScholarDigital Library
- Netdev conference 0x15. 2021. XDP General Workshop. https://netdevconf.info/0x15/session.html?XDP-General-Workshop.Google Scholar
- NPLang.org. 2022. NPL: Open, High-Level language for developing feature-rich solutions for programmable networking platforms.Google Scholar
- Open Networking Foundation (ONF). 2022. SD-Fabric.Google Scholar
- The Linux Kernel Organization. 2020. perf: Linux profiling with performance counters. https://perf.wiki.kernel.org.Google Scholar
- Tomasz Osiński and Carmelo Cascone. 2021. Achieving End-to-End Network Visibility with Host-INT. In Proceedings of the Symposium on Architectures for Networking and Communications Systems (Layfette, IN, USA) (ANCS '21). Association for Computing Machinery, New York, NY, USA, 140--143. Google ScholarDigital Library
- Tomasz Osiński, Halina Tarasiuk, Paul Chaignon, and Mateusz Kossakowski. 2021. A Runtime-Enabled P4 Extension to the Open vSwitch Packet Processing Pipeline. IEEE Transactions on Network and Service Management 18, 3 (2021), 2832--2845. Google ScholarCross Ref
- P4.org. 2019. New match kind: optional. Retrieved January 5, 2022 from https://github.com/p4lang/p4-spec/issues/794Google Scholar
- P4.org. 2019. Performance of BMv2. https://github.com/p4lang/behavioral-model/blob/main/docs/performance.md.Google Scholar
- P4.org. 2021. Behavioral Model version 2 (BMv2). https://github.com/p4lang/behavioral-model.Google Scholar
- P4.org. 2021. DPDK backend for the P4 compiler. Retrieved December 11, 2021 from https://github.com/p4lang/p4c/tree/main/backends/dpdkGoogle Scholar
- P4.org. 2021. eBPF Backend for the P4 compiler. https://github.com/p4lang/p4c/tree/main/backends/ebpf.Google Scholar
- P4.org. 2021. uBPF Backend for the P4 compiler. https://github.com/p4lang/p4c/tree/main/backends/ubpf.Google Scholar
- P4.org. December 2019. In-Band Network Telemetry. www.p4.org/p4/inband-network-telemetry/Google Scholar
- Federico Parola, Sebastiano Miano, and Fulvio Risso. 2020. A Proof-of-Concept 5G Mobile Gateway with eBPF. (2020).Google Scholar
- Federico Parola, Fulvio Risso, and Sebastiano Miano. 2021. Providing Telcooriented Network Services with eBPF: the Case for a 5G Mobile Gateway. In 2021 IEEE 7th International Conference on Network Softwarization (NetSoft). 221--225.Google ScholarCross Ref
- Ben Pfaff et al. 2015. The Design and Implementation of Open vSwitch. In 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15). USENIX Association, Oakland, CA, 117--130.Google Scholar
- Muhammad Shahbaz, Sean Choi, Ben Pfaff, Changhoon Kim, Nick Feamster, Nick McKeown, and Jennifer Rexford. 2016. PISCES: A Programmable, Protocol-Independent Software Switch. In Proceedings of the 2016 ACM SIGCOMM Conference (Florianopolis, Brazil) (SIGCOMM '16). ACM, New York, NY, USA, 525--538.Google ScholarDigital Library
- Nick Shelly, Ethan J. Jackson, Teemu Koponen, Nick McKeown, and Jarno Rajahalme. 2014. Flow Caching for High Entropy Packet Fields. SIGCOMM Comput. Commun. Rev. 44, 4 (aug 2014), 6 pages. Google ScholarDigital Library
- V. Srinivasan, S. Suri, and G. Varghese. 1999. Packet Classification Using Tuple Space Search. In Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication (Cambridge, Massachusetts, USA) (SIGCOMM '99). Association for Computing Machinery, New York, NY, USA, 135--146. Google ScholarDigital Library
- The P4.org API Working Group. July 2021. P4Runtime Specification, version 1.3.0. https://p4.org/p4-spec/p4runtime/main/P4Runtime-Spec.html.Google Scholar
- The P4.org Architecture Working Group. April 2021. P4_16 Portable Switch Architecture (PSA). https://p4lang.github.io/p4-spec/docs/PSA.pdf.Google Scholar
- Cheng-Chun Tu, Joe Stringer, and Justin Pettit. 2017. Building an Extensible Open VSwitch Datapath. SIGOPS Oper. Syst. Rev. 51, 1 (sep 2017), 72--77.Google ScholarDigital Library
- William Tu, Yi-Hung Wei, Gianni Antichi, and Ben Pfaff. 2021. Revisiting the Open VSwitch Dataplane Ten Years Later. In Proceedings of the 2021 ACM SIGCOMM 2021 Conference (Virtual Event, USA) (SIGCOMM '21). Association for Computing Machinery, New York, NY, USA, 245--257. Google ScholarDigital Library
- Balajee Vamanan, Gwendolyn Voskuilen, and T. N. Vijaykumar. 2010. EffiCuts: Optimizing Packet Classification for Memory and Throughput. SIGCOMM Comput. Commun. Rev. 40, 4 (aug 2010), 207--218. Google ScholarDigital Library
- VMware. 2020. VMware NSX Data Center. https://www.vmware.com/products/nsx.html.Google Scholar
- Péter Vörös, Dániel Horpácsi, Róbert Kitlei, Dániel Leskó, Máté Tejfel, and Sándor Laki. 2018. T4P4S: A Target-independent Compiler for Protocol-independent Packet Processors. In 2018 IEEE 19th International Conference on High Performance Switching and Routing (HPSR). 1--8.Google ScholarCross Ref
- Qiongwen Xu, Michael D. Wong, Tanvi Wagle, Srinivas Narayana, and Anirudh Sivaraman. 2021. Synthesizing Safe and Efficient Kernel Extensions for Packet Processing. In Proceedings of the 2021 ACM SIGCOMM 2021 Conference (Virtual Event, USA) (SIGCOMM '21). Association for Computing Machinery, New York, NY, USA, 50--64.Google ScholarDigital Library
- Sorrachai Yingchareonthawornchai, James Daly, Alex X. Liu, and Eric Torng. 2018. A Sorted-Partitioning Approach to Fast and Scalable Dynamic Packet Classification. IEEE/ACM Transactions on Networking 26, 4 (2018), 1907--1920.Google ScholarDigital Library
- Yonghong Song. 2021. bpf: add bpf_for_each_map_elem() helper. https://lwn.net/Articles/846504/.Google Scholar
- Minlan Yu, Jennifer Rexford, Michael J. Freedman, and Jia Wang. 2010. Scalable Flow-Based Networking with DIFANE. SIGCOMM Comput. Commun. Rev. 40, 4 (aug 2010), 351--362. Google ScholarDigital Library
Index Terms
- A novel programmable software datapath for software-defined networking
Recommendations
Enabling Hardware Exploration in Software-Defined Networking: A Flexible, Portable OpenFlow Switch
FCCM '13: Proceedings of the 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing MachinesThe OpenFlow framework allows the data plane of a network switch to be managed by a software-based controller. This enables a software-defined networking model in which sophisticated network management policies can be deployed. In this paper, we present ...
Dynamic Reconfiguration Technologies Based on FPGA in Software Defined Radio System
Partial Reconfiguration (PR) is a method for Field Programmable Gate Array (FPGA) designs which allows multiple applications to time-share a portion of an FPGA while the rest of the device continues to operate unaffected. Using this strategy, the ...
Programmable Networks—From Software-Defined Radio to Software-Defined Networking
Current implementations of Internet systems are very hard to be upgraded. The ossification of existing standards restricts the development of more advanced communication systems. New research initiatives, such as virtualization, software-defined radios, ...
Comments