summaryrefslogtreecommitdiffstats
path: root/docs/requirements/kvmfornfv_requirements.rst
blob: 04883890764aabe06a70b1af853fdfa5e283558a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, Intel Corporation, AT&T and others.

============
Introduction
============
The NFV hypervisors provide crucial functionality in the NFV
Infrastructure(NFVI).The existing hypervisors, however, are not necessarily
designed or targeted to meet the requirements for the NFVI.

This document specifies the list of requirements that need to be met as part
of this "NFV Hypervisors-KVM" project in Colorado release.

As part of this project we need to make collaborative efforts towards enabling
the NFV features.

=================
Scope and Purpose
=================

The main purpose of this project is to enhance the KVM hypervisor for NFV, by
looking at the following areas initially:

* Minimal Interrupt latency variation for data plane VNFs:
   * Minimal Timing Variation for Timing correctness of real-time VNFs
   * Minimal packet latency variation for data-plane VNFs
* Inter-VM communication
* Fast live migration

The output of this project would be list of the performance goals,comprehensive
instructions for the system configurations,tools to measure Performance and
interrupt latency.

===========================
Methods and Instrumentation
===========================

The above areas would require software development and/or specific hardware
features, and some need just configurations information for the system
(hardware, BIOS, OS, etc.).

A right configuration is critical for improving the NFV performance/latency.
Even working on the same code base, different configurations can make
completely different performance/latency result.
Configurations that can be made as part of this project to tune a specific
scenario are:

 1. **Platform Configuration** : Some hardware features like Power management,
    Hyper-Threading,Legacy USB Support/Port 60/64 Emulation,SMI can be configured.
 2. **Operating System Configuration** : Some configuration features like CPU
    isolation,Memory allocation,IRQ affinity,Device assignment for VM,Tickless,
    TSC,Idle,_RCU_NOCB_,Disable the RT throttling,NUMA can be configured.
 3. **Performance/Latency Tuning** : Application level configurations like
    timers,Making vfio MSI interrupt as non-threaded,Cache Allocation
    Technology(CAT) enabling can be tuned to improve the NFV
    performance/latency.

=====================
Features to be tested
=====================

The tests that need to be conducted to make sure that latency is addressed are:
1. Timer test
2. Device Interrupt Test
3. Packet forwarding (DPDK OVS)
4. Packet Forwarding (SR-IOV)
5. Bare-metal Packet Forwarding

============
Dependencies
============

1. OPNFV Project: “Characterize vSwitch Performance for Telco NFV Use Cases”
   (VSPERF) for performance evaluation of ivshmem vs. vhost-user.
2. OPNFV Project: “Pharos” for Test Bed Infrastructure, and possibly
   “Yardstick” for infrastructure verification.
3. There are currently no similar projects underway in OPNFV or in an upstream
   project
4. The relevant upstream project to be influenced here is QEMU/KVM and
   libvirt.
5. In terms of HW dependencies, the aim is to use standard IA Server hardware
   for this project, as provided by OPNFV Pharos.

=========
Reference
=========

https://wiki.opnfv.org/display/kvm/