OPNFV KVM4NFV: Documentation
[kvmfornfv.git] / docs / requirements / kvmfornfv_requirements.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. (c) OPNFV, Intel Corporation, AT&T and others.
4
5 ============
6 Introduction
7 ============
8 The NFV hypervisors provide crucial functionality in the NFV
9 Infrastructure(NFVI).The existing hypervisors, however, are not necessarily
10 designed or targeted to meet the requirements for the NFVI.
11
12 This document specifies the list of requirements that need to be met as part
13 of this "NFV Hypervisors-KVM" project in Colorado release.
14
15 As part of this project we need to make collaborative efforts towards enabling
16 the NFV features.
17
18 =================
19 Scope and Purpose
20 =================
21
22 The main purpose of this project is to enhance the KVM hypervisor for NFV, by
23 looking at the following areas initially:
24
25 * Minimal Interrupt latency variation for data plane VNFs:
26    * Minimal Timing Variation for Timing correctness of real-time VNFs
27    * Minimal packet latency variation for data-plane VNFs
28 * Inter-VM communication
29 * Fast live migration
30
31 The output of this project would be list of the performance goals,comprehensive
32 instructions for the system configurations,tools to measure Performance and
33 interrupt latency.
34
35 ===========================
36 Methods and Instrumentation
37 ===========================
38
39 The above areas would require software development and/or specific hardware
40 features, and some need just configurations information for the system
41 (hardware, BIOS, OS, etc.).
42
43 A right configuration is critical for improving the NFV performance/latency.
44 Even working on the same code base, different configurations can make
45 completely different performance/latency result.
46 Configurations that can be made as part of this project to tune a specific
47 scenario are:
48
49  1. **Platform Configuration** : Some hardware features like Power management,
50     Hyper-Threading,Legacy USB Support/Port 60/64 Emulation,SMI can be configured.
51  2. **Operating System Configuration** : Some configuration features like CPU
52     isolation,Memory allocation,IRQ affinity,Device assignment for VM,Tickless,
53     TSC,Idle,_RCU_NOCB_,Disable the RT throttling,NUMA can be configured.
54  3. **Performance/Latency Tuning** : Application level configurations like
55     timers,Making vfio MSI interrupt as non-threaded,Cache Allocation
56     Technology(CAT) enabling can be tuned to improve the NFV
57     performance/latency.
58
59 =====================
60 Features to be tested
61 =====================
62
63 The tests that need to be conducted to make sure that latency is addressed are:
64 1. Timer test
65 2. Device Interrupt Test
66 3. Packet forwarding (DPDK OVS)
67 4. Packet Forwarding (SR-IOV)
68 5. Bare-metal Packet Forwarding
69
70 ============
71 Dependencies
72 ============
73
74 1. OPNFV Project: “Characterize vSwitch Performance for Telco NFV Use Cases”
75    (VSPERF) for performance evaluation of ivshmem vs. vhost-user.
76 2. OPNFV Project: “Pharos” for Test Bed Infrastructure, and possibly
77    “Yardstick” for infrastructure verification.
78 3. There are currently no similar projects underway in OPNFV or in an upstream
79    project
80 4. The relevant upstream project to be influenced here is QEMU/KVM and
81    libvirt.
82 5. In terms of HW dependencies, the aim is to use standard IA Server hardware
83    for this project, as provided by OPNFV Pharos.
84
85 =========
86 Reference
87 =========
88
89 https://wiki.opnfv.org/display/kvm/