Paving the Way for NFV Acceleration

As a recent innovation, network functions virtualization (NFV)—with its core concept of replacing hardware middleboxes with software network functions (NFs) implemented in commodity servers—promises cost savings and flexibility benefits. However, transitioning NFs from special-purpose hardware to commodity servers has turned out to be more challenging than expected, as it inevitably incurs performance penalties due to bottlenecks in both software and hardware. To achieve performance comparable to hardware middleboxes, there is a strong demand for a speedup in NF processing, which plays a crucial role in the success of NFV. In this article, we study the performance challenges that exist in general-purpose servers and simultaneously summarize the typical performance bottlenecks in NFV. Through reviewing the progress in the field of NFV acceleration, we present a new taxonomy of the state-of-the-art efforts according to various acceleration approaches. We discuss the surveyed works and identify the respective advantages and disadvantages in each category. We then discuss the products, solutions, and projects emerged in industry. We also present a gap analysis to improve current solutions and highlight promising research trends that can be explored in the future.

[1]  Pamela Zave,et al.  Dynamic Service Chaining with Dysco , 2017, SIGCOMM.

[2]  Hai Jin,et al.  Towards load-balanced VNF assignment in geo-distributed NFV Infrastructure , 2017, 2017 IEEE/ACM 25th International Symposium on Quality of Service (IWQoS).

[3]  Sotiris Ioannidis,et al.  Gnort: High Performance Network Intrusion Detection Using Graphics Processors , 2008, RAID.

[4]  Bo Han,et al.  ParaBox: Exploiting Parallelism for Virtual Network Functions in Service Chaining , 2017, SOSR.

[5]  Michio Honda,et al.  mSwitch: a highly-scalable, modular software switch , 2015, SOSR.

[6]  Hong Xu,et al.  Multi-resource Load Balancing for Virtual Network Functions , 2017, 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS).

[7]  Daniel Raumer,et al.  Comparison of frameworks for high-performance packet IO , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[8]  Scott Shenker,et al.  E2: a framework for NFV applications , 2015, SOSP.

[9]  Guy Pujolle,et al.  Fast Packet Processing: A Survey , 2018, IEEE Communications Surveys & Tutorials.

[10]  Cong Xu,et al.  Iron: Isolating Network-based CPU in Container Environments , 2018, NSDI.

[11]  Katerina J. Argyraki,et al.  RouteBricks: exploiting parallelism to scale software routers , 2009, SOSP '09.

[12]  Rastislav Bodík,et al.  Floem: A Programming System for NIC-Accelerated Network Applications , 2018, OSDI.

[13]  Yves Lemieux,et al.  A 100Gig network processor platform for openflow , 2011, 2011 7th International Conference on Network and Service Management.

[14]  Giuseppe Lettieri,et al.  A Survey of Fast Packet I/O Technologies for Network Function Virtualization , 2017, ISC Workshops.

[15]  Miao Li,et al.  Finedge: A Dynamic Cost-Efficient Edge Resource Management Platform for NFV Network , 2020, 2020 IEEE/ACM 28th International Symposium on Quality of Service (IWQoS).

[16]  Sangjin Han,et al.  PacketShader: a GPU-accelerated software router , 2010, SIGCOMM '10.

[17]  Jun Bi,et al.  CoCo: Compact and Optimized Consolidation of Modularized Service Function Chains in NFV , 2018, 2018 IEEE International Conference on Communications (ICC).

[18]  David F. Bacon,et al.  FPGA programming for the masses , 2013, CACM.

[19]  Wolfgang Kellerer,et al.  Applying NFV and SDN to LTE mobile core gateways, the functions placement problem , 2014, AllThingsCellular '14.

[20]  Raouf Boutaba,et al.  Re-Architecting NFV Ecosystem with Microservices: State of the Art and Research Challenges , 2019, IEEE Network.

[21]  Vyas Sekar,et al.  Making middleboxes someone else's problem: network processing as a cloud service , 2012, SIGCOMM '12.

[22]  Gerald Q. Maguire,et al.  SNF: Synthesizing high performance NFV service chains , 2016, PeerJ Prepr..

[23]  K. K. Ramakrishnan,et al.  Performance management challenges for virtual network functions , 2016, 2016 IEEE NetSoft Conference and Workshops (NetSoft).

[24]  Georgios Xilouris,et al.  Enhancing VNF performance by exploiting SR-IOV and DPDK packet processing acceleration , 2015, 2015 IEEE Conference on Network Function Virtualization and Software Defined Network (NFV-SDN).

[25]  Chen Sun,et al.  NFP: Enabling Network Function Parallelism in NFV , 2017, SIGCOMM.

[26]  Vyas Sekar,et al.  Design and Implementation of a Consolidated Middlebox Architecture , 2012, NSDI.

[27]  K. K. Ramakrishnan,et al.  Flurries: Countless Fine-Grained NFs for Flexible Per-Flow Customization , 2016, CoNEXT.

[28]  K. K. Ramakrishnan,et al.  NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms , 2014, IEEE Transactions on Network and Service Management.

[29]  SekarVyas,et al.  Making middleboxes someone else's problem , 2012 .

[30]  Sotiris Ioannidis,et al.  MIDeA: a multi-parallel intrusion detection architecture , 2011, CCS '11.

[31]  Yongqiang Xiong,et al.  ClickNP: Highly Flexible and High Performance Network Processing with Reconfigurable Hardware , 2016, SIGCOMM.

[32]  Bin Fan,et al.  MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing , 2013, NSDI.

[33]  David F. Bacon,et al.  FPGA Programming for the Masses , 2013, ACM Queue.

[34]  Prabaharan Poornachandran,et al.  Hiper-ping: Data plane based high performance packet generation bypassing kernel on ×86 based commodity systems , 2016, 2016 International Conference on Advances in Computing, Communications and Informatics (ICACCI).

[35]  Nick McKeown,et al.  OpenFlow: enabling innovation in campus networks , 2008, CCRV.

[36]  Luca Deri,et al.  10 Gbit / s Line Rate Packet Processing Using Commodity Hardware : Survey and new Proposals , 2011 .

[37]  Swades De,et al.  Joint VNF Placement and CPU Allocation in 5G , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[38]  Raouf Boutaba,et al.  UNiS: A User-space Non-intrusive Workflow-aware Virtual Network Function Scheduler , 2018, 2018 14th International Conference on Network and Service Management (CNSM).

[39]  Dong Zhou,et al.  Scalable, high performance ethernet forwarding with CuckooSwitch , 2013, CoNEXT.

[40]  Scott Shenker,et al.  NetBricks: Taking the V out of NFV , 2016, OSDI.

[41]  Fangming Liu,et al.  FlexNFV: Flexible Network Service Chaining with Dynamic Scaling , 2020, IEEE Network.

[42]  Ibrahim Matta,et al.  Recursive InterNetworking Architecture (RINA) Boston University prototype programming manual (version 1.0) , 2013 .

[43]  Carlos Pignataro,et al.  Network Service Header (NSH) , 2018, RFC.

[44]  Timothy Roscoe,et al.  Arrakis , 2014, OSDI.

[45]  Xiaozhou Li,et al.  NetChain: Scale-Free Sub-RTT Coordination , 2018, NSDI.

[46]  Rusty Russell,et al.  virtio: towards a de-facto standard for virtual I/O devices , 2008, OPSR.

[47]  T. V. Lakshman,et al.  UNO: uniflying host and smart NIC offload for flexible packet processing , 2017, SoCC.

[48]  Gerald Q. Maguire,et al.  Profiling and accelerating commodity NFV service chains with SCC , 2017, J. Syst. Softw..

[49]  Chen Sun,et al.  PAM: When Overloaded, Push Your Neighbor Aside! , 2018, SIGCOMM Posters and Demos.

[50]  Alan L. Cox,et al.  Hyper-Switch: A Scalable Software Virtual Switching Architecture , 2013, USENIX Annual Technical Conference.

[51]  Raouf Boutaba,et al.  $\mu\mathrm{NF}$: A Disaggregated Packet Processing Architecture , 2019, 2019 IEEE Conference on Network Softwarization (NetSoft).

[52]  Bo Li,et al.  Latency-aware VNF Chain Deployment with Efficient Resource Reuse at Network Edge , 2020, IEEE INFOCOM 2020 - IEEE Conference on Computer Communications.

[53]  Sotiris Ioannidis,et al.  GASPP: A GPU-Accelerated Stateful Packet Processing Framework , 2014, USENIX Annual Technical Conference.

[54]  Dongsu Han,et al.  mOS: A Reusable Networking Stack for Flow Monitoring Middleboxes , 2017, NSDI.

[55]  Chuan Wu,et al.  GPUNFV: a GPU-Accelerated NFV System , 2017, APNet.

[56]  Daniel Raho,et al.  SnabbSwitch user space virtual switch benchmark and performance optimization for NFV , 2015, 2015 IEEE Conference on Network Function Virtualization and Software Defined Network (NFV-SDN).

[57]  Jinwei Xia,et al.  Uniform handling and abstraction of NFV hardware accelerators , 2015, IEEE Network.

[58]  Roberto Bifulco,et al.  ClickOS and the Art of Network Function Virtualization , 2014, NSDI.

[59]  Franck Le,et al.  Stateless Network Functions: Breaking the Tight Coupling of State and Processing , 2017, NSDI.

[60]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[61]  Christian Esteve Rothenberg,et al.  VBaaS: VNF Benchmark-as-a-Service , 2015, 2015 Fourth European Workshop on Software Defined Networks.

[62]  Linh T. X. Phan,et al.  RTNF: Predictable Latency for Network Function Virtualization , 2019, 2019 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[63]  Sue B. Moon,et al.  The power of batching in the Click modular router , 2012, APSys.

[64]  George Varghese,et al.  Compiling Packet Programs to Reconfigurable Switches , 2015, NSDI.

[65]  Nick Feamster,et al.  Programming slick network functions , 2015, SOSR.

[66]  Marcel Enguehard,et al.  Hyper-NF: synthesizing chains of virtualized network functions , 2016 .

[67]  Kurt Keutzer,et al.  NP-Click: a productive software development approach for network processors , 2004, IEEE Micro.

[68]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.

[69]  Christoforos E. Kozyrakis,et al.  IX: A Protected Dataplane Operating System for High Throughput and Low Latency , 2014, OSDI.

[70]  Sylvia Ratnasamy,et al.  SoftNIC: A Software NIC to Augment Hardware , 2015 .

[71]  Eunyoung Jeong,et al.  mTCP: a Highly Scalable User-level TCP Stack for Multicore Systems , 2014, NSDI.

[72]  Katerina J. Argyraki,et al.  Automated synthesis of adversarial workloads for network functions , 2018, SIGCOMM.

[73]  Sonia Fahmy,et al.  NFV-VITAL: A framework for characterizing the performance of virtual network functions , 2015, 2015 IEEE Conference on Network Function Virtualization and Software Defined Network (NFV-SDN).

[74]  Jiaxing Zhang,et al.  NFVdeep: Adaptive Online Service Function Chain Deployment with Deep Reinforcement Learning , 2019, 2019 IEEE/ACM 27th International Symposium on Quality of Service (IWQoS).

[75]  Laurent Mathy,et al.  Fast userspace packet processing , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[76]  B. Keepence Quality of service for voice over IP , 1999 .

[77]  Bingsheng He,et al.  G-NET: Effective GPU Sharing in NFV Systems , 2018, NSDI.

[78]  Gerald Sabin,et al.  Security offload using the SmartNIC, A programmable 10 Gbps ethernet NIC , 2015, 2015 National Aerospace and Electronics Conference (NAECON).

[79]  Mohsen Guizani,et al.  Network function virtualization in 5G , 2016, IEEE Communications Magazine.

[80]  KyoungSoo Park,et al.  APUNet: Revitalizing GPU as Packet Processing Accelerator , 2017, NSDI.

[81]  Wei Zhang,et al.  NFVnice: Dynamic Backpressure and Scheduling for NFV Service Chains , 2017, IEEE/ACM Transactions on Networking.

[82]  Jian Guo,et al.  Joint Optimization of Chain Placement and Request Scheduling for Network Function Virtualization , 2017, 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS).

[83]  Dong Zhou,et al.  Raising the Bar for Using GPUs in Software Packet Processing , 2015, NSDI.

[84]  Sue B. Moon,et al.  NBA (network balancing act): a high-performance packet processing framework for heterogeneous processors , 2015, EuroSys.

[85]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[86]  K. K. Ramakrishnan,et al.  Microboxes: high performance NFV with customizable, asynchronous TCP stacks and dynamic subscriptions , 2018, SIGCOMM.

[87]  K. K. Ramakrishnan,et al.  OpenNetVM: A Platform for High Performance Network Service Chains , 2016, HotMiddlebox@SIGCOMM.

[88]  Hong Xu,et al.  Demystifying the energy efficiency of Network Function Virtualization , 2016, 2016 IEEE/ACM 24th International Symposium on Quality of Service (IWQoS).

[89]  Robert Ricci,et al.  Fast and flexible: Parallel packet processing with GPUs and click , 2013, Architectures for Networking and Communications Systems.

[90]  Christian Esteve Rothenberg,et al.  VNF Benchmark-as-a-Service , 2015 .

[91]  Haoyu Song,et al.  Protocol-oblivious forwarding: unleash the power of SDN through a future-proof forwarding plane , 2013, HotSDN '13.

[92]  Robert Soulé,et al.  Emu: Rapid Prototyping of Networking Services , 2017, USENIX Annual Technical Conference.

[93]  Seungyeop Han,et al.  SSLShader: Cheap SSL Acceleration with Commodity Processors , 2011, NSDI.

[94]  Hai Jin,et al.  Adaptive VNF Scaling and Flow Routing with Proactive Demand Prediction , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[95]  Wei Zhang,et al.  Hardware-assisted Isolation in a Multi-tenant Function-based Dataplane , 2018, SOSR.

[96]  Hong Xu,et al.  DHL: Enabling Flexible Software Network Functions with FPGA Acceleration , 2018, 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS).

[97]  Carlos Pignataro,et al.  Service Function Chaining (SFC) Architecture , 2015, RFC.

[98]  Giuseppe Lettieri,et al.  VALE, a switched ethernet for virtual machines , 2012, CoNEXT '12.

[99]  Luigi Rizzo,et al.  netmap: A Novel Framework for Fast Packet I/O , 2012, USENIX ATC.

[100]  Bruno Chatras,et al.  Network functions virtualization: the portability challenge , 2016, IEEE Network.

[101]  Dongsu Han,et al.  Scaling the performance of network intrusion detection with many-core processors , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[102]  Fangming Liu,et al.  Adaptive Interference-Aware VNF Placement for Service-Customized 5G Network Slices , 2019, IEEE INFOCOM 2019 - IEEE Conference on Computer Communications.

[103]  Andrew W. Moore,et al.  Understanding PCIe performance for end host networking , 2018, SIGCOMM.

[104]  Sungryoul Lee,et al.  Kargus: a highly-scalable software-based intrusion detection system , 2012, CCS.

[105]  Giuseppe Lettieri,et al.  Virtual device passthrough for high speed VM networking , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[106]  HanfordNathan,et al.  Improving network performance on multicore systems , 2016 .

[107]  Miao Li,et al.  Demystifying the Performance Interference of Co-Located Virtual Network Functions , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[108]  Hui Lu,et al.  vTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core , 2013, USENIX Annual Technical Conference.

[109]  Martín Casado,et al.  The Design and Implementation of Open vSwitch , 2015, NSDI.

[110]  Georgios P. Katsikas NFV Service Chains at the Speed of the Underlying Commodity Hardware , 2018 .

[111]  Yan Luo,et al.  Designing Virtual Network Functions for 100 GbE Network Using Multicore Processors , 2017, 2017 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[112]  Aditya Akella,et al.  OpenNF , 2014, SIGCOMM.

[113]  Scott Shenker,et al.  Elastic Scaling of Stateful Network Functions , 2018, NSDI.

[114]  Rebecca Steinert,et al.  Metron: NFV Service Chains at the True Speed of the Underlying Hardware , 2018, NSDI.

[115]  Muhammad Siraj Rathore,et al.  Performance, Isolation and Service Guarantees in Virtualized Network Functions , 2017 .

[116]  Anat Bremler-Barr,et al.  OpenBox: A Software-Defined Framework for Developing, Deploying, and Managing Network Functions , 2016, SIGCOMM.