OpenNetVM: A Software Platform Enabling NFV Research

Timothy Wood, George Washington University, PI K.K. Ramakrishnan, University of California Riverside, PI

This project is supported by the National Science Foundation's CRI Grant #1823236.

Project Site: http://sdnfv.github.io/onvm Source Code: https://github.com/sdnfv/openNetVM

Network Function Virtualization is a "disruptive" technology that changes the network from a transport pipe to a software-defined infrastructure offering flexible services. By transforming network functions to dynamically allocated software containers, new types of applications can be supported along with better network management. OpenNetVM is an open source software platform that seeks to lower the barrier for researchers wishing to explore challenges in this area, and for developers wishing to evaluate new types of network services. This project will provide a robust and flexible foundation that will enable new innovations in these areas. The principal investigators will engage the community to encourage adoption through frequent tutorials and demonstrations.

Communication Networks have increasingly become 'software based'. Network Function Virtualization (NFV) provides a high-performance network data plane (e.g., middleboxes like firewalls, proxies) and is currently seeing both research and industry interest. NFV research has been stymied by the inadequate software platforms that either offer only very low-level access to packet data (making it difficult to evaluate complex services), or are based on traditional packet-processing approaches that have very poor performance for current-day applicability. The researchers will maintain OpenNetVM as an open-source (BSD license) software infrastructure, providing high-level abstractions with an underlying framework that provides wire-speed performance, primitives for scheduling, and scalability, that offers both industry and academic researchers a way to quickly and conveniently build network functions.

OpenNetVM runs network functions in lightweight containers, easily combined to form complex "service chains". The project seeks to provide improved support for real middleboxes with OpenNetVM by adding user space protocol stacks enabling more complex NFs and services, substantially expanding the types of applications supported. The project also expands OpenNetVM to support many NFs that share each CPU core, and distributed deployments where NFs are spread across a cluster, thus enabling research into NFV resource management, NF placement, and complex service chaining. Finally, OpenNetVM will be extended to expose low-level performance metrics that will enable research into automated resource management platforms.

To facilitate adoption the researchers will provide comprehensive documentation, tutorials at major conferences, and template images using publicly accessible resources such as NSF CloudLab. The result will be a comprehensive, open source platform that can be used broadly across the networking and operating systems communities. In addition, this project supports the training of a diverse body of students, with an emphasis on preparing a mix of undergraduate and graduate students for entering the high demand field of software-based networks.