HyperNF

A High Performance, High Utilization and Fair NFV Platform


GitHub

Introduction


Network Function Virtualization has been touted as the silver bullet for tackling a number of operator problems, including vendor lock-in, fast deployment of new functionality, converged management, and lower expenditure since packet processing runs on inexpensive commodity servers. The reality, however, is that, in practice, it has proved hard to achieve the stable, predictable performance provided by hardware middleboxes, and so operators have essentially resorted to throwing money at the problem, deploying highly underutilized servers (e.g., one NF per CPU core) in order to guarantee high performance during peak periods and meet SLAs.

In this work we introduce HyperNF, a high performance NFV framework aimed at maximizing server performance when concurrently running large numbers of NFs. To achieve this, HyperNF implements hypercall-based virtual I/O, placing packet forwarding logic inside the hypervisor to signicantly reduce I/O synchronization overheads. HyperNF improves throughput by 10%-73% depending on the NF, is able to closely match resource allocation specifications (with deviations of only 3.5%), and to efficiently cope with changing traffic loads.

A Few Performance Results


Throughput

Figure 1. HyperNF throughput compared to the model typically used by virtualization frameworks such as Xen and KVM (“split”) and the improved “merge” model.

Adaptability to Changing Traffic Loads

Figure 2. HyperNF, unlike the other models, can quickly adapt to changing traffic loads, closely following the changing offered rate (the “Total” curve).

Service Function Chaining

Figure 3. HyperNF provides both better throughput (a) and latency (b) compared with other models for all service function chain lenghts and its performance degrades more gracefully as the chains get longer.