skip to main content
10.1145/3555050.3569117acmconferencesArticle/Chapter ViewAbstractPublication PagesconextConference Proceedingsconference-collections

A novel programmable software datapath for software-defined networking

Published:30 November 2022Publication History

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.

References

  1. 2022. Cilium. https://github.com/cilium/cilium.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. Scott Bradner and Jim McQuaid. 1999. Benchmarking Methodology for Network Interconnect Devices. RFC 2544.Google ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. Mihai Budiu and Chris Dodd. 2017. The P416 Programming Language. SIGOPS Oper. Syst. Rev. 51, 1 (Sept. 2017), 5--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cong Wang. 2021. bpf: introduce timeout hash map. https://lwn.net/Articles/843877/.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. David Ahern. 2020. Add support for XDP in egress path. https://lwn.net/Articles/813406/.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. DPDK project. 2021. DPDK ACL library. https://doc.dpdk.org/guides/prog_guide/packet_classif_access_ctrl.html.Google ScholarGoogle Scholar
  16. DPDK project. 2021. The Software Switch (SWX) Pipeline. https://doc.dpdk.org/guides/prog_guide/packet_framework.html#the-software-switch-swx-pipeline.Google ScholarGoogle Scholar
  17. Ericsson. 2020. Cloud SDN. https://www.ericsson.com/en/portfolio/digital-services/cloud-infrastructure/cloud-sdn.Google ScholarGoogle Scholar
  18. Mihai Budiu Fabian Ruffy, William Tu. 2018. P4C-XDP: Programming the Linux Kernel Forwarding Plane Using P4. In Linux Plumbers Conference. Vancouver.Google ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. Open Platform for NFV. July 2021. NFVbench. https://docs.anuket.io/projects/nfvbench/en/latest/.Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Gupta and N. McKeown. 2001. Algorithms for packet classification. IEEE Network 15, 2 (2001), 24--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle Scholar
  24. Hangbin Liu. 2021. xdp: add a new helper for dev map multicast support. https://lwn.net/Articles/845106/.Google ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Hopps, Christian. 2019. Katran: A high performance layer 4 load balancer.Google ScholarGoogle Scholar
  29. Cisco Inc. 2021. TRex: Realistic Traffic Generator. https://trex-tgn.cisco.com/Google ScholarGoogle Scholar
  30. Intel. March 2021. P416 Intel Tofino Native Architecture - Public Version. https://github.com/barefootnetworks/Open-Tofino.Google ScholarGoogle Scholar
  31. Intel DPDK. 2022. Data Plane Development Kit. Retrieved December 11, 2021 from www.dpdk.orgGoogle ScholarGoogle Scholar
  32. Jonathan Corbet. 2014. BPF: the universal in-kernel virtual machine. https://lwn.net/Articles/599755/Google ScholarGoogle Scholar
  33. Jonathan Corbet. 2019. Concurrency management in BPF. https://lwn.net/Articles/779120/Google ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarCross RefCross Ref
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. Netdev conference 0x15. 2021. XDP General Workshop. https://netdevconf.info/0x15/session.html?XDP-General-Workshop.Google ScholarGoogle Scholar
  42. NPLang.org. 2022. NPL: Open, High-Level language for developing feature-rich solutions for programmable networking platforms.Google ScholarGoogle Scholar
  43. Open Networking Foundation (ONF). 2022. SD-Fabric.Google ScholarGoogle Scholar
  44. The Linux Kernel Organization. 2020. perf: Linux profiling with performance counters. https://perf.wiki.kernel.org.Google ScholarGoogle Scholar
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarCross RefCross Ref
  47. P4.org. 2019. New match kind: optional. Retrieved January 5, 2022 from https://github.com/p4lang/p4-spec/issues/794Google ScholarGoogle Scholar
  48. P4.org. 2019. Performance of BMv2. https://github.com/p4lang/behavioral-model/blob/main/docs/performance.md.Google ScholarGoogle Scholar
  49. P4.org. 2021. Behavioral Model version 2 (BMv2). https://github.com/p4lang/behavioral-model.Google ScholarGoogle Scholar
  50. P4.org. 2021. DPDK backend for the P4 compiler. Retrieved December 11, 2021 from https://github.com/p4lang/p4c/tree/main/backends/dpdkGoogle ScholarGoogle Scholar
  51. P4.org. 2021. eBPF Backend for the P4 compiler. https://github.com/p4lang/p4c/tree/main/backends/ebpf.Google ScholarGoogle Scholar
  52. P4.org. 2021. uBPF Backend for the P4 compiler. https://github.com/p4lang/p4c/tree/main/backends/ubpf.Google ScholarGoogle Scholar
  53. P4.org. December 2019. In-Band Network Telemetry. www.p4.org/p4/inband-network-telemetry/Google ScholarGoogle Scholar
  54. Federico Parola, Sebastiano Miano, and Fulvio Risso. 2020. A Proof-of-Concept 5G Mobile Gateway with eBPF. (2020).Google ScholarGoogle Scholar
  55. 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 ScholarGoogle ScholarCross RefCross Ref
  56. 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 ScholarGoogle Scholar
  57. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  58. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  59. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  60. 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 ScholarGoogle Scholar
  61. The P4.org Architecture Working Group. April 2021. P4_16 Portable Switch Architecture (PSA). https://p4lang.github.io/p4-spec/docs/PSA.pdf.Google ScholarGoogle Scholar
  62. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  63. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  64. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  65. VMware. 2020. VMware NSX Data Center. https://www.vmware.com/products/nsx.html.Google ScholarGoogle Scholar
  66. 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 ScholarGoogle ScholarCross RefCross Ref
  67. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  68. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  69. Yonghong Song. 2021. bpf: add bpf_for_each_map_elem() helper. https://lwn.net/Articles/846504/.Google ScholarGoogle Scholar
  70. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A novel programmable software datapath for software-defined networking

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      CoNEXT '22: Proceedings of the 18th International Conference on emerging Networking EXperiments and Technologies
      November 2022
      431 pages
      ISBN:9781450395083
      DOI:10.1145/3555050

      Copyright © 2022 ACM

      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 ACM 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: 30 November 2022

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      CoNEXT '22 Paper Acceptance Rate28of151submissions,19%Overall Acceptance Rate198of789submissions,25%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader