skip to main content
10.1145/3267809.3267831acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

libVNF: Building Virtual Network Functions Made Easy

Authors Info & Claims
Published:11 October 2018Publication History

ABSTRACT

Network Function Virtualization (NFV) aims to reduce costs and increase flexibility of networks by moving functionality traditionally implemented in custom hardware into software packet processing applications, or virtual network functions (VNFs), running on commodity servers in a cloud. This paper describes the design and implementation of libVNF, a library to build high performance, horizontally scalable VNFs. Unlike existing frameworks for VNF development, our library (i) can be used for the development of L2/L3 middleboxes as well as VNFs that are transport layer endpoints; (ii) seamlessly supports multiple network stacks in the backend; and (iii) enables distributed implementation of VNFs via functions for distributed state and replica management. We have implemented a variety of VNFs using our library to demonstrate the expressiveness of our API. Our evaluation shows that building VNFs using libVNF can reduce the number of lines of code in the VNF by up to 50%. Further, optimizations in our library ensure that the performance of VNFs built with our library scales well with increasing number of CPU cores and distributed replicas.

References

  1. 2018. CORD Intel EPC. https://gerrit.opencord.org/ngic.Google ScholarGoogle Scholar
  2. 2018. Hiredis-vip. https://github.com/vipshop/hiredis-vip.Google ScholarGoogle Scholar
  3. 2018. Intel Data Plane Development Kit. http://dpdk.org/.Google ScholarGoogle Scholar
  4. 2018. Iperf. https://software.es.net/iperf/.Google ScholarGoogle Scholar
  5. 2018. Kernel Virtual Machine. https://www.linux-kvm.org/page/Main_Page.Google ScholarGoogle Scholar
  6. 2018. libVNF. https://github.com/networkedsystemsIITB/libVNF.Google ScholarGoogle Scholar
  7. 2018. Netronome. https://www.netronome.com/products/smartnic/overview/.Google ScholarGoogle Scholar
  8. 2018. NFV-IMS. https://github.com/networkedsystemsIITB/NFV_IMS.Google ScholarGoogle Scholar
  9. 2018. NFV-LTE-EPC. https://github.com/networkedsystemsIITB/NFV_LTE_EPC.Google ScholarGoogle Scholar
  10. 2018. ONAP. https://www.onap.org/.Google ScholarGoogle Scholar
  11. 2018. Open Baton. https://openbaton.github.io/documentation/.Google ScholarGoogle Scholar
  12. 2018. Open vSwitch. https://www.openvswitch.org/.Google ScholarGoogle Scholar
  13. 2018. Openstack. https://www.openstack.org/.Google ScholarGoogle Scholar
  14. 2018. OPNFV. https://www.opnfv.org/.Google ScholarGoogle Scholar
  15. 2018. Transport Layer Development Kit. https://github.com/FDio/tldk.Google ScholarGoogle Scholar
  16. 2018. Vector Packet Processing. https://github.com/FDio/vpp.Google ScholarGoogle Scholar
  17. 2018. Yet Another Network Function Framework. https://www.slideshare.net/MichelleHolley1/new-model-for-cloud-network-function-development-yanff.Google ScholarGoogle Scholar
  18. Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky, and John R. Douceur. 2002. Cooperative Task Management Without Manual Stack Management. In Proc. of ATEC '02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Abdul Alim, Richard G. Clegg, Luo Mai, Lukas Rupprecht, Eric Seckler, Paolo Costa, Peter Pietzuch, Alexander L. Wolf, Nik Sultana, Jon Crowcroft, Anil Madhavapeddy, Andrew W. Moore, Richard Mortier, Masoud Koleni, Luis Oviedo, Matteo Migliavacca, and Derek McAuley. 2016. FLICK: Developing and Running Application-Specific Network Services. In Proc. of USENIX ATC'16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Joao Taveira Araujo, Lorenzo Saino, Lennert Buytenhek, and Raul Landa. 2018. Balancing on the Edge: Transport Affinity without Network State. In Proc. of NSDI'18.Google ScholarGoogle Scholar
  21. Adam Belay, George Prekas, Ana Klimovic, Samuel Grossman, Christos Kozyrakis, and Edouard Bugnion. 2014. IX: A Protected Dataplane Operating System for High Throughput and Low Latency. In Proc. of OSDI'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Boost. 2018. https://www.boost.org/.Google ScholarGoogle Scholar
  23. 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
  24. Daniel E Eisenbud, Cheng Yi, Carlo Contavalli, Cody Smith, Roman Kononov, Eric Mann-Hielscher, Ardas Cilingiroglu, Bin Cheyney, Wentao Shang, and Jinnah Dylan Hosein. 2016. Maglev: A Fast and Reliable Software Network Load Balancer.. In NSDI'16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. ETSI. 2012. Network Functions Virtualisation. https://portal.etsi.org/nfv/nfv_white_paper.pdf.Google ScholarGoogle Scholar
  26. Aaron Gember-Jacobson, Raajay Viswanathan, Chaithan Prakash, Robert Grandl, Junaid Khalid, Sourav Das, and Aditya Akella. 2014. OpenNF: Enabling Innovation in Network Function Control. In Proc. of SIGCOMM'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sangjin Han, Scott Marshall, Byung-Gon Chun, and Sylvia Ratnasamy. 2012. MegaPipe: A New Programming Interface for Scalable Network I/O. In Proc. of OSDI'12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Jinho Hwang, K. K. Ramakrishnan, and Timothy Wood. 2014. NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms. In Proc. of NSDI'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Muhammad Asim Jamshed, YoungGyoun Moon, Donghwi Kim, Dongsu Han, and KyoungSoo Park. 2017. mOS: A Reusable Networking Stack for Flow Monitoring Middleboxes. In Proc. of NSDI'17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Eun Young Jeong, Shinae Woo, Muhammad Jamshed, Haewon Jeong, Sunghwan Ihm, Dongsu Han, and KyoungSoo Park. 2014. mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems. In Proc. of NSDI'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Murad Kablan, Azzam Alsudais, Eric Keller, and Franck Le. 2017. Stateless Network Functions: Breaking the Tight Coupling of State and Processing. In Proc. of NSDI'17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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
  33. Xiaofeng Lin, Yu Chen, Xiaodong Li, Junjie Mao, Jiaquan He, Wei Xu, and Yuanchun Shi. 2016. Scalable Kernel TCP Design and Implementation for Short-Lived Connections. In Proc. of ASPLOS '16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Joao Martins, Mohamed Ahmed, Costin Raiciu, Vladimir Olteanu, Michio Honda, Roberto Bifulco, and Felipe Huici. 2014. ClickOS and the Art of Network Function Virtualization. In Proc. of NSDI'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Priyanka Naik and Mythili Vutukuru. 2017. libVNF: A Framework for Building Scalable High Performance Virtual Network Functions. In Proc. of APSys '17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Vladimir Olteanu, Alexandru Agache, Andrei Voinescu, and Costin Raiciu. 2018. Stateless Datacenter Load-balancing with Beamer. In Proc. of NSDI'18.Google ScholarGoogle Scholar
  37. 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 Proc. of SOSP'15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, and Scott Shenker. 2016. NetBricks: Taking the V out of NFV. In Proc. of OSDl'16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas Anderson, and Timothy Roscoe. 2014. Arrakis: The Operating System is the Control Plane. In Proc. of OSDl'14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Shriram Rajagopalan, Dan Williams, and Hani Jamjoom. 2013. Pico Replication: A High Availability Framework for Middleboxes. In Proc. of SoCC'13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Shriram Rajagopalan, Dan Williams, Hani Jamjoom, and Andrew Warfield. 2013. Split/Merge: System Support for Elastic Execution in Virtual Middleboxes. In Proc. of NSDl'13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Luigi Rizzo. 2012. netmap: A Novel Framework for Fast Packet I/O. In Proc. of USENIX ATC' 12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Luigi Rizzo and Giuseppe Lettieri. 2012. VALE, a Switched Ethernet for Virtual Machines. In Proc. of CoNEXT '12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Muhammad Shahbaz, Sean Choi, Ben Pfaff, Changhoon Kim, Nick Feamster, Nick McKeown, and Jennifer Rexford. 2016. PISCES: A Programmable, Protocol-Independent Software Switch. In Proc. of SIGCOMM '16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Justine Sherry, Peter Xiang Gao, Soumya Basu, Aurojit Panda, Arvind Krishnamurthy, Christian Maciocco, Maziar Manesh, João Martins, Sylvia Ratnasamy, Luigi Rizzo, and Scott Shenker. 2015. Rollback-Recovery for Middleboxes. In Proc. of SIGCOMM'15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Berkeley Extensible Software Switch. 2018. http://span.cs.berkeley.edu/bess.html.Google ScholarGoogle Scholar
  47. Shinae Woo, Justine Sherry, Sangjin Han, Sue Moon, Sylvia Ratnasamy, and Scott Shenker. 2018. Elastic Scaling of Stateful Network Functions. In Proc. of NSDI'18.Google ScholarGoogle Scholar
  48. Pamela Zave, Ronaldo A. Ferreira, Xuan Kelvin Zou, Masaharu Morimoto, and Jennifer Rexford. 2017. Dynamic Service Chaining with Dysco. In Proc. of SIGCOMM '17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Wei Zhang, Jinho Hwang, Shriram Rajagopalan, K.K. Ramakrishnan, and Timothy Wood. 2016. Flurries: Countless Fine-Grained NFs for Flexible Per-Flow Customization. In Proc. of CoNEXT '16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Wei Zhang, Guyue Liu, Wenhui Zhang, Neel Shah, Phillip Lopreiato, Gregoire Todeschi, K.K. Ramakrishnan, and Timothy Wood. 2016. OpenNetVM: A Platform for High Performance Network Service Chains. In Proc. of HotMIddlebox '16. Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. libVNF: Building Virtual Network Functions Made Easy

      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
        SoCC '18: Proceedings of the ACM Symposium on Cloud Computing
        October 2018
        546 pages
        ISBN:9781450360111
        DOI:10.1145/3267809

        Copyright © 2018 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: 11 October 2018

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate169of722submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader