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]  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).

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

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

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

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

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

[7]  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).

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

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

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

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

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

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

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

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

[16]  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).

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

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

[19]  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).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[34]  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).

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

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

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

[38]  Heqing Zhu Data Plane Development Kit (DPDK) , 2020 .

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

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

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

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

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

[44]  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).

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

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

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

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

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

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

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

[52]  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).

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

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

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

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

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

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

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

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

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

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

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

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

[65]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

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

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

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

[69]  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.

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

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

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

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

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

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

[76]  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).

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

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

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

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

[81]  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).

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

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

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

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

[86]  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).

[87]  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).

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

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

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

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

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

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

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

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

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

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

[98]  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).

[99]  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).

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

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

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

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

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

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

[106]  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).

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

[108]  Dan R. K. Ports,et al.  Arrakis , 2015 .

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

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

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

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

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

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

[115]  EDDIE KOHLER,et al.  The click modular router , 2000, TOCS.

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

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

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