Figure 6: VNF Communication Using SR-IOV
The hypervisor is still involved in the assignment of the VNFs to the virtual network
functions, and in the management of the physical card, but not in the transfer of the data
inside the packets. Note that VNF-to-VNF communication is performed by Virtual NIC 1,
Virtual NIC 2, and Virtual NIC N. There is also a portion of the NIC (not shown) that keeps
track of all the virtual functions and the sorter to shuttle traffic among the VNFs and
external device ports.
Note that the ability to support SR-IOV is dependent on the platform hardware, specifically
the NIC hardware, and the software of the VNFs or containers to employ DMA for data
transfer. Partitionable NICs, and the internal bridging required, tend to be more expensive,
because of which, their use can increase the cost on smaller devices by an appreciable
amount. Rewriting VNFs and containers is not a trivial task either.
Related
Documentation
Understanding Disaggregated Junos OS on page 3•
• Understanding Physical and Virtual Components on page 12
• Disaggregated Junos OS VMs on page 6
• Understanding Virtio Usage on page 8
• Comparing Virtio and SR-IOV on page 11
Comparing Virtio and SR-IOV
You can enable communication between a Linux-based virtualized device and a Network
Functions Virtualization (NFV) module either by using virtio or by using suitable hardware
and single-root I/O virtualization (SR-IOV). Each method has distinct characteristics.
Virtio is part of the standard libvirt library of helpful virtualization functions and is normally
included in most versions of Linux. Virtio adopts a software-only approach. SR-IOV
requires software written in a certain way and specialized hardware, which means an
increase in cost, even with a simple device.
Generally, using virtio is quick and easy. Libvirt is part of every Linux distribution and the
commands to establish the bridges are well-understood. However, virtio places all of
11Copyright © 2017, Juniper Networks, Inc.
Chapter 1: Architecture Overview